Linux como um roteador entre três redes (uma é a Internet)

1

Eu tenho uma caixa do Linux que está roteando entre duas redes X.X.3.0 e X.X.4.0, eu quero que seja capaz de conectar essas redes à Internet.

Eu li aqui na grande resposta do @ Kevin que, para poder fazer isso Eu tenho que usar NAT, que significa iptables, meu servidor agora não usa iptables, então eu preciso encontrar o comando certo para habilitar isso.

minha rede pode ser descrita assim: %código% A eth2 está conectada diretamente ao roteador.

As duas redes locais podem falar umas com as outras, mas ninguém pode nem mesmo fazer ping para um endereço IP público. Eu tentei sniff os pacotes no roteador, quando estou emite o comando ping para um endereço IP público em uma máquina na rede .3.x, mas tanto quanto eu posso dizer que há um problema, e parece estar com um interminável ARP solicitações da eth0 int sobre quem tem o 3.x endereço IP. Parece que eu tenho que habilitar no roteador para se comportar como um NAT também. Eu fiz uma pesquisa e não consigo descobrir o comando certo que eu preciso para emitir com o iptables, embora eu tentei os comandos que mencionaram aqui e aqui . Eu tive a capacidade de rotear entre as duas redes locais sem usar o iptables, e desde que eu não preciso, eu prefiro não usá-lo, a menos que seja impossível fazer NAT sem ele (nesse caso eu prefiro iptable que qualquer outro programa).

para resumir a pergunta: 1. Eu preciso ser capaz de que todas as três redes sejam capazes de falar umas com as outras. 2. Eu prefiro não usar iptables (se for possível) ou qualquer outro programa adicionado. 3. Isso é tudo.

Obrigado.

    
por Hanan N. 24.11.2011 / 20:51

3 respostas

1

As duas redes locais podem se comunicar entre si significa que você ativou o ip_forward. Se as redes locais não puderem fazer ping no endereço IP público, você precisará fazer um mascaramento.

Você é capaz de pingar o endereço IP público desta caixa linux? Se não, então deve haver algum outro problema. Talvez você precise configurar seu roteador em modo de ponte (é apenas um palpite).

Eu suponho que sua máquina linux pode pingar ip público e não há ip público configurado em eth0. Assim, suas máquinas de rede interna não podem ir para fora da Internet com o endereço IP privado, então você precisa fazer o natting. Tente usar o iptables porque é bem simples.

iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE

Se você não tiver o iptables instalado em seu sistema. Deve haver algum firewall instalado por padrão. Qual distro você está usando?

    
por 24.11.2011 / 21:12
0

Os endereços IP privados não são válidos para uso na Internet e não podem ser roteados. Eles podem ser usados apenas localmente.

Para ativar o acesso à Internet, você precisa ativar o encaminhamento de IP que parece ser feito a partir da sua descrição. Em segundo lugar, você precisa usar o NAT. Na maioria das vezes, o seu ISP faz o NATing por você. Isso pode mudar dependendo do tipo de conexão e dos IPs atribuídos.

Para a ferramenta, eu não acho que existe uma ferramenta melhor que o iptables para fazer isso no Linux.

    
por 24.11.2011 / 21:13
0

Depois de algumas pesquisas e recomendações da sua equipe, cheguei à conclusão de que iptable é a melhor maneira de fazer NATing (masqurating), então eu fiz assim:

# Limpe todas as configurações atuais do iptables com:

$>iptables -F e $>iptables -t nat -F

Depois tente pingar entre as redes locais, ele deve funcionar com os padrões do iptables, caso não digite isto:

$>iptables -P INPUT ACCEPT

$>iptables -P FORWARD ACCEPT

$>iptables -P OUTPUT ACCEPT

Em seguida, emita o comando acima do @Sachin Divekar (substitua o ethX pela sua interface da conexão com a internet):

$>iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE

Teste, deve funcionar. Então você deve salvar esta configuração com:

$>iptables-save > /etc/sysconfig/iptables

Feito.

    
por 25.11.2011 / 06:49