Zwei Netzwerkschnittstellen können nicht gleichzeitig verwendet werden

Zwei Netzwerkschnittstellen können nicht gleichzeitig verwendet werden

Ich habe ein Problem. Zunächst möchte ich einen Server auf Ubuntu 14.04 einrichten. Ich habe zwei Schnittstellen: eth0 für den DHCP-Server und eth1 für die Internetverbindung. Aber wenn ich mich gleichzeitig mit zwei Netzwerken verbinde, habe ich auf dem PC kein Internet. Ich muss mich also zwischen Server und Internet entscheiden. Das ist schrecklich. Kann mir jemand sagen, wie ich dieses Problem beheben kann?

/etc/Netzwerk/Schnittstellen:

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 route gibt aus:

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 gibt aus:

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)

Antwort1

Beim Konfigurieren der Ausgabe ifconfigund den Kommentaren zu meiner ersten Antwort denke ich, dass das Problem mit der Art und Weise zusammenhängt, wie Sie Ihre Netzwerkkarten in konfigurieren /etc/network/interfaces.

Da Sie keine spezielle Konfiguration füreth1Ich gehe davon aus /etc/network/interfaces, dass Ihr Modem Ihrem Server die IP-Informationen über DHCP übermittelt. Gemäß der routeAusgabe erhalten Sie Ihr Standard-Gateway, das auf das Modem und damit auf das Internet verweist.

Aber in Ihrer /etc/network/interfacesAkte für dieeth0Sie haben auch ein Standard-Gateway konfiguriert (Anweisung gateway 172.16.1.254).

Sie können nicht zwei Standard-Gateways auf einem System haben. Die Zuweisung des Standard-Gateways aufeth1Deaktivieren der statischen Konfiguration voneth0, Grund, warum es keine IP füreth0in der ifconfigAusgabe und warum das Internet funktioniert und das interne Netzwerk nicht mehr.

Sie müssen die Zeile entfernen gateway 172.16.1.254und es erneut versuchen.

Wenn Sie mehr als ein Subnetz im internen LAN haben, können Sie diese natürlich nicht mehr erreichen. Es sei denn, Sie konfigurieren eine statische Route zu allen diesen Subnetzen auf Ihrem Server:

sudo route add -net ABCD gw 172.16.1.254

routeSie können den Befehl zu einem darunter gespeicherten Skript hinzufügen, /etc/network/if-up.ddas jedes Mal ausgeführt wird, wenn eine Schnittstelle aktiv ist.

Antwort2

Soweit ich Ihren Beitrag verstehe, verbinden Sie sich mit dem Internet übereth1und zu Ihrem internen Netzwerk übereth0. Und Ihr Server übernimmt dann die Rolle des DHCP-Servers und des Standard-Gateways für den Internetzugang Ihrer PCs.

Überprüfen Sie zunächst auf dem PC, ob alle DHCP-Einstellungen, einschließlich des Gateways, korrekt empfangen wurden. Aus Ihrer Frage schließe ich, dass es 172.16.1.100 sein sollte.

Zweitens, stellen Sie sicher, dass Ihreeth1eine gute Internetverbindung und Konfiguration aufweist; dies hängt natürlich von Ihrem ISP ab.

Zum Schluss noch der wichtigste Schritt: Sie müssen die IP-Weiterleitung zwischen Ihren beiden Schnittstellen auf dem Server aktivieren. Ohne diese Funktion werden keine Pakete zwischen Ihren PCs und dem Internet weitergeleitet:

Manuelle Einrichtung :

sudo echo 1 > /proc/sys/net/ipv4/ip_forward

Um das IP-Forward-Flag automatisch beim Booten einzurichten, entfernen Sie das Kommentarzeichen aus der Zeile #net.ipv4.ip_forward=1in/etc/sysctl.conf

Sie müssen außerdem sicherstellen, dass es keine IPtables-Firewallregeln gibt, die den Datenverkehr blockieren. Gehen Sie folgendermaßen vor:

iptables -L -n

um eine Liste der Regeln zu erhalten, falls es welche gibt. Ich würde zunächst dieses Setup mit allen deaktivierten Firewall-Regeln ausprobieren:

iptables -F

Antwort3

Ich hatte ein ähnliches Problem, aber meine Schnittstellendatei war leer und sah folgendermaßen aus:

# The loopback network interface
auto lo
iface lo inet loopback

Ich konnte das Problem beheben, indem ich die folgende Datei für die kabelgebundene Verbindung verschoben/entfernt habe: /etc/NetworkManager/system-connections/Wired connection 1

Nach dem Neustart konnte eine Verbindung zu beiden Netzwerken hergestellt werden.

verwandte Informationen