NURO光を導入した知人宅でNAT2段超えIPsecトンネルを作って遊んでいた際、HG8045QというONU(無効にできないルータ内蔵)にULAモードなる設定があり、そのお家ではULA無しに設定されましたが、そういえば大昔に自分でも付けたなと思い起こし、プレフィックス生成ツールがごろごろある中RFC4193 3.2.2. Sample Code for Pseudo-Random Global ID Algorithmのサンプル通りに手動で生成だけしてみます。
1 2 3 4 |
> ntptime ntp_gettime() returns code 0 (OK) time db1ccb29.02542e54 Tue, Jun 28 2016 19:08:41.009, (.009097458), ... |
手順1)の値はtimeの後ろの値を.を取り除いてdb1ccb2902542e54になります。
1 2 3 4 5 6 7 |
> ifconfig bge0 bge0: flags=8843<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST> metric 0 mtu 1500 options=80083<RXCSUM,TXCSUM,VLAN_HWCSUM,LINKSTATE> ether 00:00:5e:00:53:1f ... inet6 fe80::200:5eff:fe00:531f%bge0 prefixlen 64 scopeid 0x1 ... |
手順2)の値は指示通りRFC3513に従って変換して(あるいは..ff:fe..:….のIPv6アドレスができていればその変換済みの下64ビット)200:5eff:fe00:531fなので02005efffe00531f です。
1 2 |
> echo -n 'db1ccb2902542e5402005efffe00531f' | perl -e 'print pack "H*", <stdin>' | /usr/local/bin/openssl sha1 (stdin)= 189174280402f62dfaf65dcd84fdb250aead70fe |
最後の手順6)FC00::/7 とthe L bit 1とSHA-1の下40ビットをつなげると fd50:aead:70fe::/48 で出来上がり。SHA-1なところが時代を感じさせます。
そのお家のNURO光では/56のIPv6がONU(無効にできないルータ内蔵)に割り当てられて/64でRAされているようでした。またリソース割り当てモードなる設定でその他の情報の割り当て方法をSLAACにすることでRAにDNSキャッシュサーバが入ってきていましたが、まだデバイス側がRFC6106に対応していないという場合も多そうです。別の知人宅の某CATVではIPv6アドレスが1個しか使えない(!)ということなので、そういうときにはNAPTとともにULAが大活躍していることでしょう。