Linuxをネットワークルーター(ゲートウェイ)として使用するように構成したいと思います。誰かが私にこれに関するいくつかのヒントを与えることができますか? (リンクは大歓迎です!)
単純なルーターの場合、実際に実行する必要がある手順は2つだけです。
最初のステップは、カーネルでルーティングを有効にすることです。デフォルトでは、カーネルは認識しないパケットをドロップします。ルーティングを有効にすると、それらが転送されます。コンピュータの起動時に、次の2つのコマンドのいずれかを発行する必要があります。
sysctl -w net.ipv4.ip_forward=1
echo 1 >/proc/sys/net/ipv4/ip_forward
多くのディストリビューションには/etc/sysctl.conf
というファイルがあり、このファイルにnet.ipv4.ip_forward=1
という行を入力して、コンピューターの起動時にそのコマンドを実行できます。ディレクトリ/etc/sysctl.d
がある場合は、/etc/sysctl.conf
を編集する代わりに、そのディレクトリにファイルを追加できます。ファイルをsomething.conf
と呼びます。
IPv6の場合、対応する設定はnet.ipv6.conf.all.forwarding
または/proc/sys/net/ipv6/conf/all/forwarding
です。 IPv4にはnet.ipv4.conf.all.forwarding
または/proc/sys/net/ipv4/conf/all/forwarding
を使用することもできます。
2番目のステップは、ルーティングテーブルを設定することです。これは、実行する必要のある量に応じて、単純な場合と複雑な場合があります。単純な使用法では、各ネットワークインターフェイスのアドレスとネットマスクを構成し、route
コマンドを使用して必要な追加ルートを追加します。
パケットを書き換える必要がある場合、基本的なコマンドは iptables
(IPv6の場合はip6tables
)です。 (「netfilter」はカーネルパケット処理機能の名前であり、「iptables」はそれを制御するプログラムの名前です。)これはフィルタリングを探す場所ですNATなど。
複雑な設定については、 iproute2 パッケージのip
コマンドをご覧ください。
まず、ルーターとして機能させるネットワークのIPを接続します。複数のネットワークインターフェイスカードを入手するか、仮想インターフェイスを構成します。/etc/sysctl.conf
からのパケット転送を有効にしてから、NATのiptablesを構成する必要があります。これは 簡単なチュートリアル と同じです。