现成的路由器是否所有 LAN 端口都已桥接?

现成的路由器是否所有 LAN 端口都已桥接?

我想使用自己的路由器,因为我的 ISP 提供的路由器太糟糕了。

路由器当然在所有 4 个 LAN 端口上提供 DHCP 和路由。

这是否意味着它在每个端口上单独提供 DHCP 和路由?还是意味着它在软件中桥接所有四个端口,然后为该桥接设备提供 DHCP 和路由?

对于用户来说,它们在功能上看起来是相同的。但在设置路由器时,存在差异。我假设其中一个比另一个更“正确”。最佳做法是什么?

答案1

一般情况下,大多数路由器上的 4 个 LAN 端口都是桥接的。在大多数路由器上,桥接它们的实际上是一个硬件以太网交换机。虽然交换机芯片通常支持 VLAN 标签,但您可以单独寻址端口(但通常不能使用制造商提供的固件)。

但具体细节可能因路由器而异。这取决于品牌和型号。

但在设置路由器的时候,就有区别了。

通常您无法进行此项设置。

我认为其中一个比另一个更“正确”。

为什么其中一个比另一个更“正确”?但假设所有 4 个 LAN 端口都属于一个广播域,桥接就更自然了(并且如果硬件支持,还可以减轻 CPU 的负载)。

答案2

通常情况下,消费者“路由器“实际上看起来更像这样:

家庭路由器内部结构

调制解调器可能是通过以太网连接的外部盒子,但通常是内置的。

  • 所有红色链接均为“互联网“ 交通
  • 所有蓝色链接均为“内部的”流量,并允许内部设备相互通信。

使用单个 DHCP 服务器为所有内部设备(包括 WiFi 客户端)分配地址。

在某些情况下,您可能会发现可以将 WiFi 客户端与有线网络隔离,甚至彼此隔离。这种情况也可能与您自己的家庭网络并行运行 - 例如,BT 利用全部他们的消费设备提供他们的蓝牙 WiFi全国各地的服务——酒吧、餐馆甚至住宅物业都为其用户提供可供使用的连接,该连接在逻辑上与客户的有线​​和无线网络隔离。


这是否意味着它在每个端口上单独提供 DHCP 和路由?

不,内部端口将共享一个路由器(通常以软件实现,例如:Linux 的iptables)。

最佳做法是什么?

这真的取决于你想要什么……如果你想要隔离一些端口与其他端口(例如“在家办公“ 对比 ”家庭"),那么你需要考虑拥有多个"内部的“网络,每个网络都独立设置路由和防火墙配置。

如果您是家庭用户,那么您很可能只想要一个内部网络。

我想开发自己的路由器

... 有许多合适的现成产品可以让您停止使用 ISP 的路由器。

如果你想要更实际的方法,那么你可以考虑使用运行类似普富思或者你可以使用流行的OpenWRT项目。

但从根本上来说,我建议反对滚动您自己的路由器,除非您真的愿意亲自操作并负责这种工作量和配置。

答案3

如果所有端口都属于同一子网,则它们进行桥接。使用单独的接口实际上行不通。

当主机联系同一 IP 子网上的另一台设备时,它们根本不使用路由器。相反,它们会广播 ARP 查询以了解目标设备的 MAC 地址并直接与该地址通信。如果两者位于不同的路由器接口(不同的广播域)上,则此方法不起作用 - ARP 查询不会被转发,即使转发了,主机仍然无法与它们了解到的 MAC 地址通信。

(桥接端口的含义是字面上地合并广播域并允许在MAC层进行通信。

因此,位于中间的路由器必须代表位于另一端的设备发送“欺骗性”ARP 回复,但每次都使用自己的 MAC 地址。(如果这样做了,您会很容易在计算机的 ARP 缓存中看到它。这称为代理 ARP,偶尔会在公共网络上执行。)现在,路由器接收了所有发往接收者的数据包,但它如何知道通过哪个端口转发它们?

以太网桥接会自动了解每个端口后面的 MAC 地址。但是 IP 路由不会。如果您配置了四个具有相同子网前缀的独立接口,则您只能获得同一整个网络的四个相同路由,而路由器不知道哪一个是正确的。

理论上这是可行的——路由器现在只需要探测所有端口,以了解哪个端口后面有设备,例如通过向所有端口发送自己的 ARP 查询并等待响应。(实际上它需要执行此探测向原始主机发送欺骗性的 ARP 响应 - 如果发现两个主机都在同一个端口后面,那么它可能会使它们更加困惑。)

但实际上并没有这样做,大多数路由器甚至没有实现任何此类动态代理 ARP。(Linux 有一个“parprouted”守护程序,但仅此而已。)

(我见过的唯一其他例外是​​ Windows 中的 fe80::/64 处理,它使用 NDP 探测所有接口。但它不必实现代理,因为这个前缀无论如何都是不可路由的。)

相关内容