De acordo com as Leis 12.965/2014 e 13.709/2018, que regulam o uso da Internet e o tratamento de dados pessoais no Brasil, ao me inscrever na newsletter do portal DICAS-L, autorizo o envio de notificações por e-mail ou outros meios e declaro estar ciente e concordar com seus Termos de Uso e Política de Privacidade.

"ssh" (cliente) e múltiplas interfaces/adaptadores de rede

Colaboração: Jamenson Ferreira Espindula de Almeida Melo

Data de Publicação: 6 de junho de 2024

Certo dia eu decidi usar o IPv6 para acessar as máquinas na rede "interna" (endereços iniciados com "fe80"). Ocorre que o protocolo IPv6 funciona um pouco diferente do IPv4: no IPv6 é obrigatório informar a interface por meio da qual a conexão será estabelecida.

O problema: a interface é a do computador cliente (solicitante da conexão); o endereço fe80 é o do computador servidor (o destinatário da solicitação de conexão). Essa combinação traz um transtorno imenso quando se deseja acessar o servidor a partir de máquinas diferentes (possivelmente com interfaces de rede de intercomunicação com nomes diferentes) ou até mesmo a partir de uma máquina equipada com mais de uma interface de rede de intercomunicação! No arquivo "config" do software "ssh", é possível configurar essa situação e até gerar uma espécie de descobridor automático. Com a ajuda do então chat generativo "Bard" do Google, atualmente "Gemini, eu cheguei nos seguintes comandos:

Etapa um: Este comando retornará o nome da interface de rede atualmente associada à rota padrão.

if ip route | grep -e "default"; then
    interface=$(ip route | grep default | awk '{print $5}')
fi

Etapa dois: Este comando atribui o valor armazenado na variável exportada "interface" à porção da interface para uso no arquivo de configuração.

if [ "$interface" = "enp3s0" ]; then
    var_interface="enp3s0"
else
    var_interface="wlan0"
fi

Etapa três: incluir estas linhas no arquivo ${HOME}/.ssh/config (adaptar com o endereço do dispositivo remoto destinatário da solicitação de conexão).

Host comp03
    Address 2001:db8::96de:80ff:fef4:720f%%${var_interface}

Com isso, o endereço IPv6 link-local do dispositivo remoto será sempre associado à interface de rede do dispositivo local (solicitante da conexão) que está atualmente em uso.

Jamenson Ferreira Espindula de Almeida Melo
Jaboatão dos Guararapes, Pernambuco, Brasil
Usuário GNU/Linux nº 166197; LFS ID 24492
Key fingerprint: 234D 1914 4224 7C53 BD13 6855 2AE0 25C0 08A8 6180

Adicionar comentário

* Campos obrigatórios
5000
Powered by Commentics

Comentários (2)

Avatar
Novo

Sabemos que o IPv6 é necessário, porém seu formato trás vários detalhes que dificultam muito seu uso prático, como acontece com o IPv4. Será que realmente não tinha alguma outra forma de tornar o uso mais intuitivo como no IPv4? Toda vez que vejo algo sobre IPv6, já tenho aversão logo de cara. É como se alguma fabricante de carro colocasse o volante nos pés, os pedais no porta malas, os pneus no teto e você tivesse que reaprender a dirigir com o carro de ponta cabeça.

Avatar
Novo

Jonathan, a mudança das tecnologias faz parte do trabalho do profissional da Tecnologia da Informação! A mudança é até tua AMIGA! Pensa comigo: se não existissem mudanças, então para que serviria o profissional contratado? Por favor, reveja os teus conceitos! Abraçe com alegria as mudanças, pois elas, as mudanças, sempre acontecerão. Aceita que dói menos! Paz e bem.



Veja a relação completa dos artigos de Jamenson Ferreira Espindula de Almeida Melo