たとえば、NetworkManager を使用して単一のインターフェイスに複数の IP アドレスを設定できます。
別のIPを使用して外部PCに接続するには?
たとえば、IPアドレスが8つ(10.7.4.x
、、、、...)で、異なるIPを使用して各宛先アドレスに接続したい場合は、任意のIPまたはシーケンシャルモード(ターゲットIPモード8 = 0の場合、次に使用します10.7.4.x+1
。、ターゲットモード8 = 1のときを使用し、など)10.7.4.x+2
x
x+1
答え1
Linuxでは、発信接続のソースアドレス選択をルーティングテーブルを介して制御できます。
ip route add 10.11.12.0/24 via 10.7.4.1 src 10.7.4.200
特定の固定IP範囲に異なる送信元アドレスのみを使用する必要がある場合は、この方法で十分です。ただし、Linuxネットフィルタ()とポリシールーティング()iptables
の機能を組み合わせると、ip rule
ソースアドレスを動的に選択できます。
基本的なプロセスは次のとおりです。
PREROUTING
チェーン内のパケットに適切なタグを設定しますmangle
。- 異なるタグ()を持つパケットには異なるIPルーティングテーブルを使用します
ip rule add fwmark X table Y
。 - 各ルーティングテーブルのパケット
src
に必要なアドレスを使用します。
「mod 4」に設定されている宛先IPに基づいてパケットを表示するためのネットフィルタ設定は次のとおりです。
iptables -A PREROUTING -t mangle -j CONNMARK --restore-mark
iptables -A PREROUTING -t mangle -m mark --mark 0x0 -d 0.0.0.0/0.0.0.3 \
-j MARK --set-mark 1
iptables -A PREROUTING -t mangle -m mark --mark 0x0 -d 0.0.0.1/0.0.0.3 \
-j MARK --set-mark 2
iptables -A PREROUTING -t mangle -m mark --mark 0x0 -d 0.0.0.2/0.0.0.3 \
-j MARK --set-mark 3
iptables -A PREROUTING -t mangle -m mark --mark 0x0 -d 0.0.0.3/0.0.0.3 \
-j MARK --set-mark 4
iptables -A POSTROUTING -t mangle -j CONNMARK --save-mark
CONNMARK
(この特別な場合は、他の表示コマンドが同じ接続内のすべてのパケットに対して同じ結果を提供するため、両方のコマンドを省略できますが、ソースアドレスの循環使用などのより複雑な場合は、これらのコマンドが必要です。すべてのパケットが同じパスを使用していることを確認してください。
IP ルーティングの設定は次のとおりです。
ip route add default via 10.7.4.1 src 10.7.4.200 table 1
ip route add default via 10.7.4.1 src 10.7.4.201 table 2
ip route add default via 10.7.4.1 src 10.7.4.202 table 3
ip route add default via 10.7.4.1 src 10.7.4.203 table 4
ip rule add fwmark 1 pref 1 table 1
ip rule add fwmark 2 pref 2 table 2
ip rule add fwmark 3 pref 3 table 3
ip rule add fwmark 4 pref 4 table 4
答え2
発信接続を確立するために使用されるアプリケーションまたはツールは、可能なソースIPアドレスが複数あることを理解し、必要なすべてのアドレスに明示的にバインドする必要があります。
たとえば、ssh
passオプションにはこの機能があるため、これを行うと、その-b
アドレスssh -b 10.7.4.201 ...
がソースアドレスとして使用されます。
たとえば、ラウンドロビン方式で可能なソースアドレスを自動的に使用することはできません。
-bフラグは何ですか?
-b bind_address
Use bind_address on the local machine as the source address of
the connection. Only useful on systems with more than one
address.