我是否正确理解 IP 路由?

网络工程 路由 ip bgp 国际电联
2021-07-12 11:01:37

所以我正在为网络考试复习,并努力理解 IP 路由。如果我解释一下我是如何理解的,你能告诉我我哪里是对的,哪里是错的吗?我真的很感激。这是我的看法:

  • 为网关托管 ARP(如果需要)。
  • 主机向网关发送请求。以太网帧具有其目的地的网关 MAC 地址,但内部 IP 数据包具有最终试图到达的服务器的目的地地址。
  • 网关将 IP 数据包目标地址与其路由表中的 IP 地址前缀进行比较。如果匹配,则将其发送到该端口。每个后续服务器都执行相同的操作,并且在一条完善的路由中,每个服务器都有一个在某种程度上与目的地匹配的地址前缀,并将沿着这条熟悉的路径发送它。
  • 如果网关没有与目标地址匹配的地址前缀,则它开始路由。它使用诸如 RIP 或 OSPF 之类的内部网关协议 (IGP) 来询问其自治系统 (AS) 内的邻居(很可能是属于您的 ISP 的传输 AS),“您知道这是哪里吗?”。
    • 该消息在 AS 内传递,直到其中一个网关识别出网络前缀的一部分,例如地址区域,并且对将其发送到何处有一个模糊的概念。
    • 然后,该网关将使用诸如 BGP 的外部网关协议 (EGP) 与它所链接的 AS(es?) 进行通信,并向它们询问路由信息。
    • 其中一个可以识别第二个块并能够在正确的方向上进一步路由
    • 最终,网关将在拥有目标地址的 AS 上使用 EGP,目标网关将回复“是”,我可以在 n 跳内到达那里。
    • 此消息沿路径返回,每跳都将长度加一,直到返回到我们的原始网关,该网关现在知道到达目的地的路径为 y 跳。
    • 它将将此添加到它的路由表中,将 IP 数据包包装在一个新的以太网帧中,其中包含此路径上第一跳的目标地址,然后将其发送出去。
3个回答

主机包含自己的路由表,并会参考这些表来确定数据包是否可以直接传送,或转发到网关(如果可以,是哪一个)。只有这样,您的第 1 步才会开始。

你的最后一步完全不正确。任何时候路由器都不会“向”邻居“询问”通往特定目的地的路由。

路由协议在后台持续运行,随着链路和邻居的来来往往,用完整的可达性表更新路由器的内部路由表(RIB 和 FIB)。

如果路由表中没有匹配的路由,数据包将被丢弃。应返回 ICMP“网络无法访问”数据包。

在决定将数据包发送到哪里时,路由器不会相互“询问”路由。路由器知道的路由是预先确定的,可以是静态的,也可以是通过路由协议。

为了减少路由表的大小,采用了汇总技术。在您的站点内,您需要每个子网的路由。理想情况下,您的 ISP 只需要一条整个站点的路由,而 Internet 只需要一条整个 ISP 的路由。

事实上,事情比这更混乱。站点和 ISP 将增长,因此最终会出现多个无法聚合的 IP 块。由于地址短缺和由此产生的严格分配政策,这对于 IPv4 来说尤其是一个问题。

总结的极端情况是“默认路由”。发送所有其他路由未知的数据包的地方。

有些路由器没有默认路由。他们有一个基于 BGP 的显式路由表,覆盖整个互联网。这是一张大桌子(超过一百万条路线),需要一个强大的路由器来处理。这将是提供商“核心网络”中的正常设置。

其他路由器将只有本地路由和默认网关。任何前往其他提供商的流量都将被发送到默认路由。这将是提供商“接入网络”中的正常设置。

当然,两者之间也有可能。例如,使用无法再处理整个 Internet 路由表的旧路由器的较小 ISP 可能会选择仅拉入 Internet 路由表的一部分,并使用通往中转提供商的默认路由来处理其余部分。

您正在混合 IP 路由和以太网交换。在路由方面,它非常简单:如果到数据包目的地的路由存在,则转发数据包否则不要。如果存在多个目的地,则选择最具体的一个;如果不止一个最具体,则根据其他因素(管理距离)进行选择。