EIGRP 是否使用 AS 编号/进程编号作为同一 AS/组中路由器之间的端口号?

网络工程 思科 路由 eigrp
2021-07-24 04:42:05

EIGRP 是否使用 AS 编号/进程编号作为同一 AS/组中路由器之间的端口号?

我知道 EIGRP 不使用 TCP/UDP;我知道 EIGRP 使用 RTP 作为一种机制来建立类似第 4 层的功能,以保持 EIGRP 数据包的有序和排序。我也知道有效载荷中有一个 AS 编号。所以请不要说明显的,直说重点。

Cisco 支持论坛上的这篇文章中,有一个看起来有点奇怪的答案。问题是关于 EIGRP 端口号,有人回答说“端口号是 EIGRP AS”。

我在互联网上搜索了所有内容,但找不到关于该声明的任何线索!真的是这样吗,我的意思是 EIGRP 使用端口号吗?

(顺便说一下,在提到的帖子下有一个链接,但它没有加载。)

EIGRP 邻居如何知道不与不在其 AS 中的相邻路由器形成邻居关系?路由器获取数据包,将其拆解并检查有效负载以查看 AS# 不匹配,然后将其丢弃?或者其他事情正在发生?

很抱歉提出这样的问题,但发布这些内容的人的名字是 Russ White,CCIE 编号 2635。恕我直言,我找不到任何线索来支持他使用的 EIGRP 理论AS# 号作为端口号。或者支持他的说法,“这就是 EIGRP 邻居知道不与不在其 AS 中的相邻路由器形成邻居关系的原因——他们甚至不会收到另一个 AS 中的路由器发送的数据包!”

1个回答

我给 Russ White(前思科员工/路由协议部署团队的 EIGRP 专家)发了电子邮件,这是他的回答:

如果您考虑 TCP 堆栈的工作方式,您会发现某种交换过程可以接受数据包,并将它们塞入“forme”队列。该队列由 IP 处理——但 IP 如何知道将数据包交给哪个进程?那将是协议编号。IP 在函数调用中将协议编号粘贴到正确的参数中,并弹出一个指向函数的指针,以将数据包传递给该进程(或者更可能是指向进程监视的工作队列的指针)。

在 EIGRP 的情况下,它是一个工作队列,监控它的进程是 EIGRP 传输进程(您应该在 cisco box 上运行的进程中看到一个单独的 EIGRP 和 EIGRP 传输进程)。一旦这个传输进程被交给一块 CPU,它就会从工作队列中拉出一个数据包。如果盒子上有多个 EIGRP 进程在运行,它会将数据包交给哪个进程?

它将数据包中的 AS 编号视为选择器,就像 TCP 将套接字视为使用数据包的各个进程(HTTP/80、ident、FTP 等)之间的选择器一样。因此,从 IOS 的角度来看,EIGRP 中的 AS 编号提供与 TCP 套接字相同的信息——因此它是一个“套接字”。每个 EIGRP 进程“侦听”等于 AS 编号的“套接字”或“端口”。

从设计和流程的角度来看,每个 EIGRP AS 看起来就像一个不同的数据库/最佳路径集/等。从协议的角度来看,AS 编号看起来像一个进程选择器,或者一个“端口号”,或者一个“套接字”,这取决于您的观点。