Alternando entre as interfaces de rede

0

Eu estou tentando escrever script para alternar entre duas interfaces em uma máquina Linux, wlan0 e eth0.

Minha referência principal é: link

-A FORWARD -i eth0 -o wlan0 -j ACCEPT

Minha pergunta é, depois do comando acima, os pacotes originais ainda fluem através de eth0? Se sim, como pará-los e apenas deixá-los fluir através da wlan0?

E quando eu quiser voltar para a eth0 (e também encaminhar wlan0 para eth0), o que fazer?

Finalmente, como eliminar todas as regras e voltar ao normal?

Obrigado.

    
por Lingyuan He 09.03.2015 / 22:50

1 resposta

1

Se você quiser distribuir via interfaces diferentes, ignore o firewall (a solução encontrada é para um requisito totalmente diferente). Em vez disso, olhe para a tabela de roteamento.

O comando netstat -rn mostrará a interface que aceitará um determinado destino. O comando route pode ser usado para modificar a tabela de roteamento, incluindo a definição do gateway padrão para o tráfego.

Aqui está um exemplo de uma tabela de roteamento

netstat -rn
Kernel IP routing table
Destination     Gateway         Genmask         Flags   MSS Window  irtt Iface
0.0.0.0         192.168.2.254   0.0.0.0         UG        0 0          0 eth1
192.168.1.0     0.0.0.0         255.255.255.0   U         0 0          0 eth0
192.168.2.0     0.0.0.0         255.255.255.0   U         0 0          0 eth1
224.0.0.0       0.0.0.0         240.0.0.0       U         0 0          0 eth1

Isso mostra que o tráfego para a sub-rede LAN 192.168.1.0/24 usará eth0 e 192.168.2.0/24 usará eth1 . Todo o outro tráfego usará o "gateway padrão" (destino 0.0.0.0), que é eth1 . Suas interfaces podem ser facilmente eth0 e wlan0 ; isso realmente não importa.

Para alternar o gateway padrão de eth1 para eth0 e pressupondo que os endereços IP locais desse sistema sejam 192.168.1.254 em eth1 e 192.168.2.254 em eth0 ,

route delete default gw 192.168.2.254
route add default gw 192.168.1.254
    
por 10.03.2015 / 02:02