Netcat (nc6) - Servidor e Cliente TCP somente Mínimo IPv6

7

Estou tentando configurar um servidor de eco básico apenas IPv6 usando netcat (ou melhor, nc6). Cliente e servidor estão na mesma rede local. No entanto, o cliente sai imediatamente:

Servidor IPv6:

$ nc6 -6 -vv --continuous --exec cat -l -p 5555
nc6: listening on :: 5555 ...

Cliente IPv6:

$ nc6 -6 -vv fe80::213:33ff:feab:ff5d 5555
nc6: fe80::213:33ff:feab:ff5d (fe80::213:33ff:feab:ff5d) 5555 [5555] open
nc6: using stream socket
nc6: using buffer size of 8192
nc6: error reading from remote: Transport endpoint is not connected
nc6: connection closed (sent 0, rcvd 0)
nc6: readwrite returned -1
nc6: closed local
nc6: closed remote
$ 

Qual é o problema?
Devo configurar o servidor para escutar as conexões de entrada somente em uma de suas interfaces? (como?)

Versão IPv4 funciona bem:

Servidor IPv4:

nc6 -vv --continuous --exec cat -l -p 5555
nc6: listening on :: 5555 ...
nc6: listening on 0.0.0.0 5555 ...
nc6: connect to 192.168.1.35 5555 from xyrobert.local (192.168.1.35) 37928 [37928]
nc6: using stream socket
nc6[7502]: executing 'cat'
nc6[7502]: using buffer size of 8192
nc6[7502]: read 4 bytes from remote
nc6[7502]: wrote 4 bytes to local
nc6[7502]: read 4 bytes from local
nc6[7502]: wrote 4 bytes to remote

Cliente IPv4:

nc6 -vv 192.168.1.35 5555
nc6: kearney.local (192.168.1.35) 5555 [5555] open
nc6: using stream socket
nc6: using buffer size of 8192
Hi!
nc6: read 4 bytes from local
nc6: wrote 4 bytes to remote
nc6: read 4 bytes from remote
Hi!
nc6: wrote 4 bytes to local
    
por Robert Tzu. 10.06.2014 / 19:50

1 resposta

9

Ao se conectar a um endereço local de vínculo IPv6, é necessário especificar por meio de qual link para alcançá-lo, conforme visto no sistema do cliente. Os mesmos endereços de link-local são usados em todos os links, de modo que o cliente precisa ser informado explicitamente sobre qual link (interface) usar. Portanto, se o sistema que você deseja acessar estiver conectado por meio de eth0 do sistema do cliente, será necessário conectar-se a fe80::213:33ff:feab:ff5d%eth0 .

O uso de endereços IPv6 roteáveis é muito mais fácil, pois a tabela de roteamento local será usada para determinar por meio de qual interface enviar o pacote.

    
por 10.06.2014 / 21:03