如何与基于路由器的 DHCP 共享以太网端口?

如何与基于路由器的 DHCP 共享以太网端口?

我有四网卡。端口 1 直接连接到交换机。我希望端口 2、3 和 4 基本上充当集线器。连接到它们的任何设备都应从路由器分配一个 DHCP 地址,并且所有流量都将通过端口 1 流动。

我曾尝试在端口 2、3 和 4 上建立网桥。如果我手动为每个端口设置一个 IP 地址,我就可以让它们传递信息,但目标是 DHCP。

我曾尝试在端口 1 上建立桥接。这似乎没有任何效果。

我尝试使用网络连接接口在端口 2、3 和 4 上启用互联网连接共享。这允许设备连接到端口 2、3 和 4,但 ubuntu 为它们分配了 10.42.0.x 地址。

如何在 Ubuntu 18.04 中设置有线连接,以便 eno1 连接到主机路由器,并且 eno2、eno3、eno4 可以提供路由器转发的 dhcp 地址?

答案1

您可以通过启用 IP 转发并设置一些iptables规则来允许跨所有 NIC 进行通信:

$ sudo net.ipv4.ip_forward = 1
$ sudo vim /etc/sysctl.conf

net.ipv4.ip_forward = 1
$ sudo vim /etc/iptables/rules.v4

*nat
-A POSTROUTING -o eth0 -j MASQUERADE
-A POSTROUTING -o eth1 -j MASQUERADE
-A POSTROUTING -o eth2 -j MASQUERADE
-A POSTROUTING -o eth3 -j MASQUERADE

*filter
-A FORWARD -i eth0 -j ACCEPT
-A FORWARD -i eth1 -j ACCEPT
-A FORWARD -i eth2 -j ACCEPT
-A FORWARD -i eth3 -j ACCEPT
$ sudo iptables --flush && sudo iptables-restore < /etc/iptables/rules.v4

答案2

我认为您要尝试将 eno1、eno2、eno3 和 eno4 桥接为 br0。不过请注意,我对这种复杂的事情几乎没有经验。即使它有效,也可能不是最有效的解决方案,但在 LAN 中,这通常不是太大的问题。

相关内容