¿Qué dirección IP utiliza una interfaz de red?

¿Qué dirección IP utiliza una interfaz de red?

¿Qué IP utiliza una interfaz cuando el host actúa como cliente?

Digamos que he configurado eth0 con 2 direcciones IP: 192.168.1.7 y 192.168.1.8

El comando de ruta muestra algo como esto:

$ route
Kernel IP routing table
Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
192.168.240.0   0.0.0.0         255.255.240.0   U     256    0        0 eth0
...

Básicamente, esto significa que cuando intento conectarme a cualquier host de la 192.168.240.0red, utiliza la interfaz eth0. Ok, pero... ¿Qué dirección IP de esa interfaz?

Si el host actúa como servidor y un cliente se conecta a mi computadora usando la dirección IP, 192.168.1.7entiendo que eth0 usará 192.168.1.7para comunicarse con el cliente, pero ¿qué pasa si soy yo el cliente?


EDITAR

Las direcciones IP están inventadas, no puedo agregar otra dirección IP a una interfaz en mi WSL de Ubuntu porque aparece este error:

$ ip address add 192.168.1.7/24 dev eth0
RTNETLINK answers: Permission denied

La salida de ip r ses algo como esto:

$ ip r s
none 224.0.0.0/4 dev eth0 proto unspec metric 256
none 255.255.255.255 dev eth0 proto unspec metric 256
none 224.0.0.0/4 dev eth1 proto unspec metric 256
none 255.255.255.255 dev eth1 proto unspec metric 256
...

EDITAR 2

Actualicé a WSL2 y ahora el comando para agregar direcciones IP funciona (con sudo).

$ ip -4 a s dev eth0
4: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mq state UP group default qlen 1000
    inet 192.168.249.181/20 brd 192.168.255.255 scope global eth0
       valid_lft forever preferred_lft forever
    inet 192.168.1.7/24 scope global eth0
       valid_lft forever preferred_lft forever
    inet 192.168.1.8/24 scope global secondary eth0
       valid_lft forever preferred_lft forever

Respuesta1

Para Linux, la respuesta a su pregunta esdado aquí:

La dirección de origen inicial para un paquete saliente se elige de acuerdo con la siguiente serie de reglas.

La aplicación puede solicitar una IP particular, el kernel usará la sugerencia src de la ruta elegida o, a falta de esta sugerencia, el kernel elegirá la primera dirección configurada en la interfaz que se encuentre en la misma red que la dirección de destino o la enrutador nexthop.

Respuesta2

El cliente buscará las RUTAS que coincidan con la dirección a la que intenta conectarse. Si, como en su ejemplo, hay más de una ruta coincidente, seleccionará la entrada de ruta con la métrica más alta y enviará el paquete fuera de la interfaz que se encuentra en la tabla de rutas, utilizando la dirección IP de esa interfaz.

Ha truncado el resultado de la ruta y no ha dicho a qué se estaba conectando, por lo que no puedo decirle qué interfaz será.

En el servidor... bueno, las cosas se ponen un poco más complicadas allí. Tengo hosts Centos y Redhat con múltiples interfaces en la misma subred. Estos responderán en la misma dirección/interfaz a la que se enviaron los paquetes. Pero también tengo sistemas Ubuntu y Debian recientes que revisarán la tabla de enrutamiento para encontrar la interfaz y la dirección a usar, ignorando la dirección en el paquete del cliente. El cliente ignorará los paquetes que regresan de una dirección IP con la que no está hablando.

información relacionada