o gateway precisa estar na sub-rede?

14

Eu estava procurando trazer uma interface como esta em / etc / network / interfaces (isso é no debian), com o gateway fora da sub-rede:

iface eth0 inet static
address 10.100.10.99
netmask 255.255.255.0
gateway 10.100.0.1

mas "ifup --verbose eth0" só me dá esta mensagem de erro:

ifconfig eth0 10.100.10.99 netmask 255.255.255.0
 route add default gw 10.100.0.1  eth0
SIOCADDRT: No such process
Failed to bring up eth0

Obviamente, alterar a máscara de rede para 255.255.0.0 funciona perfeitamente.

Isso é possível, ou existe algo mais que é o problema? Existe uma maneira de obter mais informações do ifup? Vejo um post na internet que sugere que deve funcionar.

Kevin G.
fonte

Respostas:

10

Outra maneira de abordar essa questão é: se você não consegue acessar o roteador de gateway padrão em uma rede local, como envia pacotes através dele? Você teria que enviá-los através de outro roteador.

Para alguns antecedentes, lembre-se de que um pacote IP normalmente contém os endereços de origem e destino: de onde vem e para onde deseja ir. Geralmente, cabe aos roteadores decidir como chegar lá.

Portanto, quando você envia seu pacote IP através do roteador de gateway padrão fora da rede, uma das duas coisas precisa acontecer.

  1. O roteador da rede local sabe como acessar o roteador do gateway padrão e concorda com sua idéia de que seu pacote deve ser enviado através do roteador do gateway padrão para chegar ao seu destino. Nesse caso, por que não usar apenas o roteador da rede local como seu gateway padrão?

  2. O roteador da rede local pensa (por padrão) que seu pacote deve ser enviado por outro roteador para chegar ao seu destino. Nesse caso, você precisa ter uma maneira de dizer o contrário. Esse recurso existe e é chamado de "roteamento de origem" ... mas é considerado um risco de segurança, e a maioria dos roteadores está configurada para ignorá-lo.

Finalmente, na minha experiência, a ipferramenta Linux iproute ( ) não permitirá que você adicione uma rota se o gateway não puder ser acessado diretamente por meio de uma interface de rede local.

Algumas referências de roteamento de origem:

Jander
fonte
4

O gateway padrão deve estar na mesma sub-rede que o endereço IP do dispositivo. Normalmente, é o endereço IP do roteador da rede à qual você está se conectando. Na página da Wikipedia na rota padrão :

Nas redes de computadores, um gateway é um nó (um roteador) em uma rede TCP / IP que serve como ponto de acesso para outra rede. Um gateway padrão é o nó na rede do computador que o software de rede usa quando um endereço IP não corresponde a nenhuma outra rota na tabela de roteamento. Na verdade, é o endereço IP do roteador ao qual a rede do seu PC está conectada.

Nas configurações de computação doméstica, um ISP geralmente fornece um dispositivo físico que conecta o hardware local à Internet e serve como gateway. Esses dispositivos incluem roteadores DSL e roteadores a cabo.

Nos sistemas organizacionais, um gateway é um nó que roteia o tráfego de uma estação de trabalho para outro segmento de rede. O gateway padrão geralmente conecta as redes internas e a rede externa (Internet). Em tal situação, o nó do gateway também pode atuar como um servidor proxy e um firewall. O gateway também está associado a um roteador, que usa tabelas de cabeçalhos e encaminhamento para determinar para onde os pacotes são enviados, e a um switch, que fornece o caminho real para o pacote que entra e sai do gateway.

Em outras palavras, um gateway padrão fornece um ponto de entrada e um ponto de saída em uma rede.

slm
fonte
Mas se houver uma rota estática para um endereço, esse gateway não poderia ser o padrão, mesmo que não esteja na sub-rede? (Estamos entrando em detalhes técnicos aqui e longe das boas práticas).
Kurtm 31/10/2013
A rota estática pode ser uma rota, mas não o gateway padrão (como eu a entendo).
slm
2
A rota padrão DEVE estar na mesma sub-rede. A rota padrão é como você obtém todo o tráfego da sua sub-rede e para outra. Portanto, se você estiver tentando obter tráfego de 10.100.10.99 a 10.100.0.1, precisará de um "gateway" para acessar as redes 10.100.10.0/24 a 10.100.0.0/24. 10.100.0.1 não pode ser seu gateway padrão porque você não pode acessá-lo por padrão. No entanto, pode ser "um" gateway. E pode até ser "o" gateway para o qual você envia todo o seu tráfego (depois que você diz como chegar à outra rede).
coteyr
1
@coteyr: e ainda tenho esse trabalho. Se houver uma rota estática para a outra sub-rede e o gateway padrão estiver nessa sub-rede, eu posso adicionar a rota padrão e executar ping / fazer conexões sem problemas. Pode ser menos eficiente, mas funciona.
siride
Eu diria: uma rota é como você obtém todo o tráfego da sua sub-rede e para outra. Ao especificar uma rota, você pode especificar um segmento IP (ou uma super-rede - uma combinação de segmentos) e um gateway para acessar esse segmento / super-rede, ou pode especificar "para tudo o mais não mencionado na tabela de roteamento, use este Porta de entrada". A última é a rota padrão e o gateway usado é chamado de gateway padrão. Quando você possui apenas uma NIC, quase sempre precisa apenas da rota padrão; mas com várias NICs, você também pode precisar de outras rotas.
TelcoM
2

Estou tendo o mesmo problema em vários locais com o serviço ADSL da Verizon. O "gateway padrão" está em uma sub-rede diferente. No nosso caso, precisamos de endereços IP públicos para usar uma VPN de site para site ipsec. Para fazer isso, precisamos colocar o gateway DSL no modo de ponte, para que o endereço IP público esteja no nosso roteador, em vez do gateway DSL.

A maioria dos provedores é capaz de fazer isso com bastante facilidade, mas a Verizon parece ter dificuldade. Usando um gateway DSL D-Link 2750B, colocando-o no modo de ponte, os técnicos da Verizon estão me dizendo para usar o gateway padrão em uma sub-rede separada. Eu testei usando meu laptop com Windows 7 e, embora o Windows dê uma mensagem de erro com o efeito "Você é um idiota e isso é uma péssima idéia - AINDA deseja salvar essa configuração? Sim / Não", ele funciona .

No entanto, software com verificações de integridade mais rigorosas parece protegê-lo de si mesmo ...

Ainda assim, não posso deixar de pensar que deve haver uma maneira de fingir ...

Stuart Smith
fonte
1

É possível, mas conforme explicado no artigo vinculado, sua máquina já deve saber como chegar ao endereço do gateway. Isso significa que você precisará usar post-uppara adicionar manualmente as rotas em vez degateway

iface eth0 inet static
  address 10.100.10.99
  netmask 255.255.255.0
  post-up ip route 10.100.0.0/24 via 10.100.10.x # router that can route you to the 10.100.0.0/24 network
  post-up ip route 0.0.0.0 via 10.100.0.1
jordanm
fonte
2
Esses ip routecomandos falharão se você experimentá-los ... mesmo se você adicionar o addcomando ausente .
Jander