web-dev-qa-db-fra.com

Impossible d'utiliser deux interfaces réseau en même temps

J'ai un problème. Tout d'abord, je souhaite configurer un serveur sur Ubuntu 14.04. J'ai 2 interfaces: eth0 pour le serveur DHCP et eth1 pour la connexion Internet. Mais si je me connecte à deux réseaux en même temps, il n’ya pas d’Internet sur PC. Je dois donc choisir entre le serveur et Internet. C'est terrible, quelqu'un peut-il me dire comment résoudre ce problème?

/ 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

Sorties de la route 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 génère:

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)
9
Andreikkaa

En configurant la sortie de ifconfig et les commentaires donnés à ma première réponse, je pense que le problème est lié à la façon dont vous configurez votre carte réseau dans /etc/network/interfaces.

Comme vous n'avez pas de configuration spécifique pour eth1 dans /etc/network/interfaces, je suppose que votre modem transmet à votre serveur les informations IP via DHCP. Conformément à la sortie route, votre passerelle par défaut est dirigée vers le modem, donc vers Internet.

Mais sur votre fichier /etc/network/interfaces pour eth, vous avez également une passerelle par défaut configurée (instruction gateway 172.16.1.254).

Vous ne pouvez pas avoir deux passerelles par défaut sur un système. L'affectation de la passerelle par défaut sur eth1 désactive la configuration statique de eth, raison pour laquelle il n'y a pas d'adresse IP pour eth dans la sortie ifconfig et pourquoi. Internet fonctionne et le réseau interne non plus.

Vous devrez supprimer la ligne gateway 172.16.1.254 et réessayer.

Ce faisant, bien sûr, si vous avez plusieurs sous-réseaux sur le réseau local interne, vous ne pourrez plus les atteindre. Sauf si vous configurez une route statique vers tous ces sous-réseaux sur votre serveur:

Sudo route add -net A.B.C.D gw 172.16.1.254

vous pouvez ajouter la commande route dans un script enregistré sous /etc/network/if-up.d à exécuter à chaque fois qu’une interface est activée.

4
Benoit

D'après ce que j'ai compris de votre message, vous vous connectez à Internet via eth1 et à votre réseau interne via eth. Et votre serveur joue alors le rôle de serveur DHCP et de passerelle par défaut pour que votre PC puisse accéder à Internet.

Tout d’abord, sur le PC, vérifiez qu’ils ont bien reçu tous les paramètres DHCP, y compris la passerelle. D'après votre question, je suppose que cela devrait être 172.16.1.100

Deuxièmement, assurez-vous que votre eth1 est bien connecté à Internet et bien configuré; cela dépend évidemment de votre FAI.

Enfin, l’opération la plus importante, vous devrez activer le transfert IP entre vos deux interfaces sur le serveur. Sans cela, les paquets ne seront pas acheminés entre votre PC et Internet:

Installation manuelle :

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

Pour que l'indicateur de transfert IP soit automatiquement configuré au démarrage, décommentez la ligne #net.ipv4.ip_forward=1 in /etc/sysctl.conf

Vous devrez également vous assurer qu'il n'y a pas de règles de pare-feu IPtables qui bloquent le trafic. Faire :

iptables -L -n

pour obtenir une liste de règles, le cas échéant. Je voudrais d’abord essayer cette configuration avec toutes les règles de pare-feu désactivées:

iptables -F

3
Benoit

J'ai eu un problème similaire, mais mon fichier d'interface était vide comme ceci:

# The loopback network interface
auto lo
iface lo inet loopback

J'ai réussi à résoudre le problème en déplaçant/supprimant le fichier de connexion Wired trouvé: /etc/NetworkManager/system-connections/Wired connection 1

Après le redémarrage, a pu se connecter aux deux réseaux.

2
Maksim Luzik