有类路由和无类路由
动态路由的路由协议包括有类路由协议和无类路由协议。
有类路由协议有RIP V1 , IGRP
无类路由协议有RIP V2,OSPF ,EIGRP,ISIS ,BGP
有类路由协议:
特性:1,路由更新时不包括子网掩码。
2,网络的自动汇总默认是开启的。
3,同一路由器的各个子网不在同一网段。
有类路由协议的原理。
1, 当路由协议收到路由后,如果该路由与路由器接受端口的IP地址,在同一主网,使用该端口的掩码作为路由掩码。
2当路由协议收到路由后,如果该路由与路由器接受端口的IP地址,不在同一主网,按照“类”的连接作路由汇总。
2, 同一网络的各个子网不能被其他的网络分隔。
Router(config)#host R1
R1(config)#int lo0
R1(config-if)#ip addr 10.2.0.1 255.255.0.0
R1(config-if)#int s1/0
R1(config-if)#ip addr 172.16.2.1 255.255.255.0
R1(config-if)#encap hdlc
R1(config-if)#clock rate 56000
R1(config-if)#no shut
R1(config-if)#exi
R1(config)#router rip
R1(config-router)#net 10.2.0.0
R1(config-router)#net 172.16.2.0
Router(config)#host R2
R2(config)#int s1/0
R2(config-if)#ip addr 172.16.2.2 255.255.255.0
R2(config-if)#encap hdlc
R2(config-if)#no shut
R2(config)#int s1/1
R2(config-if)#ip addr 172.16.1.1 255.255.255.0
R2(config-if)#encap hd;c
R2(config-if)#clock rate 56000
R2(config-if)#exit
R2(config)#router rip
R2(config-router)#net 172.16.2.0
R2(config-router)#net 172.16.1.0
R2(config-router)#exit
Router(config)#host R3
R3(config)#int lo0
R3(config-if)#ip addr 10.3.1.1 255.255.0.0
R3(config-if)#int s1/1
R3(config-if)#ip addr 172.16.1.2 255.255.255.0
R3(config-if)#encap hdlc
R3(config-if)#no shut
R3(config-if)#exit
R3(config)#router rip
R3(config-router)#net 10.3.1.0
R3(config-router)#net 172.16.1.0
R1#
R1#show ip ro
172.16.0.0/24 is subnetted, 2 subnets
R 172.16.1.0 [120/1] via 172.16.2.2, 00:00:15, Serial1/0
分析:R1学习R2 172.16.1.1路由时,由于它的主网是172.16.0.0,而自己接受端口的主网也是172.16.0.0,显然是同一主网,所以按照有类路由协议路由原理,使用接受端口的掩码即172.16.2.1的掩码作为路由掩码。所以R1路由表中有172.16.0.0/24的路由 。
C 172.16.2.0 is directly connected, Serial1/0
10.0.0.0/16 is subnetted, 1 subnets
C 10.2.0.0 is directly connected, Loopback0
两个直连路由就不做解释了。
疑问:10.3.1.0 ???????????R1上为什么会学习不到呢?
这个问题要先从R2上分析,R3要将10.3.1.1发送个R2,它的主网是10.0.0.0,而R2的接受端口的主网是172.16.0.0, 显然不在同一主网,按照“类”的连接做路由汇总,10.3.1.1是A类ip,而R2中没有10网段的路由,直接进行更新,还有一种情况是,R2中存在10网段的路由,那样的 话就得比较路由的发送者,同一发送者,直接更新,不同发送者,按照路由度量大小,越小越好,好的留下,坏的丢弃。这里 仅仅是 第一种情况,所以R2上会学到10.0.0.0/8的路由。同理,R2将10.0.0.0/8的路由发送给R1,主网是10.0.0.0,和R1上接受端口172.16.2.1的主网不是同一主网,按照“类”的连接做路由汇总,属于A类路由,不同上面的是这里属于第二种情况,R1中存在10.0.0.0的路由,显然不是同一发送者,本路由器的10.2.0.1的路由度量是0,而邻居发送来的10.0.0.0的路由度量是2,显然保留自己的IP,丢弃发送来的,所以R1上是学习不到10.3.1.1的路由的。
R2#
R2#show ip ro
C 172.16.1.0 is directly connected, Serial1/1
R 10.0.0.0/8 [120/1] via 172.16.2.1, 00:00:09, Serial1/0
R3要将10.3.1.1发送个R2,它的主网是10.0.0.0,而R2的接受端口的主网是172.16.0.0, 显然不在同一主网,按照“类”的连接做路由汇总,10.3.1.1是A类ip,而R2中没有10网段的路由,直接进行更新,所以R2上会学到10.0.0.0/8的路由。
R3#show ip ro
R 172.16.2.0 [120/1] via 172.16.1.1, 00:00:12, Serial1/1
C 10.3.0.0 is directly connected, Loopback0
RIP V1特性:
1, 路由更新是广播更新 。
2, 自动汇总是开启的,且不能关闭。
3, 不支持变长掩码。
有类路由协议转发数据包的原理;
1,按照最长匹配原则。
2,如果包的目的地对应地具体路由不存在,但存在默认路由,用默认路由转发该包,如果不存在默认路由,包被丢弃。
4, 如果包的目的地址的具体路由不存在,但路由表中存在与该目的地在同一主网的其他子网的路由:
A,如果命令 IP classless 开启,且不存在默认路由,用默认路由转发该包。
A,如果命令 IP classless 没开启,包被丢弃。
(config)# IP classless
// IP classless默认开启的。
无类路由协议:
特性;
1,路由更新时包括子网掩码。
2,支持变长掩码。
3,组播更新路由。
4,自动汇总是开启的,但可以关闭。
5, 支持手工路由汇总。
RIP V2
1,属于距离矢量路由协议。
2,路由的度量是跳数。
3, 每隔30秒发送路由更新。
4, 支持默认4条最多6条等开销路径做负载均衡。
5, 发送路由更新时,累计距离
6, 最大有效跳数是15
7, 属于无类路由协议
8, 支持变长掩码。
9, 组播更新路由信息。
10, 自动汇总是开启的,但可以关闭,支持手工汇总。
本文转自shenleigang 51CTO博客,原文链接:http://blog.51cto.com/shenleigang/150685,如需转载请自行联系原作者