No estoy familiarizado con CentOS y necesito ayuda para realizar el enrutamiento. Tengo una caja CentOS con 3 NIC.
eth0 Link encap:Ethernet
inet addr:10.50.121.16 Bcast:10.50.121.255 Mask:255.255.255.0
eth1 Link encap:Ethernet
inet addr:10.50.128.134 Bcast:10.50.128.255 Mask:255.255.255.0
eth2 Link encap:Ethernet
inet addr:10.50.140.97 Bcast:10.50.140.255 Mask:255.255.255.0
eth0 era una interfaz existente y tiene la ruta predeterminada, agregué eth1 y eth2. Hay puertas de enlace en los segmentos eth1 y eth2 (la dirección .1 en ambos). Necesito tener algunos flujos de red entre las NIC eth1 y eth2 (a través de sus respectivas puertas de enlace) para realizar algunas pruebas. Entonces, ¿supongo que necesito configurar el enrutamiento de políticas para esto?
Editar: Lamento ser claro, no estoy diciendo que esté intentando enrutar paquetes entre las dos nuevas interfaces. Necesito enviar algunos paquetes desde la IP de eth1 a la IP de eth2 a través de alguna infraestructura (simulando así una conversación entre vlan de eth1 y vlan de eth2). Entonces quiero hacer esto eth1 -> eth1-vlan-router -> ??? -> eth2-vlan-router->eth2 y luego poder responder usando la ruta inversa. Mi culpa por no ser del todo claro aquí.
Respuesta1
Modifique /etc/sysctl.conf
y habilite el enrutamiento ipv4.
net.ipv4.ip_forward = 1
Luego ejecute sysctl -p
para aplicar la configuración.
Para mostrar el valor actual de net.ipv4.ip_forward
, utilice:
sysctl net.ipv4.ip_forward
Respuesta2
No podrá hacer esto utilizando API de red estándar.
La pila de red de Linux utiliza el llamadomodelo de anfitrión débil, lo que implica en particular que cualquier dirección asignada a una interfaz local se considera local. Si intenta enviar un paquete a una interfaz local, se realizará un bucle local y nunca llegará a la red.
Si bien probablemente puedas hackear algo usando sockets sin formato, la mejor solución probablemente sea usar un segundo host, tal vez implementado como una máquina virtual.