IPv4 転送の実行可否を決定する "net.ipv4.ip_forward" を検証する
Linux では "net.ipv4.ip_forward" というパラメータがデフォルトでは "0" ですが、「この値を "1" にすることで IPv4 転送が有効になる」という記事をよく見かけます。このパラメータを実際に検証してみました。
- route 〜 ルーティングテーブルの表示/設定を行う (※「経路の追加」という部分で述べられています)
- ITmedia エンタープライズ - IPフォワードを利用したい
検証は GNS3 上の MicroCore Linux 3.4(Linux Kernel 2.6.33.3)で実施しています。
同セグメント・B サーバへの Ping¶
下記の構成で検証を進めます。B での ip_forward 設定の内容にかかわらず、A から B の同セグメントインターフェイスへ Ping すると(フィルタしていない限りは)応答があります。
別セグメント・但し、B サーバへの Ping¶
A から B 宛に、但し別セグメント側のインターフェイスへ Ping しても、ip_forward の設定内容にかかわらず、応答があります。
別セグメント・C サーバへの PIng¶
A から C へ Ping すると、応答がありません。これは B で ip_forward=0 になっており、IPv4 転送が無効になっている為です。
中継サーバ(B)で ip_forward=1 にした場合の Ping¶
B で ip_forward を "1" に設定します。
1 |
|
先ほどと同様に A から C へ Ping すると、今回は応答があります。これは "ip_forward=1" 設定で B が IPv4 転送を実施するようになり、宛先アドレスが自分(つまり B)では無いパケットも転送するようになった為です。