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

2024-02-08 08:44

本文主要是介绍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/0ip address 10.1.12.130 255.255.255.128 isis enable 1isis circuit-type p2pisis peer-ip-ignore 
#

interface GigabitEthernet0/0/0ip 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/0isis circuit-type p2pisis 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响应。如下图

这篇关于IS-IS P2P网路类型 地址不在同一子网建立邻居关系的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/690501

相关文章

常用的jdk下载地址

jdk下载地址 安装方式可以看之前的博客: mac安装jdk oracle 版本:https://www.oracle.com/java/technologies/downloads/ Eclipse Temurin版本:https://adoptium.net/zh-CN/temurin/releases/ 阿里版本: github:https://github.com/

零基础学习Redis(10) -- zset类型命令使用

zset是有序集合,内部除了存储元素外,还会存储一个score,存储在zset中的元素会按照score的大小升序排列,不同元素的score可以重复,score相同的元素会按照元素的字典序排列。 1. zset常用命令 1.1 zadd  zadd key [NX | XX] [GT | LT]   [CH] [INCR] score member [score member ...]

POJ1269 判断2条直线的位置关系

题目大意:给两个点能够确定一条直线,题目给出两条直线(由4个点确定),要求判断出这两条直线的关系:平行,同线,相交。如果相交还要求出交点坐标。 解题思路: 先判断两条直线p1p2, q1q2是否共线, 如果不是,再判断 直线 是否平行, 如果还不是, 则两直线相交。  判断共线:  p1p2q1 共线 且 p1p2q2 共线 ,共线用叉乘为 0  来判断,  判断 平行:  p1p

自定义类型:结构体(续)

目录 一. 结构体的内存对齐 1.1 为什么存在内存对齐? 1.2 修改默认对齐数 二. 结构体传参 三. 结构体实现位段 一. 结构体的内存对齐 在前面的文章里我们已经讲过一部分的内存对齐的知识,并举出了两个例子,我们再举出两个例子继续说明: struct S3{double a;int b;char c;};int mian(){printf("%zd\n",s

pip-tools:打造可重复、可控的 Python 开发环境,解决依赖关系,让代码更稳定

在 Python 开发中,管理依赖关系是一项繁琐且容易出错的任务。手动更新依赖版本、处理冲突、确保一致性等等,都可能让开发者感到头疼。而 pip-tools 为开发者提供了一套稳定可靠的解决方案。 什么是 pip-tools? pip-tools 是一组命令行工具,旨在简化 Python 依赖关系的管理,确保项目环境的稳定性和可重复性。它主要包含两个核心工具:pip-compile 和 pip

【编程底层思考】垃圾收集机制,GC算法,垃圾收集器类型概述

Java的垃圾收集(Garbage Collection,GC)机制是Java语言的一大特色,它负责自动管理内存的回收,释放不再使用的对象所占用的内存。以下是对Java垃圾收集机制的详细介绍: 一、垃圾收集机制概述: 对象存活判断:垃圾收集器定期检查堆内存中的对象,判断哪些对象是“垃圾”,即不再被任何引用链直接或间接引用的对象。内存回收:将判断为垃圾的对象占用的内存进行回收,以便重新使用。

flume系列之:查看flume系统日志、查看统计flume日志类型、查看flume日志

遍历指定目录下多个文件查找指定内容 服务器系统日志会记录flume相关日志 cat /var/log/messages |grep -i oom 查找系统日志中关于flume的指定日志 import osdef search_string_in_files(directory, search_string):count = 0

webapp地址

F:\LSP\.metadata\.plugins\org.eclipse.wst.server.core\tmp0\wtpwebapps

建立升序链表

题目1181:遍历链表 时间限制:1 秒 内存限制:32 兆 特殊判题:否 提交:2744 解决:1186 题目描述: 建立一个升序链表并遍历输出。 输入: 输入的每个案例中第一行包括1个整数:n(1<=n<=1000),接下来的一行包括n个整数。 输出: 可能有多组测试数据,对于每组数据, 将n个整数建立升序链表,之后遍历链表并输出。 样例输

两个月冲刺软考——访问位与修改位的题型(淘汰哪一页);内聚的类型;关于码制的知识点;地址映射的相关内容

1.访问位与修改位的题型(淘汰哪一页) 访问位:为1时表示在内存期间被访问过,为0时表示未被访问;修改位:为1时表示该页面自从被装入内存后被修改过,为0时表示未修改过。 置换页面时,最先置换访问位和修改位为00的,其次是01(没被访问但被修改过)的,之后是10(被访问了但没被修改过),最后是11。 2.内聚的类型 功能内聚:完成一个单一功能,各个部分协同工作,缺一不可。 顺序内聚: