我们使用带有 dhcpd 服务(pxe 系统)的内部小型服务器。该服务器有两个网卡:- LAN(PXE)- WAN(剩余公司 LAN/网络的上行链路)
WAN NIC 由 DHCP 服务器自动配置。
我需要在这些网卡之间路由流量。
LAN 端的客户端应该有互联网连接(WAN 端的互联网连接,但 WAN 上可能没有 DHCP 流量)。
我该如何实现它?
答案1
我自己找到了解决方案。
eth0 = 广域网 eth1 = 局域网
在内核中启用ip转发:
echo 1 > /proc/sys/net/ipv4/ip_forward
添加 nat 的 iptables 规则:
iptables --table nat --append POSTROUTING --out-interface eth0 -j MASQUERADE
iptables --append FORWARD --in-interface eth1 -j ACCEPT
并重新启动您的网络:-)
答案2
你必须小心这个 NAT 规则;离开eth0
接口的任何数据包的源 IP 地址和端口都会更改为eth0
接口的 IP 地址(随机端口),即使连接源是你的服务器。这可能会影响您服务器上发送流量eth0
且不希望其端口发生变化的服务。
例如,如果您正在运行绑定到eth0
服务器接口的 IPSec VPN 服务,则其出站数据包中的源端口将会发生变化,从而导致连接失败。
我建议您将该 NAT 规则更改为以下内容:
iptables --table nat --append POSTROUTING --source $lan_network --out-interface eth0 -j MASQUERADE
这将确保只有您的 LAN 网络的 Internet 连接才会被 WAN 接口伪装。
希望这可以帮助 :)