Centos
啟動 iptables 會停止通過網橋連接的兩個虛擬機之間的通信
我在 2 個虛擬機 VM1 和 VM2 之間創建了一個名為 eth2 的網橋,其介面為 gre1。
以下是帶有橋接設備 eth2 的 VM1。
# brctl show bridge name bridge id STP enabled interfaces eth2 8000.162f8564eb74 no gre1
VM1 的介面 IP 是 172.80.1.1,VM2 的介面 IP 是 172.80.1.2 當 iptables 在 VM1 中停止時,我可以從 VM1 ping VM2 的介面 IP。但是,在啟動 iptables 時,ping 將不起作用。
# ping 172.80.1.2 PING 172.80.1.2 (172.80.1.2) 56(84) bytes of data. --- 172.80.1.2 ping statistics --- 6 packets transmitted, 0 received, 100% packet loss, time 5240ms
這是我的 iptables 的樣子。
# iptables -L -n -v Chain INPUT (policy DROP 0 packets, 0 bytes) pkts bytes target prot opt in out source destination 72854 10M ACCEPT all -- lo * 0.0.0.0/0 0.0.0.0/0 /* 10defaults */ 0 0 ACCEPT icmp -- * * 0.0.0.0/0 0.0.0.0/0 /* 10defaults */ 75 5428 ACCEPT all -- * * 0.0.0.0/0 0.0.0.0/0 state RELATED,ESTABLISHED /* 10defaults */ 0 0 ACCEPT tcp -- * * 0.0.0.0/0 0.0.0.0/0 tcp dpt:22 /* 20ssh */ 0 0 ACCEPT tcp -- eth0 * 0.0.0.0/0 0.0.0.0/0 tcp dpt:80 /* 30https */ 0 0 ACCEPT tcp -- eth0 * 0.0.0.0/0 0.0.0.0/0 tcp dpt:443 /* 30https */ 0 0 ACCEPT udp -- eth0 * 0.0.0.0/0 0.0.0.0/0 udp dpt:162 /* 50snmp-health */ 0 0 ACCEPT udp -- eth0 * 0.0.0.0/0 0.0.0.0/0 udp dpt:162 /* 50snmp-health */ 0 0 ACCEPT udp -- eth0 * 0.0.0.0/0 0.0.0.0/0 udp dpt:123 /* 60ntp */ 0 0 ACCEPT tcp -- eth0 * 0.0.0.0/0 0.0.0.0/0 tcp dpt:5671 /* 70rabbitmq */ 0 0 ACCEPT tcp -- eth0 * 0.0.0.0/0 0.0.0.0/0 tcp dpt:3999 /* 80debug */ 0 0 ACCEPT tcp -- eth0 * 0.0.0.0/0 0.0.0.0/0 tcp dpt:4000 /* 80debug */ 0 0 ACCEPT tcp -- eth0 * 0.0.0.0/0 0.0.0.0/0 tcp dpt:4001 /* 80debug */ 0 0 ACCEPT tcp -- eth0 * 0.0.0.0/0 0.0.0.0/0 tcp dpt:4002 /* 80debug */ 0 0 ACCEPT tcp -- eth0 * 0.0.0.0/0 0.0.0.0/0 tcp dpt:4003 /* 80debug */ 0 0 ACCEPT tcp -- eth0 * 0.0.0.0/0 0.0.0.0/0 tcp dpt:4004 /* 80debug */ 0 0 ACCEPT tcp -- eth0 * 0.0.0.0/0 0.0.0.0/0 tcp dpt:4005 /* 80debug */ 0 0 ACCEPT tcp -- eth0 * 0.0.0.0/0 0.0.0.0/0 tcp dpt:4006 /* 80debug */ 0 0 ACCEPT tcp -- eth0 * 0.0.0.0/0 0.0.0.0/0 tcp dpt:4007 /* 80debug */ 0 0 ACCEPT tcp -- eth0 * 0.0.0.0/0 0.0.0.0/0 tcp dpt:4008 /* 80debug */ 0 0 ACCEPT tcp -- eth0 * 0.0.0.0/0 0.0.0.0/0 tcp dpt:4009 /* 80debug */ 0 0 ACCEPT tcp -- eth0 * 0.0.0.0/0 0.0.0.0/0 tcp dpt:4010 /* 80debug */ 0 0 ACCEPT tcp -- eth0 * 0.0.0.0/0 0.0.0.0/0 tcp dpt:4011 /* 80debug */ 0 0 ACCEPT tcp -- eth0 * 0.0.0.0/0 0.0.0.0/0 tcp dpt:4012 /* 80debug */ 0 0 ACCEPT tcp -- eth0 * 0.0.0.0/0 0.0.0.0/0 tcp dpt:4013 /* 80debug */ 0 0 ACCEPT tcp -- eth0 * 0.0.0.0/0 0.0.0.0/0 tcp dpt:4014 /* 80debug */ 0 0 ACCEPT tcp -- eth0 * 0.0.0.0/0 0.0.0.0/0 tcp dpt:4015 /* 80debug */ 0 0 ACCEPT tcp -- eth0 * 0.0.0.0/0 0.0.0.0/0 tcp dpt:4016 /* 80debug */ 0 0 ACCEPT tcp -- eth0 * 0.0.0.0/0 0.0.0.0/0 tcp dpt:4017 /* 80debug */ 0 0 ACCEPT tcp -- eth0 * 0.0.0.0/0 0.0.0.0/0 tcp dpt:4018 /* 80debug */ 0 0 ACCEPT tcp -- eth0 * 0.0.0.0/0 0.0.0.0/0 tcp dpt:4019 /* 80debug */ 0 0 ACCEPT tcp -- eth0 * 0.0.0.0/0 0.0.0.0/0 tcp dpt:4020 /* 80debug */ 0 0 ACCEPT tcp -- eth0 * 0.0.0.0/0 0.0.0.0/0 tcp dpt:4021 /* 80debug */ 0 0 ACCEPT tcp -- eth0 * 0.0.0.0/0 0.0.0.0/0 tcp dpt:4022 /* 80debug */ 0 0 ACCEPT tcp -- eth0 * 0.0.0.0/0 0.0.0.0/0 tcp dpt:4023 /* 80debug */ 0 0 ACCEPT tcp -- eth0 * 0.0.0.0/0 0.0.0.0/0 tcp dpt:15672 /* 85rabbitmq-ui */ 1250 250K REJECT all -- * * 0.0.0.0/0 0.0.0.0/0 /* 99finish */ reject-with icmp-host-prohibited 0 0 ACCEPT udp -- eth2 * 0.0.0.0/0 0.0.0.0/0 udp dpt:162 /* eth2_RULE */ 0 0 ACCEPT tcp -- eth2 * 0.0.0.0/0 0.0.0.0/0 tcp dpt:9990 /* eth2_RULE */ 0 0 ACCEPT tcp -- eth0 * 0.0.0.0/0 0.0.0.0/0 tcp dpt:9990 /* eth2_RULE */ 0 0 ACCEPT tcp -- eth2 * 0.0.0.0/0 0.0.0.0/0 tcp dpt:443 /* eth2_RULE */ 0 0 ACCEPT udp -- * * 0.0.0.0/0 0.0.0.0/0 udp spt:53 0 0 ACCEPT tcp -- * * 0.0.0.0/0 0.0.0.0/0 tcp spt:80 state ESTABLISHED 0 0 ACCEPT tcp -- * * 0.0.0.0/0 0.0.0.0/0 tcp spt:443 state ESTABLISHED Chain FORWARD (policy ACCEPT 0 packets, 0 bytes) pkts bytes target prot opt in out source destination 0 0 ACCEPT all -- eth2 * 0.0.0.0/0 0.0.0.0/0 Chain OUTPUT (policy ACCEPT 72917 packets, 10M bytes) pkts bytes target prot opt in out source destination
還,
sysctl -a | grep bridge-nf gives
net.bridge.bridge-nf-call-arptables = 0 net.bridge.bridge-nf-call-iptables = 0 net.bridge.bridge-nf-call-ip6tables = 0 net.bridge.bridge-nf-filter-vlan-tagged = 0 net.bridge.bridge-nf-filter-pppoe-tagged = 0
什麼可能導致這不起作用?這裡的iptable規則有問題嗎?
我將我的 gre 隧道介面 gre1 的策略設置為接受。
iptables -I INPUT -p gre -j ACCEPT
這幫助我讓它工作。