我正在尝试建立一个 Rancher 站点,并努力确保网络正常。我的运行状况检查容器失败,并显示“没有到主机的路由”。我将 IPTABLE 规则与正在运行的 Rancher 站点进行了比较,并发现了在正在运行的 Rancher 站点中设置的这些规则:
Chain INPUT (policy ACCEPT)
target prot opt source destination
Chain FORWARD (policy ACCEPT)
target prot opt source destination
DOCKER-USER all -- anywhere anywhere
DOCKER-ISOLATION all -- anywhere anywhere
ACCEPT all -- anywhere anywhere ctstate RELATED,ESTABLISHED
DOCKER all -- anywhere anywhere
ACCEPT all -- anywhere anywhere
ACCEPT all -- anywhere anywhere ctstate RELATED,ESTABLISHED
DOCKER all -- anywhere anywhere
ACCEPT all -- anywhere anywhere
ACCEPT all -- anywhere anywhere
CATTLE_NETWORK_POLICY all -- 10.42.0.0/16 10.42.0.0/16
CATTLE_FORWARD all -- anywhere anywhere
Chain CATTLE_FORWARD (1 references)
target prot opt source destination
ACCEPT all -- anywhere anywhere mark match 0x1068
ACCEPT all -- anywhere anywhere mark match 0x4000
$ iptables-save | grep mark
-A CATTLE_RAW_PREROUTING ! -i docker0 -p udp -m udp --dport 500 -j MARK --set-xmark 0x1068/0xffffffff`
-A CATTLE_RAW_PREROUTING ! -i docker0 -p udp -m udp --dport 4500 -j MARK --set-xmark 0x1068/0xffffffff
-A CATTLE_FORWARD -m mark --mark 0x1068 -j ACCEPT
-A CATTLE_FORWARD -m mark --mark 0x4000 -j ACCEPT
我的问题:
- 这些规则是什么?
mark match 0x168
和是什么mark match 0x4000
? - 如何将这些规则添加到我的 iptables 中?我只知道如何从 iptables 添加或删除标准 tcp/udp 端口,但找不到任何与此相关的内容?我如何添加这些规则?
答案1
Linux 主机内的 IP 数据包有一个称为包标记。那只是一个数字。
这些规则接受已指定数据包标记值 0x1068 或 0x4000(在 、 或 链中PREROUTING
)的mangle
数据包。raw
nat
添加这些规则
我假设您找到了表CATTLE_FORWARD
中的规则filter
和表CATTLE_RAW_PREROUTING
中的规则raw
。
# create the chain CATTLE_FORWARD
iptables -N CATTLE_FORWARD
iptables -t raw -N CATTLE_RAW_PREROUTING
# add the rules
iptables -A CATTLE_FORWARD -m mark --mark 0x1068 -j ACCEPT
iptables -A CATTLE_FORWARD -m mark --mark 0x4000 -j ACCEPT
iptables -t raw -A CATTLE_RAW_PREROUTING ! -i docker0 -p udp -m udp --dport 500 -j MARK --set-xmark 0x1068/0xffffffff
iptables -t raw -A CATTLE_RAW_PREROUTING ! -i docker0 -p udp -m udp --dport 4500 -j MARK --set-xmark 0x1068/0xffffffff
但这还不够。您还需要不同表中的规则来设置该值。否则上面的规则不会起任何作用。