数据包是如何基于 IP 路由的,这些路由是如何获取的?

网络工程 路由 路由器 ip IPv4 dns
2022-02-19 03:07:40

大家好,

这是我的第一个问题,请谨慎判断

背景:

在大学里,我们正在讨论网络路由协议。可能发现了当前路由协议的两个问题,我相信我有一个改进的解决方案来获取路由信息。

问题:

由于 DNS 服务器的目的是存储与服务器 IP 对应的“名称”,从而将 DNS 名称解析为 IP,IP 如何解析到其特定的节点/设备。

更多信息:

我们认为 IP 8.8.8.8 将到达 Google 的 DNS 服务器是理所当然的,但它实际上是如何路由的。我的节点/笔记本电脑将包含哪些路由信息才能将 TCP/ICMP 数据包发送到 8.8.8.8。

网关(我的路由器)是否确定这一点,我的交换/DSLam 是否确定这一点或 ISP。

就我而言,我的 Linux 发行版将所有流量路由到最低路由,即我的路由器。路由器会将所有流量路由到交换机,从那里到 ISP,从这里到 8.8.8.8

TL;博士

IP 8.8.8.8 指定的数据包如何路由到具有相应 IP 的设备,这些“路由器”路由信息是如何获取的?

3个回答

路由器通过三种方式了解路由:

  • 直连网络
  • 手动配置静态路由
  • 动态通过路由协议

在接口上接收数据包的路由器将查看数据包的目标地址,并查看其路由表以查看它是否知道如何将数据包转发到其目的地。

如果路由器在其路由表中找不到任何类型的匹配项,它将丢弃该数据包。

如果路由器找到匹配项,即使它只是默认路由,它也会将数据包从新接口转发到其目的地。指向数据包目的地的接口可以连接到另一个路由器,新路由器将重复第一个路由器所做的事情。这个路由器查找和转发一直持续到数据包到达目标主机所在的网络。

Google 通过 BGP 将到网络块 8.8.8.0/24 的路由通告给它们连接的其他网络。这些网络将根据商业政策传递这些路由广告。

通常,网络将具有三种主要类型的互连。向他们出售服务的公交供应商。从他们和同行那里购买服务的过境客户。

从客户那里收到的路由通常会传递给客户、提供商和同行。从提供商或对等方收到的路由通常只会传递给客户。

仅当路由被认为是到达前缀的最佳路由时,它们通常才会被传递。“最佳”的确切含义取决于当地政策。

构成 Internet 的网络由“AS 编号”表示。对于每个 AS,路由通过不同的网络建立一个“AS 路径”。这用于阻止循环,并且在没有本地规则的情况下,用于确定最佳路径。

在实际转发数据包时,较长的前缀会胜过较短的前缀(因此到 8.8.8.0/24 的路由将胜过到 8.8.0.0/16 的路由)

在您的 ISP 网络的“边缘”部分,数据包可能会通过默认路由传送到您的 ISP 核心。几乎没有理由在此类设备上导入完整的 Internet 路由表。

在您的 ISP 的核心(或对于非常小的 ISP,可能是上游提供商)将有路由器,其具有覆盖整个 Internet 的庞大路由表,这些路由表是由它们从其他网络接收到的路由构建的。现在,IPv4 Internet 的路由表有大约 50 万条路由。此表会将流量路由到 Google。

当数据包到达谷歌时,他们需要在内部将其路由到他们的 DNS 服务器(8.8.8.8 不是一台机器)。一些运营商为此使用特定的内部路由协议,一些运营商在内部和外部使用 BGP,一些可能使用手动路由。我不确定谷歌是做什么的。

当数据包到达三层设备时,三层设备将通过检查路由表将数据包转发到目的地,根据路由表将数据包转发到下一跳。基本上路由表是由手动配置静态和动态路由以及直接连接的网络构成的

如果数据包在能够路由的数据包中找不到通往目的地的路由,则将被丢弃。