6.14.5. NAT の競合
IPsec ホストが NAT ルーターとしても機能する場合に発生する NAT 競合を解決します。NAT の適用が不適切な場合、暗号化される前に送信元 IP アドレスが変換され、結果としてパケットが暗号化されずにネットワークに送信される可能性があります。
たとえば、IPsec 暗号化が適用される前に、パケットの送信元 IP アドレスがマスカレードルールによって変換されると、そのパケットの送信元が IPsec ポリシーと一致しなくなり、Libreswan がそのパケットを暗号化せずにネットワーク経由で送信してしまいます。
この問題を解決するには、IPsec サブネット間のトラフィックを NAT から除外するファイアウォールルールを追加します。このルールを POSTROUTING チェーンの先頭に挿入することで、一般的な NAT ルールよりも先に処理されるようになります。
例6.1 nftables フレームワークを使用した解決策
次の例では、nftables を使用して、192.0.2.0/24 サブネットと 198.51.100.0/24 サブネット間のトラフィックをアドレス変換から除外する基本的な NAT 環境を設定します。
# nft add table ip nat
# nft add chain ip nat postrouting { type nat hook postrouting priority 100 \; }
# nft add rule ip nat postrouting ip saddr 192.0.2.0/24 ip daddr 198.51.100.0/24 return