¿Cómo realizar NAT a diferentes interfaces en Linux?

¿Cómo realizar NAT a diferentes interfaces en Linux?

Tengo un servidor Ubuntu 12.04 con 4 interfaces ethernet, 2 de las cuales se conectan a dispositivos de red no configurables en eth5 y eth6. Solo se puede acceder a cada dispositivo en 192.168.100.1 a través de telnet. Creo que NAT puede proporcionarme una manera de llegar a ambos dispositivos. Otras soluciones son bienvenidas.

Lo que me gustaría hacer es algo como esto: telnet 192.168.1.100traducirlo a 192.168.100.1 en eth5. De manera similar, me gustaría telnet 192.168.1.101traducirlo a 192.168.100.1 en eth6. De esta manera, tengo una especie de alias de IP que utiliza interfaces Ethernet específicas. Sin una solución como esta, obviamente tengo un conflicto de IP.

La mayoría de los tutoriales de NAT que veo tienen que ver con compartir conexiones a Internet. Estoy intentando hacer algo mucho más simple, pero aparentemente no documentado.

¿Algun consejo?

Respuesta1

NAT (oTraducción de Direcciones de Red) trata todas las IP 'internas' como una única IP 'externa' (enmascaramiento de IP) para permitir que múltiples dispositivos locales se conecten a la misma conexión externa (por ejemplo, un enrutador wifi conectado a un módem por cable tiene NAT (y probablemente DHCP) activado para permitir que los dispositivos se conecten a Internet a través de la única IP que le asignó su ISP).

Lo que estás pidiendo (por lo que podría suponer) esalias de IP, esto le permite tener una única interfaz física (digamos eth0) y "asignarle" múltiples IP.

Por ejemplo, digamos que tiene un /etc/sysconfig/network-scripts/eth0archivo de configuración que contiene lo siguiente:

DEVICE=eth0
IPADDR=192.168.1.100
NETMASK=255.255.255.0
NETWORK=192.168.1.0
BROADCAST=192.168.1.255
ONBOOT=yes
NAME="192.168.1.100 (eth0)"
BOOTPROTO=none
USERCTL=no

Este archivo de configuración asignaría la IP del 192.168.1.100dispositivo eth0. Entonces, desde otra máquina podría hacer ping a 192.168.1.100 e irá al dispositivo eth0 de su máquina. Si también desea eth0"ver" el tráfico de la 10.0.0.0red sin agregar un enrutador o iptables/PF a la mezcla, puede asignar un alias a una IP para la eth0interfaz haciendo lo siguiente:

cree un archivo del dispositivo al que desea agregar un alias, en nuestro caso es el eth0archivo de configuración, pero agregue un :X(donde Xestá el número del alias que desea asignar), ejemplo: /etc/sysconfig/network-scripts/eth0:1. Este archivo contendrá la información del alias que desea agregar, por ejemplo:

DEVICE=eth0:1
IPADDR=10.0.0.100
NETMASK=255.255.255.0
NETWORK=10.0.0.0
BROADCAST=10.0.0.255
ONBOOT=yes
NAME="10.0.0.100 (eth0:1)"
BOOTPROTO=none
USERCTL=no

Agregar este archivo de configuración le permitirá comunicarse con ambos 192.168.1.100y 10.0.0.100a través del eth0dispositivo físico.

Si, por otro lado, desea que el tráfico en una interfaz física se reenvíe a otra interfaz física, deberá considerar usar iptablespara hacer esto.

Según su pregunta, está preguntando acerca del envío de tráfico desde 2 IP diferentes ( 192.168.1.100y 192.168.1.101) a 2 NIC separadas ( eth5y eth6) que parecen compartir la misma IP ( 192.168.100.1). No estoy seguro de cómo están configurados actualmente eth5y eth6, pero si están vinculados para "compartir" la misma IP, es posible que no pueda lograr lo que desea con el alias de IP y debería consultar iptables en su lugar.

Espero que esto pueda agregar algo de claridad.

información relacionada