实验1:在R2上fram map ip 123.123.123.1 201 b
在R3上fram map ip 123.123.123.1 301 b
在R1上nei 123.123.123.2 nei 123.123.123.3
查看现象,如果此时不停的showip ospf nei的话,会看到一个奇怪的现象。
与R2的邻居状态从BDRàDRother与R3的邻居状态从DRotheràBDR,为什么有这个现象呢?分析一下:
首先R1,R2之间建立邻居关系,R1为DR因为帧中继建立邻居关系时间比较长R1与R2之间建立的时候超过了40s,R1把自己当成DR,而R2收到了R1已经为DR的消息,所以认为R1为DR,自己为BDR。与此同时,可能稍微慢一些(因为我先nei R2然后nei R3)R1与R3建立邻居关系此时R3认为R1为DR,与上面的原因一样,而R3的router-id大于R2,所以R3应该为BDR。这里有一个越变的过程。
再看一个奇怪的现象:R1上clear ip ospf process
查看现象根据分析,R1会认为R3是DR,R2是BDR,自己是DRother,但这可能吗?
是的这不能稳定,所以凭借OSPF自己的机制,它有一个越变。
当然,这样肯定是无法学习到路由的。可关键是为什么呢?
所以我将R1设置为DR,在R2,R3上设置ip ospf pri 0。
好,回到正题:
R2ping的通R3吗?肯定Ping不通,因为下一跳不可达(我没有做帧中继的映射),做完映射,这就可以PING通了。
实验二:让R1,R2,R3不在一个子网,即在R1上设置子接口。
注意:当要建立邻居关系的时候,我在R1上nei R2,R3,这是不可以的,nei命令不能使用在点到点接口,所以我将这条命令移除到R2和R3上,发现,邻居关系还是起不来。这是为什么呢?
因为时间的问题:
NBMA接口Hello时间为30秒,点到点接口的Hello时间为10秒,将两边时间修改的一致就可以了。
一些总结:
OSPF网络类型的研究:
网络类型 | 选举DR/BDR | HELLO/DEAD时间 | 是否nei邻居 | 存在 |
Broadcast | yes | 10/40 | No | ethernet |
P-T-P | No | 10/40 | No | 串口和FR PTP口 |
P-T-MP | No | 30/120 | NO | / |
NBMA | Yes | 30/120 | Yes | FR主接口和FR p-t-mp接口 |
PTMP NBMA | No | 30/120 | YES |
上面是一些基础,我要研究的是下面的内容,这些网络类型使用的是单播还是组播呢?
网络类型 | Hello | DBD | LS request | LS update | LS Ack |
Broadcast | 当没有邻居列表的时候一定是多播,当作为周期性的keepalive也是多播。但也有单播。 | 单播 | 单播 | 有单播有多播。 | 有单播有多播 |
P-T-P | 组播 | ||||
P-T-MP | 当没有邻居列表的时候一定是多播,当作为周期性的keepalive也是多播。但也有单播。 | 单播 | 单播 | 单播 | 单播 |
NBMA | 单播 | ||||
PTMP NBMA | 单播 |