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_forwardnet.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のドキュメント