思考题
在学习ISIS 和OSPF中, 我们知道ISIS和OSPF要求在MA环境中掩码长度要一致,
如果这个MA环境中,掩码长度不一致, 会出现什么问题?
今天我们分别使用ISIS和OSPF 两个实验环境,讨论一下掩码长度不一致的环境中,路由传递出现的问题。
实验环境一:ISIS
思考题1
ISIS不要求多路访问网络内掩码一致,实节点LSP携带了本身所有直连叶子前缀和前缀长度,会出现什么问题?
实验环境:
R1-R2-R3 全部运行ISIS, 都是L2 路由器, 属于同一个区域,每个设备身后有一个环回口模拟身后网络,连接交换机的接口和这个环回口都接口下启用isis .
R1 -2-3 路由表
思考:
R3带源3.3.3.3去ping2.2.2.2,肯定能ping通,那R3带源10.1.12.3/27是否能ping通2.2.2.2?
答:通不了。
分析过程:
R3路由表去往2.2.2.2/32下一跳是10.1.12.2/24,R3路由表去往10.1.12.0/24下一跳是10.1.12.2
但是R3路由表有一条10.1.12.0/30的路由条目。
R3路由表:
R2路由表去往3.3.3.3/32下一跳是10.1.12.3/27,R2路由表去往10.1.12.0/27下一跳是10.1.12.3,但是R2路由表有一条10.1.12.0/30的路由条目。
R2 路由表:
当R3带源3.3.3.3去ping2.2.2.2时,下一跳是10.1.12.2。R2回包时,回给3.3.3.3,下一跳是10.1.12.3。这没什么问题。(盯住这条路由)
当R3带源10.1.12.3去ping2.2.2.2时,下一跳是10.1.12.2。R2回包时查路由表,去往10.1.12.3网段路由中,匹配最长掩码规则发送报文,匹配中了10.1.12.0/30的ISIS路由,下一跳10.1.12.1,当R1收到了这个报文,发现报文目标地址10.1.12.3是我直连地址的广播地址,路由器隔离广播报文就丢包了。
10.1.12.0/30这个网段只有2个可用地址,
10.1.12.0/30-网络号/前缀
10.1.12.1/30-可用地址
10.1.12.2/30-可用地址
10.1.12.3/30-广播地址
所以,ISIS掩码不一致因最长掩码匹配原则导致丢包了。
实验环境文件:模拟器为华为ensp
isis实验.rar
实验环境二:OSPF
思考题2:
ospf规定了广播型网络内掩码必须一致
OSPF在多路访问网络内如果不要求掩码一致会出现什么问题?
实验环境
这个实验只能分析, 因为掩码不一致, MA网络OSPF不能建立邻居关系
分析过程
如果ospf要求掩码不一致就能建立邻居,而DR声明这个网段的掩码是/29,其他广播域的邻居计算路由时就会计算不出10.1.123.10/32网段。
因为10.1.123.0/29所包含的地址最小10.1.123.1,最大10.1.123.6,
10.1.123.0/29子网划分:
10.1.123.00000 000/29=10.1.123.0/29=== 网络号/前缀
10.1.123.00000 111/29=10.1.123.7/29===广播地址
主机地址10.1.123.10/32 已经超出这个网络的范围了
这样就缺失了一部分路由,比如PC那个地址。
其他网段的路由器只能计算出某一部分路由,无法计算出你整个广播域下的路由。所以OSPF要求掩码必须一致,这样再这个广播域下不管谁未来当DR,其他网段的邻居算出来的路由都是同一个网络号,更不会缺失路由。
就跟村里选村长一样,咱们的思想肯定要一样才会选你,选DR,掩码肯定必须一样才认可你是DR。不然就有可能出现上图的例子。
而ISIS协议就不怕这样的问题,因为isis实节点LSP自主描述了直连网段路由的掩码信息,其他路由器收到后直接算就行了,而ospf是由DR描述掩码,就有可能导致丢路由情况。
所以ISIS就不要求掩码必须一致了,实节点LSP独立描述了掩码信息,不需要伪节点去描述,所以不会导致路由缺失,但是可能会导致路由虽然计算出来了,但是ping不通。
当有人问:ospf掩码不一致会出现什么问题?
首先广播型链路上掩码不一致会造成DBD和LSR报文无法发送,不能建立邻居。其次掩码不一致如果伪节点宣告广播型网络掩码是自身掩码时,会造成其他广播型网络、P2P网络丢失路由。
总结:
ISIS 如果掩码不一致,会正常建立邻居, 但是会出现路由虽然计算出来了,但是ping不通的现象。
OSPF 如果掩码不一致, MA网络不能建立邻居关系。
,