Nie można używać dwóch interfejsów sieciowych jednocześnie

9

Mam problem. Przede wszystkim chciałem skonfigurować serwer na Ubuntu 14.04. Mam 2 interfejsy: eth0 dla serwera dhcp i eth1 dla połączenia z Internetem. Ale jeśli połączę się z dwiema sieciami jednocześnie, nie będzie Internetu na PC. Więc muszę wybierać między serwerem a Internetem. To okropne, czy ktoś może mi powiedzieć, jak rozwiązać ten problem?

/ 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

wyniki trasy 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 wyświetla:

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
źródło
Czy menedżer sieci konfiguruje twoje urządzenia? Pokaż wyniki nmcli dev statusrównież możesz ping 192.168.0.1?
meccooll,

Odpowiedzi:

4

Konfigurując dane wyjściowe ifconfigi komentarze do mojej pierwszej odpowiedzi, myślę, że problem jest związany ze sposobem, w jaki konfigurujesz swoje karty sieciowe /etc/network/interfaces.

Jak nie masz żadnej konfiguracji specyficzne dla eth1 w /etc/network/interfacesPrzypuszczam, że modem jest dawanie na serwer info IP przez DHCP. Zgodnie z routewyjściem domyślna brama wskazuje modem, a więc Internet.

Ale w /etc/network/interfacespliku dla eth0 masz również skonfigurowaną bramę domyślną (instrukcja gateway 172.16.1.254).

W systemie nie można mieć dwóch bram domyślnych. Przypisanie bramy domyślnej na eth1 wyłączyć statyczna konfiguracja eth0 , powód dlaczego nie ma IP dla eth0 w ifconfigprodukcji i dlaczego działa Internet i sieci wewnętrznej nie więcej.

Musisz usunąć linię gateway 172.16.1.254i spróbować ponownie.

W ten sposób, oczywiście, jeśli masz więcej niż jedną podsieć w wewnętrznej sieci LAN, nie będziesz już w stanie do nich dotrzeć. Chyba że skonfigurujesz trasę statyczną do wszystkich tych podsieci na serwerze:

sudo route add -net ABCD gw 172.16.1.254

możesz dodać routepolecenie do skryptu zapisanego w /etc/network/if-up.dcelu uruchamiania za każdym razem, gdy interfejs się podnosi.

Benoit
źródło
W rzeczywistości możesz mieć dwie domyślne trasy w danym systemie (nie w jego systemie, ponieważ serwer nie ma dostępu do Internetu), ale powinny mieć różne priorytety lub konfigurację, aby zrównoważyć obie.
JrBenito,
3

Z tego, co rozumiem na temat twojego postu, łączysz się z Internetem przez eth1 i do swojej wewnętrznej sieci przez eth0 . Twój serwer pełni wtedy rolę serwera DHCP i domyślnej bramy komputera, aby móc korzystać z Internetu.

Najpierw sprawdź na komputerze, czy poprawnie otrzymały wszystkie ustawienia DHCP, w tym bramę. Z twojego pytania zakładam, że powinno to być 172.16.1.100

Po drugie, upewnij się, że Twój eth1 jest dobrze podłączony do Internetu i dobrze skonfigurowany; zależy to oczywiście od twojego dostawcy usług internetowych.

Wreszcie, najważniejsza operacja, musisz włączyć przekazywanie IP między dwoma interfejsami na serwerze. Bez tego pakiet nie będzie routowany między komputerem a Internetem:

Manualna instalacja :

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

Aby mieć do przodu flagę IP automatycznie setup podczas startu odkomentuj linii #net.ipv4.ip_forward=1w/etc/sysctl.conf

Musisz również upewnić się, że nie ma reguł zapory IPtables, które blokowałyby ruch. Zrobić :

iptables -L -n

aby uzyskać listę reguł, jeśli takie istnieją. Najpierw wypróbuję tę konfigurację przy wyłączonych wszystkich regułach zapory:

iptables -F

Benoit
źródło
Nie, próbuję skonfigurować serwer PXE. Komputery w mojej sieci lokalnej prawidłowo uzyskują adresy IP (uruchamiają się). Ale nie ma internetu ani na serwerze, ani (oczywiście) na klientach.
Andreikkaa
Na razie muszę tylko naprawić połączenie internetowe na serwerze.
Andreikkaa
@ user3452627: czy możesz dodać wynik ifconfigswojego pytania. A także określ, w jaki sposób masz połączenie z Internetem.
Benoit
Pewnie. Jestem połączony przez modem.
Andreikkaa
@ user3452627: czy ten modem podaje adres IP twojemu serwerowi przez DHCP?
Benoit
2

Miałem podobny problem, ale mój plik interfejsów był pusty:

# The loopback network interface
auto lo
iface lo inet loopback

Udało mi się rozwiązać problem, przenosząc / usuwając znaleziony plik połączenia przewodowego: /etc/NetworkManager/system-connections/Wired connection 1

Po ponownym uruchomieniu był w stanie połączyć się z obiema sieciami.

Maksim Luzik
źródło