NOTA: Se os dispositivos clientes (
computer B
neste exemplo) quiserem obter Internet através do computador gateway, talvez ainda precisem configurar a resolução do servidor de nomes. Isso não é explicado aqui (um gateway não serve necessariamente à Internet).
Estou tentando entender os fundamentos do roteamento de redes.
Então, estou experimentando minha LAN (não preciso de internet no momento, apenas comunicações de LAN).
Eu sei que a configuração da rede é uma coisa bastante complexa, mas estou apenas tentando fazer com que um computador (digamos A) atue como um gateway para outro (digamos B) (ambos executando o Ubuntu Linux).
Eu só preciso que B seja capaz de acessar o roteador, que é acessível apenas para A.
Este é o caso:
Router for computer A --> 192.168.0.1
Computer A - eth0 --> 192.168.0.2
Computer A - eth1 --> 192.168.1.1
Computer B - eth0 --> 192.168.1.2
O computador A se conecta bem ao roteador .
Os computadores A e B se conectam bem (ping, SSH ... etc) entre eles .
O computador B não consegue acessar o roteador do computador A.
Eu estava pensando que apenas adicionar B no computador A como gateway padrão e ativar o encaminhamento de IP em A tornaria B capaz de acessar o roteador para A:
luis@ComputerB:~$ sudo route add default gw 192.168.1.1
luis@ComputerB:~$ sudo routel
target gateway source proto scope dev tbl
127.0.0.0 broadcast 127.0.0.1 kernel link lo local
127.0.0.0 8 local 127.0.0.1 kernel host lo local
127.0.0.1 local 127.0.0.1 kernel host lo local
127.255.255.255 broadcast 127.0.0.1 kernel link lo local
192.168.1.0 broadcast 192.168.1.2 kernel link eth0 local
192.168.1.2 local 192.168.1.2 kernel host eth0 local
192.168.1.255 broadcast 192.168.1.2 kernel link eth0 local
default 192.168.1.1 eth0
169.254.0.0 16 link eth0
192.168.1.0 24 192.168.1.2 kernel link eth0
E no Computador A (o gateway intermediário):
root@ComputerA:~$ echo 1 > /proc/sys/net/ipv4/ip_forward
O computador B ainda pode executar ping no computador A, mas o roteador para A não responde:
luis@ComputerB:~$ ping 192.168.0.1
PING 192.168.0.1 (192.168.0.1) 56(84) bytes of data.
^C
(Sem resposta de ping)
Esse é o procedimento correto para fazer um computador executando Linux funcionar como um gateway para outro computador de uma maneira simples?
fonte
Para que o roteamento funcione corretamente entre dois computadores Linux que atuam como gateways, há várias coisas que precisam estar em vigor:
As rotas devem ser adicionadas às duas interfaces no roteador.
Um gateway local deve ser especificado para a rede remota nos dois gateways. Isso permite que os computadores na rede local saibam para onde enviar pacotes para a rede remota. O gateway deve ser o endereço IP do computador que enviará pacotes para a rede remota.
O mascaramento de IP deve estar ativado para permitir que o NAT funcione entre os gateways.
Pode ser necessário especificar uma origem e um destino, pois você está usando a mesma interface para mascarar:
e o outro gateway:
Para cada gateway, o tráfego de rede local deve ser aceito na interface apropriada como esta:
ou
Existem inúmeros links e perguntas semelhantes que podem ser referenciadas para solucionar os problemas que você está tendo.
O que parece estar errado nesse caso específico é que a configuração de rota e gateway não está concluída nos computadores e a Conversão de Endereço de Rede (NAT) não foi ativada usando iptables, permitindo que os gateways transportem a solicitação de um computador na outra sub-rede em nome deles.
Isso também é crítico ao configurar uma conexão à Internet, pois você é responsável por uma extremidade da conexão (por exemplo, usando um computador Linux como gateway para uma conexão PPPoE).
fonte