Os pacotes devem ir em ambas as direções, portanto, muitos tipos de alterações de configuração precisam ser feitos em ambos os lados.
Por exemplo, se você alterar a máscara de rede para / 23 (255.255.254.0), não será suficiente fazê-lo no dispositivo A - sim, ela poderá acessar o dispositivo B diretamente, mas onde o dispositivo B enviará um resposta? Se B ainda achar que está em um / 24, ele continuará tentando enviar uma resposta por meio de um gateway.
Da mesma forma: mesmo se você adicionar uma rota correta para o dispositivo B, isso não diz ao dispositivo B para onde enviar uma resposta para o dispositivo A. Ele ainda usará o que já sabe.
Supondo que você não pode reconfigurar o dispositivo B, mas pelo menos ler sua configuração, há 1½ maneiras de fazer isso funcionar.
-
Se você souber qual endereço IP do "gateway padrão" está configurado no dispositivo incorreto, adicione esse endereço na interface da LAN do seu roteador - ao lado do endereço existente. (Isso pode ser chamado de "alias" em alguns roteadores, ou um "IP virtual" em outros.)
Por exemplo, se o dispositivo quiser usar 192.168.1.254 como seu gateway:
ifconfig en0 192.168.1.254 netmask 255.255.255.0 alias # for FreeBSD ip addr add 192.168.1.254/24 dev eth0 # for Linux
O outro endereço comum é 192.168.1.1. Uma maneira de descobrir o endereço correto é procurar o que o ARP solicita que o dispositivo está fazendo.
-
Se o dispositivo não tiver nenhum gateway , mas você souber pelo menos seu tamanho de sub-rede, você pode 1) fazer o acima com algum endereço arbitrário na mesma sub-rede, e 2) configurar o roteador para que ele masqueie (SNAT) todas as comunicações.
Dessa forma, o dispositivo pensará que está se comunicando apenas com sua própria sub-rede.
Não sei como fazer isso, mas envolve as regras
pf
ouiptables
NAT.