%20.png)
Eu tenho um aplicativo cliente (Linux)-servidor (Windows). Tenho o Windows 7 como sistema operacional principal e o Ubuntu 18.04 em um VirtualBox. Preciso testar se o cliente consegue se conectar ao servidor através de IPv6. Como faço para configurar isso?
Responder1
Precisotesteque o cliente possa se conectar ao servidor através do IPv6.
Você precisa olhar para os dois lados. Somente endpoints Linux estariam no tópico deste site. (Mas você pode ver até onde pode chegar. E se chegar longe o suficiente, poderá procurar o que funciona no Windows :-).
Existem apenas cerca de quatro possibilidades.
Execute este comando:ip -6 addr
1. Sem endereço IPv6: você não tem linhas começando com inet6
. Falha no teste.
2. Somente endereços de link local IPv6: todas as inet6
linhas abaixo da interface de rede voltada para sua rede de destino começam com fe80::
. Tecnicamente, é possível usar endereços locais de link, mas alguns aplicativos não os suportam. Se possível, resolva esta situação, ou seja, trate-a como uma falha no teste.
Qual interface de rede está voltada para sua rede de destino?
- A interface de loopback do Linux é chamada
lo
. Ignore isto. - A maioria das interfaces físicas do Linux começa com
e
(Ethernet),wl
(sem fio),ww
(sem fio de área ampla) ou menos provávelppp
(bobagens diversas :-P). No seu caso, você irá ignorá-los. - Interfaces Linux para máquinas virtuaistratarser nomeado começando com
v
. O VirtualBox usavboxnet
e o libvirt (virt-manager) usavirbr
. No seu caso, a interface que você deseja é quase certamente uma dessas.
3. Endereço IPv6 potencialmente roteável: ou seja, pelo menos um endereço que não inicia fe80::
. O teste não falhou - ainda :-). Continue para a próxima etapa.
Tendo identificado um endereço IPv6 roteável, você pode testar a conexão a ele a partir de outro sistema.
ping6
está bem -sevocê sabe que o ping não está bloqueado por um firewall.
Prefira não bloquear o ping nos seus firewalls, a menos que o firewall esteja bloqueandotodosconexões de entrada. Caso contrário, isso realmente não faz sentido e você está apenas tornando a vida mais difícil para si mesmo.
Se você não pode permitir o ping
Seu aplicativo terá instruçõesem algum lugarquanto a qual número de porta (e que tipo de porta) ele usa, para permitir a passagem por um firewall.
Para testar a conexão a uma porta TCP, eu usaria sudo nmap -sT -p 1,$MYPORT $MYADDRESS
. Você também pode usar sudo nmap -sT -F $MYADDRESS
para verificar portas comuns. Este último pode ser útil se mostrar que é possível fazer alguma conexão em umdiferenteporta, por exemplo, talvez você tenha esquecido de permitir a porta correta através de um firewall.
Para testar portas UDP, use -sU
em vez de -sT
. Eu não me incomodaria nmap -sU -F
porque as varreduras UDP podem sermuito mais lentodo que varreduras TCP.
Para ver como é um teste bem-sucedido, verifique o endereço ::1
(localhost). Se você ainda não possui uma porta aberta no host local, abra uma segunda janela de terminal e execute ncat -l ::1 22
, para executar um serviço SSH falso que nmap
irá detectar.
Endereços locais de link
Se você precisar se conectar a um endereço de link local, precisará incluir um ID de link. Por exemplo, para ping
fe80::1 em link vboxnet0
, execute ping6 fe80::1%vboxnet0
. Esta é a razão pela qual os endereços locais de link são menos úteis: nem todos os aplicativos sabem como especificar o ID do link.