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パケットには、次のパケットがあります。パッケージタグ。それは数字だけです。
PREROUTING
これらのルールは、0x1068または0x4000(またはチェーン内)のパケットタグ値が割り当てられた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
しかし、これだけでは十分ではありません。値を設定するには、他のテーブルのルールも必要です。それ以外の場合、上記のルールは適用されません。