IPv4 Only 化する Bridge ツールの作り方
一部のプラットフォームでIPv6の無効化ができず、その手のデバッグをするときに不便なので作った
作り方
1. ブリッジの構築
よくある Raspberry Pi でL2ブリッジの構築を行う。
interfaceとdhcpcdとnetwork managerの情報が錯綜してるが、OSのバージョンに合わせて頑張る
2. ip6tables のルール設定
ip6tables -A FORWARD -j DROP
INPUT/OUTPUTかと思いきや、FORWARD
3. iptables のルールを永続化
iptables-persistent を入れる。
/etc/iptables/rule.v6 を一応確認しておく
4. カーネルモジュールを追加する
ブリッジでiptablesを通すために、モジュールを入れる。
なお、nftablesではなく、iptablesのルールを直で見に行く仕様のようなので、注意。
(そのため、なぜかiptablesのルールをいじるということになっている)
sudo modprobe br_netfilter
echo "br_netfilter" >> /etc/modules
- 参考
- https://github.com/alexellis/k8s-on-raspbian/issues/5
5. /etc/sysctl.conf 設定追加
net.bridge.bridge-nf-call-ip6tables = 1
net.bridge.bridge-nf-call-iptables = 1
net.bridge.bridge-nf-call-arptables = 1
これにより、bridgeインターフェースのトラフィックがiptablesのルールを見に行くようになる。
ちなみにルールは上記でも書いたようにFORWARDルールを参照する。