IPv6 주소 자동 구성 문제

IPv6 주소 자동 구성 문제

상태 비저장 자동 구성(slaac)을 사용하여 Linux 시스템이 인터페이스에서 IP 주소를 자동으로 구성하도록 하려고 합니다. 상태가득한자동 구성은 DHCPv6에서 잘 작동합니다.

  1. 먼저 적절한 네트워크에 대한 VLAN 인터페이스를 추가합니다.

    ip link add link eth0 name vlan10 type vlan id 10
    

    이것은 나에게 다음을 제공합니다:

    $ ip addr show vlan10
    822: vlan10@eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue state UP group default qlen 1000
        link/ether 2c:f0:5d:c9:12:a9 brd ff:ff:ff:ff:ff:ff
    
  2. 다음으로 accept_ra이 인터페이스에 대해 sysctl을 활성화합니다.

    # sysctl -w net.ipv6.conf.vlan10.accept_ra=2
    net.ipv6.conf.vlan10.accept_ra = 2
    
  3. 무작위로 생성된 주소를 사용하여 인터페이스에 링크 로컬 주소를 추가했습니다.

    ip addr add fe80::b04f:6d05:d302:266d/64 dev vlan10 scope link
    

    그래서 나는 가지고있다:

    827: vlan10@eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue state UP group default qlen 1000
        link/ether 2c:f0:5d:c9:12:a9 brd ff:ff:ff:ff:ff:ff
        inet6 fe80::b04f:6d05:d302:266d/64 scope link
           valid_lft forever preferred_lft forever
    

이 시점에서 인터페이스가 작동되고 유효한 링크 로컬 주소가 있으며 링크 로컬 주소를 사용하여 IPv6 라우터를 ping할 수 있습니다.

# ping -c2 fe80::7a8a:20ff:febb:5db%vlan10
PING fe80::7a8a:20ff:febb:5db%vlan10(fe80::7a8a:20ff:febb:5db%vlan10) 56 data bytes
64 bytes from fe80::7a8a:20ff:febb:5db%vlan10: icmp_seq=1 ttl=64 time=0.395 ms
64 bytes from fe80::7a8a:20ff:febb:5db%vlan10: icmp_seq=2 ttl=64 time=0.336 ms

--- fe80::7a8a:20ff:febb:5db%vlan10 ping statistics ---
2 packets transmitted, 2 received, 0% packet loss, time 1062ms
rtt min/avg/max/mdev = 0.336/0.365/0.395/0.029 ms

라우터 광고를 보내도록 라우터를 구성했습니다. Linux 시스템이 올바른 IPv6 기본 경로를 선택했기 때문에 이것이 작동하는지 확인할 수 있습니다.

# ip -6 route | grep vlan10
2001:470:1234:1234::/110 dev vlan10 proto kernel metric 256 expires 2591803sec pref medium
fe80::/64 dev vlan10 proto kernel metric 256 pref medium
default via fe80::7a8a:20ff:febb:5db dev vlan10 proto ra metric 1024 expires 1603sec hoplimit 64 pref medium

vlan10그러나 시스템은 인터페이스의 IPv6 주소를 얻지 못합니다 .

라우터의 해당 링크는 다음과 같습니다.

# ip addr show switch0.10
14: switch0.10@switch0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue state UP group default qlen 1000
    link/ether 78:8a:20:bb:05:db brd ff:ff:ff:ff:ff:ff
    inet6 2001:470:1234:1234::1/110 scope global
       valid_lft forever preferred_lft forever
    inet6 fe80::7a8a:20ff:febb:5db/64 scope link
       valid_lft forever preferred_lft forever

다음과 같이 보입니다 /etc/radvd.conf:

interface switch0.10 {
    IgnoreIfMissing on;
    AdvOtherConfigFlag off;
    AdvRetransTimer 0;
    MinRtrAdvInterval 198;
    AdvManagedFlag off;
    MaxRtrAdvInterval 600;
    AdvLinkMTU 0;
    AdvReachableTime 0;
    AdvDefaultPreference medium;
    AdvDefaultLifetime 1800;
    AdvSendAdvert on;
    AdvCurHopLimit 64;
    prefix 2001:470:1234:1234::/110 {
        AdvAutonomous on;
        AdvValidLifetime 2592000;
        AdvPreferredLifetime 604800;
        AdvOnLink on;
    };
};

내 시스템이 이 인터페이스에서 IPv6 주소를 자동으로 구성하지 못하게 하는 것은 무엇입니까?

답변1

감사해요@[이메일 보호됨]:

@larsks 2001:470:1234:1234::/110은 2001:470:1234:1234::/64여야 합니다.

SLAAC는 /64s(RFC 4862 및 4291)에서만 작동하도록 지정되었습니다.

예: 이를 변경하려는 시도가 있었습니다. 바닥까지의 경쟁과 기타 문제에 대한 우려는 널리 논의되어 왔습니다. /64는 리프 네트워크가 유용한 최소 공간을 확보하는 데 도움이 됩니다.

내레이터: 휴대폰은 Phone/64별로 모델링되어 IPv6 테더링(64share 등을 통해)을 허용합니다. 이와 같은 더 많은 콘텐츠가 개발 중입니다.

@larsks 유용하다면 자유롭게 stackexchange에 복사하세요.

주위를 둘러보면 그런 것 같다.RFC 7421이 특정 상황에 대한 매우 명확한 개요입니다.

관련 정보