NEC UNIVERGE IX2105 で OCN 光の IPoE 接続を行う

目次

前書き

NEC のルータ UNIVERGE IX2105 を用いて自宅の OCN 光の IPoE 接続を行うようにしたので、セットアップの過程を記録します。

利用したファームウェアバージョンは 10.2.42 で、設定はスーパーリセットを行った状態から始めています。 また、ひかり電話がない構成でセットアップしました。

セットアップにあたり、公式の設定ガイド (設定例1) を参考にしつつ、コマンドリファレンスマニュアルも参照して設定内容を適正化しています。


注釈

本記事ではコマンドやその出力を多数記載していますが、参考にする際は次の点に注意してください。

  • で始まる行はコマンドやその出力ではなく本記事を説明するための説明文です。
  • コンフィグレーションモードに入るための "enable-config" コマンドや、インターフェースコンフィグモードなどから抜けるための "exit" コマンドは省略しています。
  • 機器や環境固有の値およびそれらから生成される値は一部マスクしています。
  • "write memory" コマンドは適宜実行して設定内容を保存してください。

初期設定の確認

まずは、PCとコンソールケーブルで接続し、ターミナルを開いてから IX2105 の電源をオンにします。

その後、コンフィグレーションモードに入り、現在の設定内容を確認してみます。

 1Router# enable-config
 2Enter configuration commands, one per line. End with CNTL/Z.
 3
 4Router(config)# show running-config
 5! NEC Portable Internetwork Core Operating System Software
 6! IX Series IX2105 (magellan-sec) Software, Version 10.2.42, RELEASE SOFTWARE
 7! Compiled Sep 09-Fri-2022 13:40:53 JST #2
 8! Current time Nov 03-Fri-2023 16:46:24 JST
 9!
10timezone +09 00
11!
12!
13!
14!
15!
16!
17!
18!
19!
20!
21!
22!
23!
24device GigaEthernet0
25!
26device GigaEthernet1
27!
28interface GigaEthernet0.0
29  no ip address
30  shutdown
31!
32interface GigaEthernet1.0
33  no ip address
34  shutdown
35!
36interface Loopback0.0
37  no ip address
38!
39interface Null0.0
40  no ip address

スーパーリセットを行ってある状態なので、設定は空っぽです。 IPアドレスも全く設定されていません。


SSH 接続できるようにする

ローカルコンソール接続では不便なので、LAN 側に直結した PC から設定作業を行えるようにするために、まずは SSH 接続で設定作業を行えるようにしました。

ここで実施したこと

  • LAN 側で IPv6 を有効化し、リンクローカルユニキャストアドレスを設定する
  • IPv6 による SSH 接続を有効化する
  • 管理者ユーザを作成する
 1Router(config)# interface GigaEthernet1.0
 2Router(config-GigaEthernet1.0)# ipv6 enable
 3Router(config-GigaEthernet1.0)# no shutdown
 4
 5※ここで LAN 側と PC を接続し、リンクアップさせて少し待つ
 6
 7Router(config-GigaEthernet1.0)# show ipv6 address
 8Interface GigaEthernet1.0 is up, line protocol is up
 9  Link-local address(es):
10    fe80::260:XXXX:XXXX:XXXX prefixlen 64
11    fe80:: prefixlen 64 anycast
12  Multicast address(es):
13    ff02::1
14    ff02::2
15    ff02::1:ff00:0
16    ff02::1:ffff:XXXX
17
18
19Router(config)# ssh-server ipv6 enable
20Router(config)# username ユーザ名 password plain 1 パスワード administrator
21% User 'ユーザ名' has been added.
22
23Router(config)# write memory

以降は、設定されたリンクローカルユニキャストアドレス "fe80::260:XXXX:XXXX:XXXX" にSSHで接続して作業を行っていきます。


UFS キャッシュの有効化

UNIVERGE IX シリーズには「UFS (Unified Forwarding Service) キャッシュ」という高速化のための仕組みがあり、これは有効化しておくのが良いようなので先に有効化しておきます。

1Router(config)# ip ufs-cache enable
2Router(config)# ipv6 ufs-cache enable

IPoE による IPv6 インターネット接続

IPoE で IPv6 インターネット接続を行えるようにします。 いったん IX2105 だけがインターネット接続できるようにし、クライアントは後回しにしています。

ここで実施したこと

  • IPoE 接続を行う
  • DHCPv6 サーバから DNS サーバや NTP サーバの情報を受け取る
  • LAN 側インターフェースにグローバルユニキャストアドレスを設定する
  • IX2105 からインターネットに IPv6 で通信&名前解決できることを確認する
 1Router(config)# ipv6 dhcp client-profile dhcpv6
 2Router(config-ipv6-dhc-dhcpv6)# information-request
 3Router(config-ipv6-dhc-dhcpv6)# option-request dns-servers
 4
 5Router(config)# interface GigaEthernet0.0
 6Router(config-GigaEthernet0.0)# ipv6 enable
 7Router(config-GigaEthernet0.0)# ipv6 dhcp client dhcpv6
 8Router(config-GigaEthernet0.0)# ipv6 nd proxy GigaEthernet1.0
 9Router(config-GigaEthernet0.0)# no shutdown
10
11※ここで WAN 側と VDSL モデムを接続し、リンクアップさせて少し待つ
12
13Router(config)# show ipv6 address
14Interface GigaEthernet0.0 is up, line protocol is up
15  Link-local address(es):
16    fe80::260:XXXX:XXXX:XXXX prefixlen 64
17    fe80:: prefixlen 64 anycast
18  Multicast address(es):
19    ff02::1
20    ff02::2
21    ff02::1:2
22    ff02::1:ff00:0
23    ff02::1:ffff:XXXX
24Interface GigaEthernet1.0 is up, line protocol is up
25  Global address(es):
26    2400:4050:XXXX:XXXX:260:XXXX:XXXX:XXXX prefixlen 64
27    2400:4050:XXXX:XXXX:: prefixlen 64 anycast
28  Link-local address(es):
29    fe80::260:XXXX:XXXX:XXXX prefixlen 64
30    fe80:: prefixlen 64 anycast
31  Multicast address(es):
32    ff02::1
33    ff02::2
34    ff02::1:ff00:0
35    ff02::1:ffff:XXXX
36Interface Loopback0.0 is up, line protocol is up
37  Orphan address(es):
38    ::1 prefixlen 128
39Interface Loopback1.0 is up, line protocol is up
40Interface Null0.0 is up, line protocol is up
41Interface Null1.0 is up, line protocol is up
42
43
44Router(config)# show ipv6 dhcp client
45DHCPv6 client is enabled
46  System DUID 00:03:00:01:00:60:XX:XX:XX:XX
47  Statistics:
48    Information request-reply:
49      1 send, 20 seconds ago
50      1 receive, 0 drops, 20 seconds ago
51Interface GigaEthernet0.0 is active
52  Server address fe80::10ff:XXXX:XXXX
53  Server identifier 00:03:00:01:00:19:XX:XX:XX:XX
54  Uptime 0:00:20
55  DNS Servers:
56    2404:1a8:7f01:b::3
57    2404:1a8:7f01:a::3
58  NTP Servers:
59    2404:1a8:1102::b
60    2404:1a8:1102::a
61  Statistics:
62    Information request-reply:
63      1 send, 20 seconds ago
64      1 receive, 0 drops, 20 seconds ago
65
66
67Router(config)# show ipv6 route
68IPv6 Routing Table - 4 entries, unlimited
69Codes: C - Connected, L - Local, S - Static
70       R - RIPng, O - OSPF, IA - OSPF inter area
71       E1 - OSPF external type 1, E2 - OSPF external type 2, B - BGP
72       s - Summary
73Timers: Uptime/Age
74S      ::/0 orphan [100/1]
75         via fe80::10ff:XXXX:XXXX, GigaEthernet0.0, 0:00:29/0:00:00
76C      2400:4050:XXXX:XXXX::/64 global [0/1]
77         via ::, GigaEthernet1.0, 0:00:28/0:00:00
78L      2400:4050:XXXX:XXXX::/128 global [0/1]
79         via ::, GigaEthernet1.0, 0:00:29/0:00:00
80L      2400:4050:XXXX:XXXX:260:XXXX:XXXX:XXXX/128 global [0/1]
81         via ::, GigaEthernet1.0, 0:00:28/0:00:00
82
83
84Router(config)# ping6 dns64.dns.google
85Looking up ipv6 address for "dns64.dns.google" ...Success
86PING 2400:4050:XXXX:XXXX:260:XXXX:XXXX:XXXX > 2001:4860:4860::64 56 data bytes
8764 bytes from 2001:4860:4860::64 icmp_seq=0 hlim=57 time=8.124 ms
8864 bytes from 2001:4860:4860::64 icmp_seq=1 hlim=57 time=5.263 ms
8964 bytes from 2001:4860:4860::64 icmp_seq=2 hlim=57 time=4.795 ms
90
91--- 2001:4860:4860::64 ping statistics ---
923 packets transmitted, 3 packets received, 0% packet loss
93round-trip (ms)  min/avg/max = 4.795/6.060/8.124

グローバルユニキャストアドレスは LAN 側インターフェースである GigaEthernet1.0 に設定されています。 そうさせるために、GigaEthernet0.0 に "ipv6 nd proxy GigaEthernet1.0" の設定が必要でした。


IPv6 フィルタの設定

IPv6 通信に関してフィルタが全く入っていない状態ですので、クライアントがインターネットに接続できるようにする前に、フィルタを設定しておきます。

ここで実施したこと

  • WAN 側の DHCPv6 通信を許可する
  • 内向き・外向きともに、ICMPv6 通信を許可する
  • 外向きは任意の通信を許可し、その通信の逆方向も許可する
  • 上記以外の内向きの通信を拒否する
 1Router(config)# ipv6 access-list deny-all deny ip src any dest any
 2Router(config)# ipv6 access-list permit-dhcpv6-i permit udp src fe80::/64 sport eq 547 dest fe80::/64 dport eq 546
 3Router(config)# ipv6 access-list permit-dhcpv6-o permit udp src fe80::/64 sport eq 546 dest fe80::/64 dport eq 547
 4Router(config)# ipv6 access-list permit-icmpv6 permit icmp src any dest any
 5Router(config)# ipv6 access-list permit-all permit ip src any dest any
 6
 7Router(config)# ipv6 access-list dynamic cache 65535
 8Router(config)# ipv6 access-list dynamic dynamic-all access permit-all
 9
10Router(config)# interface GigaEthernet0.0
11Router(config-GigaEthernet0.0)# ipv6 filter permit-dhcpv6-i 1 in
12Router(config-GigaEthernet0.0)# ipv6 filter permit-icmpv6 2 in
13Router(config-GigaEthernet0.0)# ipv6 filter deny-all 100 in
14Router(config-GigaEthernet0.0)# ipv6 filter permit-dhcpv6-o 1 out
15Router(config-GigaEthernet0.0)# ipv6 filter permit-icmpv6 2 out
16Router(config-GigaEthernet0.0)# ipv6 filter dynamic-all 100 out

公式の設定ガイドでは 546/UDP および 547/UDP 宛の任意のパケットを内向きに通す設定となっており、少し気持ち悪いので許可する範囲を狭めています。

ICMPv6 も狭めたほうがいいはずですが、どのタイプやコードが通信に必須なのか正確に把握していないため、全て通すようにしています。


クライアントを IPv6 インターネット接続

IPv6 で安全にインターネットと通信できる用意が整ったので、LAN 側にいるクライアントも IPv6 でインターネット接続できるようにします。 クライアントには RA で IPv6 グローバルユニキャストアドレスを配布し、IX2105 を DNS キャッシュサーバにもします。

ここで実施したこと

  • IPv6 による DNS キャッシュサーバ機能を有効化する
  • DHCPv6 サーバ機能を有効化する
  • RA で IPv6 グローバルユニキャストアドレスを配布する
  • DHCPv6 サーバ機能で DNS キャッシュサーバの情報を配布する
 1Router(config)# proxy-dns ipv6 enable
 2Router(config)# proxy-dns ip request both
 3Router(config)# dns cache enable
 4
 5Router(config)# ipv6 dhcp server-profile dhcpv6
 6Router(config-ipv6-dhs-dhcpv6)# dns-server 2400:4050:XXXX:XXXX:260:XXXX:XXXX:XXXX
 7※IX2105 のグローバルユニキャストアドレスを指定する
 8
 9Router(config)# ipv6 dhcp enable
10
11Router(config)# interface GigaEthernet1.0
12Router(config-GigaEthernet1.0)# ipv6 dhcp server dhcpv6
13Router(config-GigaEthernet1.0)# ipv6 nd ra enable
14Router(config-GigaEthernet1.0)# ipv6 nd ra other-config-flag

DNS キャッシュサーバ機能は、デフォルトでは IPv4 でのみ DNS リクエストを送信するようになっているようなので、"proxy-dns ip request both" とすることで IPv6 でも DNS リクエストを送信するようにもしています。

コマンドリファレンスマニュアルでは、DHCPv6 サーバ設定で "dns-server autoconfig" とすればインターフェースのグローバルユニキャストアドレスを DNS サーバとして使用してくれると書かれていますが、IX2105 のファームウェアではこの指定はできませんでした。

上記の設定を行うことで、クライアントの Windows PC にはグローバルユニキャストアドレスと DNS サーバが無事に設定されました。

 1C:\Users\ymstmsys>ipconfig /all
 2
 3イーサネット アダプター イーサネット:
 4
 5   接続固有の DNS サフィックス . . . . .:
 6   説明. . . . . . . . . . . . . . . . .: Realtek PCIe GbE Family Controller
 7   物理アドレス. . . . . . . . . . . . .: 9C-6B-XX-XX-XX-XX
 8   DHCP 有効 . . . . . . . . . . . . . .: はい
 9   自動構成有効. . . . . . . . . . . . .: はい
10   IPv6 アドレス . . . . . . . . . . . .: 2400:4050:XXXX:XXXX:XXXX:XXXX:XXXX:XXXX(優先)
11   一時 IPv6 アドレス. . . . . . . . . .: 2400:4050:XXXX:XXXX:XXXX:XXXX:XXXX:XXXX(優先)
12   リンクローカル IPv6 アドレス. . . . .: fe80::3c58:5286:XXXX:XXXX%11(優先)
13   自動構成 IPv4 アドレス. . . . . . . .: 169.254.132.101(優先)
14   サブネット マスク . . . . . . . . . .: 255.255.0.0
15   デフォルト ゲートウェイ . . . . . . .: fe80::260:XXXX:XXXX:XXXX%11
16   DHCPv6 IAID . . . . . . . . . . . . .: 178023168
17   DHCPv6 クライアント DUID. . . . . . .: 00-01-00-01-XX-XX-XX-XX-9C-XX-XX-XX-XX-XX
18   DNS サーバー. . . . . . . . . . . . .: 2400:4050:XXXX:XXXX:260:XXXX:XXXX:XXXX
19   NetBIOS over TCP/IP . . . . . . . . .: 有効

IPv4 ネットワーク設定

IPv4 でインターネット接続を行えるようにする前に、プライベート IPv4 アドレスで自宅内ネットワークを設定しておきます。

ここで実施したこと

  • IPv4 による DNS キャッシュサーバ機能を有効化する
  • DHCP サーバ機能を有効化する
  • DHCP でプライベート IPv4 アドレスを配布する
 1Router(config)# interface GigaEthernet1.0
 2Router(config-GigaEthernet1.0)# ip address 192.168.1.1/24
 3
 4
 5Router(config)# proxy-dns ip enable
 6
 7Router(config)# ip dhcp profile dhcpv4
 8Router(config-dhcp-dhcpv4)# assignable-range 192.168.1.201 192.168.1.254
 9Router(config-dhcp-dhcpv4)# subnet-mask 255.255.255.0
10Router(config-dhcp-dhcpv4)# default-gateway 192.168.1.1
11Router(config-dhcp-dhcpv4)# dns-server 192.168.1.1
12Router(config-dhcp-dhcpv4)# lease-time 172800
13
14Router(config)# ip dhcp enable
15
16Router(config)# interface GigaEthernet1.0
17Router(config-GigaEthernet1.0)# ip dhcp binding dhcpv4

クライアントの Windows PC にはプライベート IPv4 アドレスと DNS サーバが無事に設定されました。

 1C:\Users\ymstmsys>ipconfig /all
 2
 3イーサネット アダプター イーサネット:
 4
 5   接続固有の DNS サフィックス . . . . .:
 6   説明. . . . . . . . . . . . . . . . .: Realtek PCIe GbE Family Controller
 7   物理アドレス. . . . . . . . . . . . .: 9C-6B-XX-XX-XX-XX
 8   DHCP 有効 . . . . . . . . . . . . . .: はい
 9   自動構成有効. . . . . . . . . . . . .: はい
10   IPv6 アドレス . . . . . . . . . . . .: 2400:4050:XXXX:XXXX:XXXX:XXXX:XXXX:XXXX(優先)
11   一時 IPv6 アドレス. . . . . . . . . .: 2400:4050:XXXX:XXXX:XXXX:XXXX:XXXX:XXXX(優先)
12   リンクローカル IPv6 アドレス. . . . .: fe80::3c58:5286:XXXX:XXXX%11(優先)
13   IPv4 アドレス . . . . . . . . . . . .: 192.168.1.201(優先)
14   サブネット マスク . . . . . . . . . .: 255.255.255.0
15   リース取得. . . . . . . . . . . . . .: 2023年11月3日 20:07:46
16   リースの有効期限. . . . . . . . . . .: 2023年11月5日 20:07:45
17   デフォルト ゲートウェイ . . . . . . .: fe80::260:XXXX:XXXX:XXXX%11
18                                          192.168.1.1
19   DHCP サーバー . . . . . . . . . . . .: 192.168.1.1
20   DHCPv6 IAID . . . . . . . . . . . . .: 178023168
21   DHCPv6 クライアント DUID. . . . . . .: 00-01-00-01-XX-XX-XX-XX-9C-XX-XX-XX-XX-XX
22   DNS サーバー. . . . . . . . . . . . .: 2400:4050:XXXX:XXXX:260:XXXX:XXXX:XXXX
23                                          192.168.1.1
24   NetBIOS over TCP/IP . . . . . . . . .: 有効

MAP-E による IPv4 インターネット接続

OCN は MAP-E 方式による IPv4 インターネット接続を提供しているため、それに合わせた設定を行います。

MAP-E では IX2105 (CE) がプライベート IPv4 アドレスからグローバル IPv4 アドレスへの NAPT を行いますので、IPv4 フィルタは無くても良いでしょう。

ここで実施したこと

  • MAP-E 用のトンネルインターフェースを設定
  • トンネルインターフェースで NAPT を有効化
  • IPv4 のデフォルトゲートウェイをトンネルインターフェースに向ける
  • IX2105 からインターネットに IPv4 で通信できることを確認する
 1Router(config)# interface Tunnel0.0
 2Router(config-Tunnel0.0)# tunnel mode map-e ocn
 3Router(config-Tunnel0.0)# ip address map-e
 4Router(config-Tunnel0.0)# ip tcp adjust-mss auto
 5Router(config-Tunnel0.0)# ip napt enable
 6Router(config-Tunnel0.0)# no shutdown
 7
 8※少し待つ
 9
10Router(config)# show ip address Tunnel0.0
11Interface Tunnel0.0 is up, line protocol is up
12  Internet address is 153.XXX.XXX.XXX/32
13  Broadcast address is 255.255.255.255
14  Address determined by MAP-E
15
16
17Router(config)# show map-e status
18Tunnel interface: Tunnel0.0
19  Vendor Name: OCN
20  Status: active
21  Transport information:
22    CE IPv4 address is 153.XXX.XXX.XXX/32
23    CE IPv6 address is 2400:4050:XXXX:XXXX:99:XXXX:XXXX:XXXX/64
24  NAPT translation port:
25    ※省略
26  Request statistics:
27    Last Request: -
28    Last Update : -
29    0 request, 0 success, 0 failure
30
31
32Router(config)# show ipv6 address GigaEthernet1.0
33Interface GigaEthernet1.0 is up, line protocol is up
34  Global address(es):
35    2400:4050:XXXX:XXXX:99:XXXX:XXXX:XXXX prefixlen 64
36    2400:4050:XXXX:XXXX:260:XXXX:XXXX:XXXX prefixlen 64
37    2400:4050:XXXX:XXXX:: prefixlen 64 anycast
38  Link-local address(es):
39    fe80::260:XXXX:XXXX:XXXX prefixlen 64
40    fe80:: prefixlen 64 anycast
41  Multicast address(es):
42    ff02::1
43    ff02::2
44    ff02::1:2
45    ff02::1:ff00:0
46    ff02::1:ff00:XXXX
47    ff02::1:ffff:XXXX
48
49
50Router(config)# ip route default Tunnel0.0
51
52Router(config)# ping 8.8.8.8
53PING 153.XXX.XXX.XXX > 8.8.8.8 56 data bytes
5464 bytes from 8.8.8.8: icmp_seq=0 ttl=61 time=4.774 ms
5564 bytes from 8.8.8.8: icmp_seq=1 ttl=61 time=4.702 ms
5664 bytes from 8.8.8.8: icmp_seq=2 ttl=61 time=4.721 ms
57
58--- 8.8.8.8 ping statistics ---
593 packets transmitted, 3 packets received, 0% packet loss
60round-trip (ms)  min/avg/max = 4.702/4.732/4.774

グローバル IPv4 アドレスと利用できるポート番号の範囲が無事に割り当てられました。 また、CE 用の IPv6 アドレスも新たに設定されています。

IPv4 のデフォルトゲートウェイをトンネルインターフェースに向けると、無事に IPv4 でインターネットと通信できました。 クライアント PC からも同様に通信できています。


IPv6 フィルタの効率化

MAP-E では IPv4 パケットが IPv6 にカプセル化されて送受信されます。

この通信は先に設定した "ipv6 access-list dynamic dynamic-all access permit-all" によって通っています。 しかし、ダイナミックアクセスリストによって内向きの通信を許可するというのはおそらく非効率のはずなので、静的なアクセスリストで許可するように改良してみます。 なお、公式の設定ガイドでは IPv4 がカプセル化された通信 (IPプロトコル番号が4) を全て許可するようになっていますが、これは気持ち悪いので許可する範囲は狭めたほうがいいです。

MAP-E では CE と VNE 事業者側にある BR の間で IPv4 がカプセル化された IPv6 通信を行います。 BR の IPv6 アドレスは "show map-e status" コマンドの出力に含まれていませんでしたが、"show ipv6 ufs-cache" コマンドの出力を見ればわかりました。

 1Router(config)# show ipv6 ufs-cache
 2IPv6 UFS Cache - 151 entries, 3945 frees, 459 peaks
 3                 924 creates, 0 overflows
 4Codes: * - L3 cache, p - Policy Routing, f - Filter, s - IPsec, d - DMVPN
 5       q - QoS, k - GRE key
 6Interface is GigaEthernet0.0:
 7       Prot [Source Addr]:Port > [Destination Addr]:Port      Uptime   Hits  Ents
 8*f     ipv4 [2001:380:a120::9]
 9            > [2400:4050:XXXX:XXXX:99:XXXX:XXXX:XXXX]         0:02:20  776   1
10※以下略

ipv4 というプロトコル名で CE のアドレス ("show map-e status" の出力に含まれている) と通信している相手が BR です。

CE と BR の間だけ IPv4 がカプセル化された IPv6 通信を許可するように次の設定を追加しました。

1Router(config)# ipv6 access-list permit-mape-i permit 4 src 2001:380:a120::9/128 dest 2400:4050:XXXX:XXXX:99:XXXX:XXXX:XXXX/128
2Router(config)# ipv6 access-list permit-mape-o permit 4 src 2400:4050:XXXX:XXXX:99:XXXX:XXXX:XXXX/128 dest 2001:380:a120::9/128
3
4Router(config)# interface GigaEthernet0.0
5Router(config-GigaEthernet0.0)# ipv6 filter permit-mape-i 3 in
6Router(config-GigaEthernet0.0)# ipv6 filter permit-mape-o 3 out

まとめ

UNIVERGE IX シリーズは初めて触れましたが、大きく躓くことなく設定できました。 コマンドリファレンスマニュアルが PDF ファイルでしか用意されていないようなので、参照するのが大変でした…。

全ての機能やコマンドを把握しているわけではないため、設定に不備や改良すべき点があるかもしれず、場合によっては本記事も修正するかもしれません。

また、クラウド上の自分のマシンから自宅内のサーバに入れるようにしたり、PPPoE パススルーを行うようにしたりなど、自分の環境用の設定は別途行っています。