KUSONEKOの見る世界

NEC IX2215 を自宅用ルータとして使ってみた

今まで自宅用のルータとして、YamahaのRTX810を使っていましたが、OCNのIPv4 IPoEサービスであるOCNバーチャルコネクト(MAP-E)を活用しきれていませんでした。

また、自宅サーバにインターネット側からアクセスするために、PPPoEと併用することが必須であるため、個人向けのルータは選択できません。
そのため、要件を満たせる業務用ルータでコスパの良い物が無いか探していました。

ヤフオクなどを覗き、相場を調べると、良いルータがありました。
それがNEC UNIVERGE IX2215でした。

IX2215が良い理由

まず、YamahaルータでMAP-Eに対応している物として、RTX830がありますが、2017年10月発売で後継機も無いため、まだ価格が下がってきていません。

RTX1210も対応しており、2014年11月発売でマイナーチェンジのRTX1220が出ていますが、元値が高いことから価格が下がっていません。
どちらも、ヤフオクの落札価格は安くても、4万円台です。

対して、IX2215は、2012年6月発売ではありますが、今だにファームウェア更新がされています。
ヤフオクでは、1万円台で落札できます。

さらにスループットがIX2207(2014年9月発売)よりも高く、小型で最新のIX2106(2017年11月発売)と同等です。
https://jpn.nec.com/univerge/ix/Performance/index.html

今買うならIX2215がおすすめです。
おまけにポート数も多いため、スイッチングハブが必要ありませんし、LAG(リンクアグリゲーション)も可能。

私は、落札のやり取りが面倒だったため、楽天で中古を購入しました。
問題があれば返品もできますし。

ただ、注意点としては、IX2215用のファームウェアがVer10.2以降でないと、OCNバーチャルコネクトに対応していません。
Ver.10.0以降のファームウェアが手元に無い場合は、Ver.10.0以降が入っているIX2215を購入してください。
Ver.10.0以降であれば、NetMeisterに登録し、個人でも最新ファームに変更することができます。
NetMeisterの登録には、フリーメール以外のメールアドレスが必要ですが、プロバイダ契約している方なら既にお持ちでしょう。

届いてからまずやったこと

届いたら、中古なので、まず動作確認をする必要があります。
起動することはもちろんのこと、すべてのポートでPingが通るかも確認しました。
無事すべてのポートが正常であることを確認しました。

さて、本格運用の前にもう一つやるべきことがあります。
それは清掃です。

本体の外側を拭くのはもちろんですが、内部にも埃が大量に溜まっています。
24時間動かすわけですから、埃が原因の出火は勘弁です。

中を開けるのは簡単で、本体背面のネジをはずすだけで、パカっと開きます。

IX2215の背面
IX2215の内部

あとはエアダスターで、基板上や隙間の埃を飛ばします。
ファンレスなのに内部に大きな白い綿埃がありました。

IXの設定

簡単に自宅用に設定した内容をカテゴリ別に記載しておきます。
参考にして頂ければと思います。

インターネット側はGE0、LAN側はGE2を使用し、GE1は未使用です。
PPPoEはGE0.1、IPv4 IPoE (IPv4 over IPv6 MAP-E) はTunnel0.0とします。

LAN側

基本的な設定です。環境に合わせて、セグメントを指定します。

interface GigaEthernet2.0
  ip address 192.168.0.254/24
  no shutdown

PPPoE

インターネットからサーバにアクセスする場合と、IPv4 IPoEがダウンした場合に使用します。
IPv4 IPoEを優先して使用するので、デフォルトルートは、distance値を指定し優先度を下げます。
(IPv4 IPoEのトンネルがダウンする条件は不明です。本気でダウン検知をするなら、ネットワークモニタでインターネット側にPingを打つことになりますが、そこまではしない事にします。)

ip route default GigaEthernet0.1 distance 250
!
ppp profile ppp_ocn
  authentication myname example@ocn.ne.jp
  authentication password example@ocn.ne.jp ******
!
interface GigaEthernet0.1
  encapsulation pppoe
  auto-connect
  ppp binding ppp_ocn
  ip address ipcp
  ip tcp adjust-mss auto
  ip napt enable
  no shutdown

IPv6

インターネット回線は、OCN光のIPv6 IPoE 光電話契約なし、HGWなしのRA方式です。

赤字の箇所が、NECの公式ページの内容から変更している部分です。
これは、クライアントにIXをDNSサーバとして向けさせるためです。
IXにLAN内の機器に対する名前解決をさせたい場合には必須です。

ipv6 dhcp enable
!
ipv6 dhcp client-profile dhcpv6-cl
  information-request
  option-request dns-servers
!
ipv6 dhcp server-profile dhcpv6-sv
  dns-server autoconfig
!
interface GigaEthernet0.0
  no ip address
  ipv6 enable
  ipv6 dhcp client dhcpv6-cl
  ipv6 nd proxy GigaEthernet2.0
  no shutdown
!
interface GigaEthernet2.0
  ipv6 enable
  ipv6 dhcp server dhcpv6-sv
  ipv6 nd ra enable
  ipv6 nd ra other-config-flag

このままでは、インターネット側から自由にアクセスできてしまうために、静的・動的フィルターを追加します。

ipv6 access-list deny-any deny ip src any dest any
ipv6 access-list permit-any permit ip src any dest any
ipv6 access-list permit-dhcpv6 permit udp src any sport any dest any dport eq 546
ipv6 access-list permit-dhcpv6 permit udp src any sport any dest any dport eq 547
ipv6 access-list permit-icmpv6 permit icmp src any dest any
ipv6 access-list dynamic cache 65535
ipv6 access-list dynamic dyn-filter access permit-any
!
interface GigaEthernet0.0
  ipv6 filter permit-icmpv6 20 in
  ipv6 filter permit-dhcpv6 30 in
  ipv6 filter deny-any 99 in
  ipv6 filter permit-icmpv6 20 out
  ipv6 filter permit-dhcpv6 30 out
  ipv6 filter dyn-filter 99 out

IPv4 IPoE (IPv4 over IPv6 MAP-E)

MAP-E対応機種なので、設定はこれだけです。
IPv4は、通常時にこちらを使用します。

ip route default Tunnel0.0
!
interface Tunnel0.0
  tunnel mode map-e ocn
  ip address map-e
  ip tcp adjust-mss auto
  ip napt enable
  no shutdown

IPv6トンネル(プロトコル番号 4のIP in IP)を通すためのフィルターを追加します。

ipv6 access-list permit-ipinip permit 4 src any dest any
!
interface GigaEthernet0.0
  ipv6 filter permit-ipinip 10 in
  ipv6 filter permit-ipinip 10 out

DNSホスト、DNSプロキシ

IXをDNSプロキシとして使用します。
dns hostは、IPv4とIPv6どちらの問い合わせでも名前解決ができるよう両方入れておきます。

IXが問い合わせるDNSサーバは、PPPoEではなくIPv6 IPoEの方を優先させます。
PPPoEのDNSサーバはAAAAフィルターが適用されており、IPv4しか返さないためです。

dns cache enable
dns cache max-records 256
dns host server.example.com ip 192.168.0.250
dns host server.example.com ipv6 192.168.0.250
dns host server ip 192.168.0.250
dns host server ipv6 192.168.0.250
!
proxy-dns ip enable
proxy-dns ip request both
proxy-dns interface GigaEthernet0.0 priority 200
proxy-dns ipv6 enable
proxy-dns ipv6 request both

省電力設定

使わないインターフェースとUSBポートは、shutdownしておきます。

device GigaEthernet1
  shutdown
!
device USB0
  shutdown
!
interface GigaEthernet1.0
  no ip address
  shutdown
!
interface BRI0.0
  encapsulation ppp
  no auto-connect
  no ip address
  shutdown
!
interface USB-Serial0.0
  encapsulation ppp
  no auto-connect
  no ip address
  shutdown

サーバ公開

外部に公開するサーバの設定です。
ポート番号が自由に使えるPPPoEの方で外部公開をします。

また、LAN側のサーバからの戻りパケットがPPPoEに送信されるよう、ポリシーベースルーティングを設定します。

ip access-list server_services permit tcp src 192.168.0.250/32 sport eq 443 dest any dport any
ip access-list server_services permit udp src 192.168.0.250/32 sport eq 4500 dest any dport any
ip access-list server_services permit udp src 192.168.0.250/32 sport eq 500 dest any dport any
ip access-list server_services permit 50 src 192.168.0.250/32 dest any
!
route-map use-pppoe permit 10
  match ip address access-list server_services
  set interface GigaEthernet0.1
!
interface GigaEthernet2.0
  ip policy route-map use-pppoe
!
interface GigaEthernet0.1
  ip napt static 192.168.0.250 tcp 443
  ip napt static 192.168.0.250 udp 4500
  ip napt static 192.168.0.250 udp 500
  ip napt static 192.168.0.250 50

NAPTタイマー

必須ではありませんが、NAPTタイマーを調整します。

interface GigaEthernet0.1
  ip napt translation tcp-timeout 3600
  ip napt translation udp-timeout 1800
  ip napt translation dns-timeout 30
!
interface Tunnel0.0
  ip napt translation tcp-timeout 3600

DNSは長い間通信をしないため短め、UDPはIPsecのNAT Traversalために長め、TCPは、スマートフォンのプッシュ通知を受信するため長くしています。
プッシュ通知の根拠は、以下に記載しています。

プッシュ通知をネットワーク管理者目線で考える

Android、iPhoneのプッシュ通知を受信できるネットワークをネットワークエンジニア目線で考えてみました。

UFSキャッシュ

UFSキャッシュを調整します。
タイマー部分は自己満足で必須ではありません。

ip ufs-cache max-entries 20000
ip ufs-cache enable
!
ipv6 ufs-cache max-entries 10000
ipv6 ufs-cache enable
ipv6 cache-size 8192
!
interface GigaEthernet0.0
  ipv6 ufs-cache timeout others 300
  ipv6 ufs-cache timeout tcp 60
  ipv6 ufs-cache timeout udp 60
!
interface GigaEthernet0.1
  ip ufs-cache timeout tcp 60
  ip ufs-cache timeout udp 300
!
interface Tunnel0.0
  ip ufs-cache timeout tcp 60
  ip ufs-cache timeout udp 60
!
interface GigaEthernet2.0
  ip ufs-cache timeout tcp 60
  ip ufs-cache timeout udp 300

UFSのタイムアウトは、IPv4 over IPv6とVPN通信は300秒で、TCPは60秒にしてみました。

QoSマーキング

音声などで使用するUDPのポート番号1024~65535を優先させるため、DSCP 48(IP Precedence 6)でマーキングします。

ip access-list ipv4_udp_range permit udp src any sport range 1024 65535 dest any dport range 1024 65535
ipv6 access-list ipv6_udp_range permit udp src any sport range 1024 65535 dest any dport range 1024 65535
!
class-map match-any voice
  match ip access-list ipv4_udp_range normal
  match ipv6 access-list ipv6_udp_range normal
!
policy-map output-policy
  class voice
    set ip dscp 48
    set ipv6 dscp 48
  class class-local
  class class-default
!
interface GigaEthernet2.0
  service-policy enable
  service-policy input output-policy
  service-policy output output-policy

マーキングする理由は以下に記載しています。

RTX810で050 plusとLINEのQoS制御をする

RTX810の機能を使用し、無線LANのQoSをしてみました。ZoomなどのWeb会議でも効果があるかもしれません。

HVTR-BCTX3 の通信をキャプチャ+QoSマーキング

HVTR-BCTX3の通信内容とQoSマーキングの必要性について記載しました。

VPNサーバでNATしないVPNクライアント用

LAN側のサーバをVPNサーバとして使っており、VPNクライアントの通信がVPNサーバでNATせずにLAN内と通信させている場合、払い出すセグメントへの通信をサーバに向けます。
スタティックルートで十分ですが、問題があればルートマップも入れておきます。

ip route 192.168.255.0/24 192.168.0.250 GigaEthernet2.0
!
ip access-list to_vpn-address permit ip src any dest 192.168.255.0/24
!
route-map use-pppoe permit 5
  match ip address access-list to_vpn-address
  set ip next-hop 192.168.0.250

ネットゲーム、宅外配信用

P2Pのネット対戦ゲームや、TVチューナーのリモート視聴を行う際に、インターネット側からNAT内部の端末にUDPでアクセスをすることがあります。

MAP-Eでは、使用できるポートが限られているため、ポートセービングの動作をしていますが、これではインターネット側のポート番号と端末が一意ではないため、アクセスができません。

回避策として、EIM(Endpoint independent Mapping)モードを使用します。

interface Tunnel0.0
  ip napt eim-mode udp-only

この設定により、DiXiMリモートアクセスサービスチェックツールで診断すると、
NATタイプ5△からNATタイプ3○に変化し、サービスが使えるようになります。

リモート視聴の動作については、こちらで記載しています。

HVTR-BCTX3 の通信をキャプチャ+QoSマーキング

HVTR-BCTX3の通信内容とQoSマーキングの必要性について記載しました。

NetMeister

NECプラットフォームズが提供しているNetMeister(ネットマイスター)を使用すれば、IXなどの製品をクラウド上で管理できたり、ダイナミックDNSの利用、更にはファームウェアのアップデートが可能になります。

これがなんと無料で使えます。

なお、IXの登録の場合には、IXのバージョンがVer.10.0以降である必要があります。

登録

登録は以下のURLから行います。
https://www.nw-meister.jp/service/

『新規ユーザーアカウント作成』から、フリーメールではないメールアドレスを入力し、登録を行います。

『新規グループ登録』から、グループIDを作成しますが、これは全ユーザでユニークな文字列である必要があるようです。
拠点ごとに作るそうですが、私の場合は自宅用だけなので、一つだけ作成しました。

IXの接続

登録が終わったら、IXにNetMeisterの設定を入れます。

CLIでは以下の設定をすることで、クラウド上で見えるようになります。

nm ip enable
nm account <NetMeisterグループID> password <グループパスワード>

ダイナミックDNSで登録するIPアドレスは、以下のように指定します。

nm ddns notify interface GigaEthernet0.1 protocol ip
nm ddns notify interface GigaEthernet0.0 protocol ipv6

最新ファームウェアへアップデート

クラウド上からファームウェアのアップデートをします。

NetMeisterの画面から、『装置』→『IXに設定したホスト名』を選択します。

NetMeister 装置管理画面

このままでは、『アクション』→『ファームウェア更新』に鍵マークが付いており、選択できないため、右上の『閲覧』を『編集』に変更します。

NetMeister 編集モードに変更

これで、『ファームウェア更新』が選択できるようになり、以下の画面が表示されます。

NetMeister ファームウェア更新画面

『更新後バージョン』では、マイナーバージョン違いの3つが選択できました。
私は最新の10.5.20を選択しました。
また、リリースノートの確認もできます。

実行後は、以下の通り最新のバージョンになりました。

NetMeister IX2215バージョンアップ後

トラブル

MAP-Eが失敗する

MAP-E設定後、マップルールを自動で取得しますが、取得ができないとIPv4 IPoEが使用できません。
Debugでは以下のメッセージが表示されます。

MAPE[022]: MAP-E status changed from active to getting rule, interface Tunnel0.0
MAPE[014]: Request MAP-E rule information, interface Tunnel0.0
MAPE[016]: Failure get MAP-E rule information, interface Tunnel0.0(temporary failure)
MAPE[022]: MAP-E status changed from getting rule to active, interface Tunnel0.0
MAPE[004]: Next get MAP-E rule information after 480 seconds, interface Tunnel0.0

失敗する理由は不明ですが、別日に再起動してみると取得できたりすることもあります。

一回取得できれば、FLASH内に『SYSTEM-MAP-E-INFO』という保存され、以降は取得が失敗しても接続ができるようです。
以下の通り、ずっと失敗し続けていますが、使えています。

IX2215(config)# show map-e status
Tunnel interface: Tunnel0.0
  Vendor Name: OCN
  Status: active
  Transport information:
    CE IPv4 address is 153.243.***.***/32
    CE IPv6 address is 2400:4050:****:****:****:****:****:****/64
  NAPT translation port:
    ****-****, ****-****, ****-****
    ****-****, ****-****, ****-****
    *****-*****, *****-*****, *****-*****
    *****-*****, *****-*****, *****-*****
    *****-*****, *****-*****, *****-*****
    *****-*****, *****-*****, *****-*****
    *****-*****, *****-*****, *****-*****
    *****-*****, *****-*****, *****-*****
    *****-*****, *****-*****, *****-*****
    *****-*****, *****-*****, *****-*****
    *****-*****, *****-*****, *****-*****
    *****-*****, *****-*****, *****-*****
    *****-*****, *****-*****, *****-*****
    *****-*****, *****-*****, *****-*****
    *****-*****, *****-*****, *****-*****
    *****-*****, *****-*****, *****-*****
    *****-*****, *****-*****, *****-*****
    *****-*****, *****-*****, *****-*****
    *****-*****, *****-*****, *****-*****
    *****-*****, *****-*****, *****-*****
  Request statistics:
    Last Request: 2021/11/13 17:25:07
    Last Update : -
    1431 request, 0 success, 1431 failure

RTX810の時の様に無理やり設定しようかとも思いましたが、NAPTで指定できるポート数があまり多くないため、諦める事にしました。

速度測定

NEC IX2215と、今まで使っていたYamaha RTX810で速度測定と比較を行いました。

測定サイトは、以下を使用しています。
http://www.speed-visualizer.jp/

IPv4 IPoE(IPv4 over IPv6 MAP-E)

RTX810では頭打ちになっていたIPv4 IPoEの速度をIX2215は超えて来ています。

2021/11/3(水)祝日 13:38~14:06測定
IPv4 IPoE(IPv4 over IPv6 MAP-E)(単位:Mbps)

IX2215 RTX810
DL UL DL UL
1回目 257.6 304.9 157.4 177.8
2回目 247.4 305.5 154.8 205.6
3回目 249.6 389.6 150.4 214.6
4回目 253.3 335.6 126 220.9
5回目 283 497.5 131.7 171.3
平均 258.18 366.62 144.06 198.04

もちろん、無理やりIPv4 IPoEを使っていたRTX810と違い、IX2215ではタイムアウトや接続が出来なくなったりもありません。

快適です。

IPv4 PPPoE

PPPoEは、繋ぎなおす度にIPアドレスが変わり、接続するBASによって混雑度合いが違うようで、測定し平均を取る意味がありませんでした。

純粋なスループットは、こちらのサイト様で測定されています。
http://www.nosense.jp/ix2215-throughput-pppoe/
http://www.nosense.jp/rtx810-throughput-pppoe/

参考値として、今回測定した時の最低と最大速度のみ記載しておきます。

2021/11/3(水)祝日 14:51~14:53測定
IPv4 PPPoE (単位:Mbps)

IX2215 RTX810
DL UL DL UL
最低値 86.8 150 235.1 270.4
最大値 400.1 431.1 383.6 385.2

完全に気のせいなのですが、RTX810の方が空いているBASに接続しやすいような。

IPv6 IPoE

IPv6も測定の意味がありませんでしたので、こちらも参考値として、今回測定した時の最低・最大速度のみ記載しておきます。

2021/11/3(水)祝日 14:51~14:53測定
IPv6 IPoE (単位:Mbps)

IX2215 RTX810
DL UL DL UL
最低値 163.6 26.1 231.8 28.1
最大値 282.4 514.6 296.5 297

また、IPv6のみfast.comの結果も載せておきます。
こちらは1回しか取っていません。

fast.com
IPv6 IPoE (単位:Mbps)

IX2215 RTX810
DL UL DL UL
1回目 500 540 310 670

MAP-Eさえ無ければ、RTX810もまだまだ現役で使えます。

最後に

IX2215は、MAP-Eを使うことができ、ポート数も機能も多いコスパ最高な業務ルータでした。

MAP-Eは、速度低下がしづらく低遅延のため、リモートアクセスを伴う仕事、ブラウジング、ゲームが快適に可能です。(某ゲームの高速周回にも最適です。)

また個人的には、CLIがCiscoに近いため、 直観的に使うことが出来て良いです。

今現在、Yamaha RTX830/1210/1220と迷っているなら、こちらをおすすめします。
(ただし、MAP-Eを使用する場合はファームウェアVer.10以降必要)

インターネット側からMAP-EルータにPingする方法を以下の記事で書きました。

インターネットから IPoE MAP-E ルータにPingをする | KUSONEKOの見る世界

OCN IPoE(IPv4 over IPv6) 動的IP MAP-EでインターネットからPingが出来るか実験してみました。

Z61p2022年1月19日 20:43

はじめまして。
自宅でIX2215を導入した際に大変参考とさせていただきました。

一箇所、質問をしたいのですが、サーバー公開部分のコマンドで
「ip access-list server_services permit 50 src 192.168.0.250/32 dest any」という行が
ありますが、permitの後に50となっています。コマンドリファレンスと照らし合わせてみても、
理解できませんでした。

お時間有りましたらご教示いただけると幸いです。

Z61p2022年1月19日 21:37

すみません、プロトコル番号の50番という意味だった事がわかりました。
50番=ESPだったのですね。お騒がせしました。
----
NetMeisterも登録してみたのですが、ポート情報でリンクアップしているGE0などのポートや
各LEDの状態が反映されず、そちらを探っております。こちらのスクリーンショットでは正しく
反映されている様子で・・・まだしばらく手探りが続きそうです。

KUSONEKO2022年1月19日 23:03

コメントありがとうございます。
お役に立てたようで何よりです。

現在ファームウェアを10.6.21にしておりますが、
NetMeisterにリンク状態は反映されています。
設定も記事の内容からは、大きく変えていません。

nm update をしても変わりませんよね?

Z61p2022年1月25日 14:23

nm update、NetMeisterへのIXの再登録をしてみたのですが、
状況的には変わりませんでした。ただ、CPUとメモリ使用率、温度と
GE0のトラフィック情報はNetMeister上に出ているので、すべての情報が
届いていないというわけではないようです。
GE0が見えているだけでも死活監視にはなるので諦め気味ではあります。

KUSONEKO2022年1月26日 20:59

不思議ですね。

機能説明書によると、
トラフィックやCPU 使用率などの表示とポート状態やLED の表示では、
利用できる環境に差分あるようです。
もしかするとその辺に問題があるのかもしれません。

MQTTが通らない環境であれば、以下で使用ポートを変えられるようですがどうでしょう。
nm mqtt port 443
ご自宅で使用されているとのことなので、関係無さそうですが。

Z61p2022年1月28日 16:27

ありがとうございます。
色々と後出しで申し訳ないですが、443ポートに制限することもやってみたのですが、
変わらずでした。
show nm informationしてみると、API-GWではRegistered、MQTTはConnectedなので
NetMeister側とは正常に接続はできている様子です。
今回はRTX1200からの入替だったのですが、DS-LiteのIPv4下りが2.4倍ぐらいには
なったので、それだけでも御の字です。