12
13
2025
v6プラスサービスで固定IPとMAP-Eによるマルチホーム化を試みる(その1)
インターネット接続をマルチホーム化して業務用とプライベート用とで使い分ける
以前Tarnsixのサービスで実装したデュアルホームネットワークに関する記事『Transixサービスで固定IPとDS-Liteによるマルチホーム化を試みる』と同じ内容を、JPIXのv6プラスサービスで実装する方法について検証してみた.
Transixを用いて実装する場合と比べて、JPIXのv6プラスの方がマルチホームインターネット環境の実装が難しく、ちょっとした試行錯誤が必要だったので、その辺の事由について簡単に紹介する.
今回v6プラスサービスによるデュアルホームインターネット接続のイメージを次に示す.
v6プラスサービスで構成するデュアルホームインターネット接続環境のイメージ
v6プラスサービスでは、MAP-E、固定IPともにSubnet IDの値を0にしなければならない問題が発生
FLET’Sクロスサービスやひかり電話契約有りのFLET’Sネクストサービスでは、ユーザに払い出されるIPv6 prefix長が56bitsなので、残りの8bits分をユーザが任意に分割して配下のネットワークに割り振ることが可能だ.この8bitsの領域は、Subnet ID と呼ばれていて、FLET’Sの場合最大256まで配下のネットワークを分割可能だ.
Subnet IDはユーザが自由に使える筈なのだが、何故かFLET’S系のIPoEサービスではユーザが Subnet ID を使ってネットワークを分割すると固定IP系のサービスが使えなくなってしまう.TransixやXPassの固定IP系のサービスではSubnet IDに0以外を指定するとIPv4の固定IPサービスが使えなかった.
今回、v6プラスサービスでも同じ現象に悩まされてしまった.v6プラスサービスでは固定IPサービスだけではなく、MAP-Eのサービスまで全滅だった.尤もMAP-Eのサービスは、IPv6トンネルの使い方は固定IPサービスと同じ両方向の通信が必要なので、実質的には固定IP方式と同じだ.
固定IPサービスとMAP-Eサービスのどちらか一方しか利用しないのであれば、IPv6 prefixのSubnet IDが0であっても実際の運用では特に支障はない.今回のように、固定IPとMAP-Eを両方併用してデュアルホーム接続を行おうとするとこの制約が大きな支障となる.
とりあえず、MAP-Eと固定IPの接続設定を単独で設定して、Subnet IDに0以外の値を設定した場合の振る舞いを調べてみることにする.
MAP-E の場合
NECの『UNIVERGE IXシリーズ 技術情報』から、「v6プラス (MAP-E方式) 設定ガイド」の内容をほぼそのまま忠実にIX-2215に設定してみる.勿論、この場合は何の問題なく想定通りの結果が得られる.
...
ip ufs-cache max-entries 20000
ip ufs-cache enable
ip route default Tunnel0.0
ip dhcp enable
!
ipv6 ufs-cache max-entries 10000
ipv6 ufs-cache enable
ipv6 dhcp enable
!
ipv6 access-list block-list deny ip src any dest any
ipv6 access-list dhcpv6-list permit udp src any sport any dest any dport eq 546
ipv6 access-list dhcpv6-list permit udp src any sport any dest any dport eq 547
ipv6 access-list icmpv6-list permit icmp src any dest any
ipv6 access-list tunnel-list permit 4 src any dest any
ipv6 access-list other-list permit ip src any dest any
ipv6 access-list dynamic cache 65535
ipv6 access-list dynamic dflt-list access other-list
!
proxy-dns ip enable
proxy-dns ip request both
!
ip dhcp profile dhcpv4-sv
dns-server 192.168.1.1
!
ipv6 dhcp client-profile dhcpv6-cl
option-request dns-servers
ia-pd subscriber GigaEthernet1.0 ::/64 eui-64 <=== Subnet ID は 0
!
ipv6 dhcp server-profile dhcpv6-sv
dns-server dhcp
!
interface GigaEthernet0.0
no ip address
ipv6 enable
ipv6 traffic-class tos 0
ipv6 dhcp client dhcpv6-cl
ipv6 filter dhcpv6-list 1 in
ipv6 filter icmpv6-list 2 in
ipv6 filter tunnel-list 3 in
ipv6 filter block-list 100 in
ipv6 filter dhcpv6-list 1 out
ipv6 filter icmpv6-list 2 out
ipv6 filter tunnel-list 3 out
ipv6 filter dflt-list 100 out
no shutdown
!
interface GigaEthernet1.0
ip address 192.168.1.1/24
ip dhcp binding dhcpv4-sv
ipv6 enable
ipv6 dhcp server dhcpv6-sv
ipv6 nd ra enable
ipv6 nd ra other-config-flag
no shutdown
!
interface Tunnel0.0
tunnel mode map-e
ip address map-e
ip tcp adjust-mss auto
ip napt enable
no shutdown
!
ix2215-01(config)# show ipv6 addr
Interface GigaEthernet0.0 is up, line protocol is up
Global address(es):
240b:xxxx:yyyy:f400:: prefixlen 56 anycast
Link-local address(es):
fe80::260:b9ff:fee2:4624 prefixlen 64
fe80:: prefixlen 64 anycast
...
Interface GigaEthernet1.0 is up, line protocol is up
Global address(es):
240b:xxxx:yyyy:f400:6a:zzzz:6c00:f400 prefixlen 64 tentative
240b:xxxx:yyyy:f400:260:b9ff:fee2:46a4 prefixlen 64
Valid lifetime 14369, preferred lifetime 12569
240b:xxxx:yyyy:f400:: prefixlen 64 anycast
Link-local address(es):
fe80::260:b9ff:fee2:46a4 prefixlen 64
fe80:: prefixlen 64 anycast
...
ix2215-01(config)# show map status
Tunnel interface: Tunnel0.0
Vendor Name: JPIX
Status: active
Transport information:
CE IPv4 address is 106.XX.YY.108/32
CE IPv6 address is 240b:xxxx:yyyy:f400:6a:zzzz:6c00:f400/64
NAPT translation port:
8000-8015, 12096-12111, 16192-16207
20288-20303, 24384-24399, 28480-28495
32576-32591, 36672-36687, 40768-40783
44864-44879, 48960-48975, 53056-53071
57152-57167, 61248-61263, 65344-65359
Request statistics:
Last Request: -
Last Update : -
0 request, 0 success, 0 failure
ix2215-01(config)#
ix2215-01(config)# show int Tunnel0.0
Interface Tunnel0.0 is up
Fundamental MTU is 1460 octets
Current bandwidth 1G b/s, QoS is disabled
Datalink header cache type is ipv6-tunnel: 0/0 (standby/dynamic)
IPv4 subsystem connected, physical layer is up, 0:01:13
Dialer auto-connect is enabled
Inbound call is enabled
Outbound call is enabled
Dial on demand restraint is disabled, 0 disconnect
SNMP MIB-2:
ifIndex is 1208
Logical INTERFACE:
Elapsed time after clear counters 0:01:56
6 packets input, 576 bytes, 0 errors
6 unicasts, 0 non-unicasts, 0 unknown protos
0 drops, 0 misc errors
1 output requests, 116 bytes, 0 errors
1 unicasts, 0 non-unicasts
0 overflows, 0 neighbor unreachable, 0 misc errors
1 link-up detected, 0 link-down detected
Encapsulation TUNNEL:
Tunnel mode is map-e
Tunnel is ready
Destination address is 2404:9200:225:100::64
Source address is 240b:xxxx:yyyy:f400:6a:zzzz:6c00:f400
Nexthop address is fe80::d677:98ff:fe1c:6f53
Outgoing interface is GigaEthernet0.0
Interface MTU is 1460
Path MTU is 1500
Tunnel-link cache:
d4:77:98:1c:6f:53:00:60:b9:e2:46:24:86:dd
NAPT translation port:
8000-8015, 12096-12111, 16192-16207
20288-20303, 24384-24399, 28480-28495
32576-32591, 36672-36687, 40768-40783
44864-44879, 48960-48975, 53056-53071
57152-57167, 61248-61263, 65344-65359
Statistics:
34 packets input, 8668 bytes, 0 errors
41 packets output, 13905 bytes, 0 errors
Received ICMP messages:
0 errors
ix2215-01(config)#
JPIXの接続テストページでMAP-Eのアドレスとポートを確認
実際にIPv4接続で用いられているポート番号が、使用可能なポート番号に含まれていることが確認できる.
この設定ではsubnet IDが 0 なので、今回の用途では不都合があるのでsubnet IDの値を0以外の "c8" (VLAN IDの200) に設定してみる.
ipv6 dhcp client-profile dhcpv6-cl
option-request dns-servers
ia-pd subscriber GigaEthernet1.0 ::c8:0:0:0:fe/64 <=== Subnet ID は "c8" (200d)
!
ix2215-01(config)# show ipv6 addr
Interface GigaEthernet0.0 is up, line protocol is up
Global address(es):
240b:xxxx:yyyy:f400:: prefixlen 56 anycast
Link-local address(es):
fe80::260:b9ff:fee2:4624 prefixlen 64
fe80:: prefixlen 64 anycast
...
Interface GigaEthernet1.0 is up, line protocol is up
Global address(es):
240b:xxxx:yyyy:f4c8::fe prefixlen 64
Valid lifetime 14386, preferred lifetime 12586
240b:xxxx:yyyy:f4c8:: prefixlen 64 anycast
Link-local address(es):
fe80::260:b9ff:fee2:46a4 prefixlen 64
fe80:: prefixlen 64 anycast
...
ix2215-01(config)# show map status <=== MAP-Eの設定に失敗している
Tunnel interface: Tunnel0.0
Vendor Name: JPIX
Status: waiting
Request statistics:
Last Request: -
Last Update : -
0 request, 0 success, 0 failure
ix2215-01(config)#
上記の結果から、Subnet IDに 0 以外の値を指定するとv6プラスのMAP-Eは動作しないようだ.v6プラスのBRが当方のルータのIPv6アドレスと通信できないのか、それともマップルールサーバとの接続に失敗しているのかは不明だが、IPv6トンネルのアドレスは "240b:xxxx:yyyy:f400:6a:zzzz:6c00:f400" でなくてはいけないようだ.
Subnet IDの0以外の値を設定した場合にはインタフェースのIPv6アドレスは "240b:xxxx:yyyy:f4c8::fe/64" となるが、一つのインタフェースに対してIPv6アドレスは複数設定できるので、MAP-E用のアドレス "240b:xxxx:yyyy:f400:6a:zzzz:6c00:f400/64" を固定設定で与えてみて、MAP-Eの接続を検証してみた.
ipv6 dhcp client-profile dhcpv6-cl
option-request dns-servers
ia-pd subscriber GigaEthernet1.0 ::c8:0:0:0:fe/64 <=== Subnet ID は "c8" (200d)
!
...
interface GigaEthernet1.0
ip address 192.168.1.1/24
ip dhcp binding dhcpv4-sv
ipv6 enable
ipv6 address 240b:xxxx:yyyy:f400:6a:zzzz:6c00:f400/64 <=== MAP-E用のIPv6トンネルアドレスを追加
ipv6 dhcp server dhcpv6-sv
ipv6 nd ra enable
ipv6 nd ra other-config-flag
no shutdown
!
ix2215-01(config)# show ipv6 addr
Interface GigaEthernet0.0 is up, line protocol is up
Global address(es):
240b:xxxx:yyyy:f400:: prefixlen 56 anycast
Link-local address(es):
fe80::260:b9ff:fee2:4624 prefixlen 64
fe80:: prefixlen 64 anycast
...
Interface GigaEthernet1.0 is up, line protocol is up
Global address(es):
240b:xxxx:yyyy:f400:6a:zzzz:6c00:f400 prefixlen 64 <=== 追加したIPv6トンネルアドレス
240b:xxxx:yyyy:f4c8::fe prefixlen 64 <=== インタフェースのIPv6アドレス
Valid lifetime 14365, preferred lifetime 12565
240b:xxxx:yyyy:f400:: prefixlen 64 anycast
240b:xxxx:yyyy:f4c8:: prefixlen 64 anycast
Link-local address(es):
fe80::260:b9ff:fee2:46a4 prefixlen 64
fe80:: prefixlen 64 anycast
ix2215-01(config)# show map status
Tunnel interface: Tunnel0.0
Vendor Name: JPIX
Status: active
Transport information:
CE IPv4 address is 106.XX.YY.108/32
CE IPv6 address is 240b:xxxx:yyyy:f400:6a:zzzz:6c00:f400/64
NAPT translation port:
8000-8015, 12096-12111, 16192-16207
20288-20303, 24384-24399, 28480-28495
32576-32591, 36672-36687, 40768-40783
44864-44879, 48960-48975, 53056-53071
57152-57167, 61248-61263, 65344-65359
Request statistics:
Last Request: -
Last Update : -
0 request, 0 success, 0 failure
ix2215-01(config)# show int Tunnel0.0
Interface Tunnel0.0 is up
Fundamental MTU is 1460 octets
Current bandwidth 1G b/s, QoS is disabled
Datalink header cache type is ipv6-tunnel: 1/0 (standby/dynamic)
IPv4 subsystem connected, physical layer is up, 0:00:29
Dialer auto-connect is enabled
Inbound call is enabled
Outbound call is enabled
Dial on demand restraint is disabled, 0 disconnect
SNMP MIB-2:
ifIndex is 1208
Logical INTERFACE:
Elapsed time after clear counters 0:01:13
31 packets input, 8441 bytes, 0 errors
31 unicasts, 0 non-unicasts, 0 unknown protos
0 drops, 0 misc errors
44 output requests, 14291 bytes, 0 errors
44 unicasts, 0 non-unicasts
0 overflows, 0 neighbor unreachable, 0 misc errors
1 link-up detected, 0 link-down detected
Encapsulation TUNNEL:
Tunnel mode is map-e
Tunnel is ready
Destination address is 2404:9200:225:100::64
Source address is 240b:xxxx:yyyy:f400:6a:zzzz:6c00:f400
Nexthop address is fe80::d677:98ff:fe1c:6f53
Outgoing interface is GigaEthernet0.0
Interface MTU is 1460
Path MTU is 1500
Tunnel-link cache:
d4:77:98:1c:6f:53:00:60:b9:e2:46:24:86:dd
NAPT translation port:
8000-8015, 12096-12111, 16192-16207
20288-20303, 24384-24399, 28480-28495
32576-32591, 36672-36687, 40768-40783
44864-44879, 48960-48975, 53056-53071
57152-57167, 61248-61263, 65344-65359
Statistics:
31 packets input, 8441 bytes, 0 errors
44 packets output, 14291 bytes, 0 errors
Received ICMP messages:
0 errors
ix2215-01(config)#
外部のIPv6テストページで当方のIPv6アドレスを確認してみる
配下のPCには2系統のIPv6 prefixが割り当てられていて、リストの上位が優先される模様
この方法だと、MAP-Eが正常に動作することが確認できたが、IPv6で外部のサイトに接続する際に、本来の "240b:xxxx:yyyy:f40c8::/64" ではなく、"240b:xxxx:yyyy:f400::/64" のアドレスからの接続となってしまう.配下のPCに割り振られたIPV6アドレスの優先順位が "240b:xxxx:yyyy:f400::/64" の方が上位になっているのが原因のようだ.
"240b:xxxx:yyyy:f40c9::/64" の優先順位を"240b:xxxx:yyyy:f400::/64"よりも上げる方法があればこの問題は解決しそうだ.NECのIXシリーズのマニュアルをじっくりと眺めて、IPv6 prefix割当の優先順位を変更する方法が有りそうだが、とりあえず IPv6アドレスを手動で固定設定した方のprefixが優先されるようなので、次のように設定を変更したら、クライアントPCからの接続は"240b:xxxx:yyyy:f40c8::/64"が優先的に使われるようになった.
ipv6 dhcp client-profile dhcpv6-cl
option-request dns-servers
ia-pd subscriber GigaEthernet1.0 ::/64 eui-64 <=== Subnet ID を 0 に設定
!
interface GigaEthernet1.0
ip address 192.168.1.1/24
ip dhcp binding dhcpv4-sv
ipv6 enable
ipv6 address 240b:xxxx:yyyy:f4c8::fe/64 <=== 固定アドレスの"240b:xxxx:yyyy:f4c8::/64"を追加
ipv6 dhcp server dhcpv6-sv
ipv6 nd ra enable
ipv6 nd ra other-config-flag
no shutdown
!
-------------
ix2215-01(config)# show ipv6 addr
Interface GigaEthernet0.0 is up, line protocol is up
Global address(es):
240b:xxxx:yyyy:f400:: prefixlen 56 anycast
Link-local address(es):
fe80::260:b9ff:fee2:4624 prefixlen 64
fe80:: prefixlen 64 anycast
...
Interface GigaEthernet1.0 is up, line protocol is up
Global address(es):
240b:xxxx:yyyy:f400:6a: zzzz:6c00:f400 prefixlen 64
240b:xxxx:yyyy:f400:260:b9ff:fee2:46a4 prefixlen 64
Valid lifetime 12110, preferred lifetime 10310
240b:xxxx:yyyy:f4c8::fe prefixlen 64
240b:xxxx:yyyy:f400:: prefixlen 64 anycast
240b:xxxx:yyyy:f4c8:: prefixlen 64 anycast
...
ix2215-01(config)# show map status
Tunnel interface: Tunnel0.0
Vendor Name: JPIX
Status: active
Transport information:
CE IPv4 address is 106.XX.YY.108/32
CE IPv6 address is 240b:xxxx:yyyy:f400:6a:zzzz:6c00:f400/64
NAPT translation port:
8000-8015, 12096-12111, 16192-16207
20288-20303, 24384-24399, 28480-28495
32576-32591, 36672-36687, 40768-40783
44864-44879, 48960-48975, 53056-53071
57152-57167, 61248-61263, 65344-65359
Request statistics:
Last Request: -
Last Update : -
0 request, 0 success, 0 failure
ix2215-01(config)#
今度は"240b:xxxx:yyyy:f40c8::/64"が優先的に使用されるようになった
IPv6接続確認サイトでもきちんと"240b:xxxx:yyyy:f40c8::/64"で接続されていることを確認
かなりトリッキーな設定だが、とりあえずMAP-Eを有効にした状態でも、任意のIPv6 prefixで外部と通信できるようになった.MAP-Eを使いこなすには相当な努力と試行錯誤が必要なようだ.
MAP-E関連の設定の説明だけで長くなってしまったので、固定IPの設定に関しては続編で説明することにする.