パケットをルーティングするようにUbuntuコンピューターをセットアップしたい。したがって、私は常にiptablesに追加する多くのルールを持ついくつかのチュートリアルを読みました。
パケットをルーティングするために必要な唯一のルール(iptablesが完全に空であることを前提とする)は、次のことだけであることがわかりました。
iptables -t nat -A POSTROUTING -o <ext> -j MASQUERADE
ここで、ext
は、パケットが外部に送信されるネットワークインターフェイスです。
このルールが実際に何を行うのか、なぜこの単一のルールだけでIP転送を機能させるのか理解できません。
コマンド:
iptables -t nat -A POSTROUTING -o <ext> -j MASQUERADE
情報:
-t nat
:
-t:テーブル用
NAT(ネットワークアドレス変換)は、パケットを代替アドレスにリダイレクトするためにパケットをマングリングするための一般的な用語です。通常、これは、トラフィックがネットワーク境界を超えることを許可するために使用されます。 NAT=を実装するホストは通常、2つ以上のネットワークにアクセスでき、それらの間のトラフィックをルーティングするように設定されています。パケットの送信元フィールドまたは宛先フィールドを変換するために使用されます
-A POSTROUTING
:
ルールを「追加」する組み込みのPOSTROUTINGチェーンを指定します
チェーン:NATテーブルにあるルールセット
-j MASQUERADE
:
-j MASQUERADEターゲットは、ノードのプライベートIPアドレスをファイアウォール/ゲートウェイの外部IPアドレスでマスクするために指定されます。
-o <interface>
:
ファイアウォールの外部ネットワークデバイス
概要:
-t nat
NATルールの構成用にテーブル "nat"を選択します。-A POSTROUTING
POSTROUTINGチェーンにルールを追加します(-Aは「追加」を表します)。-o eth1
このルールは、このネットワークインターフェースを通過するパケットに有効です(-oは「出力」を表します)-j MASQUERADE
行われるべきアクションは、パケットを「マスカレード」することです。つまり、送信者のアドレスをルーターのアドレスに置き換えます。出典: