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

ありがとう@[Eメール保護]:

@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これは特定の状況の非常に明確な概要です。

関連情報