コンテンツにスキップ

IPv6 の基礎: ULA、RA/SLAAC、PD、DNS を確認する

アドレスと仕組みに関する5つの用語

Section titled “アドレスと仕組みに関する5つの用語”
名前 例/役割 よくある間違い
link-local fe80::/10 すべての NIC にあり、パブリックではない
ULA fd00::/8 の範囲内 インターネットから直接ルーティングできない
GUA 2000::/3 のパブリックアドレス 上流の PD/割り当てが必要
RA ルーターがプレフィックス/ゲートウェイ/DNS を通知する RA がなければ SLAAC は使えない
SLAAC クライアントが RA のプレフィックスからアドレスを生成する DHCPv6 ではない
DHCPv6 サーバーがアドレス/プレフィックス/DNS を割り当てる IPv4 の DHCP とは異なる
PD 上流がルーターにプレフィックスを委任する PD がなければ LAN の GUA はない
ルーターのシェルアドレス、ルート、UCI を確認する
ターミナルウィンドウ
ip -6 addr show
ip -6 route
uci show network.lan
uci show dhcp.lan
uci show network.globals
logread -e odhcpd | tail -30

この検証では、br-lan に ULA fd2f:385b:7d0a::1/60 と link-local があり、IPv6 のデフォルトルートと GUA はありませんでした。

期待される結果link-local のみか、ULA か、GUA があるかが分かる。

ルーターのシェルLAN のプレフィックスと RA サービスを確認する
ターミナルウィンドウ
uci show network.globals.ula_prefix
uci show network.lan.ip6assign
uci show dhcp.lan.ra
uci show dhcp.lan.ra_slaac
uci show dhcp.lan.dhcpv6
ps | grep [o]dhcpd

この検証の結果:

network.globals.ula_prefix='fd2f:385b:7d0a::/48'
network.lan.ip6assign='60'
dhcp.lan.ra='server'
dhcp.lan.ra_slaac='1'
dhcp.lan.dhcpv6='server'

ip6assign='60' は、ULA の /48 から LAN 用に /60 を割り当てます。クライアントには通常 /64 が割り当てられます。

期待される結果LAN に ULA プレフィックスがあり、odhcpd が RA を送信している。

パソコンクライアントに RA からアドレスを取得させる

Linux の例(accept_ra=2 はこの netns でのみ設定したもので、通常のクライアントは既定値のままです):

ターミナルウィンドウ
sysctl -w net.ipv6.conf.eth0.accept_ra=2
ip -6 addr show eth0
ip -6 route
ping -6 -c 2 <router-ULA>

この検証の netns クライアントが取得した内容:

fd2f:385b:7d0a:0:5088:71ff:fed4:32d2/64 scope global dynamic
fe80::5088:71ff:fed4:32d2/64 scope link

そして fd2f:385b:7d0a::1 に ping が通りました。クライアントにあったのは fd2f:385b:7d0a::/64 のみで、IPv6 のデフォルトルートはありませんでした(上流がないため)。

期待される結果クライアントが ULA を取得し、ルーターの IPv6 に ping できる。

ルーターのシェルWAN6/上流がプレフィックスを提供しているか確認する
ターミナルウィンドウ
uci show network.wan6 2>/dev/null
ubus call network.interface.wan6 status 2>/dev/null
ip -6 route
ip -6 addr show eth1
logread | grep -Ei 'odhcp6c|dhcpv6|pd' | tail -30

一般的なメインルーターの設定:

ターミナルウィンドウ
uci set network.wan6=interface
uci set network.wan6.device='eth1'
uci set network.wan6.proto='dhcpv6'
uci commit network
/etc/init.d/network reload
  • 上流が IPv6/PD に対応している必要があります。ONT や ISP によっては /64 しか提供しない、または何も提供しない場合があります。
  • PD がない場合、LAN に「パブリックプレフィックス」を作り出さないでください。
  • この検証には上流の IPv6 がなかったため、GUA/PD は確認しておらず、確認したのは ULA/RA/SLAAC のみです。

期待される結果GUA とデフォルトルートがある、または上流に IPv6 がないことが明確になる。

ルーターのシェルAAAA と IPv6 の DNS を別々にテストする
ターミナルウィンドウ
nslookup -type=AAAA openwrt.org 127.0.0.1
nslookup -type=AAAA openwrt.org <router-ULA>
cat /tmp/resolv.conf.d/resolv.conf.auto
  • DNS が IPv4 を使っていても、AAAA は解決できます。
  • クライアントの DNS は RA/DHCPv6 から取得する場合と、手動設定の場合があります。
  • 「IPv6 が動く」ことを確認するために、すべての DNS を IPv6 に切り替えないでください。IPv4/IPv6 のフォールバックを残します。

ファイアウォール:

ターミナルウィンドウ
uci show firewall
nft list ruleset 2>/dev/null | head -80
  • ICMPv6/ND/RA を許可する(そうしないと IPv6 が壊れます)。
  • LAN→WAN の IPv6 forward を許可する。
  • 「接続性のテスト」のために IPv6 ファイアウォールを無効にしないでください。LAN が外部に公開されます。

期待される結果「AAAA がない」のか「DNS が IPv6 を使っていない」のかが分かる。

  • LAN に ULA プレフィックス/ip6assign がない
  • odhcpd が動作していない / RA がブロックされている
  • クライアントの accept_ra=0
  • スイッチ/AP がマルチキャスト/ICMPv6 をブロックしている
  • 上流に IPv6/PD がない
  • wan6 が未設定 / プレフィックスを受信していない
  • ISP が /64 しか提供せず、LAN 用に分割できない
  • リレー/ND プロキシの構成は別の話です。無理に使わないでください

アドレスはあるがインターネットに接続できない

Section titled “アドレスはあるがインターネットに接続できない”
  • IPv6 のデフォルトルートがない
  • ファイアウォールの forward/ICMPv6
  • DNS が IPv4 のみ
  • 上流のルート/プレフィックスが無効

IPv6 を有効にしたら IPv4 が遅くなる/壊れる

Section titled “IPv6 を有効にしたら IPv4 が遅くなる/壊れる”
  • DNS の優先順位/デュアルスタックのフォールバック
  • クライアントのプライバシーアドレス/RA パラメーター
  • IPv4 を動作させたまま、IPv6 を1ステップずつ追加する
  • 環境: OpenWrt 25.12.6 x86 VM 200。LAN は 192.168.1.2/24 + ULA fd2f:385b:7d0a::1/60。
  • ULA プレフィックスは fd2f:385b:7d0a::/48、ip6assign=60、ra=server、ra_slaac=1、dhcpv6=server。odhcpd は動作中。
  • クライアント: SLAAC で fd2f:385b:7d0a:0:5088:71ff:fed4:32d2/64 を取得し、ルーターの ULA に ping が通った。
  • 上流の IPv6/GUA/PD はなし。WAN6、実際の ISP、DHCPv6 クライアント、IPv6 のファイアウォール/NAT は未検証。
  • レシピ: tests/recipes/ipv6-25.12.md。
  • これは E2 の部分的な検証です。LAN の ULA/RA/SLAAC は検証しましたが、WAN の GUA/PD と実際の ISP は検証していません。
  • 独立したレビュアーはいません。結論はこの VM/netns 環境に限られます。
  • 「LAN に ULA がある」を「IPv6 インターネットが使える」と同一視しないでください。ULA は内部専用です。

出典

Router.Homes

独立した OpenWrt の実践ノートです。各ページにファームウェア、デバイス、パッケージマネージャー、元に戻す手順を明記しています。

アイコン:Solar by 480 Design, CC BY 4.0