IP stateless sendo atribuído em vez do endereço DHCP

4

Aqui estão as informações:

Host link IP: fe80::9eec:b32d:855c:5589
Server link IP: fe80::f03c:91ff:fe11:96c4

Host global IP: 2601:aaaa:bbbb:cccc:1854:46d6:c2f9:e727 (Ugh!)
Server global IP: 2601:aaaa:bbbb:cccc::1

O servidor tem um bloco roteado para 2601: aaaa: bbbb: cccc :: / 64

DHCP tentando atribuir este IP ao host: 2601: aaaa: bbbb: cccc: 1000 :: fa8d

O host deve ser GENÉRICO: O host não possui configuração de rede personalizada como um requisito. Todos os hosts são considerados computadores que qualquer um possui e eles os conectam e devem funcionar sem nenhuma personalização. Isso significa que o dhclient NUNCA deve ser usado em um cliente IPv6: tudo deve ser feito por meio do SLAAC ou do SLAAC com estado (o que estou tentando realizar).

O host funciona muito bem com o padrão do navegador para IPv6 e não tem nenhum problema em alcançar todos os sites, seja IPv6 ou IPv4.

Rede de host:

2: enp0s25: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc fq_codel state UP group default qlen 1000
    link/ether 28:d2:44:6b:bf:9f brd ff:ff:ff:ff:ff:ff
    inet 172.21.0.102/24 brd 172.21.0.255 scope global dynamic noprefixroute enp0s25
       valid_lft 39535sec preferred_lft 39535sec
    inet6 2601:aaaa:bbbb:cccc:ec25:e54d:4255:6c76/64 scope global temporary dynamic 
       valid_lft 86199sec preferred_lft 14199sec
    inet6 2601:aaaa:bbbb:cccc:1854:46d6:c2f9:e727/64 scope global dynamic mngtmpaddr noprefixroute 
       valid_lft 86199sec preferred_lft 14199sec
    inet6 fe80::9eec:b32d:855c:5589/64 scope link noprefixroute 
       valid_lft forever preferred_lft forever

Configuração de radvd do servidor:

root@li336-239:/var# cat /etc/radvd.conf
interface tap0
{
    AdvSendAdvert on;
    AdvManagedFlag on;
    AdvOtherConfigFlag on;
    prefix 2601:aaaa:bbbb:cccc::/64
    {
        AdvOnLink on;
        AdvAutonomous on;
    };
};

O host e o servidor podem se ver sem problemas antes da atribuição de IP global:

Server: ping6 -c2 fe80::9eec:b32d:855c:5589%tap0 --> Success
Host: ping6 -c2 fe80::f03c:91ff:fe11:96c4%enp0s25 --> Success

O Host e o Servidor vêem um ao outro perfeitamente como vizinhos com seus IPs de link e seus IPs globais:

Host/Server: ip -6 neigh --> successfully lists everything

ip6tables: Todas as cadeias FORWARD e INPUT não são restritas: nenhum pacote caiu

Servidor DHCP quando o host fica fisicamente on-line:

10:16:39 li336-239 dhcpd[5067]: Solicit message from fe80::9eec:b32d:855c:5589 port 546, transaction ID 0x83D90700
10:16:39 li336-239 dhcpd[5067]: Advertise NA: address 2601:aaaa:bbbb:cccc:1000::fa8d to client with duid 00:01:00:01:22:b0:4f:4a:28:d2:44:6b:bf:9f iaid = 1147912095 valid for 600 seconds
10:16:39 li336-239 dhcpd[5067]: Sending Advertise to fe80::9eec:b32d:855c:5589 port 546
10:16:40 li336-239 dhcpd[5067]: Solicit message from fe80::9eec:b32d:855c:5589 port 546, transaction ID 0x83D90700
10:16:40 li336-239 dhcpd[5067]: Advertise NA: address 2601:aaaa:bbbb:cccc:1000::fa8d to client with duid 00:01:00:01:22:b0:4f:4a:28:d2:44:6b:bf:9f iaid = 1147912095 valid for 600 seconds
10:16:40 li336-239 dhcpd[5067]: Sending Advertise to fe80::9eec:b32d:855c:5589 port 546
10:16:42 li336-239 dhcpd[5067]: Solicit message from fe80::9eec:b32d:855c:5589 port 546, transaction ID 0x83D90700
10:16:42 li336-239 dhcpd[5067]: Advertise NA: address 2601:aaaa:bbbb:cccc:1000::fa8d to client with duid 00:01:00:01:22:b0:4f:4a:28:d2:44:6b:bf:9f iaid = 1147912095 valid for 600 seconds
10:16:42 li336-239 dhcpd[5067]: Sending Advertise to fe80::9eec:b32d:855c:5589 port 546
10:16:46 li336-239 dhcpd[5067]: Solicit message from fe80::9eec:b32d:855c:5589 port 546, transaction ID 0x83D90700
10:16:46 li336-239 dhcpd[5067]: Advertise NA: address 2601:aaaa:bbbb:cccc:1000::fa8d to client with duid 00:01:00:01:22:b0:4f:4a:28:d2:44:6b:bf:9f iaid = 1147912095 valid for 600 seconds
10:16:46 li336-239 dhcpd[5067]: Sending Advertise to fe80::9eec:b32d:855c:5589 port 546
10:16:55 li336-239 dhcpd[5067]: Solicit message from fe80::9eec:b32d:855c:5589 port 546, transaction ID 0x83D90700
10:16:55 li336-239 dhcpd[5067]: Advertise NA: address 2601:aaaa:bbbb:cccc:1000::fa8d to client with duid 00:01:00:01:22:b0:4f:4a:28:d2:44:6b:bf:9f iaid = 1147912095 valid for 600 seconds
10:16:55 li336-239 dhcpd[5067]: Sending Advertise to fe80::9eec:b32d:855c:5589 port 546
10:17:13 li336-239 dhcpd[5067]: Solicit message from fe80::9eec:b32d:855c:5589 port 546, transaction ID 0x83D90700
10:17:13 li336-239 dhcpd[5067]: Advertise NA: address 2601:aaaa:bbbb:cccc:1000::fa8d to client with duid 00:01:00:01:22:b0:4f:4a:28:d2:44:6b:bf:9f iaid = 1147912095 valid for 600 seconds
10:17:13 li336-239 dhcpd[5067]: Sending Advertise to fe80::9eec:b32d:855c:5589 port 546

... mas o host parece se atribuir 2601: aaaa: bbbb: cccc: 1854: 46d6: c2f9: e727 (diferente a cada vez), o que seria maravilhoso se eu não quisesse que isso fosse stateful.

Host na conexão física:

root@some-computer:~# ip monitor
2: enp0s25: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc fq_codel state UP group default 
    link/ether 28:d2:44:6b:bf:9f brd ff:ff:ff:ff:ff:ff
2: enp0s25: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc fq_codel state UP group default 
    link/ether 28:d2:44:6b:bf:9f brd ff:ff:ff:ff:ff:ff
Deleted ff02::1:ff5c:5589 dev enp0s25 lladdr 33:33:ff:5c:55:89 NOARP
Deleted ff02::2 dev enp0s25 lladdr 33:33:00:00:00:02 NOARP
Deleted fe80::f03c:91ff:fe11:96c4 dev enp0s25 lladdr f2:3c:91:11:96:c4 router STALE
Deleted ff02::fb dev enp0s25 lladdr 33:33:00:00:00:fb NOARP
Deleted ff02::1:2 dev enp0s25 lladdr 33:33:00:01:00:02 NOARP
Deleted ff02::16 dev enp0s25 lladdr 33:33:00:00:00:16 NOARP
Deleted ff02::1:ff55:6c76 dev enp0s25 lladdr 33:33:ff:55:6c:76 NOARP
Deleted ff02::1:fff9:e727 dev enp0s25 lladdr 33:33:ff:f9:e7:27 NOARP
ff00::/8 dev enp0s25 table local metric 256 pref medium
2: enp0s25: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc fq_codel state UP group default 
    link/ether 28:d2:44:6b:bf:9f brd ff:ff:ff:ff:ff:ff
Deleted ff00::/8 dev enp0s25 table local metric 256 pref medium
ff00::/8 dev enp0s25 table local metric 256 pref medium
fe80::/64 dev enp0s25 proto kernel metric 256 pref medium
2: enp0s25    inet 172.21.0.102/24 brd 172.21.0.255 scope global dynamic noprefixroute enp0s25
       valid_lft 39738sec preferred_lft 39738sec
local 172.21.0.102 dev enp0s25 table local proto kernel scope host src 172.21.0.102 
broadcast 172.21.0.255 dev enp0s25 table local proto kernel scope link src 172.21.0.102 
broadcast 172.21.0.0 dev enp0s25 table local proto kernel scope link src 172.21.0.102 
172.21.0.0/24 dev enp0s25 proto kernel scope link src 172.21.0.102 metric 100 
default via 172.21.0.1 dev enp0s25 proto dhcp metric 20100 
ipv4 dev enp0s25 rp_filter loose 
172.21.0.1 dev enp0s25 lladdr 00:e0:4c:68:3b:72 REACHABLE
169.254.0.0/16 dev enp0s25 scope link metric 1000 
10.16.0.1 dev enp0s25 lladdr f2:3c:91:11:96:c4 REACHABLE
2: enp0s25    inet6 fe80::9eec:b32d:855c:5589/64 scope link 
       valid_lft forever preferred_lft forever
local fe80::9eec:b32d:855c:5589 dev enp0s25 table local proto kernel metric 0 pref medium
2: enp0s25    inet6 fe80::9eec:b32d:855c:5589/64 scope link noprefixroute 
       valid_lft forever preferred_lft forever
Deleted fe80::/64 dev enp0s25 proto kernel metric 256 pref medium
fe80::/64 dev enp0s25 proto kernel metric 256 pref medium
fe80::/64 dev enp0s25 proto kernel metric 100 pref medium
2: enp0s25    inet 172.21.0.102/24 brd 172.21.0.255 scope global dynamic noprefixroute enp0s25
       valid_lft 39736sec preferred_lft 39736sec
default via 172.21.0.1 dev enp0s25 proto dhcp metric 100 
Deleted default via 172.21.0.1 dev enp0s25 proto dhcp metric 20100 
fe80::f03c:91ff:fe11:96c4 dev enp0s25 lladdr f2:3c:91:11:96:c4 router STALE
2: enp0s25    inet6 fe80::9eec:b32d:855c:5589/64 scope link noprefixroute 
       valid_lft forever preferred_lft forever
2601:aaaa:bbbb:cccc::/64 dev enp0s25 proto ra metric 100 pref medium
default via fe80::f03c:91ff:fe11:96c4 dev enp0s25 proto ra metric 100 pref medium
[!!HERE--->] 2: enp0s25    inet6 2601:aaaa:bbbb:cccc:ec25:e54d:4255:6c76/64 scope global temporary dynamic 
       valid_lft 86399sec preferred_lft 14399sec
local 2601:aaaa:bbbb:cccc:ec25:e54d:4255:6c76 dev enp0s25 table local proto kernel metric 0 pref medium
[!!HERE--->] 2: enp0s25    inet6 2601:aaaa:bbbb:cccc:1854:46d6:c2f9:e727/64 scope global dynamic mngtmpaddr noprefixroute 
       valid_lft 86399sec preferred_lft 14399sec
[!!HERE--->] local 2601:aaaa:bbbb:cccc:1854:46d6:c2f9:e727 dev enp0s25 table local proto kernel metric 0 pref medium
    
por ts90 24.06.2018 / 17:10

1 resposta

5

host seems to assign itself 2601:aaaa:bbbb:cccc:1854:46d6:c2f9:e727

Os anúncios do seu roteador têm AdvAutonomous on , o que informa que a configuração sem estado é suportada na rede. Se você não quiser a autoconfiguração autônoma do endereço, não habilite a autoconfiguração autônoma do endereço.

Isso se aplica mesmo se os RAs tiverem AdvManaged on e até mesmo se os hosts receberem um anúncio DHCPv6. (RFC 4862: "Deve-se notar que um host pode usar a autoconfiguração de endereços sem informações de estado e o DHCPv6 simultaneamente.")

This means that dhclient should NEVER be used on an IPv6 client: everything should be done through SLAAC or stateful SLAAC (what I am trying to accomplish).

Não existe algo como "SLAAC com estado" (na verdade, o "SL" significa "sem estado").

No máximo, os anúncios do SLAAC podem solicitar ao cliente que use o DHCPv6 - mas eles não podem forçar o cliente a fazer o DHCPv6. Por exemplo:

  • O Linux, por padrão, executa o SLAAC no kernel, e o kernel não bifurca automaticamente um cliente DHCP, nem dhclient -6 nem dhcpcd -6 nem wide-dhcp6c . Isso somente acontece se o espaço do usuário entender que esse sinalizador (por exemplo, NetworkManager ou systemd-networkd) já está em execução.

  • O dhclient na base do FreeBSD carece de suporte ao DHCPv6; a versão dupla está nas portas.

  • O OpenBSD não possui um cliente DHCPv6 na base (um deve ser instalado através de portas).

  • O Android não é compatível com o DHCPv6.

Seu cliente parece estar executando o NetworkManager, mas, mesmo assim, não há garantia de que ele não exigirá configuração manual, dependendo de qual versão ele é, e em quais clientes DHCPv6 externos estão instalados. (Se dhcp=internal for selecionado, as versões atuais suportam apenas o DHCPv4.)

Também é possível que os clientes tentem apenas o DHCPv6 se a configuração autônoma estiver desativada (veja a primeira parte da resposta), mas você terminará com o IPv6 inutilizável pelos clientes que não tiverem o DHCPv6. / p>

Se o seu objetivo é ter responsabilidade, eu manteria um log de endereço IPv6 em associações de endereços MAC. Isso pode ser implementado através do monitoramento de anúncios vizinhos, ou assistindo ao cache do ND do roteador ( ip -6 neigh ), e a vantagem é que ele funcionará independentemente do mecanismo - SLAAC, extensão de privacidade, DHCPv6, DHCPv4 e até mesmo endereços configurados estaticamente ser rastreado.

    
por 24.06.2018 / 17:51