Tengo un sistema con dos NIC. Esta máquina y algunos dispositivos que lo acompañan se moverán y se conectarán a diferentes LAN o, a veces, se usará el acceso telefónico.
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
Estoy usando ifconfig para subir o bajar interfaces (excepto con ppp0, que es manejado por KPPP).
Si primero menciono eth1, obtiene una dirección de su DHCP y obtiene la puerta de enlace y eso se agrega al enrutamiento para que no haya problemas para llegar a la LAN e Internet.
Si presento eth0 primero o segundo, obtiene su dirección y establece la puerta de enlace predeterminada dentro de su espacio de direcciones (en el rango de 10.xxx). Si saco eth0 primero y eth1 segundo, la puerta de enlace predeterminada todavía se mantiene dentro del rango 10.xxx.
Así que no importa lo que haga, eth0 anulará eth1 y "reclamará" la puerta de enlace en el enrutamiento.
¿Hay alguna manera de evitar que eth0 reclame la puerta de enlace o para asegurarse de que eth1 (si aparece el segundo) usa su puerta de enlace? ¿O puedo priorizar de alguna manera una clasificación de la puerta de enlace de la interfaz que se debe usar sobre las demás?
Básicamente quiero asegurarme de que se use la puerta de enlace del espacio de direcciones predeterminado de eth1 si está activa, y si no, se usa la puerta de enlace predeterminada de ppp0. Me gustaría poder evitar que eth0 tenga la puerta de enlace predeterminada.
fuente
ifconfig
cause cualquier tipo de interacción DHCP. Típicamenteifup
hará esto, comenzandodhclient
. ¿Es posible que sus interfaces eth * estén siendo activadas por el proceso de arranque del sistema, digamos/etc/init.d/network
, o por NetworkManager?Respuestas:
La configuración del servidor DHCP es incorrecta. No debe enviar una opción de puerta de enlace predeterminada cuando no puede proporcionar enrutamiento al resto del mundo. Si envía esa opción, cualquier cliente puede suponer que puede enviar paquetes para cualquier destino fuera de enlace a la puerta de enlace predeterminada especificada.
Por lo tanto, su casilla es correcta al usar la puerta de enlace predeterminada de eth0 si DHCP se lo indica. La solución es eliminar la mala opción de su servidor DHCP.
fuente
Enfrenté un problema similar en Raspbian (supongo que la solución a continuación también será aplicable a Debian). Raspberry Pi 3 tiene 2 NIC integradas: Wi-Fi y Ethernet. Los uso a ambos, son wlan0 y eth0, respectivamente. wlan0 está conectado a la red Wi-Fi de mi hogar y el acceso a internet viene a través de esta interfaz. Obtiene su configuración a través de DHCP desde el enrutador de mi casa. eth0 está conectado directamente a mi PC con Windows y tiene asignada una IP estática . No había acceso a Internet a través de eth0, ya que no lo configuré en mi PC con Windows.
En Raspbian, el demonio dhcpcd es responsable de configurar las interfaces de red. Para configurar la IP estática en la interfaz eth0, se agregaron las siguientes líneas al final de
/etc/dhcpcd.conf
:Con esta configuración, dhcpcd creó 2 rutas predeterminadas y la ruta a través de eth0 tenía mayor prioridad que a través de wlan0:
Así que no tenía acceso a Internet, porque el sistema intentó enrutarlo a través de eth0 y no tenía acceso a Internet, como mencioné anteriormente.
Para resolver el problema, utilicé la
nogateway
opción en la/etc/dhcpcd.conf
interfaz for eth0. Entonces, la configuración específica de eth0 comenzó a verse así:Después de guardar esta configuración y reiniciar, no había una ruta predeterminada a través de eth0:
Apareció el acceso a Internet y se resolvió el problema.
fuente
nogateway
es el camino a seguir en las últimas distribuciones de DebianEn RHEL6 / Fedora 22 se ha probado lo siguiente.
En / etc / sysconfig / network-scripts / ifcfg-eth1 agregue la línea:
Reemplace eth1 con el nombre de la interfaz donde no se desea el enrutamiento predeterminado.
Esto también se puede hacer a través de la GUI de Network Manager marcando la casilla "Usar esta conexión solo para recursos en su red" en la parte inferior de la pestaña IPv4.
DEFROUTE = no evita la adición de la ruta predeterminada (destino 0.0.0.0) a la tabla de enrutamiento cuando la interfaz está habilitada. es decir. No se agregará la siguiente entrada.
fuente
ok, entonces lo que quiere es que la máquina nunca muestre una puerta de enlace predeterminada cuando aparezca eth0 y obtenga su dirección a través de DHCP.
Aquí está la solución:
Editar archivo:
y llenar con:
antes de:
después de ifdown eth0, ifup eth0:
fuente
Puede editar el archivo dhcpclient.conf y no solicitar ninguna ruta predeterminada del servidor DHCP remoto.
Una pequeña muestra de lo que he hecho y está funcionando para mi caso.
fuente