Networking
NAT/偽裝。以前工作,現在不行
因此,至少有兩個月以來,我有一個 IP 表配置,該配置在計算集群上工作,以通過頭節點為技術上離線的計算節點提供 Internet 訪問。我們最近不得不重新啟動頭節點,我幾乎完全可以肯定它已經清除了使它工作的任何設置。我能夠獲取 /sysconfig/iptables 的備份,並且想知道為什麼使用此文件的 iptables-restore 不起作用…這是該備份的內容…
# Generated by iptables-save v1.4.21 on Wed May 9 09:36:22 2018 *filter :INPUT ACCEPT [1:36] :FORWARD DROP [0:0] :OUTPUT ACCEPT [1294:196435] -A INPUT -p tcp -m tcp --sport 1024:65535 --dport 372 -j REJECT --reject-with icmp-port-unreachable -A INPUT -p udp -m udp --sport 1024:65535 --dport 372 -j REJECT --reject-with icmp-port-unreachable -A INPUT -i lo -j ACCEPT -A INPUT -i enp7s0f1 -j ACCEPT -A INPUT -i enp7s0f0 -p tcp -m tcp --dport 22 -m state --state NEW -j ACCEPT -A INPUT -i enp7s0f0 -m state --state RELATED,ESTABLISHED -j ACCEPT -A INPUT -s 10.103.182.0/24 -i enp7s0f0 -p tcp -m tcp --dport 443 -m state --state NEW -j ACCEPT -A INPUT -s 10.103.182.0/24 -i enp7s0f0 -p tcp -m tcp --dport 80 -m state --state NEW -j ACCEPT -A INPUT -i enp7s0f0 -p tcp -m tcp --dport 443 -m state --state NEW,ESTABLISHED -j ACCEPT -A INPUT -p udp -m udp --dport 8649 -j REJECT --reject-with icmp-port-unreachable -A INPUT -p tcp -m tcp --dport 40000 -j REJECT --reject-with icmp-port-unreachable -A INPUT -i enp7s0f0 -p tcp -m tcp --dport 0:1023 -j REJECT --reject-with icmp-port-unreachable -A INPUT -i enp7s0f0 -p udp -m udp --dport 0:1023 -j REJECT --reject-with icmp-port-unreachable -A FORWARD -i enp7s0f0 -o enp7s0f1 -m state --state RELATED,ESTABLISHED -j ACCEPT -A FORWARD -i enp7s0f1 -j ACCEPT COMMIT # Completed on Wed May 9 09:36:22 2018 # Generated by iptables-save v1.4.21 on Wed May 9 09:36:22 2018 *nat :PREROUTING ACCEPT [19:1852] :INPUT ACCEPT [11:1496] :OUTPUT ACCEPT [18:1302] :POSTROUTING ACCEPT [16:1110] -A POSTROUTING -o enp7s0f0 -j MASQUERADE COMMIT # Completed on Wed May 9 09:36:22 2018
非常感謝任何形式的幫助。
注意:enp7s0f0 是外部公共介面,enp7s0f1 是內部私有介面。
您的
iptables
配置看起來很正常,但是您檢查過 IPv4 轉發的主開關嗎?試試這個命令:
# sysctl net.ipv4.ip_forward net.ipv4.ip_forward = 1
如果它
net.ipv4_ip_forward = 0
改為顯示,則表示未啟用 IPv4 轉發。這很容易解決:# echo "net.ipv4.ip_forward = 1" >>/etc/sysctl.conf # sysctl -p
這將以持久的方式啟用 IPv4 轉發。(以前,IPv4 轉發可能已由類似的東西啟用,
echo 1 > /proc/sys/net/ipv4/ip_forward
在重新啟動後不會持續存在。)