Eu tenho lido sobre o driver de ligação do Linux.
link
Meu objetivo é melhorar a disponibilidade da minha conexão com a Internet em um sistema baseado no Debian, combinando a interface ethernet (eth0) conectada à LAN e uma conexão de internet móvel fornecida por um módulo surf-stick / GSM. O último aparece também como uma interface ethernet na saída de ifconfig
.
Eu instalei ifenslave
e adicionei ao meu /etc/network/interfaces
:
# Slaves
auto eth0
iface eth0 inet manual
bond-master bond0
bond-primary eth0
bond-mode active-backup
auto eth1
iface eth1 inet manual
bond-master bond0
bond-primary eth0
bond-mode active-backup
# Master
auto bond0
iface bond0 inet dhcp
bond-slaves none
bond-primary eth0
bond-mode active-backup
bond-miimon 100
Após a reinicialização, minha saída ifconfig
será
bond0: flags=5187<UP,BROADCAST,RUNNING,MASTER,MULTICAST> mtu 1500
inet 192.168.178.47 netmask 255.255.255.0 broadcast 192.168.178.255
inet6 fe80::ba27:ebff:feb6:c504 prefixlen 64 scopeid 0x20<link>
ether b8:27:eb:b6:c5:04 txqueuelen 1000 (Ethernet)
RX packets 436 bytes 34223 (33.4 KiB)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 312 bytes 80051 (78.1 KiB)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
eth0: flags=6211<UP,BROADCAST,RUNNING,SLAVE,MULTICAST> mtu 1500
ether b8:27:eb:b6:c5:04 txqueuelen 1000 (Ethernet)
RX packets 436 bytes 34223 (33.4 KiB)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 312 bytes 80051 (78.1 KiB)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
lo: flags=73<UP,LOOPBACK,RUNNING> mtu 65536
inet 127.0.0.1 netmask 255.0.0.0
inet6 ::1 prefixlen 128 scopeid 0x10<host>
loop txqueuelen 1000 (Local Loopback)
RX packets 2 bytes 78 (78.0 B)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 2 bytes 78 (78.0 B)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
Ou seja, a interface vinculada está lá. Estranhamente, eth0 também é visível, enquanto eth1 (a interface de backup que representa o surf-stick) está ausente.
Eu posso acessar se o eth0 estiver conectado à internet, mas não se eu remover essa conexão. Ou seja, minha configuração se comporta como se o surf-stick não estivesse presente.
Não tenho certeza se estou obtendo o significado de ligação corretamente, já que a referência acima fala sobre switches. No meu caso, as duas interfaces conectam-se a gateways que não estão em uma sub-rede comum.
Editar 1
Eu poderia resolver o problema parcial que as interfaces não parecem estar ligados corretamente: Parece que isso é causado pela ordem de inicialização (uma das interfaces Ethernet é de um dispositivo USB). Potencialmente, os drivers são carregados somente depois que a ligação acontece. De qualquer forma, quando eu disparo a ligação em tempo de execução (modificando / etc / network / interfaces e, em seguida, executando /etc/init.d/networking restart) a ligação parece acontecer. No entanto, ainda não obtenho o comportamento desejado.
Editar 2
Enquanto isso (infelizmente) a resposta deletada apontou que a ligação pode de fato não ser útil para minha aplicação. Se isso estiver correto, é possível obter um comportamento semelhante usando tabelas de roteamento e como? Eu gostaria de ter um dos dispositivos ethernet (eth0) como rota padrão preferencial quando seu gateway está conectado à internet. Caso contrário, uma rota padrão secundária (via eth1) deve entrar até que a eth0 receba conexão com a internet novamente.