J'ai un système avec deux NIC dessus. Cette machine et quelques appareils qui l'accompagnent seront déplacés et connectés à différents LAN ou parfois elle utilisera une connexion à distance.
eth0:
- 10.x.x.x address space
- no internet gateway
- only a few devices
eth1 (when used):
- 172.16.x.x or 192.168.x.x or other address spaces
- access to the gateway from LAN to internet
ppp0 (when used):
- internet access through dialup using KPPP
J'utilise ifconfig pour monter ou descendre des interfaces (sauf avec ppp0, qui est géré par KPPP).
Si j'évoque eth1 en premier, il obtient une adresse de son DHCP et obtient la passerelle et cela est ajouté au routage donc il n'y a aucun problème pour atteindre le LAN et Internet.
Si j'affiche eth0 en premier ou en second, il obtient son adresse et définit la passerelle par défaut dans son espace d'adressage (dans la plage 10.xxx). Si j'évoque eth0 en premier et eth1 en second, la passerelle par défaut est toujours maintenue dans la plage 10.xxx.
Donc, peu importe ce que je fais, eth0 remplacera eth1 et "revendiquera" la passerelle dans le routage.
Existe-t-il un moyen d'empêcher eth0 de revendiquer la passerelle ou de s'assurer que eth1 (s'il est affiché en 2e) utilise sa passerelle? Ou puis-je en quelque sorte prioriser un classement de la passerelle de l'interface à utiliser par rapport aux autres?
Je veux essentiellement m'assurer que la passerelle d'espace d'adressage par défaut d'eth1 est utilisée si elle est active, et sinon, la passerelle par défaut de ppp0 est utilisée. Je voudrais pouvoir empêcher eth0 d'avoir jamais la passerelle par défaut.
la source
ifconfig
provoque toute sorte d'interaction DHCP. Leifup
fera généralement en commençantdhclient
. Vos interfaces eth * sont-elles éventuellement mises en place par le processus de démarrage du système, par exemple/etc/init.d/network
, ou par NetworkManager?Réponses:
La configuration du serveur DHCP est incorrecte. Il ne doit pas envoyer d'option de passerelle par défaut lorsqu'il ne peut pas fournir de routage vers le reste du monde. S'il envoie cette option, tout client peut supposer qu'il peut envoyer des paquets pour n'importe quelle destination hors liaison à la passerelle par défaut spécifiée.
Donc, votre box a raison d'utiliser la passerelle par défaut de eth0 si DHCP le lui dit. La solution consiste à supprimer la mauvaise option de votre serveur DHCP.
la source
J'ai rencontré un problème similaire sur Raspbian (je suppose que la solution ci-dessous sera également applicable à Debian). Le Raspberry Pi 3 dispose de 2 cartes réseau intégrées: Wi-Fi et Ethernet. J'utilise les deux, ils sont respectivement wlan0 et eth0. wlan0 est connecté à mon réseau Wi-Fi domestique et l'accès à Internet passe par cette interface. Il obtient ses paramètres via DHCP à partir de mon routeur domestique. eth0 est connecté directement à mon PC Windows et possède une adresse IP statique . Aucun accès Internet via eth0 n'était disponible car je ne l'ai pas configuré sur mon PC Windows.
Dans Raspbian, le démon dhcpcd est responsable de la configuration des interfaces réseau. Afin de définir une adresse IP statique sur l'interface eth0, les lignes suivantes ont été ajoutées à la fin de
/etc/dhcpcd.conf
:Avec ces paramètres, dhcpcd a créé 2 routes par défaut et la route via eth0 avait une priorité plus élevée que celle via wlan0:
Je n'avais donc pas accès à Internet, car le système a essayé de le router via eth0 et il n'avait pas accès à Internet, comme je l'ai mentionné ci-dessus.
Pour résoudre le problème, j'ai utilisé l'
nogateway
option dans l'/etc/dhcpcd.conf
interface for eth0. La configuration spécifique à eth0 a donc commencé à ressembler à ceci:Après avoir enregistré cette configuration et redémarré, il n'y avait pas de route par défaut via eth0:
Un accès Internet est apparu et le problème a été résolu.
la source
nogateway
c'est la voie à suivre dans les dernières distributions DebianSur RHEL6 / Fedora 22, les éléments suivants ont été testés.
Dans / etc / sysconfig / network-scripts / ifcfg-eth1, ajoutez la ligne:
Remplacez eth1 par le nom de l'interface où le routage par défaut n'est pas souhaité.
Cela peut également être fait via l'interface graphique de Network Manager en cochant la case "Utiliser cette connexion uniquement pour les ressources sur son réseau" au bas de l'onglet IPv4.
DEFROUTE = no empêche l'ajout de la route par défaut (destination 0.0.0.0) à la table de routage lorsque l'interface est activée. c'est à dire. l'entrée suivante ne sera pas ajoutée.
la source
ok, donc ce que vous voulez, c'est que la machine ne lance jamais une passerelle par défaut quand elle appelle eth0 et obtient son adresse via DHCP.
Voici la solution:
Modifier le fichier:
et remplir avec:
avant:
après ifdown eth0, ifup eth0:
la source
Vous pouvez modifier le fichier dhcpclient.conf et ne demander aucune route par défaut à partir du serveur DHCP distant.
Un petit échantillon de ce que j'ai fait et cela fonctionne pour mon cas
la source