标签为 ‘路由器’
各位都知道DR和BDR的选举首先看他们的优先级,相同优先级的情况下再比较RouterID,RID较大的那个便是DR,但是有时候我们却发现DR并非RID最大的那个路由器。这是什么原因呢?
查阅资料后发现,有这么一句话,“在一个多址网络上,最先初始化启动的两台具有DR选取资格的路由器将成为DR和BDR路由器。”
这么说,可能是首先启动OSPF的路由器先把自己置为DR了,这样就并非最大RID的路由器是DR了。我们看看下面这个简单的实验。
如上拓扑配置好。R1的Loopback0口是1.1.1.1,R2的Loopback0口是2.2.2.2。
首先在R1上启用OSPF,R2上先不启用。
等待一小段时间后,再在R2上启用OSPF。
这时候查看R1的OSPF信息。
R1#show ip ospf interface
FastEthernet0/0 is up, line protocol is up
Internet Address 192.168.12.1/24, Area 0
Process ID 100, Router ID 1.1.1.1, Network Type BROADCAST, Cost: 1
Transmit Delay is 1 sec, State DR, Priority 1
Designated Router (ID) 1.1.1.1, Interface address 192.168.12.1
Backup Designated router (ID) 2.2.2.2, Interface address 192.168.12.2
Timer intervals configured, Hello 10, Dead 40, Wait 40, Retransmit 5
Hello [...]
昨天的CCNA讲到了RIP和EIGRP,开始可以玩一些比较有趣的实验了。
用四台路由器R1到R4,连接成如下拓扑。并如图所示进行端口的配置。
随后,如下图所示,R1、R2、R4运行RIP协议,R2、R3、R4运行EIGRP协议。
当然需要把2.2.2.0/24网段和4.4.4.0/24网段同时宣告为RIP和EIGRP。
这种情况下配置完成后,路由器对于R2到R4的路由选择,肯定是走右边的EIGRP这条路。因为EIGRP要比RIP可靠。
可以先看一下R2上面的路由表,如下图所示。
可以看到R2学习到一条D路由,也就是EIGRP路由,并且是通过S1/1口学到的。对比上图就知道是从右边EIGRP区域学到的。
我们再来看看traceroute的结果。
可以很明显的看出来路由器R2到R4只会走一条路,也就是右边的EIGRP区域的路。这不难理解,因为路由表中只有一条D路由。
但是如果我在RIP中关闭自动汇总,而EIGRP中继续保持自动汇总会出现什么情况?
下图是关闭RIP的自动汇总,EIGRP保持不变的R2上的路由表。
R2上多出来了一条R路由,也就是RIP路由,是通过S1/0口学习到的,也就是左边的RIP区域。
到达一个网段但是却出现了两条路由条目,路由器到底是走哪一条呢?
我们再看看此时的traceroute结果。
这次居然走左边的RIP区域了!!
再做一点小实验,如果把RIP的自动汇总打开,把EIGRP的自动汇总关闭又会出现什么状况呢?
看看R2的路由表吧。
各位应该都能发现红色框中的部分,与上面那个有点点小区别。
上面那张路由表中,R条目学习到的是4.4.4.0/24网段,D条目学习到的是4.0.0.0/8网段,而在这张路由表中恰好相反。
依然不难理解,上面那个时候是关闭了RIP的自动汇总,学习到的肯定就是VLSM的网络了,而下面这个关闭的是EIGRP的自动汇总,所以VLSM的网络应该存在于D条目中,当然事实也证明了这一点。
这次traceroute结果会是怎样呢?看看吧。
这次是走回右边的路了~~
总结一下,对于同时运行RIP和EIGRP两个协议的网络,一个路由到另一个路由如果有两条路可以选择,通常是选择更为可靠的那条路,RIP是最不可靠的,OSPF其次,EIGRP是最可靠的,这里插一小句,这里说的是动态路由协议,如果看静态的话,直连是最为可靠的,静态路由其次,因为它们都是静态而不是动态的。
至于RIP和EIGRP一边开启自动汇总而另外一边关闭自动汇总,路由表中都将学习到两条路由条目。正如本实验中,R2学习到4.0.0.0/8网络和4.4.4.0/24网络,虽然都是指向同一个地址,但是它们代表的意义完全不相同。因为开启了自动汇总,所有的ip地址都将自动汇总成为三大类网络,所以4.4.4.0这个24位的网络就变成了4.0.0.0这个8位网络。
然后路由表的匹配原则是最长匹配,所以4.4.4.4和4.4.4.0/24的网络能匹配24位,而和4.0.0.0/8的网络只能匹配8位,当然就选择24位的网络了,这也是本文中的关键点。只要想通这个,应该就不成问题了。
流沙咖啡 写于2009年6月22日晚。
腾科那边终于派了老师到学校来给我们上课了,一拖再拖拖了大半年的事情终于有了个着落。
在生命科学楼的某个实验室,十几个人就这么从CCNA开始重新上课了。曾经辛辛苦苦跑去公司学CCNA的日子已经不复存在了,取而代之的就是舒舒服服的在学校上课~噢耶~
CCNA的课程只有五天,每天六小时,话说课时数比较少,内容也巨简单,不过没事干的时候自己思考一些有趣的问题还是很不错的。上周老师讲到了RIP的简单配置,顺带提了一下OSPF,然后我就像神经病一样的想,如果两台路由器直连,分别启用两个子接口,一个子接口运行RIP,一个运行OSPF会有什么结果?(估计也就只有我能这么变态的这样想吧)
既然要运行动态路由协议,第一步肯定是需要给各接口配上静态ip地址,但是问题就出在这里。
我用两台路由器R1和R2相连,R1的S1/1口与R2的S1/0口相连。分别启用R1的S1/1.1和S1/1.2、R2的S1/0.1和S1/0.2四个子接口,并配置如下ip地址:
R1 S1/1.1 11.11.11.11
S1/1.2 22.22.22.11
R2 S1/0.1 11.11.11.22
S1/0.2 22.22.22.22
如图所示。
在对R1的s1/1和R2的s1/0都进行no shutdown后,四个子接口状态均为双up。如图所示。
R1两个子接口状态:
R2两个子接口状态:
理论上来说,R1的S1/1.1子接口和R2的S1/0.1子接口配置在同一网段,应该是可以ping通的,另外两个子接口也是同一网段也应该能ping通。我查了一下路由表,如下图所示。
R1的路由表:
R2的路由表:
这两张路由表很明确的告诉我,11.11.11.0网段和22.22.22.0网段均是R1和R2的直连网段,当然这在我的意料之中。
可是出乎意料的是,用R1 的s1/1.1去pingS2的S1/0.1居然不通!用R1的各个子接口pingR2的各个子接口都不通!
从图中可以看到,5个ICMP包均超时。
回头想想,会不会因为R1的S1/1和R2的S1/0两个物理口没有配静态ip导致这种状况呢?于是把两个物理接口配上地址,神奇的事情发生了……
R1的S1/1和R2的S1/0口的配置如下:
这下R1可以ping通R2了,但是神奇的地方在于R1的s1/1.1不仅能ping通R2的S1/0.1,还能ping通S1/0和S1/0.2两个接口!甚至是R1上面的各个接口pingR2上面的各个接口均是通的!
不同网段不需要经过动态路由协议或者静态路由的指定便可以ping通,这是我学Cisco以来第一次出现!难道发现新大陆了?!
其实不然。物理接口的连通性实现的是路由转发功能,也就是数据包的转发,如果物理接口没有连通,那么数据包就不可能被转发。即使子接口互相学习到对方的路由条目并存在于自己的路由表中,然而数据包无法转发也就无法ping通了。一旦物理口双up了,子接口互相ping通就在情理之中。
但是还留有一个很神奇的疑问,为什么不同网段的子接口之间也能互相ping通?这时候我们应该看看路由转发是如何实现的。
路由器将收到的数据包进行分析,提取目的地ip地址,然后匹配自己的路由表,通过匹配到的路由条目将数据包转发。
R2直连了12.0.0.0、11.11.11.0、22.22.22.0三个网段,那么当R1的数据包传送到R2的时候,R2分析目的地地址,然后匹配路由条目,接着进行转发。
我们看看实际例子,从11.11.11.11 ping 22.22.22.22,首先数据包从R1发出,通过物理口传送到R2,R2分析其目的地地址,然后发现22.22.22.22是自己的某个接口,于是乎把这个数据包转发至该接口;然后该接口将包回传给R1,分析包的源地址11.11.11.11,然后匹配路由表,再转发。这个ping的过程就相当顺利。
看来子接口的讲究还是比较多的,有时间再具体深究,此次笔记到此。
流沙咖啡 写于2009年6月21日晚。









