我正在尝试在通过具有两个不同网络适配器的主机生成的 DHCP 子网内设置正确的 ip 转发。
我目前的情况是这样的:
第一个节点有两个网络适配器,第一个连接到 WAN,第二个负责通过 DHCP 生成子网。这里是 DHCP 配置(标识为 master 的主机应该是网关):
subnet 10.142.0.0 netmask 255.255.255.0 { interface enp0s31f6; option routers 10.142.0.1; option subnet-mask 255.255.255.0; option domain-search "net.local"; option broadcast-address 10.142.0.255; option domain-name-servers 8.8.8.8; range 10.142.0.20 10.142.0.100; } host master{ hardware ethernet d4:5d:df:1a:26:40; fixed-address 10.142.0.1; } host node01 { hardware ethernet d4:5d:df:13:69:42; fixed-address 10.142.0.2; } host node02{ hardware ethernet d4:5d:df:13:69:45; fixed-address 10.142.0.3; }
添加了以下 iptables 规则这里提供的答案
节点正确获取 IP,我可以通过 ssh 连接到它们。 Ping 到外部主机工作正常,但当我尝试解析主机名时,出现名称或服务未知错误。即使是 DNS 查找,我是否也必须设置 IP 表规则?
预先感谢!
编辑:尝试直接 CURL GOOGLE IP,No route to host
无论如何
curl http://216.58.205.131 curl: (7) Failed connect to 216.58.205.131:80; No route to host
,如果我 ping 它,一切都会按预期工作
ping 216.58.205.131 PING 216.58.205.131 (216.58.205.131) 56(84) bytes of data. 64 bytes from 216.58.205.131: icmp_seq=1 ttl=54 time=23.7 ms 64 bytes from 216.58.205.131: icmp_seq=2 ttl=54 time=20.0 ms 64 bytes from 216.58.205.131: icmp_seq=3 ttl=54 time=19.9 ms
答案1
经过一番谷歌挖掘后,我设法找到了问题:网关上的firewalld(10.142.0.1)正在阻止忽略转发规则的请求(可能有另一个规则克服了转发规则)。
在开头插入规则就成功了
iptables -I FORWARD -i <LAN_ETH> -o <WAN_ETH> -j ACCEPT