netcat6 na rede local IPv6

1

Eu tenho: [ Host A ] -- [ gateway ] -- [ Host B ] , enquanto A e B estão em sub-redes diferentes.

Configuração do gateway:

ip -6 link set enp0s3 up
ip -6 link set enp0s9 up
ip -6 addr flush dev enp0s3
ip -6 addr flush dev enp0s9
ip -6 route flush dev enp0s3
ip -6 route flush dev enp0s9
ip -6 addr add ::ffff:5:7:1:1/126 dev enp0s3
ip -6 addr add ::ffff:5:7:2:1/126 dev enp0s9
echo 1 | tee /proc/sys/net/ipv6/conf/*/forwarding > /dev/null

Configuração do host A:

  ip link set enp0s3 up
  ip -6 addr flush dev enp0s3
  ip -6 addr add ::ffff:5:7:1:2/126 dev enp0s3
  ip -6 route add default via ::ffff:5:7:1:1

Configuração do host B:

  ip link set enp0s3 up
  ip -6 addr flush dev enp0s3
  ip -6 addr add ::ffff:5:7:2:2/126 dev enp0s3
  ip -6 route add default via ::ffff:5:7:2:1

Eu quero que o IP seja um endereço traduzido do IPv4 (5.7.2.1 - > :: ffff: 5: 7: 2: 1).

O problema:
Quando eu estou tentando pingar o host A do host B às vezes ele pinga às vezes não; do host A ao host B o mesmo comportamento. Quando estou tentando ncat -6, ele não funciona (o gateway tcpdump diz "O host de destino está inacessível"). O ping e o ncat funcionam apenas no e do gateway.

Tabelas de roteamento no gateway:

::ffff:5:7:1:0/126 dev enp0s3 proto kernel metric 256 pref medium
::ffff:5:7:2:0/126 dev enp0s9 proto kernel metric 256 pref medium
fe80::/64 dev enp0s8 proto kernel metric 256 pref medium

Os últimos registros fe80 :: / 64 são minhas conexões ssh.

Eu suponho que o problema está na parte da rota, mas o mistério para mim é como consertar isso.

EDITAR:

RESOLVEI meu problema, que estava nos endereços de limpeza ip -6 addr flush dev enp0s3 .

    
por marar 19.05.2017 / 09:43

1 resposta

3

Os endereços IPv6 mapeados para IPv4 (ou seja, endereços do formato ::ffff:192.168.0.1 ) não devem ser usados na conexão. Eles devem ser usados como identificadores internos para endereços IPv4 em soquetes de pilha dupla. Quando um processo do servidor de pilha dupla (IPv6 / IPv4) aceita uma conexão em um soquete IPv6 de um host IPv4, digamos, 192.168.0.1 , ele é convertido internamente em ::ffff:192.168.0.1 .

Se uma interface de rede receber um pacote com um endereço deste formato, será um erro se não o eliminar.

    
por 19.05.2017 / 12:53