Use a interface eth para se conectar a um roteador e wlan para a internet

3

No momento, estou tentando configurar um roteador ao qual me conecto (à sua interface da web) usando um cabo Ethernet através da interface eth0 . Esse roteador não tem acesso à internet.

Agora, tenho acesso a outra rede (faixa de IPs diferente e tudo) que tem acesso à Internet através da minha interface sem fio wlan0 .

Gostaria de usar eth0 para conectar-me apenas ao roteador que estou tentando configurar e wlan0 para o restante das conexões. Dessa forma, eu poderia fazer alguma pesquisa ao tentar configurar o roteador.

Tenho certeza de que é possível, com algum tipo de roteamento, mas não consegui encontrar nada que funcione. O problema é que quando eu conecto o cabo Ethernet, o sistema começa a usar essa eth connection para tudo.

Para resumir um pouco:

Assumindo que o endereço do roteador é 10.0.0.1, posso fazer algo para encaminhar o tráfego para 10.0.0.1 através da interface eth0 e qualquer outra coisa através de wlan0 ?

Estou usando o Debian Squeeze.

    
por BorrajaX 28.03.2013 / 18:20

2 respostas

1

Existem algumas opções possíveis aqui.

1

Não use o DHCP para configurar eth0. Use uma configuração estática e não defina um gateway. O DHCP está definindo um gateway padrão do roteador para que sua máquina o use para todo o tráfego. Sem o gateway sendo configurado, ele só usará a interface para conversar com hosts nessa rede

2

Diga ao roteador para não se anunciar como um gateway. Isso não será possível na maioria dos roteadores, então isso pode não ser uma opção.

3

É possível que o debian possa ignorar a configuração do gateway que o roteador anuncia via DHCP, mas eu não uso o Debian, então não tenho certeza. Isso depende do que o debian usa para configurar dispositivos de rede.

4

Também específico do debian, você pode executar um script após a interface ser ativada e excluir a rota do gateway adicionada pelo DHCP.

    
por 28.03.2013 / 18:34
4

A maneira mais fácil seria algo assim:

  1. Desative o DHCP na eth0 ou na interface (desconecte-o no Network Manager ou use ifdown eth0 , etc.)
  2. ip -4 addr add 10.0.0.2/30 dev eth0
  3. ip link set eth0 up

Se preferir o antigo ifconfig , acredito que seja ifconfig eth0 10.0.0.2 netmask 255.255.255.252 up

Alternativa final, se você estiver usando o Network Manager (provavelmente o caso se você configurar sua rede usando uma GUI), configure um perfil para eth0 com um endereço IP estático de 10.0.0.2 e uma máscara de rede de 255.255.255.252. Deixe a rota padrão e os servidores DNS em branco.

Depois de fazer qualquer um desses, você deve poder fazer o ping de 10.0.0.1 e ainda assim chegar ao resto da Internet.

Por que isso funciona?

(Isto é uma simplificação, o roteamento no Linux na verdade tem um lote de complexidade opcional.) Quando o kernel deseja enviar um pacote IP, ele consulta a tabela de roteamento para determinar qual interface ele envia. pacote fora de.

A tabela de roteamento geralmente contém uma rota para a sub-rede local em cada interface. Todos os comandos acima colocam a sub-rede 10.0.0.0/30 em eth0. A / 30 é 4 endereços IP: 10.0.0.0-10.0.0.3 neste caso. Isso inclui convenientemente seu roteador (.1) e sua caixa (.2). Os primeiros endereços (.0="network") e last (.3="broadcast") na maioria das sub-redes têm um significado reservado especial, por isso não podemos usá-los.

Além das rotas para as sub-redes locais, haverá todas as rotas estáticas que você configurou e todas as rotas que vierem dos protocolos de roteamento (que não se aplicam a você ou a 99% das pessoas).

Por fim, haverá uma rota "padrão", que indica para onde enviar o restante do tráfego. Esta rota não é realmente especial, é uma rota para 0.0.0.0/0 - ou seja, o espaço de endereços IPv4 inteiro. É o padrão por causa de como as pesquisas de roteamento funcionam ...

Por padrão, ele verifica nesta ordem:

  1. É um endereço IP local (ou seja, um endereço IP desta máquina)? Se sim, encaminhe para mim mesmo.
  2. Em seguida, classifique todas as rotas da mais específica (sub-rede com o menor número de endereços IP) para a menos específica (sub-rede com a maioria dos endereços IP).
  3. Desça a lista classificada, começando pelo topo, até que algo seja correspondido.
  4. Se nada corresponder, desista e gere erros inacessíveis.

Portanto, sua rota 0.0.0.0/0 é padrão porque é classificada no final da lista. E a sua rota 10.0.0.0/30 será bastante alta na lista, se não no topo. Basicamente funciona como uma exceção - "envie o tráfego para a Internet, a menos que seja para 10.0.0.0/30"

Quais são essas coisas estranhas / 30?

/ X, às vezes chamado de "notação CIDR", é uma maneira rápida de especificar máscaras de rede. Conta o número de bits definidos na metmask. Portanto, uma máscara de rede de 255.255.255.255 (IP único) é / 32, porque todos os bits estão definidos. … 254 (dois IPs) é / 31,… 252 é / 30, todo o caminho até 0.0.0.0 (todos os endereços IPv4) é / 0. O comum 255.255.255.0 é / 24.

    
por 28.03.2013 / 19:03