ネットワークインターフェイスバインディングがルートとしてのみ機能しているようです。

ネットワークインターフェイスバインディングがルートとしてのみ機能しているようです。

2つのネットワークインターフェイスを備えたCentOS 7サーバーがあります。 1つはLAN(ens32)を指し、もう1つはDMZ(ens33)を指します。

LANインターフェイスが正常に動作している間にrootとしてログインすると、トラフィックはDMZインターフェイスを介してのみ移動することがわかりました。これが何を意味するのか、それとも他の問題に正味の影響を与えるのかはわかりません。苦しんでいます。

たとえば、次のように実行すると:

curl --interface ens32 ipecho.net/plain

root 以外のユーザーとしてインターフェイスのパブリック IP を取得します。

私が実行した場合:

curl --interface ens33 ipecho.net/plain

root以外のユーザーとしてコマンドの実行が停止したように見え、プロセスを強制的に終了する必要があります。

前のコマンドをrootとして実行すると、インターフェイスのパブリックIPである期待される出力が得られます。

ここで何が起こっているのかを説明できる人はいますか?

ベストアンサー1

公式ページに示すように、curl特定のインタフェースを指定/バインドするには、 CAP_NET_RAW またはroot.

したがって、rootバインディング/ルーティングが可能で、一般ユーザーには機能しません。

一般ユーザーが使用する場合、curlこのオプションを許可しない場合は、--interfaceサーバーのデフォルトのルーティング規則が適用されます。

カール公式ページからカル.1 マニュアルページ:

- 相互作用

指定されたインターフェースを使用して操作を実行します。インターフェイス名、IPアドレス、またはホスト名を入力できます。例は次のとおりです。

カール - インターフェースeth0:1https://www.example.com/

このオプションを複数回使用すると、最後のオプションが使用されます。

LinuxではVRFを指定するために使用できますが、バイナリにはCAP_NET_RAWがあるか、ルートとして実行する必要があります。

Linux VRFに関する追加情報:https://www.kernel.org/doc/Documentation/networking/vrf.txt

おすすめ記事