As configurações de rede de uma máquina Linux podem parecer complexas em um primeiro momento, mas quando nos aproximamos das configurações e identificamos o problema, percebemos que as soluções são simples e elegante. Por exemplo, identifiquei uma máquina cujas configurações de rede foram colocadas manualmente no arquivo /etc/netword/interfaces. Sem qualquer problema para acesso internet via browser ou testes de ping, tudo ok e funcional. No entanto, alguns aplicativos, como o evolution [1] ou pidgin [2] somente se conectavam quando utilizando a opção --force-online (evolution --force-online , pidgin --force-online). Então o diagnóstico éra simples: a maquina estava configurada corretamente, encontrava internet pelos testes de ping e navegação, mas alguns aplicativos não localizava rede para estabelecer a conexão.
Solução:
No caso do Linux, este problema acontece porque o NetworkManager reporta a rede como não disponível (ou unavailable). Isto acontece porque o arquivo de configuração /etc/NetworkManager/NetworkManager.conf está com a entrada managed=false, como no exemplo abaixo:
[main]
plugins=ifupdown,keyfile
[ifupdown]
managed=false
Com a configuração do NetworkManager desta forma, temos a seguinte informação com saída do comando nm-tool:
#nm-tool
saída do comando nm-tool |
Identificado este ponto da configuração, podemos alterar o arquivo/etc/NetworkManager/NetworkManager.conf managed=false, para managed=true. Após restartar o network-manager (# /etc/init.d/network-manager restart), podemos observar a nova saída do comando nm-tool:
[main]
plugins=ifupdown,keyfile
[ifupdown]
managed=true
saída do comando nm-tool com a opção managed=true |
Assim, para os aplicativos que "olham" para o status da rede, a solução está definida. Observe o State e as demais informarmções, como a presença do ip, gateway e DNS.
Observações: além do nm-tool, temos também o nmcli e nm-online que tem as seguintes funções:
nmcli
#nmcli -> mostra as opções
#nmcli nm -> lê e apresenta o estado das configurações de rede
#nmcli con -> lê e apresenta as redes presentes no diretório /etc/NetworkManager/system-connections
#nmcli dev -> lê e apresenta o estado das configurações e atividade da rede (similar ao nmcli nm, mas em coluna)
nm-online
#nm-online
A função desta ferramenta é checar o status da rede quando online, perguntando ao NetworkManager seu estado de conexão. Pode ser útil, por exemplo, em scripts que precisem exatidão quanto a disponibilidade de rede para troca de dados por exemplo. O resultado do nm-online é 0 para sucesso (online) ou 1 para erro de rede (offline).
Para saber o resultado de um comando, neste caso o nm-online, podemos usar o echo $?, e colocar este resultado em um teste dentro de um shell script, por exemplo.
nm-online | echo $?
0
Referências:
[2] pidgin - pidgin - Instant Messaging client
man NetworkManager
man nm-tool
man nmcli
man nm-online
0sem comentários ainda
Por favor digite as duas palavras abaixo