IPv6高速ハイブリッド IPv6 IPoE + IPv4 はどのようにして IPv4 over IPv6 を実現しているのか
まえがき
我が家では「Yahoo! BB 光 with フレッツ」(以下 Y!BB)を契約しているが、Y!BB が提供するオプションサービスの中に「IPv6高速ハイブリッド IPv6 IPoE + IPv4」(以下 IPv6 高速ハイブリッド、提供元は BBIX 社で、実態は Softbank 光の同名なオプションと同一)というオプションがある。
この IPv6 高速ハイブリッドは所謂 IPv4 over IPv6 サービスなのだが、他社の MAP-E や DS-Lite と違い1契約につき半固定の IPv4 アドレスが1つ割り当てられる。
しかし、このサービスの詳細は全くもって不明で、光BBユニット(以下 CPE)しか対応しているルーターがなく、使用しているプロトコルなども開示されていない。
信頼できない情報源 によれば 4rd/SAM という BBIX 社しか利用していないプロトコルが使われているとされている。 実際にはそのような名前のプロトコルは存在せず、4rd というプロトコルが RFC7600 で定義されているがこの RFC は放棄されている。 この 4rd は JPNE 社などが採用している MAP-E の前身となっている
https://tweet-card.now.sh/1278921440180367360.png?theme=dark https://twitter.com/bbix_mfukuchi/status/1278921440180367360?ref_src=twsrc%5Etfw%7Ctwcamp%5Etweetembed%7Ctwterm%5E1278921440180367360%7Ctwgr%5E&ref_url=https%3A%2F%2Forumin.blogspot.com%2F2020%2F07%2Fbbix-ipv4-over-ipv6-4rdsam.html
また、4rd の使用については BBIX COO の福智氏が明確に否定している。
5ちゃんねるの真偽不明な情報によれば
禿は独自プロトコル。トンネルはただのIPIPで、ユーザ側の専用ルータがIPv4のグローバルアドレスを占有し(他のVNEは共有)、トンネル終端と普通のNATをするだけ。
だから所謂ポート開放ができる。
v4のアドレスは半固定で、RADIUS認証で取得している模様。
ソフトバンクはIPv4アドレスを4000万個も持っているから、アドレス共有なしでー契約ーグローバルlPの単なるIPIPトンネル。CPE側で普通のNAT。
禿ルータまではTCPやUDPに限らず任意のL4プロトコルがトンネルを通って来るが、このルータが糞でGREも通らないしNATも切れない。
また、アドレスの二進表記を見ると、簡単なステートレスマッピングではなさそう。
2400:2000:bb1b:8::5にRADIUSで認証するとグローバルIPv4アドレスやトンネル終端が分かる。
CPE側は2400:2???:????:??00:1111:1111:1111:1111
BR側は2400:2000:4:0:a000::1 っぽい。
まあこんなところ。少なくとも4rdではない。
では一体 IPv6 高速ハイブリッドはどのようなプロトコルを使用し、どのようにして IPv4 over IPv6 を実現しているのだろうか?
CPE について事前に分かっていること
1つの CPE につき1つのグローバル IPv4 が付与される
DS-Lite や MAP-E のようなアドレス共有は行っていない
ユーザーは CPE に契約情報を入力する必要がなく、HGW に接続するだけで IPv4 over IPv6 が行なわれる
つまり出荷時点で CPE に接続情報が書き込まれているか、CPE に付与されている MAC アドレスなどの ID が ISP 側に登録されている
無線 LAN 機能はオプション加入状態を見て有効化無効化を切り替えているので確実に ID は ISP 側に登録されている
HGW に接続するだけ というのがポイントで
ひかり電話を契約している場合は UNI ポートの差し替えなどで ONU に CPE を直結しても接続が確立しない
ひかり電話を契約している場合は問答無用で HGW が NTT 東西より提供されるが、ひかり電話を契約していない場合は別途オプションサービスなどに加入しないければ HGW が提供されない
ひかり電話を契約している場合はプレフィクス長が 56 bits の IPv6 アドレスが割り当てられるが
ひかり電話を契約していない場合はプレフィクス長が 64 bits の IPv6 アドレスが割り当てられる
つまり、ひかり電話を契約しているたいていのユーザーは HGW が /56 の移譲を受けて CPE 等の各端末に /64を RA ひかり電話を契約していないユーザーは CPE 等の各端末が HGW からプロキシーされた /64 の RA を受ける
なので CPE 自体が DHCPv6-PD でプレフィクスの移譲を受ける事が基本的に発生しない
よって CPE には DHCPv6-PD が実装されておらず、ONU に CPE を直結しても接続が確立しないと考えられる
リモート接続機能があり、サポートデスクが設定やログを確認することができる
HGW の IPv6 フィルタに引っかかるらしく、外してと言われた
接続の流れ
登場人物
table:characters
名前 場所 MAC アドレス IPv4 アドレス IPv6 アドレス
HGW 家 28:e9:8e:<secret> - -
CPE 家 ac:d1:b8:<secret> 60.119.126.157 2400:2410:3021:4900:1111:1111:1111:1111
RADIUS BBIX社 - 2400:2000:bb1b:8::5
BR BBIX社 - - 2400:2000:4:0:a000::1018
PING-R BBIX社 - 221.111.138.142 -
PING-S BBIX社 - 69.162.124.233 -
TFTPD BBIX社 - 221.111.6.11 -
NTPD BBIX社 - - 2400:2000:bb1b:10::1
もしかしたら PING-R は GW と同一かも?
RADIUS 認証
Wireshark で使える dictionary を用意しておきました
code:radius-access-request
Frame 196: 247 bytes on wire (1976 bits), 247 bytes captured (1976 bits) on interface \Device\NPF_{8FBC3EF2-7267-4FAC-A506-57BA4E32B9AE}, id 0
Ethernet II, Src: HonHaiPr_<secret> (ac:d1:b8:<secret>), Dst: Mitsubis_<secret> (28:e9:8e:<secret>)
Internet Protocol Version 6, Src: 2400:2410:3021:4900:1111:1111:1111:1111, Dst: 2400:2000:bb1b:8::5
User Datagram Protocol, Src Port: 1029, Dst Port: 1812
RADIUS Protocol
Code: Access-Request (1)
Packet identifier: 0xe6 (230)
Length: 185
Authenticator: f8dbb8d394c687d6a0a1b08ca09e878b
Attribute Value Pairs
AVP: t=User-Name(1) l=41 val=2400:2410:3021:4900:1111:1111:1111:1111
Type: 1
Length: 41
User-Name: 2400:2410:3021:4900:1111:1111:1111:1111
AVP: t=Vendor-Specific(26) l=22 vnd=SOFTBANK BB Corp.(22197)
Type: 26
Length: 22
Vendor ID: SOFTBANK BB Corp. (22197)
VSA: t=SoftBankBB-Unknown(1) l=16 val=616364312e623836632e39626230
AVP: t=Vendor-Specific(26) l=15 vnd=SOFTBANK BB Corp.(22197)
Type: 26
Length: 15
Vendor ID: SOFTBANK BB Corp. (22197)
VSA: t=SoftBankBB-E_WMTA-Vendor(2) l=9 val=foxconn
AVP: t=Vendor-Specific(26) l=31 vnd=SOFTBANK BB Corp.(22197)
Type: 26
Length: 31
Vendor ID: SOFTBANK BB Corp. (22197)
VSA: t=SoftBankBB-E_WMTA-Version(3) l=25 val=e-wmta2.2,V1.9.7.4.en24
AVP: t=Vendor-Specific(26) l=19 vnd=SOFTBANK BB Corp.(22197)
Type: 26
Length: 19
Vendor ID: SOFTBANK BB Corp. (22197)
VSA: t=SoftBankBB-E_WMTA-Revison(4) l=13 val=hw_rev_2.00
AVP: t=CHAP-Challenge(60) l=18 val=<secret>
Type: 60
Length: 18
CHAP-Challenge: <secret>
AVP: t=CHAP-Password(3) l=19 val=01<secret>
Type: 3
Length: 19
CHAP-Password: 01<secret>
CHAP で認証
Username は CPE の IPv6 アドレス
Challenge と Password は使い回してはいなかった(多分)
secret は不明、さすがに MAC アドレスとかではなかった
code:radius-access-accept
Frame 197: 565 bytes on wire (4520 bits), 565 bytes captured (4520 bits) on interface \Device\NPF_{8FBC3EF2-7267-4FAC-A506-57BA4E32B9AE}, id 0
Ethernet II, Src: Mitsubis_<secret> (28:e9:8e:<secret>), Dst: HonHaiPr_<secret> (ac:d1:b8:<secret>)
Internet Protocol Version 6, Src: 2400:2000:bb1b:8::5, Dst: 2400:2410:3021:4900:1111:1111:1111:1111
User Datagram Protocol, Src Port: 1812, Dst Port: 1029
RADIUS Protocol
Code: Access-Accept (2)
Packet identifier: 0xe6 (230)
Length: 503
Authenticator: 7815e565efebc9f7614b894018312fac
Attribute Value Pairs
AVP: t=Vendor-Specific(26) l=12 vnd=SOFTBANK BB Corp.(22197)
Type: 26
Length: 12
Vendor ID: SOFTBANK BB Corp. (22197)
VSA: t=SoftBankBB-Unknown(102) l=6 val=00000000
AVP: t=Vendor-Specific(26) l=12 vnd=SOFTBANK BB Corp.(22197)
Type: 26
Length: 12
Vendor ID: SOFTBANK BB Corp. (22197)
VSA: t=SoftBankBB-Unknown(103) l=6 val=00000000
AVP: t=Vendor-Specific(26) l=12 vnd=SOFTBANK BB Corp.(22197)
Type: 26
Length: 12
Vendor ID: SOFTBANK BB Corp. (22197)
VSA: t=SoftBankBB-Unknown(176) l=6 val=00015180
AVP: t=Vendor-Specific(26) l=12 vnd=SOFTBANK BB Corp.(22197)
Type: 26
Length: 12
Vendor ID: SOFTBANK BB Corp. (22197)
VSA: t=Unknown-Attribute(177) l=6 val=00000001
AVP: t=Vendor-Specific(26) l=12 vnd=SOFTBANK BB Corp.(22197)
Type: 26
Length: 12
Vendor ID: SOFTBANK BB Corp. (22197)
VSA: t=SoftBankBB-Unknown(178) l=6 val=00000001
AVP: t=Vendor-Specific(26) l=12 vnd=SOFTBANK BB Corp.(22197)
Type: 26
Length: 12
Vendor ID: SOFTBANK BB Corp. (22197)
VSA: t=SoftBankBB-Unknown(179) l=6 val=00000000
AVP: t=Vendor-Specific(26) l=12 vnd=SOFTBANK BB Corp.(22197)
Type: 26
Length: 12
Vendor ID: SOFTBANK BB Corp. (22197)
VSA: t=SoftBankBB-Unknown(182) l=6 val=00000000
AVP: t=Vendor-Specific(26) l=12 vnd=SOFTBANK BB Corp.(22197)
Type: 26
Length: 12
Vendor ID: SOFTBANK BB Corp. (22197)
VSA: t=SoftBankBB-TFTP-Server-IPv4Address(185) l=6 val=221.111.6.11
AVP: t=Vendor-Specific(26) l=27 vnd=SOFTBANK BB Corp.(22197)
Type: 26
Length: 27
Vendor ID: SOFTBANK BB Corp. (22197)
VSA: t=SoftBankBB-Revison(186) l=21 val=FCN.003.01.1.RT001\000
AVP: t=Vendor-Specific(26) l=12 vnd=SOFTBANK BB Corp.(22197)
Type: 26
Length: 12
Vendor ID: SOFTBANK BB Corp. (22197)
VSA: t=SoftBankBB-Unknown(187) l=6 val=00005460
AVP: t=Vendor-Specific(26) l=16 vnd=SOFTBANK BB Corp.(22197)
Type: 26
Length: 16
Vendor ID: SOFTBANK BB Corp. (22197)
VSA: t=SoftBankBB-Command(188) l=10 val=execute\000
AVP: t=Vendor-Specific(26) l=16 vnd=SOFTBANK BB Corp.(22197)
Type: 26
Length: 16
Vendor ID: SOFTBANK BB Corp. (22197)
VSA: t=SoftBankBB-Unknown-csv-1(193) l=10 val=60,,,,0\000
AVP: t=Vendor-Specific(26) l=16 vnd=SOFTBANK BB Corp.(22197)
Type: 26
Length: 16
Vendor ID: SOFTBANK BB Corp. (22197)
VSA: t=SoftBankBB-Unknown-csv-2(194) l=10 val=10,,,,0\000
AVP: t=Vendor-Specific(26) l=16 vnd=SOFTBANK BB Corp.(22197)
Type: 26
Length: 16
Vendor ID: SOFTBANK BB Corp. (22197)
VSA: t=SoftBankBB-Unknown-csv-2(195) l=10 val=10,,,,0\000
AVP: t=Vendor-Specific(26) l=24 vnd=SOFTBANK BB Corp.(22197)
Type: 26
Length: 24
Vendor ID: SOFTBANK BB Corp. (22197)
VSA: t=SoftBankBB-Unknown-v6addr-1(198) l=18 val=2404:1a8:7f01:a::3
AVP: t=Vendor-Specific(26) l=24 vnd=SOFTBANK BB Corp.(22197)
Type: 26
Length: 24
Vendor ID: SOFTBANK BB Corp. (22197)
VSA: t=SoftBankBB-Unknown-v6addr-2(199) l=18 val=2404:1a8:7f01:b::3
AVP: t=Vendor-Specific(26) l=12 vnd=SOFTBANK BB Corp.(22197)
Type: 26
Length: 12
Vendor ID: SOFTBANK BB Corp. (22197)
VSA: t=SoftBankBB-Unknown(200) l=6 val=00000005
AVP: t=Vendor-Specific(26) l=24 vnd=SOFTBANK BB Corp.(22197)
Type: 26
Length: 24
Vendor ID: SOFTBANK BB Corp. (22197)
VSA: t=SoftBankBB-Unknown-v6addr-3(201) l=18 val=2400:2000:bb1b:10::3
AVP: t=Vendor-Specific(26) l=24 vnd=SOFTBANK BB Corp.(22197)
Type: 26
Length: 24
Vendor ID: SOFTBANK BB Corp. (22197)
VSA: t=SoftBankBB-NTP-IPv6Address(203) l=18 val=2400:2000:bb1b:10::1
AVP: t=Vendor-Specific(26) l=12 vnd=SOFTBANK BB Corp.(22197)
Type: 26
Length: 12
Vendor ID: SOFTBANK BB Corp. (22197)
VSA: t=SoftBankBB-Tunnel-CPE-IPv4Address(204) l=6 val=60.119.126.157
AVP: t=Vendor-Specific(26) l=24 vnd=SOFTBANK BB Corp.(22197)
Type: 26
Length: 24
Vendor ID: SOFTBANK BB Corp. (22197)
VSA: t=SoftBankBB-Tunnel-GW-IPv6Address(207) l=18 val=2400:2000:4:0:a000::1018
AVP: t=Vendor-Specific(26) l=12 vnd=SOFTBANK BB Corp.(22197)
Type: 26
Length: 12
Vendor ID: SOFTBANK BB Corp. (22197)
VSA: t=SoftBankBB-Unknown(208) l=6 val=00000000
AVP: t=Vendor-Specific(26) l=12 vnd=SOFTBANK BB Corp.(22197)
Type: 26
Length: 12
Vendor ID: SOFTBANK BB Corp. (22197)
VSA: t=SoftBankBB-Unknown(209) l=6 val=00000000
AVP: t=Vendor-Specific(26) l=12 vnd=SOFTBANK BB Corp.(22197)
Type: 26
Length: 12
Vendor ID: SOFTBANK BB Corp. (22197)
VSA: t=SoftBankBB-Unknown(210) l=6 val=00000001
AVP: t=Vendor-Specific(26) l=12 vnd=SOFTBANK BB Corp.(22197)
Type: 26
Length: 12
Vendor ID: SOFTBANK BB Corp. (22197)
VSA: t=SoftBankBB-Tunnel-GW-IPv4Address(211) l=6 val=221.111.138.142
AVP: t=Vendor-Specific(26) l=12 vnd=SOFTBANK BB Corp.(22197)
Type: 26
Length: 12
Vendor ID: SOFTBANK BB Corp. (22197)
VSA: t=SoftBankBB-Unknown-v4mask-1(212) l=6 val=0.0.0.90
AVP: t=Vendor-Specific(26) l=22 vnd=SOFTBANK BB Corp.(22197)
Type: 26
Length: 22
Vendor ID: SOFTBANK BB Corp. (22197)
VSA: t=SoftBankBB-Unknown-csv-3(214) l=16 val=3,1,6,-,-,-,3\000
AVP: t=Vendor-Specific(26) l=58 vnd=SOFTBANK BB Corp.(22197)
Type: 26
Length: 58
Vendor ID: SOFTBANK BB Corp. (22197)
VSA: t=SoftBankBB-RouteInfo-Servers(215) l=52 val=route-info.flets-east.jp,route-info.flets-west.jp\000
しれっと IPIP トンネル開通
ICMPv4 で ping を飛ばし合い疎通確認
code:ping-from-cpe
Frame 199: 114 bytes on wire (912 bits), 114 bytes captured (912 bits) on interface \Device\NPF_{8FBC3EF2-7267-4FAC-A506-57BA4E32B9AE}, id 0
Ethernet II, Src: HonHaiPr_<secret> (ac:d1:b8:<secret>), Dst: Mitsubis_<secret> (28:e9:8e:<secret>)
Internet Protocol Version 6, Src: 2400:2410:3021:4900:1111:1111:1111:1111, Dst: 2400:2000:4:0:a000::1018
Internet Protocol Version 4, Src: 60.119.126.157, Dst: 221.111.138.142
Internet Control Message Protocol
Type: 8 (Echo (ping) request)
Code: 0
Identifier (BE): 10759 (0x2a07)
Identifier (LE): 1834 (0x072a)
Sequence Number (BE): 1 (0x0001)
Sequence Number (LE): 256 (0x0100)
Data (32 bytes)
Data: 2f000000f38c000008090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f
code:ping-from-gw
Frame 209: 106 bytes on wire (848 bits), 106 bytes captured (848 bits) on interface \Device\NPF_{8FBC3EF2-7267-4FAC-A506-57BA4E32B9AE}, id 0
Ethernet II, Src: Mitsubis_<secret> (28:e9:8e:<secret>), Dst: HonHaiPr_<secret> (ac:d1:b8:<secret>)
Internet Protocol Version 6, Src: 2400:2000:4:0:a000::1018, Dst: 2400:2410:3021:4900:1111:1111:1111:1111
Internet Protocol Version 4, Src: 69.162.124.233, Dst: 60.119.126.157
Internet Control Message Protocol
Type: 8 (Echo (ping) request)
Code: 0
Identifier (BE): 2793 (0x0ae9)
Identifier (LE): 59658 (0xe90a)
Sequence Number (BE): 8585 (0x2189)
Sequence Number (LE): 35105 (0x8921)
Data (24 bytes)
Data: 000000000000000000000000000000000000000000000000
TFTP でファームウェアをチェック?
先にバックアップファームウェア?
code:tftp-read-request-firmware-backup
Frame 206: 112 bytes on wire (896 bits), 112 bytes captured (896 bits) on interface \Device\NPF_{8FBC3EF2-7267-4FAC-A506-57BA4E32B9AE}, id 0
Ethernet II, Src: HonHaiPr_<secret> (ac:d1:b8:<secret>), Dst: Mitsubis_<secret> (28:e9:8e:<secret>)
Internet Protocol Version 6, Src: 2400:2410:3021:4900:1111:1111:1111:1111, Dst: 2400:2000:4:0:a000::1018
Internet Protocol Version 4, Src: 60.119.126.157, Dst: 221.111.6.11
User Datagram Protocol, Src Port: 1030, Dst Port: 69
Trivial File Transfer Protocol
Opcode: Read Request (1)
Source File: ewmta22backup.foxconn
Type: octet
code:tftp-data-packet-firmware-backup
Frame 207: 183 bytes on wire (1464 bits), 183 bytes captured (1464 bits) on interface \Device\NPF_{8FBC3EF2-7267-4FAC-A506-57BA4E32B9AE}, id 0
Ethernet II, Src: Mitsubis_<secret> (28:e9:8e:<secret>), Dst: HonHaiPr_<secret> (ac:d1:b8:<secret>)
Internet Protocol Version 6, Src: 2400:2000:4:0:a000::1018, Dst: 2400:2410:3021:4900:1111:1111:1111:1111
Internet Protocol Version 4, Src: 221.111.6.11, Dst: 60.119.126.157
User Datagram Protocol, Src Port: 44245, Dst Port: 1030
Trivial File Transfer Protocol
Opcode: Data Packet (3)
Block: 1
Data (97 bytes)
Data: 5b6a3138763131352e30302e30305f736f667462616e6b5d0a6a3138763131352e30302e…
code:tftp-data-firmware-backup
j18v115.00.00_softbank-V1.9.7.4.en23_bak_1.0.2.IMG
221.111.6.11
4800768
次にファームウェア?
code:tftp-read-request-firmware
Frame 211: 106 bytes on wire (848 bits), 106 bytes captured (848 bits) on interface \Device\NPF_{8FBC3EF2-7267-4FAC-A506-57BA4E32B9AE}, id 0
Ethernet II, Src: HonHaiPr_<secret> (ac:d1:b8:<secret>), Dst: Mitsubis_<secret> (28:e9:8e:<secret>)
Internet Protocol Version 6, Src: 2400:2410:3021:4900:1111:1111:1111:1111, Dst: 2400:2000:4:0:a000::1018
Internet Protocol Version 4, Src: 60.119.126.157, Dst: 221.111.6.11
User Datagram Protocol, Src Port: 1030, Dst Port: 69
Trivial File Transfer Protocol
Opcode: Read Request (1)
Source File: ewmta22.foxconn
Type: octet
code:tftp-data-packet-firmware
Frame 212: 222 bytes on wire (1776 bits), 222 bytes captured (1776 bits) on interface \Device\NPF_{8FBC3EF2-7267-4FAC-A506-57BA4E32B9AE}, id 0
Ethernet II, Src: Mitsubis_<secret> (28:e9:8e:<secret>), Dst: HonHaiPr_<secret> (ac:d1:b8:<secret>)
Internet Protocol Version 6, Src: 2400:2000:4:0:a000::1018, Dst: 2400:2410:3021:4900:1111:1111:1111:1111
Internet Protocol Version 4, Src: 221.111.6.11, Dst: 60.119.126.157
User Datagram Protocol, Src Port: 41297, Dst Port: 1030
Trivial File Transfer Protocol
Opcode: Data Packet (3)
Block: 1
Data (136 bytes)
Data: 5b6a3138763131352e30302e30305f736f667462616e6b5d0a6a3138763131352e30302e…
code:tftp-data-firmware
j18v115.00.00_softbank-V1.9.7.4.en24_1.0.2.IMG
221.111.6.11
10445056
221.111.6.11
FCN.003.01.1.DT003
2039