Como NAT para diferentes interfaces no linux?

0

Eu tenho um servidor Ubuntu 12.04 com 4 interfaces ethernet, 2 das quais se conectam a dispositivos de rede não configuráveis em eth5 e eth6. Cada dispositivo só pode ser acessado em 192.168.100.1 via telnet. Eu acredito que o NAT pode me fornecer uma maneira de alcançar os dois dispositivos. Outras soluções são bem vindas.

O que eu gostaria de fazer é algo assim: telnet 192.168.1.100 e tê-lo traduzido para 192.168.100.1 no eth5. Da mesma forma, eu gostaria de telnet 192.168.1.101 e tê-lo traduzir para 192.168.100.1 em eth6. Dessa forma, tenho um tipo de alias de IP que usa interfaces Ethernet específicas. Sem uma solução como essa, obviamente tenho um conflito de IP.

A maioria dos tutoriais de NAT que vejo tem a ver com o compartilhamento de conexão com a Internet. Estou tentando fazer algo muito mais simples, mas aparentemente não documentado.

Alguma dica?

    
por hamx0r 26.01.2014 / 06:25

1 resposta

0

NAT (ou tradução de endereços de rede ) trata todos os IPs "internos" como um único IP "externo" (mascaramento de IP) ) para permitir que vários dispositivos locais se conectem à mesma conexão externa (por exemplo, um roteador Wi-Fi conectado a um modem a cabo tem NAT (e provavelmente DHCP) ativado para permitir que os dispositivos se conectem à Internet através do IP único atribuído a você ISP).

O que você está pedindo (pelo que eu poderia supor) é aliasing de IP , isso permite que você tenha um único interface física (digamos eth0 ) e 'atribua' vários IP's.

Por exemplo, digamos que você tenha um arquivo /etc/sysconfig/network-scripts/eth0 config com o seguinte:

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 arquivo de configuração atribui o IP de 192.168.1.100 ao dispositivo eth0 . Então, a partir de outra máquina você poderia pingar 192.168.1.100 e iria para o dispositivo eth0 da sua máquina. Se você quiser que eth0 também 'veja' o tráfego da rede 10.0.0.0 sem adicionar um roteador ou iptables / PF no mix, você pode aliasizar um IP à interface eth0 fazendo o seguinte:

crie um arquivo do dispositivo ao qual você deseja adicionar um alias, no nosso caso, é o arquivo eth0 config, mas adicione um :X (onde X é o número do alias que você deseja atribuir) exemplo: /etc/sysconfig/network-scripts/eth0:1 . Este arquivo conteria então as informações do alias que você deseja adicionar, por exemplo:

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

Adicionar este arquivo de configuração permitirá que você se comunique com 192.168.1.100 e 10.0.0.100 por meio do dispositivo eth0 physical.

Se, por outro lado, você quiser que o tráfego em uma interface física seja encaminhado para outra interface física, será necessário considerar usar iptables para fazer isso.

Com base na sua pergunta, você está perguntando sobre o envio de tráfego de dois IPs diferentes ( 192.168.1.100 e 192.168.1.101 ) para duas NICs separadas ( eth5 e eth6 ) que parecem compartilhar o mesmo IP ( 192.168.100.1 ). Não tenho certeza de como seus eth5 e eth6 estão atualmente configurados, mas se eles estiverem em uma ligação para 'compartilhar' o mesmo IP, talvez você não consiga alcançar o que deseja com o aliasing de IP e deve verificar iptables em vez disso.

Espero que isso possa adicionar alguma clareza.

    
por 26.01.2014 / 07:48