- IP路由-网络层实现的功能
- 配置静态路由
- 路由汇总
- 默认路由
- 网络排错案例
- windows上的路由表和默认路由
- 什么是动态路由
- PRI协议和OSPF协议
网络层实现的功能
- 网络层功能就是给传输层协议提供简单灵活的、无连接的、尽最大努力交付的数据包服务。
- 通俗一点来讲,网络中的路由器为每一个数据包单独的选择转发路径,网络层不提供服务质量的承诺。
- 也就是说路由器直接丢弃传输过程中出错的数据包,如果网络中待发的数据包太多,路由器处理不了就直接丢弃,路由器也不判断数据包是否重复,也不确保数据包按照发送顺序到达终点。
- 网络层的功能是网络中的路由器来实现的,为每一个IP数据包单独选择转发路径。
网络畅通的条件
- 计算机网络畅通的条件就是数据包有去有回。
- 如图,若想要A计算机与B计算机通信,沿途的路由器必须知道如何转发数据包。
- A向B发送一个数据包,先转给给R1,R1就会检查自己的路由表看是否有到192.168.1.2的路由表信息。如果有,看看下一跳转给谁,这里是R2。
- 同理R2也会查自己的路由表,然后转给R3,R3连接着这个网段,直接发送给B。
- B回消息之后,回来的信息也是同样的转发。
- 前提是R1,2,3都有相关的路由表信息。但是如果有一个路由器,并没有到B的路由表信息,比如说R2,它就会把这个数据包扔掉,然后给R1返回一个数据包,转发给A计算机说,R2不知道到B计算机所在的网段怎么走。
网络排错
- 明白了网络畅通的条件,网络排错就变得简单了。
- 先检查数据包是否能够到达目标网络。
- 再检查数据包能否返回来。
- 如果网络不通,就要检查计算机是否配置了正确的IP地址子网掩码以及网关,再逐一检查沿途路由器上的路由表,检查看是否有到达目标网络的路由;然后逐一检查沿途路由器上的路由表,检查是否有数据包返回所需的路由。
静态路由
-
要想实现全网通信,也就是网络中的任意两个节点都能通信,这就要求每个路由器的路由表必须有到所有网段的路由。
-
对于路由器来说,他只知道自己直连的网段,对于没有直连的网段,需要管理员人工添加到这些网段的路由。
-
管理员人工添加到某个网段如何转发,这就是静态路由。比如说
-
如图:A,B,C,D四个网段,计算机和路由器的IP地址都已经分配好。
-
R1路由器直连A,B两个网段,但是C,D网段并没有直连,所以需要手动添加C,D网段的路由信息。
-
关键代码:
-
R2路由器直连B,C两个网段,A,D网段没有直连,所以需要手动添加A,D网段的路由。
-
关键代码:
-
同理,R3路由器直连C,D两个网段,A,B网段没有直连,手动添加A,B网段。
-
关键代码:
路由汇总
-
Intenet是全球最大的互联网,如果Internet上的路由器把全球所有的网段都添加到路由表,那么将是一个非常庞大的路由表,路由器每次转发一个数据包,都要检查路由表为该数据包选择转发接口,庞大的路由表势必会增加处理时延。
-
通过合理的地址规划,可以通过路由汇总简化路由表。
-
将物理位置连续的网络分配地址连续的网段,就可以在边界路由器上面将远程的网络合并成一条路由,这就是路由汇总。
-
可以将路由信息进行汇总,联想上篇文章,IP地址和MAC地址,利用构建超网的方式,我们把路由信息中地址块连续的网段进行汇总成一条就好了。
-
但是也会有意外的情况,比如上图,突然冒出来一条10.0.1.2的网段,这时候仅仅汇总172.16.0.0显示是不够的,还需要手动再次添加一条路由信息。
无类域间路由(CIDR)
- 无类域间路由(CIDR)采用13~27位可变网络ID,而不是A,B,C类网络所用的固定8,16和24位。
- 这样我们就可以将子网掩码向左移动1位,合并两个网段;向左移动两位合并四个网段;向左移动3位合并8个网段;向左移动n位就可以合并2的n次方个网段。
- 路由汇总必须联想起来超网合并网段,对于R2路由器来说A区的就相当于一个合并了四个网段的超网。
默认路由
先在路由表上添加以下四条路由
- R1(config)#ip route 0.0.0.0 0.0.0.0 10.0.0.2 --第1条路由
- R1(config)#ip route 172.0.0.0 255.0.0.0 10.0.1.2 --第2条路由
- R1(config)#ip route 172.16.0.0 255.255.0.0 10.0.2.2 --第3条路由
- R1(config)#ip route 172.16.1.0 255.255.255.0 10.0.3.2 --第4条路由
观察:
- 从上到下,子网掩码越短(子网掩码写成二进制1的个数越少),主机位越多,该网段的地址数量就越大。
- 如果计算机发来一条消息,目标地址为172.16.5.7,路由器会怎么对照路由表呢?
- 首先会比照第四条路由信息,因为它的子网掩码足够长(二进制1的个数多),比照之后发现不满足条件
- 继续比照第三条路由,此时172.16.0.0 255.255.255.0满足要求,直接转发给10.0.2.2。
同理,如果计算机发来一条寻找消息,目标地址为176.12.2.2,此时的路由器比照完后三条路由信息发现均不满足,就会直接将信息转发给第一条路由的10.0.0.2。
注意到0.0.0.0网段
- 如果想让一个网段包括全部的IP地址,这就要求子网掩码短到极致,最短就是0,子网掩码变成了0.0.0.0,这就意味着该网段的32位二进制的IP地址都是主机位,任何一个地址都属于该网段。因此0.0.0.0子网掩码0.0.0.0网段包括了全球所有的IPv4地址,也就是全球最大的网段,换一种写法就是0.0.0.0/0。
- 在路由器上添加到0.0.0.0 0.0.0.0网段的路由,就是默认路由。
- R1(config)#ip route 0.0.0.0 0.0.0.0 10.0.0.2 --第1条路由
- 任何一个目标地址都与默认路由匹配,根据前面讲到的“最长前缀匹配”算法,默认路由就是在路由器没有为数据包找到更为精确匹配的路由,最后匹配的一条路由。
使用默认路由作为指向Internet的路由
-
一般的网络末端路由器只需要添加一条默认路由就好了。如图所示:
-
网络末端路由器B和D,可以看到它是位于计算机或者交换机最近的路由器,此时只需要添加一条路由信息,指向下一跳地址为与之相连的路由器即可。
-
添加的路由信息为:ip route 0.0.0.0 0.0.0.0 10.2.0.1。所有的路由信息都指向下一跳的路由器。
-
在A路由器上可以把内网看做是10.0.0.0 255.0.0.0这个网段,所以可以合并为一条路由。如图
默认路由的应用场景 -
指向Internet
-
让默认路由代表大多数网络。
环状网络的解决办法
- 如图:
- 假如说,要寻找的地址在这个环内还可以找得到,可是如果不在的话,就会一直在这个网络中不断广播,造成广播风暴,如何解决呢?
- 每一条数据帧,都会有一个TTL值,没经过一个路由器,就会让TTL减去1,如果减完还没有找到,就会被丢掉。
- 最后一项就是TTL值。
来看看国际的IP分配
- 有了以上的知识储备,就可以分析全球的互联网地址了。如图所示
- 假如说英国的网段为30.0.0.0/8,美国的网段为20.0.0.0/8,中国的网段为40.0.0.0/8。
- 而在中国的网段40.0.0.0/8里面,还可以继续分配,把40.1.0.0/16分配给河南省,40.2.0.0/16分配给河北省。
- 接着把河北的网段40.2.0.0/16继续分配,把40.2.1.0/24分配给石家庄市,把40.2.2.0/24分配给秦皇岛市,把40.2.3.0/24分配给保定市。
- 其他各省,以及各个市也按照同样的方式进行分配。
- 对于末端路由器F,G,H,只需要一条路由信息就可以搞定了,把全部信息多传给路由器C。
- 对于路由器C而言,它需要设置到石家庄、秦皇岛、保定的三条路由信息,除此之外的所有信息都要传给出口路由器A。
- 对于A路由器来说,它作为出口路由器,向下需要设置到各个省份的路由器路由信息,往上需要设置到各个国家的路由信息。
- 同理,国外的路由器D,E同理设置即可。
查看本机的路由表
- win+R,输入CMD,进入管理控制台,输入命令 route print,就可以看到本机的路由表。如图:
- 尾部的 -4代表只显示IPV4的路由表。
- 可以看到第一条默认路由就是网关的地址。这条信息非常关键。也即是说,计算机上的默认路由就是网关地址。