Minami Ueda

はじめに

ずっと家にいると、その環境を少しでも快適にしようと色々ハックしたくなるものです。自宅ネットワークをアップグレードすべく EdgeRouter X を導入してみたので、セットアップのメモを兼ねて記事を書くことにしました。実はちょっと前に UniFi Security Gateway も導入していたのですが、物足りない部分があって結局 EdgeRouter Xにたどり着きました。

ニッチな需要だとは思いますが、特に NURO光(G2V)の回線とこのルータを組み合わせて使いたいという人の役に立てたら嬉しいです。簡単にまとめると、NURO のルータ一体型 ONU である F660A の下に DMZ でこのルータを設置し、ndppd を使って F660A の代理でクライアントに対して IPv6 アドレスを割り当て、IPv4 / IPv6 両対応ルータとしてセットアップしました。初期設定編と IPv6 with ndppd 編 の2回に分けてお送りします。

EdgeRouter Xとは

EdgeRouter X(ER-X)は Ubiquiti Networks という会社がつくるルータで、$59(定価)という価格にも関わらず圧倒的なパフォーマンスと高機能を誇ります。EdgeOS というDebian ベースのネットワーク機器向け Linux を搭載しています。ハンズオンでネットワークについて勉強したり趣味で運用するのに家庭用ルータではもの足りないけれど、ヤマハの RTX1210 は高い… という(自分みたいな)人にピッタリのチョイスです。日本の Amazon では1万円ぐらいで買えます。ちなみに製品同梱の AC アダプタが日本非対応という話を聞いていたので、自分は別の AC アダプタとセットになったこれを買いましたが、いざ届いて開けてみると元の AC アダプタもちゃんと PSE 対応で問題なさそうでした。電圧やアンペア数も同じ。

EdgeRouter X の良さと細かい機能比較は、日本語記事としてもはやバイブル的存在である yabe さんの記事「EdgeRouter X がすごい」をチェックするのがいいかと思います。初期設定から難しめの設定まで非常に丁寧に説明されており、とてもわかりやすいです。

Ubiquiti Networks についても触れておくと、この会社はもともと Apple でハードウェアテストエンジニアをしていた Robert Pera が 2005 年に設立したネットワーク機器ベンダーです。EdgeMax シリーズのルータのほか、UniFi シリーズのアクセスポイントネットワークカメラまで、ホームユースから SOHO やプロユースまで対応した製品ラインナップを展開しています。Cisco などの一般的なネットワークベンダーと異なり機器管理のためのライセンス費が不要なこと、性能が優れているにも関わらず安価なこと、比較的使いやすいネットワーク管理インタフェースが提供されていることなどから、近年アメリカで注目を集めています。日本のコンシューマ向けマーケットではまだ知名度は低いですが、正式に代理店も入っていて日本向けの公式ストアも構えています。(なお、ここで売られてるアクセスポイントはちゃんと技適が通っています。)

やりたいこと

さて前置きが長くなりましたが、今回 EdgeRouter X を導入したのは自宅ネットワークを安定化させるためです。利用台数もそこまで多くないにも関わらず、使っていると急に切れたりする現象をここ数週間で観測していました。アクセスポイントを別機器にしても再現されたので、ルータが不安定になっていると考えました。

NURO 光では ONU とルータが一体型の機器(ホームゲートウェイ)が提供されていますが、このルータ機能を実質的に分離させて ER-X に担わせることを目指しました。IPv4 と IPv6 それぞれで実現したいことは以下のとおりです。

  • IPv4
    • DMZ を設定することによって ONU から全パケットを流し、ER-Xでルーティングする
    • ER-X で DHCP サーバを有効にし、クライアントに対して IPv4 アドレスを付与する
  • IPv6
    • NURO 光の ONU から ER-X に対して /60 のプレフィックスを付与する
    • /60 プレフィックスを用いて、ER-X で /64 のサブネットを作成する
    • NDP Proxy (ndppd) を用いて、ER-X が ONU の代理でクライアントに対して IPv6 アドレスを付与する

この記事では IPv4 で通信できる状態までの初期設定を扱い、IPv6 については次の記事で詳しく説明していきます。

環境・ネットワーク概要

今回は以下のような環境で、ネットワークを構築しました。

目次

  1. ONUの事前準備
  2. Mac側の準備
  3. Web UIから初期設定をする
  4. EdgeOSのコマンドラインでの基本操作
  5. ファームウェアアップデート
  6. ハードウェアオフロー ドを有効にする
  7. インターネットへの接続を確認

1. ONU 側の準備

EdgeRouter X のセットアップを始める前にONU(F660A)側で、固定 IP アドレスと DMZ の設定をします。何も設定を変えていなければ、F660A のデフォルト IP アドレスは 192.168.1.1 です。

ログインしたら、ネットワーク > LAN > ダイナミックアドレス管理(IPv4) から ONU の IP アドレスを以下の通り変更し、設定 ボタンを押します。最終的にクライアントをつなげるメインのネットワークを192.168.1.1/24にするので、ONU 側ネットワークは192.168.0.1/24にすることにしました。

IPアドレス: 192.168.0.1
サブネットマスク: 255.255.255.0
DHCPを有効: チェックを外す(DHCPオフ)

次にネットワーク > LAN > DHCP固定アドレス割当を開き、ER-X の WAN 側 に割り当てるIPアドレスを固定します。今回は 192.168.0.3に ER-X を割り当てることにします。必要となる MAC アドレスは、本体底面から確認することができます。

IP アドレスの固定後、DMZ を設定します。DMZ は DeMilitarized Zone(非武装地帯)の略で、これを設定することによって、全ての送受信パケットを ONU のルータから ER-X に転送することが可能になります。上と同様に ER-X の MAC アドレスを入力し、MACアドレスのマッピングを有効にする にチェックを入れます。NURO 光のほか、au ひかりなどルータ一体型となった ONU が提供されていて自前ルータを設置したいときに、この方法がよく取られています


2. Mac側の準備

ER-X の初期設定をするにあたって、まずは LAN ケーブルで Mac と ER-X(ポートはeth0) をつなげます。Ethernet ポートを持たない Mac の場合は、USB-C to Gigabit Ethernet 変換アダプターを使います。なお値段は少し高いですが、Apple Online Store には限定の白モデルもあります。

つなげたら、システム環境設定 > ネットワーク から IP アドレスの設定を変更します。この時点では DHCP が動いていないので、IP アドレスをマニュアルで以下の通り設定する必要があります。

IPアドレス: 192.168.1.2
サブネットマスク: 255.255.255.0
ルータ: 192.168.1.1


3. Web UI から初期設定をする

Google Chrome で ER-X のデフォルト IP アドレスである 192.168.1.1 にアクセスします。Safari だと一部設定項目のテキストが表示されない場合があります。工場出荷時のユーザネームとパスワードは、それぞれ ubnt です。

最初からコマンドラインで設定を進めていくことも可能ですが、ここではまず Web UI から基本的な設定を済ませてしまいます。Web UI とコマンドラインでの設定は共存可能であり、片方で設定をすると片方で設定した内容が消えてしまうということはありません。

今回は VLAN 等を割り当てず、1 WAN + 1 LAN の構成のシンプルなネットワークを設定するため、Wizards タブから Basic Setup を選択します。それぞれ以下のように設定しました。ONU 側でIPアドレスを固定しているので、今回は Static IP を選択しました。ここではデフォルトのファイアウォールを有効化しているほか、 ubnt アカウントの代わりに新規ユーザを作成しています。入力が完了したら、忘れず Apply を押して、Rebootをします。

Internet port(WAN)
- Port:eth0
- Internet connection type: Static IP
    - Address: 192.168.0.3/24
    - Gateway: 192.168.0.1
    - 192.168.0.1
- Firewall: Enable the default firewall
- One LAN: Only use one LAN

LAN Ports(Safariだとこのテキストが表示されない場合あり)
- Address: 192.168.1.1/255.255.255.0
- DHCP: Enable the DHCP server

User setup
- Create new admin user
- User: hogehoge
- Password: fugafuga
- Confirm Password: hogehoge

ここまで完了したら、Mac とつないでいた LAN ケーブルを eth1 ポートにつなぎ直します。また eth0 ポートと ONU (自分の場合は F660A)の LAN ポートを、別の LAN ケーブルでつなぎます。

再起動が完了すると、ER-X では DHCP サーバが有効になっています。先ほど Mac の IP アドレス設定をマニュアルにしましたが、それを DHCPサーバを使用 に戻します。しばらく待つと、 ER-X から Mac に IP アドレスが割り当てられます。

改めて 192.168.1.1 から Web UI にアクセスし、新しく設定したアカウントでログインします。画面下部 Systems タブからタイムゾーンを変更します。日本に設定する場合は、以下のとおりです。正しいタイムゾーンを選択したら、忘れず Save を押します。

Time Zone / Asia / Japan / All

4. EdgeOS のコマンドラインでの基本操作

さて、設定を進めていくにあたってコマンドラインでの基本的な操作について説明します。EdgeRouter X が搭載している Edge OS のコマンドラインには、Operational ModeConfiguration Mode2つのモードがあります。

  • Operational Mode
    • 機器のステータスや設定内容の確認などを行うモードです
    • プロンプトとして ドルマーク $ が用いられます
    • コマンドラインにログインした時点では、このモードになっています
  • Configuration Mode
    • 機器の設定内容の変更を行うモードです
    • プロンプトとして シャープ # が用いられます

設定を変更をする場合には、基本的に以下の手順で行います。コマンドの詳細は、EdgeOS 日本語 Wiki が参考になります。

  1. configureConfiguration Modeに切り替え
  2. 設定コマンドを実行
    • set: 設定を追加
    • delete: 設定を削除
  3. commit コマンドを実行し、設定内容を適用
  4. save コマンドを実行し、設定内容が次回起動時に反映されるように保存
  5. exitOperational Modeに切り替え

5. ファームウェアアップデート

コマンドラインの基本操作がわかったところで、ファームウェアをアップデートします。Web UI でもコマンドラインでもアップデートできますが、コマンドラインでの設定のほうが失敗が少ないようです。

作業を始める前に、最新版の ER-X のファームウェアの URL をここから取得します。2.0系もありますが不安定という話を聞いたので、ここでは 1.0 系で最新のものを選択します。DOWNLOAD ボタンを押すとユーザライセンス規約への同意を求められるので、I ACCEPT ボタンから同意します。ここにある URL をコピーしておきます。

コマンドラインから SSH で ER-X に接続します。IPアドレスは 192.168.1.1 、ユーザ名とパスワードは初期設定で設定したものです。

$ ssh hogehoge@192.168.1.1

SSH でログインができたら、以下のコマンドでバージョンを確認し、ファームウェアをインストールします。

$ show version
$ show system storage
$ show system image storage
$ delete system image #容量が足りない場合のみ実行する
$ add system image (事前にコピーしたファームウェアURL)
$ show system image #新しいファームウェアがdefault bootになっているのを確認
$ reboot

再起動が完了したら、再度ログインしてバージョンを確認します。以下のように v.1.10.11 となっていればファームウェアアップデートは完了です。

$ show version
Version:      v1.10.11
Build ID:     5274269
Build on:     02/21/20 10:28
Copyright:    2012-2018 Ubiquiti Networks, Inc.
HW model:     EdgeRouter X 5-Port
HW S/N:       000000000000
Uptime:       23:05:40 up 22:30,  2 users,  load average: 1.07, 1.18, 1.16

6. ハードウェアオフロードを有効にする

ER-X ではハードウェアオフロードを用いて、一部の機能をソフトウェアではなくハードウェア処理することができます。CPU に依存しないことによって、パフォーマンスやスループットの向上が見込めます。ハードウェアオフロードの詳細、公式ドキュメントをご覧ください。

$ configure
# set system offload hwnat enable
# set system offload ipsec enable
# commit; save; exit
$ reboot

7. インターネットへの接続を確認

ここまでの設定が正しくできていれば、インターネットにアクセスできます。Google に試しにアクセスしてみましょう。なお、この時点では IPv6 の設定をしていないので、IPv4 でしかアクセスできません。試しに IPv6 の接続テストを走らせてみましょう。IPv6 での接続ができない旨が表示されるはずです。


無事に最低限、インターネットがつながる状態になりました。高機能ルータとはいえ、Web UI が準備されているため基本的なことはほとんどコマンドラインを触らずに設定することができてしまいます。IPv6 の設定はまだ済んでいませんが、この時点でもある程度、速度の向上や接続の安定を体感できるかもしれません。次回は NURO 光の ONU における IPv6 の扱われ方を解明し、NDP Proxy (ndppd) を用いてクライアントに /64 の IPv6 アドレスへの付与していきます。