A maneira mais fácil seria algo assim:
- Desative o DHCP na eth0 ou na interface (desconecte-o no Network Manager ou use
ifdown eth0
, etc.)
-
ip -4 addr add 10.0.0.2/30 dev eth0
-
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:
- É um endereço IP local (ou seja, um endereço IP desta máquina)? Se sim, encaminhe para mim mesmo.
- 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).
- Desça a lista classificada, começando pelo topo, até que algo seja correspondido.
- 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.