実施する事
カーネル設定
br_netfilter
bridgeしたインターフェースのパケットをフィルタリングであり、クラスタでのポッド間通信にて使用
インストール
- エラーが無いこと,表示されること
[tsubame@control-plane01 ~]$ sudo lsmod | grep br_netfilter [tsubame@control-plane01 ~]$ [tsubame@control-plane01 ~]$ sudo modprobe br_netfilter [tsubame@control-plane01 ~]$ sudo lsmod | grep br_netfilter br_netfilter 32768 0 bridge 290816 1 br_netfilter [tsubame@control-plane01 ~]$
永続化
- ファイルに記載があること
[tsubame@control-plane01 ~]$ cat << EOF | sudo tee -a /etc/modules-load.d/kubernetes.conf br_netfilter EOF br_netfilter [tsubame@control-plane01 ~]$ cat /etc/modules-load.d/kubernetes.conf br_netfilter [tsubame@control-plane01 ~]$
ovarlay
物理ネットワーク上に仮想ネットワークを構築するモジュール(トラフィックの暗号化や異なる物理ネットワークとの結合も) マルチノードクラスタ内でのコンテナ間通信やサービスの公開などにoverlayネットワークが使用
インストール
- エラーが無いこと,表示されること
[tsubame@control-plane01 ~]$ sudo modprobe overlay [tsubame@control-plane01 ~]$ lsmod | grep overlay overlay 151552 0 [tsubame@control-plane01 ~]$
永続化
- ファイルに記載があること
[tsubame@control-plane01 ~]$ cat <<EOF | sudo tee -a /etc/modules-load.d/kubernetes.conf overlay EOF overlay [tsubame@control-plane01 ~]$ cat /etc/modules-load.d/kubernetes.conf br_netfilter overlay [tsubame@control-plane01 ~]$
iptablesからネットワーク・ブリッジされたトラフィックの可視化
ChatGPTの解説
net.bridge.bridge-nf-call-iptables は、Linuxカーネルのネットワークブリッジ機能に関連する設定です。この設定が 1 に設定されている場合、ネットワークブリッジがパケットを処理する際に、Linuxのiptablesファイアウォールによる処理も有効になることを意味します。
具体的には、ブリッジを介して送信されるパケットは、ファイアウォールルールに従って処理されます。これにより、ブリッジ内の仮想マシン間の通信や、ブリッジを通じて外部ネットワークに接続される場合にも、iptablesによるパケットフィルタリングやNAT(ネットワークアドレス変換)などが適用されることがあります。
具体的な効果やセキュリティの影響は、ネットワーク環境や使用しているアプリケーションに依存します。適切なファイアウォールルールやセキュリティポリシーを適用することが重要です。
カーネル設定を配置
- 設定が存在すること
[tsubame@control-plane01 ~]$ echo 'net.bridge.bridge-nf-call-ip6tables = 1 net.bridge.bridge-nf-call-iptables = 1' | sudo tee /etc/sysctl.d/kubernetes.conf net.bridge.bridge-nf-call-ip6tables = 1 net.bridge.bridge-nf-call-iptables = 1 [tsubame@control-plane01 ~]$ cat /etc/sysctl.d/kubernetes.conf net.bridge.bridge-nf-call-ip6tables = 1 net.bridge.bridge-nf-call-iptables = 1 [tsubame@control-plane01 ~]$
IPフォワード設定
設定
- 設定が存在すること
[tsubame@control-plane01 ~]$ echo 'net.ipv4.ip_forward = 1' | sudo tee -a /etc/sysctl.d/kubernetes.conf net.ipv4.ip_forward = 1 [tsubame@control-plane01 ~]$ cat /etc/sysctl.d/kubernetes.conf net.bridge.bridge-nf-call-ip6tables = 1 net.bridge.bridge-nf-call-iptables = 1 net.ipv4.ip_forward = 1 [tsubame@control-plane01 ~]$
カーネルパラメータ反映
反映
- エラーが無いこと
[tsubame@control-plane01 ~]$ sudo sysctl --system * Applying /usr/lib/sysctl.d/10-default-yama-scope.conf ... -- snip -- net.ipv4.ip_forward = 1 [tsubame@control-plane01 ~]$ [tsubame@control-plane01 ~]$ sudo sysctl -a | grep -E "bridge-nf-call-ip|ip_forward " net.bridge.bridge-nf-call-ip6tables = 1 net.bridge.bridge-nf-call-iptables = 1 net.ipv4.ip_forward = 1 [tsubame@control-plane01 ~]$
コピペ用
カーネル
sudo modprobe br_netfilter sudo modprobe overlay cat << EOF | sudo tee -a /etc/modules-load.d/kubernetes.conf br_netfilter overlay EOF cat <<EOF | sudo tee /etc/sysctl.d/kubernetes.conf net.bridge.bridge-nf-call-ip6tables = 1 net.bridge.bridge-nf-call-iptables = 1 net.ipv4.ip_forward = 1 EOF sudo sysctl --system