Como defino a prioridade das conexões de rede no Ubuntu?

28

Se uma máquina Ubuntu 11.04 estiver conectada a WiFi e 3G simultaneamente, como definir a prioridade para permitir que os aplicativos (navegador, etc.) usem primeiro o Wi-Fi? Se isso não estiver disponível, deve usar o 3G.

Basicamente, gostaria de definir a ordem na qual as conexões de rede são usadas.

Edit: Eu estou procurando uma abordagem mais fácil, que seria útil para aqueles que estão apenas confortáveis e não especialistas em Ubuntu / Linux.

    
por Praveen Sripati 04.09.2011 / 09:47

5 respostas

14

Estou surpreso que ninguém tenha mencionado o comando mais simples para fazer isso: ifmetric . Pode ser instalado usando sudo apt-get install ifmetric . Esse comando pode ser usado para alterar a métrica de qualquer interface. A interface com menor métrica é preferida para a Internet.

Para usar isso, primeiro veja as métricas usando o comando route :

$ route -n

Kernel IP routing table
Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
0.0.0.0         10.42.0.1       0.0.0.0         UG    100    0        0 eth0
0.0.0.0         10.42.0.2       0.0.0.0         UG    600    0        0 wlan0

Aqui, eth0 tem métrica mais baixa, por isso será preferível a wlan0 . Se você quiser preferir wlan0 , diminua sua métrica:

sudo ifmetric wlan0 50

Agora, a tabela de roteamento seria semelhante a:

$ route -n

Kernel IP routing table
Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
0.0.0.0         10.42.0.2       0.0.0.0         UG    50     0        0 wlan0
0.0.0.0         10.42.0.1       0.0.0.0         UG    100    0        0 eth0

Agora o Linux usará wlan0 para a Internet. A mudança será refletida imediatamente.

    
por 20.10.2017 / 11:14
12

Definir as métricas é como você altera as prioridades. A métrica mais alta é mais "cara" de usar, então o SO usará as interfaces com a métrica mais baixa se precisar rotear o tráfego. Caso a interface métrica inferior seja desligada, ela usará a interface métrica mais alta, já que é a única interface que pode ser usada para rotear o tráfego para aquela rede / destino em particular.

As métricas são especificadas no arquivo / etc / network / interfaces , link aponta para a documentação.

Use qualquer editor de texto para editar o arquivo, identificar as redes e apenas alterar o parâmetro metric e salvar. A reinicialização é a maneira mais simples de redefinir todos os valores sem entrar nos detalhes geeky de reiniciar os serviços de rede.

    
por 09.09.2011 / 13:14
7
  1. A priorização de interfaces para tráfego geral é feita pela manipulação das métricas de roteamento. Cada rota tem parâmetros associados, como contagens de saltos e larguras de banda. Veja a opção "métrica" na página man do comando route .

    $ route -n
    Kernel IP routing table
    Destination     Gateway         Genmask         Flags Metric Ref     Use Iface
    0.0.0.0         192.168.1.254   255.255.255.255 U     0      0        0 eth0
    192.168.1.0     0.0.0.0         255.255.255.0   U     256    0        0 eth0
    
  2. Priorizar o acesso de aplicativos a recursos de rede é geralmente tratado por "modelagem de tráfego" - eu usaria um mecanismo de pesquisa da Web para ver se o Ubuntu ou o roteador pode fazer isso.

Nota de rodapé.

No MS Windows, mas não no Linux, o comando netstat -nr gera as mesmas informações que route print . Incluindo as métricas de roteamento.

    
por 04.09.2011 / 13:25
3

Ainda não experimentei, mas o NCD (Network Configuration Daemon - 1) pode ser usado para essa finalidade. O site afirma que facilita a configuração da rede. A sintaxe parece ser simples.

#Espere para alguma conexão de rede. Prefira eth1 colocando-o na frente de eth0.
lista ("NET-eth1", "NET-eth0") pnames;

(1) - link

    
por 10.09.2011 / 17:13
3

Isso é tudo por causa das métricas de rota. Você deseja excluir a rota padrão com a menor métrica e restabelecer a rota antiga com métrica mais alta. Por favor, siga os comandos abaixo.

Digamos que sua tabela de roteamento tenha esta aparência:

# route -n
Kernel IP routing table
Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
0.0.0.0         10.16.87.254    0.0.0.0         UG    100    0        0 ens38
0.0.0.0         192.168.151.2   0.0.0.0         UG    101    0        0 ens33
10.16.86.64     0.0.0.0         255.255.255.248 U     100    0        0 ens38
10.16.87.254    0.0.0.0         255.255.255.255 UH    100    0        0 ens38
10.16.88.6      10.16.87.254    255.255.255.255 UGH   100    0        0 ens38
169.254.0.0     0.0.0.0         255.255.0.0     U     1000   0        0 ens38
192.168.151.0   0.0.0.0         255.255.255.0   U     100    0        0 ens33

Agora, exclua o gateway padrão

# route delete default gateway

Agora restabeleça o gateway padrão mais antigo (note que a métrica neste caso é mais alta que a rota padrão atual 101)

# route add default gw 10.16.87.254 metric 102 dev ens38                                                              
# route -n
Kernel IP routing table
Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
0.0.0.0         192.168.151.2   0.0.0.0         UG    101    0        0 ens33
0.0.0.0         10.16.87.254    0.0.0.0         UG    102    0        0 ens38
10.16.86.64     0.0.0.0         255.255.255.248 U     100    0        0 ens38
10.16.87.254    0.0.0.0         255.255.255.255 UH    100    0        0 ens38
10.16.88.6      10.16.87.254    255.255.255.255 UGH   100    0        0 ens38
169.254.0.0     0.0.0.0         255.255.0.0     U     1000   0        0 ens38
192.168.151.0   0.0.0.0         255.255.255.0   U     100    0        0 ens33
    
por 04.08.2016 / 01:42