2つのネットワークインターフェースを同時に使用することはできません

2つのネットワークインターフェースを同時に使用することはできません

問題があります。まず、Ubuntu 14.04 にサーバーをセットアップしたいです。インターフェイスは 2 つあります。DHCP サーバー用の eth0 とインターネット接続用の eth1 です。ただし、2 つのネットワークに同時に接続すると、PC にインターネットがなくなります。そのため、サーバーとインターネットのどちらかを選択する必要があります。これはひどいです。この問題を解決する方法を誰か教えてもらえませんか?

/etc/ネットワーク/インターフェース:

auto lo eth0 eth1

iface lo inet loopback

iface eth0 inet static
address 172.16.1.100
netmask 255.255.255.0
broadcast 172.16.1.255
gateway 172.16.1.254

sudo ルートの出力:

Kernel IP routing table
Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
default         192.168.0.1     0.0.0.0         UG    0      0        0 eth1
192.168.0.0     *               255.255.255.0   U     1      0        0 eth1

UPD: ifconfig の出力:

eth0      Link encap:Ethernet  HWaddr 90:e6:ba:46:1d:50  
          inet6 addr: fe80::92e6:baff:fe46:1d50/64 Scope:Link
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:0 errors:0 dropped:0 overruns:0 frame:0
          TX packets:1110 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000 
          RX bytes:0 (0.0 B)  TX bytes:184287 (184.2 KB)

eth1      Link encap:Ethernet  HWaddr 00:04:75:98:5f:da  
          inet addr:192.168.0.101  Bcast:192.168.0.255  Mask:255.255.255.0
          inet6 addr: fe80::204:75ff:fe98:5fda/64 Scope:Link
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:14498 errors:0 dropped:0 overruns:2 frame:0
          TX packets:13096 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000 
          RX bytes:9710708 (9.7 MB)  TX bytes:1840400 (1.8 MB)
          Interrupt:18 Base address:0x4c00 

lo        Link encap:Local Loopback  
          inet addr:127.0.0.1  Mask:255.0.0.0
          inet6 addr: ::1/128 Scope:Host
          UP LOOPBACK RUNNING  MTU:65536  Metric:1
          RX packets:4398 errors:0 dropped:0 overruns:0 frame:0
          TX packets:4398 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:0 
          RX bytes:527890 (527.8 KB)  TX bytes:527890 (527.8 KB)

答え1

の出力を構成しifconfig、最初の回答に与えられたコメントから、問題は で NIC を構成する方法に関連していると思います/etc/network/interfaces

特別な設定がないのでeth1では/etc/network/interfaces、モデムが DHCP 経由でサーバーに IP 情報を提供していると想定します。出力によるとroute、デフォルト ゲートウェイはモデム、つまりインターネットを指しています。

しかし、あなたの/etc/network/interfacesファイルにはeth0デフォルト ゲートウェイも設定されています (ステートメントgateway 172.16.1.254)。

システムに2つのデフォルトゲートウェイを設定することはできません。eth1静的設定を無効にするeth0、IPがない理由eth0出力ではifconfig、インターネットが機能し、内部ネットワークが機能しなくなる理由について説明します。

行を削除しgateway 172.16.1.254て再試行する必要があります。

もちろん、これを行うと、内部 LAN に複数のサブネットがある場合、それらにアクセスできなくなります。サーバー上でこれらすべてのサブネットへの静的ルートを設定しない限り、次のようになります。

sudo ルート追加 -net ABCD gw 1​​72.16.1.254

インターフェースが起動するたびに実行されるように、routeに保存されたスクリプトにコマンドを追加できます。/etc/network/if-up.d

答え2

あなたの投稿から私が理解しているところによると、あなたはインターネットに接続していますeth1そして内部ネットワーク経由でeth0そして、サーバーは、PC がインターネットに接続するための DHCP サーバーおよびデフォルト ゲートウェイの役割を果たすことになります。

まず、PCで、ゲートウェイを含むすべてのDHCP設定が正しく受信されていることを確認します。質問から、172.16.1.100であるはずです。

第二に、あなたのeth1インターネットに適切に接続され、適切に設定されていること。これは明らかに ISP に依存します。

最後に、最も重要な操作として、サーバー上の 2 つのインターフェイス間で IP 転送を有効にする必要があります。これがないと、パケットは PC とインターネット間でルーティングされません。

手動セットアップ:

sudo エコー 1 > /proc/sys/net/ipv4/ip_forward

起動時にIP転送フラグを自動的に設定するには、次の行#net.ipv4.ip_forward=1のコメントを解除します。/etc/sysctl.conf

また、トラフィックをブロックする IPtables ファイアウォール ルールがないことを確認する必要があります。次の操作を実行します。

iptables -L -n

ルールのリストを取得します。まず、すべてのファイアウォール ルールを無効にして次の設定を試します。

iptables -F

答え3

私も同様の問題を抱えていましたが、インターフェース ファイルは次のように空でした。

# The loopback network interface
auto lo
iface lo inet loopback

見つかった有線接続ファイルを移動/削除することで問題を解決できました: /etc/NetworkManager/system-connections/Wired connection 1

再起動後、両方のネットワークに接続できるようになりました。

関連情報