Debian GNU / LinuxでIPv4のIP転送を有効にする

Enabling Ip Forwarding



コンピュータネットワークの設定は、難しい場合があります。 LinuxマシンでIPv4転送を有効にすることは、幸いなことに、かなり単純な作業です。

IP転送という用語は、同じデバイス上の1つのネットワークインターフェイスから別のネットワークインターフェイスにネットワークパッケージを送信することを表します。システムを、あるネットワークから別のネットワークにIPパケットを転送するルーターとして機能させる場合に有効にする必要があります。







Linuxシステムでは、Linuxカーネルにはこの値を保持する `ip_forward`という名前の変数があります。ファイル `/ proc / sys / net / ipv4 / ip_forward`を使用してアクセスできます。デフォルト値は0です。これは、IP転送がないことを意味します。これは、通常、追加のコンポーネントなしで1台のコンピューターを実行する通常のユーザーはIP転送を必要としないためです。対照的に、ルーター、ゲートウェイ、VPNサーバーの場合、これは非常に重要な機能です。



次に、IP転送を一時的および永続的に有効にする方法について説明します。



一時的な解決策としてのIP転送

このカーネルパラメータをオンザフライで有効にするには、2つのオプションがあります。オプション1は、次のように、上記の変数に1の値を格納するだけです。





捨てた 1 >> /パーセント/sys/ネット/ipv4/ip_forward

オプション2は `sysctl`コマンドを使用しており、実行時にさまざまなカーネルパラメータを調整することもできます[2]。管理ユーザーとして、次のコマンドを実行します。

sysctl-のnet.ipv4.ip_forward =1

この設定は即座に変更されることに注意してください。また、システムを再起動した後、結果は保持されません。



次のように、保存された値を照会できます。

/パーセント/sys/ネット/ipv4/ip_forward

このコマンドは、IP転送がない場合は値0を返し、IP転送が有効な場合は値1を返します。別の方法として、 `sysctl`を使用すると、現在のステータスも表示されます。

#sysctl net.ipv4.ip_forward
net.ipv4.ip_forward =0

IP転送を永続的に有効にする

これを達成するために、他のいくつかのステップを実行する必要があります。まず、ファイル `/ etc / sysctl.conf`を編集します。エントリ#net.ipv4.ip_forward = 1を含む行を検索し、行の先頭にある#を削除します。

次に、ファイルを保存し、調整された設定を有効にするために `sysctl`コマンドを実行します。

sysctl-NS /NS/sysctl.conf

オプション `-p`は` –load`の略であり、従うべき構成ファイルの名前が必要です。

次に、次のコマンドを使用して、Linuxカーネルのステータスに関する情報を提供するprocファイルシステムを再起動します。

/NS/init.d/procps再起動

2015年頃、ファイル名は `procps.sh`から` procps`に短縮されました。そのため、古いDebianシステムでは、呼び出す必要のあるスクリプトの名前は「procps.sh」になります。

Systemdへの対応

次のハードルは、Systemdバージョン221のリリースにありました。IP転送はデフォルトで無効になっており、有効にするには追加のファイルが必要です。まだない場合は、追加するだけです。ファイル名は、ネットワークインターフェイスの名前とそれに続くサフィックス `.network`で構成されます。たとえば、ネットワークインターフェイス` / dev / eth0`の場合は `eth0.network`です。ドキュメント[4]に記載されているように、他の拡張機能は無視されます。

次のコードスニペットは、ネットワークインターフェース `/ dev / tun0`のセットアップを示しています。 `Match`と` Network`の2つのセクションで構成されています。 [一致]セクションでネットワークインターフェイスの名前を定義し、[ネットワーク]セクションでIP転送を有効にします。

#cat /etc/systemd/network/tun0.network
[マッチ]
名前= tun0
[通信網]
IPForward= ipv4

結論

IPv4のIP転送をアクティブ化することは謎ではありません。ほんの数ステップで、あなたはそこにいます。ハッピーハッキング!

リンクとリファレンス

* [1] Systemdのセットアップ-Networkd、Debian Wiki
* [2] Juergen Haas:Linuxのsysctlコマンドを学ぶ
* [3] バージョン221のSystemdニュース
* [4] Systemdのドキュメント