Eu tenho dois dispositivos de rede a bordo do meu macbook pro:
- WIFI (en1): usado para tráfego geral. Conecta-se a um ip 192.168.19. * Via DHCP
- LAN (en0): usado para tráfego específico. Conecta-se a um ip 192.168.2.10 como um IP estático. Não se conecta a um roteador, apenas um comutador para conexão de
roteamentodireto .
Tenho 4 endereços IP que preciso acessar na LAN:
- 192.168.2.1
- 192.168.2.21
- 192.168.2.20
- 192.168.2.30
O restante do tráfego precisa ir para o Wi-Fi. Tentei configurar uma tabela de roteamento para os endereços IP específicos, mas só consegui bagunçar minha rede. Não me aventuro no mundo das redes com muita frequência, mas esse foi o último comando que tenho tentado:
sudo route add -host 192.168.2.30 -interface en0
Este comando acabou com a minha capacidade de usar ping. Ele me disse que o ping não podia alocar memória (isso é possível)? Também matou meu acesso wifi. O logoff e o logon novamente resolveram o problema. Realmente não me importo de tornar essa solução permanente, por isso estou bem com um roteamento temporário.
EDITAR:
Se atualmente estou tentando:
sudo route flush
sudo route add default 192.168.19.1
Isso faz com que tudo funcione por cerca de um minuto. Mas, após esse minuto, "esquece" o roteamento para WiFi, mantendo o roteamento da LAN (en0). Se eu desconectar e reconectar meu cabo LAN (en0), o processo funcionará por mais um minuto.
EDIT 2:
Estes foram alguns dos comandos inseridos como uma solicitação por d34dh0r53.
$ netstat -rn
Routing tables
Internet:
Destination Gateway Flags Refs Use Netif Expire
default 192.168.2.1 UGSc 4 0 en0
default 192.168.19.1 UGScI 0 0 en1
127 127.0.0.1 UCS 0 1 lo0
127.0.0.1 127.0.0.1 UH 5 1429023 lo0
169.254 link#4 UCS 0 0 en0
192.168.2 link#4 UCS 4 0 en0
192.168.2.1 0:27:22:2e:5f:1a UHLWIi 2 0 en0 1199
192.168.2.10 127.0.0.1 UHS 0 0 lo0
192.168.2.30 90:a2:da:0:f5:63 UHLWIi 1 1433 en0 1191
192.168.2.255 ff:ff:ff:ff:ff:ff UHLWbI 0 7 en0
192.168.19 link#5 UCS 2 0 en1
192.168.19.1 3e:d0:f8:aa:28:56 UHLWIi 0 2 en1 1192
192.168.19.3 127.0.0.1 UHS 1 0 lo0
192.168.19.255 ff:ff:ff:ff:ff:ff UHLWbI 0 5 en1
Internet6:
Destination Gateway Flags Netif Expire
::1 link#1 UHL lo0
fe80::%lo0/64 fe80::1%lo0 UcI lo0
fe80::1%lo0 link#1 UHLI lo0
fe80::%en0/64 link#4 UCI en0
fe80::226:4aff:fe00:b68a%en0 0:26:4a:0:b6:8a UHLI lo0
fe80::%en1/64 link#5 UCI en1
fe80::226:bbff:fe03:cbd%en1 0:26:bb:3:c:bd UHLI lo0
ff01::%lo0/32 fe80::1%lo0 UmCI lo0
ff01::%en0/32 link#4 UmCI en0
ff01::%en1/32 link#5 UmCI en1
ff02::%lo0/32 fe80::1%lo0 UmCI lo0
ff02::%en0/32 link#4 UmCI en0
ff02::%en1/32 link#5 UmCI en1
$ traceroute -n 192.168.2.1
traceroute to 192.168.2.1 (192.168.2.1), 64 hops max, 52 byte packets
1 192.168.2.1 2.499 ms 3.392 ms 3.829 ms
$ traceroute -n google.com
traceroute: unknown host google.com
fonte
Respostas:
Você não precisa criar regras de roteamento manualmente para essa configuração, desde que todos os endereços 192.168.2.x com os quais você deseja se comunicar estejam na interface com o endereço 192.168.2.x.
Uma vez feito isso,
netstat -rn
ainda deve mostrar as rotas para ambas as sub-redes, mas apenas uma rota "link # 4" no lugar da rota padrão até 192.168.2.1.Se você não deseja uma rota padrão, deixe a caixa do roteador em branco. O valor na caixa do roteador é usado apenas para configurar uma rota padrão por meio dessa interface de rede e não é usado para mais nada.
fonte
192.168.2.1
no campo do roteador para corresponder a um "roteador" no lado da LAN. Eu pensei que era necessário, mas agora vejo que assumiu a rota padrão para o tráfego geral.O problema é que sua
en0
interface está adicionando uma rota padrão que tem precedência sobre a rota padrão estabelecida pela interface 802.11. Não sei exatamente por que, mas é o fato de o BSD preferir uma interface com fio a uma interface sem fio ou de uma interface configurada estaticamente em vez de uma interface dinamicamente configurada. Você pode dizer que aen0
rota padrão está sendo usada pelaRefs
coluna;Refs
é uma métrica que indica o número atual de usos ativos da rota, para que possamos ver que está recebendo todo o tráfego.A solução é remover essa rota, preferencialmente permanentemente da tabela de roteamento, para que o tráfego destinado a hosts diferentes daqueles em suas redes locais atravesse o gateway padrão estabelecido pelo DHCP
en1
. A primeira coisa que gostaria de verificar é no painel de configuração paraen0
garantir que você não inseriu nada norouter
campo. As informações nesse campo são adicionadas como um gateway padrão. Se isso não funcionar, precisamos excluir manualmente a rota, o motivo queroute flush
não funciona é que acredito que ele diz ao OS X para recarregar suas informações de roteamento dos arquivos de configuração da interface, revertendo sua alteração após um curto período de tempo. O comando a seguir deve remover a rota padrão para oen0
até que a rede seja reiniciada ou o sistema seja IPL:Se você deseja tornar essa alteração permanente, você pode: a) criar um serviço no
/Library/StartupItems
qual parece muito trabalho para mim ou b) adicionar essa linha a/etc/rc.local
um comando como:Pode ser necessário adicionar um
sleep <number_of_seconds>
comando antes dessa linha/etc/rc.local
para evitar a execução do comando antes que as interfaces estejam totalmente ativadas e a tabela de roteamento estabelecida.Espero que isso ajude e boa sorte!
fonte
192.168.2.1
foi o problema, mas @rakslice descobriu que eu cometi um erro ao inserir minhas informações de roteamento para a conexão en0. Coloquei o endereço IP192.168.2.1
no campo do roteador acreditando que era necessário. Depois de remover o ip do roteador padrão, também removi a rota padrão incorreta para192.168.2.1
. Mais uma vez, obrigado pela sua ajuda.Você deseja definir seu IP Wifi como gateway padrão e remover qualquer gateway padrão (ou encaminhar para 0.0.0.0) conectado à LAN ou 192.168.2.0/24.
Obviamente, isso é mais fácil se você puder configurar o en1 para um IP fixo que funcionará com o wifi.
Pode ser necessário adicionar 192.168.2.10 como uma rota para a rede 192.168.2.0/24. No entanto, isso deve ser automático, pois pode dizer que 192.168.2.0/24 está diretamente conectado pelo virtual do que você atribuiu à interface.
Portanto, o tráfego para qualquer 192.168.2.X sairá do 192.168.2.10 e o tráfego para qualquer outro lugar sairá do endereço IP do seu en1.
fonte
remove any default gateway connected to the LAN
.sudo route del default 192.168.2.10
?, não sei exatamente como fazê-lo no freebsd / mac osx, mas deve ser semelhante.sudo route delete default 192.168.2.10
. Ping ainda está ativo. No entanto, ele encerra o acesso ao tráfego wifi excluindo o ip do roteador.