Es können nicht zwei Netzwerkschnittstellen gleichzeitig verwendet werden

9

Ich habe ein Problem. Zunächst möchte ich einen Server unter Ubuntu 14.04 einrichten. Ich habe 2 Schnittstellen: eth0 für DHCP-Server und eth1 für die Internetverbindung. Wenn ich jedoch gleichzeitig eine Verbindung zu zwei Netzwerken herstelle, gibt es auf dem PC kein Internet. Also muss ich mich zwischen Server und Internet entscheiden. Das ist schrecklich, kann mir jemand sagen, wie ich dieses Problem schließen kann?

/ etc / network / interfaces:

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-Ausgaben:

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)
Andreikkaa
quelle
Konfiguriert der Netzwerkmanager Ihre Geräte? Show Ausgabe von nmcli dev statuskönnen Sie auch ping 192.168.0.1?
Mekooll

Antworten:

4

Wenn Sie die Ausgabe ifconfigund die Kommentare zu meiner ersten Antwort konfigurieren, hängt das Problem meiner Meinung nach damit zusammen, wie Sie Ihre Netzwerkkarten konfigurieren /etc/network/interfaces.

Da Sie keine spezifische Konfiguration für eth1 in haben /etc/network/interfaces, gibt Ihr Modem Ihrem Server vermutlich die IP-Informationen über DHCP an. routeGemäß der Ausgabe erhalten Sie Ihr Standard-Gateway, das auf das Modem und damit auf das Internet verweist.

In Ihrer /etc/network/interfacesDatei für eth0 ist jedoch 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 auf eth1 deaktiviert die statische Konfiguration von eth0 , weshalb in der Ausgabe keine IP für eth0 vorhanden ist ifconfigund warum das Internet funktioniert und das interne Netzwerk nicht mehr.

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

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

sudo route add -net ABCD gw 172.16.1.254

Sie können den routeBefehl in ein Skript einfügen, das unter gespeichert ist /etc/network/if-up.d, um jedes Mal ausgeführt zu werden, wenn eine Schnittstelle aufgerufen wird.

Benoit
quelle
Tatsächlich können Sie auf einem bestimmten System zwei Standardrouten haben (nicht auf seinem System, da der Server keinen Internetzugang hat), aber sie müssen unterschiedliche Prioritäten oder Konfigurationen haben, um beide auszugleichen.
JrBenito
3

Soweit ich von Ihrem Beitrag weiß , stellen Sie über eth1 eine Verbindung zum Internet und über eth0 zu Ihrem internen Netzwerk her . Ihr Server spielt dann die Rolle des DHCP-Servers und des Standard-Gateways für Ihre PCs, um ins Internet zu gehen.

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

Stellen Sie zweitens sicher, dass Ihr eth1 gut mit dem Internet verbunden und gut konfiguriert ist. Dies hängt natürlich von Ihrem ISP ab.

Schließlich müssen Sie als wichtigste Operation die IP-Weiterleitung zwischen Ihren beiden Schnittstellen auf dem Server aktivieren. Ohne dies wird das Paket nicht zwischen Ihrem PC und dem Internet weitergeleitet:

Manuelle Einrichtung :

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

Damit das IP-Weiterleitungsflag beim Booten automatisch eingerichtet wird, kommentieren Sie die Zeile #net.ipv4.ip_forward=1aus/etc/sysctl.conf

Sie müssen außerdem sicherstellen, dass keine Firewall-Regeln für IPtables vorhanden sind, die den Datenverkehr blockieren. Machen :

iptables -L -n

um eine Liste der Regeln zu erhalten, falls vorhanden. Ich würde dieses Setup zuerst mit allen deaktivierten Firewall-Regeln versuchen:

iptables -F

Benoit
quelle
Nein, ich versuche, einen PXE-Server einzurichten. Computer in meinem lokalen Netzwerk erhalten IPs korrekt (sie booten). Aber es gibt weder auf dem Server noch (natürlich) auf den Clients Internet.
Andreikkaa
Im Moment muss ich nur die Internetverbindung auf dem Server reparieren.
Andreikkaa
@ user3452627: Könnten Sie bitte die Ausgabe von ifconfigzu Ihrer Frage hinzufügen . Geben Sie außerdem an, wie Sie mit dem Internet verbunden sind.
Benoit
Sicher. Ich bin über ein Modem verbunden.
Andreikkaa
@ user3452627: Gibt dieses Modem Ihrem Server über DHCP eine IP-Adresse?
Benoit
2

Ich hatte ein ähnliches Problem, aber meine Schnittstellendatei war wie folgt leer:

# The loopback network interface
auto lo
iface lo inet loopback

Ich konnte das Problem beheben, indem ich die gefundene Kabelverbindungsdatei verschob / entfernte: /etc/NetworkManager/system-connections/Wired connection 1

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

Maksim Luzik
quelle