IS-IS P2P网路类型 地址不在同一子网建立邻居关系

拓扑图

由于IS-IS是直接运行在数据链路层上的协议,并且最早设计是给CLNP使用的,IS-IS邻居关系的形成与IP地址无关。但在实际的实现中,由于只在IP上运行IS-IS,所以是要检查对方的IP地址的。如果接口配置了从IP,那么只要双方有某个IP(主IP或者从IP)在同一网段,就能建立邻居,不一定要主IP相同。

通常情况下,IS-IS会对收到的Hello报文进行IP地址检查,只有这个地址和本地接收报文的接口地址在同一网段时,才会建立邻居。但当两端接口IP地址不在同一网段,如果均配置了isis peer-ip-ignore命令,就会忽略对对端IP地址的检查,此时链路两端的IS-IS接口间可以建立正常的邻居关系。路由表中有这两个不同网段的路由,但是不能互相PING通。

P2P link 上 2-Way 握手机制:只要收到 IS-IS-Hello 报文,就会单方向的建立起邻居。

P2P 链路上的 3 次握手机制:收到第一份 Hello 包时,将状态置为 init,只要收到 TLV 240(Point-to-point Adjacency State)中含有自己system id 的 IIH 时将状态置为 up(P2P 默认三次握手)。

P2P 3-way模式,AR1的ISIS邻居状态为init,AR2的ISIS无邻居状态

此时AR2配置忽略对端IP地址检查或配置从ip与AR1的地址在同一网段,邻居可建立

复制代码
interface GigabitEthernet0/0/0
 ip address 10.1.12.130 255.255.255.128 
 isis enable 1
 isis circuit-type p2p
 isis peer-ip-ignore 
#

复制代码
interface GigabitEthernet0/0/0
 ip address 12.1.1.2 255.255.255.128 sub
#

P2P 2-way模式下,AR1的ISIS邻居状态为up,AR2的ISIS无邻居状态

取消AR2配置忽略对端IP地址检查或取消配置从ip与AR1的地址在同一网段

AR2 配置使用2-way握手机制

复制代码
interface GigabitEthernet0/0/0
 isis circuit-type p2p
 isis ppp-negotiation 2-way
#

要想建立邻居,在AR2上配置忽略对端IP地址检查或配置从ip与AR1的地址在同一网段,同上

结论

在 3-Way 时 AR1 显示 init,在 2-Way 时 AR1 显示 up。而 AR2 不存在任何邻居关系。

分析:AR1 发出 IIH 报文,由 TLV 132 带着接口 IP 地址。

AR2 收到后,会将 IIH 中的 IP(10.1.12.1)与自己接口的 mask 做与运算后,发现和自己并不属于同一个网段。

AR1 收到 AR2 发出的 IIH 报文,将 TLV132 里带的 IP 地址与自己接收端口的 mask 进行与运算。认为 AR2 和自己在同一网段中

结果:如果双方属于 2-Way 建立邻居,AR1 在收到 AR2 发出的 IIH 后就将邻居状态置为 up。如果双方属于 3-Way,AR2 不认为 AR1 和自己处于同一网段,所以 AR2 发出的IIH 报文中的 TLV240 的 Neighbor SystemID 为空。AR1 收到此报文后,邻居列表中并没有自己,就置为 init 状态

补充

问题:此实验中,AR1 ping AR2 可以ping通吗?

测试AR1 ping AR2,不通

不通的原因:AR1访问10.1.12.130,匹配IS路由的下一跳为10.1.12.130,ARP请求10.1.12.130的MAC地址,由于与AR2的接口不在同一网段,被AR2丢弃,无法获得MAC地址信息

那么换一下,AR2 ping AR1,可以通信

可以通信的原因:AR2访问AR1,下一跳为10.1.12.1,ARP请求下一跳的MAC地址,由于AR1的G0/0/0接口掩码为24位,ARP请求的IP地址与源地址属于同一网段,所以回应ARP Reply,AR2、AR1得到了双方接口的MAC地址,成功通信。

查看AR1、AR2的ARP表项,均得到并缓存了对方的MAC地址

那么,此时,AR1 ping AR2,成功通信

再次补充:

路由器收到ARP请求报文中,如果源IP和目的IP不在同一网段的,将ARP报文丢弃。

如果是PC,收到ARP请求报文中,如果源IP和目的IP不在同一网段的,只要请求的目的地址正是自己的,则回应ARP响应。如下图

相关推荐
一心0924 小时前
ubuntu 20.04.6 sudo 源码包在线升级到1.9.17p1
运维·ubuntu·sudo·漏洞升级
好好学习啊天天向上4 小时前
世上最全:ubuntu 上及天河超算上源码编译llvm遇到的坑,cmake,ninja完整过程
linux·运维·ubuntu·自动性能优化
你想考研啊5 小时前
三、jenkins使用tomcat部署项目
运维·tomcat·jenkins
代码老y5 小时前
Docker:容器化技术的基石与实践指南
运维·docker·容器
典学长编程6 小时前
Linux操作系统从入门到精通!第二天(命令行)
linux·运维·chrome
你想考研啊8 小时前
四、jenkins自动构建和设置邮箱
运维·jenkins
Code blocks8 小时前
使用Jenkins完成springboot项目快速更新
java·运维·spring boot·后端·jenkins
snoopyfly~9 小时前
Ubuntu 24.04 LTS 服务器配置:安装 JDK、Nginx、Redis。
java·服务器·ubuntu
饥饿的半导体9 小时前
Linux快速入门
linux·运维
Me4神秘10 小时前
Linux国产与国外进度对垒
linux·服务器·安全