最近、Debian サーバーに 2 つ目の NIC を追加しました。もう 1 つの NIC が出荷される予定なので、WAN 接続は合計 3 つになります。
NIC の名前がens2
、ens3
、 であると仮定しますens4
。「アクセス」とは、サーバーへのネットワーク接続 (SSH、VNC、ping など) を意味します。
インターフェースが 1 つしかないときはens2
、ens2
の IP アドレスを使用してサーバーにアクセスできます。2 つ目のインターフェースを追加するとens3
、 の IP を使用してサーバーにアクセスできなくなりますens2
が、ens3
の IP を使用してアクセスできるようになります。
を無効にすると、の IP アドレスens3
経由でサーバーに再度アクセスできるようになります。ens2
すべての WAN インターフェイスからサーバーにアクセスするにはどうすればよいでしょうか。ルーティング テーブルを操作しようとしましたが、ルーティングに関する知識が不足しているため、ネットワークからマシンにアクセスできなくなってしまいました。
答え1
接続がどのインターフェースから入ってくるかに関係なく、ルーティング テーブルによって応答の送信方法が決まります。たとえば、ens2 が 10.1.2.3/24、ens3 が 10.1.9.3/24 で、サーバーが稼働しているとします。パケットは 172.12.2.2 から 10.1.9.3 に送信されます。サーバーが応答し、デフォルト ゲートウェイ デバイスは ens2 であるため、応答は 10.1.2.3 から 172.12.2.2 に戻り、何も機能しません。
必要なのは、パケットが同じインターフェースから戻ってくることです。これにより、2 番目のインターフェース用の 2 番目のルーティング テーブルが設定されます。
echo 200 isp2 >> /etc/iproute2/rt_tables
ip rule add from <ens2-ip> dev ens2 table isp2
ip route add default via <gateway_IP> dev ens2 table isp2