路由器并没有真正拦截数据包。路由器将获得一个帧,剥离帧以检查数据包,然后根据数据包的目标地址,基于其路由表中的内容路由数据包(丢弃任何没有目的地的数据包)。路由器将为数据包路由到的网络类型构建一个新帧。
路由器在网络之间路由数据包,因此路由器将至少连接两个网络,但它可能有许多网络,并且它可以在所有连接的网络之间路由数据包。
编辑:
根据您的评论,您首先对数据包如何到达路由器感兴趣。
路由器从发送给它们的帧中获取数据包。这可能来自广播或多播,但路由器通常不会传播这些。如果它是单播,则它从另一个源直接发送到路由器。这通常是源主机或另一个路由器。
想要将数据包发送到不同主机的主机将使用其网络掩码屏蔽其(源)地址和目标地址。如果结果相等,那么目的地在同一个网络上,并且数据包的帧是用目的地主机作为帧目的地构建的。如果它们不相等,则主机知道目标位于不同的网络上,并使用其配置的网关(路由器)作为帧目标来构建帧。
路由器将剥离帧以获取数据包并读取数据包目的地,以便将数据包路由到其旅程的下一段。
看来您的问题可能会混淆路由和 NAT。这真的是两个完全不同的东西。NAT(网络地址转换)正在更改数据包上的 IPv4 地址(源、目标或两者)。路由器或防火墙可能是 NAT 的方便位置(如果您需要 NAT),但这不是路由的要求。如果您需要在网络上使用私有地址在公共 Internet 上进行通信,或者您需要与具有与您的网络地址重叠的地址的网络进行通信,则使用 NAT。因为 NAT 破坏了许多协议,所以只有在必须使用它来解决问题时才应该使用它。