Adicionando dois gateways padrão no arquivo de interfaces Debian

10

Este é o meu arquivo de interfaces:

auto eth0
iface eth0 inet static
   address 192.168.1.10
   netmask 255.255.255.0
   gateway 192.168.1.1

auto eth1
iface eth1 inet static
   address 192.168.2.10
   netmask 255.255.255.0
   gateway 192.168.2.1

Se eu reiniciar rede daemon eu recebo este erro: eth1 is not up. Quero que dois gateways padrão atinjam o que é mencionado na resposta aceita à pergunta aqui . É assim que minha tabela de roteamento deve ser:

Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
default         192.168.1.1     0.0.0.0         UG    0      0        0 eth0
default         192.168.2.1     0.0.0.0         UG    0      0        0 eth1
192.168.1.0     *               255.255.255.0   U     0      0        0 eth0
192.168.2.0     *               255.255.255.0   U     0      0        0 eth1

Eu peguei a tabela acima usando os comandos ifconfige route add default gw. Mas eu quero fazer isso com o /etc/network/interfacesarquivo. Como eu posso fazer isso?

Update1:

iface eth0 inet static
    address 192.168.1.10
    netmask 255.255.255.0
    up ip route del 192.168.1.0/24
    post-up ip route add 192.168.1.0/24 dev eth0 metric 1
    up route add default gw 192.168.1.1 metric 1
nixnotwin
fonte
11
Contanto que você não se importe com a saída do tráfego. No Solaris e nas versões anteriores do Linux, isso era feito da maneira Round-Robin
Karlson 04/04
Seu arquivo de interfaces parece correto. Normalmente, o DHCP é muito mais conveniente hoje e é isso que eu usei nessa circunstância. Você pode atribuir a endereços MAC específicos um endereço IP definido nas configurações do servidor DHCP.
casualunixer
Apenas uma observação, o NetworkManager adicionou recentemente um suporte mais amplo para métricas de rota. Ele lida com eles automaticamente ou você pode configurá-los manualmente. Pode ser uma maneira mais conveniente ou você pode registrar uma solicitação de recurso para sua ferramenta.
Pavel Šimerda
Além disso, você pode querer adicionar detalhes sobre por que deseja ter duas rotas padrão. Só posso supor que duas rotas com métricas diferentes não funcionem conforme o esperado.
Pavel Šimerda
O arquivo de interfaces permite definir uma métrica. Não deve haver nenhuma necessidade de adicionar rotas manualmente usando-se e pós-up
Goswin von Brederlow

Respostas:

10

Este / etc / network / interfaces funciona para mim no 2.6.32-40 Ubuntu 10.04 LTS:

auto lo
iface lo inet loopback
auto eth0
iface eth0 inet static
    address 192.168.1.10
    netmask 255.255.255.0
    network 192.168.1.0
    broadcast 192.168.1.254
    post-up route add default gw 192.168.1.1 metric 1
    pre-down route del default gw 192.168.1.1

auto eth1
iface eth1 inet static
    address 192.168.2.10
    netmask 255.255.255.0
    network 192.168.2.0
    broadcast 192.168.2.254
    post-up route add default gw 192.168.2.1 metric 2
    pre-down route del default gw 192.168.2.1

Eu recebo duas rotas padrão:

root@gamla:/etc/network# route -n
Kernel IP routing table
Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
192.168.2.0     0.0.0.0         255.255.255.0   U     0      0        0 eth1
192.168.1.0     0.0.0.0         255.255.255.0   U     0      0        0 eth0
169.254.0.0     0.0.0.0         255.255.0.0     U     1000   0        0 eth0
0.0.0.0         192.168.1.1     0.0.0.0         UG    1      0        0 eth0
0.0.0.0         192.168.2.1     0.0.0.0         UG    2      0        0 eth1

Observe a métrica. Eu entendi sua pergunta?

Eli Rosencruft
fonte
A rede e o gateway associados eth0devem aparecer primeiro, pois são a rede e o gateway principais. Qual é a saída netstat -anrou apenas routecomandos na sua instalação?
Nixnotwin
Editei, adicionando parâmetros métricos para obter a ordem da rota desejada. Meu sistema possui várias outras interfaces que editei na saída e meus nomes de interface não são ethX, portanto, não tenho 100% de certeza de que minha solução funcionará para você. Experimente e deixe-me saber os resultados.
Eli Rosencruft
A adição de métrica para gateways padrão funciona. Mas como posso adicionar métricas para rotas? Minha tabela de roteamento tem uma sub-rede classe B que deve vir antes da minha outra sub-rede classe A. A especificação metric 3do ifmetricpacote debian não funcionou para mim.
Nixnotwin 7/04
11
O kernel armazena a métrica, mas não a usa para rotear. Para usar a métrica, você precisa executar um daemon de roteamento como quagga (was zebra) ou bird.
Eli Rosencruft
11
@EliRosencruft você pode citar um plz de referência?
perfil completo de DrAlberT