固定IPアドレス(192.168.1.86)を持つデバイスがあります。また、192.168.1.x を使用する DHCP ネットワークもありますが、そのネットワークで 192.168.1.86 のみを維持することはできません。メインネットワークおよび固定アドレスデバイスと通信できる必要があるマシン(ブリッジと呼ばれる)があります。
Aには2つのネットワークアダプタがあるので、これまでに行ったことは、DHCPを使用してプライマリネットワークと通信するように1つのインターフェイスを設定し、固定アドレスデバイスと通信するように手動で別のインターフェイスを設定することだけです。その後、あるインターフェイスを有効にし、他のインターフェイスを無効にすることで、いつでもどちらか一方と通信できます。これは明らかに非常に寂しく、時々イライラするまでです。
インターフェイスを手動で有効/無効にせずにこれを実行できますが、192.168.1.86へのすべてのトラフィックを1つのインターフェイスに自動的に送信し、別のアドレスへのトラフィックを別のインターフェイスから送信したいと思います。はい、そうすることができれば、そのブリッジマシンはもはやメインネットワークの192.168.1.86と通信できなくなることを知っています。私は大丈夫です。ボーナスとして、会議ブリッジマシンを介してインターネットと通信できる固定アドレスデバイスを取得できれば幸いです。
これは静的パスである必要があるように見えますが、サブネット全体ではなく、1つの特定のアドレスに対して静的パスを設定する方法(または可能かどうか)がわかりません(特にそのアドレスがサブネット内にあり、別のインターフェイスで処理されます)
では、192.168.1.86 へのトラフィックを 1 つのインターフェイスに送信し、別のアドレスへのトラフィックを別のインターフェイスに送信するようにブリッジをどのように設定できますか?
ブリッジマシン(残りのネットワークと固定アドレスデバイスに接続されたマシン)はCentOS 7を実行しています。
答え1
次のコマンドを使用して、192.168.1.86にホストパスを追加します。
ip route add 192.168.1.86/32 dev eth1
ここで、eth1 はデバイスが接続されたインターフェイスです。このパスは通常の192.168.1.0/24パスよりも具体的で、デバイスと通信するときに選択されます。他のホストの場合は、通常のパスが適用されます。
答え2
192.168.1.86 ホストに追加のアドレスを割り当てることができる場合は、次のように処理できます。
現在のインターフェイス設定のリストを取得するには、192.168.1.86 で「ifconfig -a」を使用します。例:
# ifconfig -a
eth0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500
inet 192.168.1.86 netmask 255.255.255.0 broadcast 192.168.1.255
ether 00:21:f6:41:94:37 txqueuelen 1000 (Ethernet)
RX packets 68267884 bytes 20871214051 (19.4 GiB)
RX errors 0 dropped 3485 overruns 0 frame 0
TX packets 5758238 bytes 843203020 (804.1 MiB)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
lo: flags=73<UP,LOOPBACK,RUNNING> mtu 65536
inet 127.0.0.1 netmask 255.0.0.0
loop txqueuelen 1 (Local Loopback)
RX packets 1663 bytes 508496 (496.5 KiB)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 1663 bytes 508496 (496.5 KiB)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions
私の場合は、eth0をインターフェースとして使用します。 lo(ループバック)インターフェイスを無視できます。
このインターフェイスにアドレスを追加するには、別の「サブ」インターフェイスを設定し、アドレスとネットマスクを割り当てます。たとえば、
# ifconfig eth0:1 10.33.33.33 netmask 255.255.255.0 up
これにより、「eth0:1」という新しいインターフェースが作成されます。
# ifconfig -a
eth0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500
inet 192.168.1.86 netmask 255.255.255.0 broadcast 192.168.1.255
ether 00:21:f6:41:94:37 txqueuelen 1000 (Ethernet)
RX packets 68268140 bytes 20871241191 (19.4 GiB)
RX errors 0 dropped 3485 overruns 0 frame 0
TX packets 5758341 bytes 843217718 (804.1 MiB)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
eth0:1: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500
inet 10.33.33.33 netmask 255.255.255.0 broadcast 10.33.33.255
ether 00:21:f6:41:94:37 txqueuelen 1000 (Ethernet)
lo: flags=73<UP,LOOPBACK,RUNNING> mtu 65536
inet 127.0.0.1 netmask 255.0.0.0
loop txqueuelen 1 (Local Loopback)
RX packets 1663 bytes 508496 (496.5 KiB)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 1663 bytes 508496 (496.5 KiB)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
次に、「ブリッジ」ホストが192.168.1.86ホストと通信する必要があるインターフェイスに対して、そのインターフェイスが10.33.33.xネットワーク(この例では)になるように設定します(例:10.33.33.1)。 。
この時点では、192.168.1.86アドレスを介して192.168.1.86ホストを参照しなくなりました。これで10.33.33.33からアクセスできます。
これにより、「ブリッジされた」ホストの両方のインターフェイスで同じネットワークを持つ問題が排除されます。
192.168.1.86ホストで追加のインタフェース定義を永久に作成するには、/etc/sysconfig/network-scriptsにifcfg-eth0:1というファイルを追加できます。このファイルには、次のような内容を含めることができます。
TYPE=Ethernet
BOOTPROTO=none
DEFROUTE=yes
IPV4_FAILURE_FATAL=no
NAME=eth0
DEVICE=eth0:1
ONBOOT=yes
IPADDR=10.33.33.33
PREFIX=24
私の場合、インターフェースはeth0です。ご意見は異なる場合がありますので、必要に応じて見積もってください。また、私の例ではネットワーク10.33.33.xを使用しましたが、指定したネットワークが環境の他の場所と競合しないことを確認する必要があります。通常、10.xxxネットワークは非常に安全なので、使用しないサブネットを選択してください。
静的ルーティングを使用するようにJohanの提案は簡単で簡単です。ブリッジホストの両側で同じネットワークを参照する必要がある混乱した状況が発生しますが、機能する必要があります。上記の提案は、実用的な観点から「醜い」二重ネットワークの問題を排除するのに役立ちます。どちらかがあなたのジレンマを解決する必要があります。