EdgeRouter設定メモ: IPv6/IPoE + DS-Liteでインターネット高速化
家庭用の LAN を IPv6 に移行したら、下り 400 - 500 Mbps、上り 500 - 600 Mbps 出るようになったので、環境や設定などを共有します。
参考:
blog.amedama.jp techlog.iij.ad.jp
- 環境
- CLI による操作
- EdgeOS のコマンド
- 物理構成
- IPoE + DSLite の設定
- DNS の設定
- タイムゾーンの設定
- NTP の設定
- DNS forwarding の設定
- DHCP の設定
- eth1 - eth4 の設定
- 全設定
- ファームウェアのアップデート
- 設定の参考にしたエントリ
環境
- 回線
- フレッツ光ネクストスーパーハイスピードタイプ隼 + フレッツ・v6オプション
- マンションで1つの光回線(1Gbps)を共有しているタイプ
- フレッツ光ネクストスーパーハイスピードタイプ隼 + フレッツ・v6オプション
- プロバイダ
- ルータ
CLI による操作
EdgeRouter は Web ベースの GUI での設定と、CLI での設定が可能。せっかくなので CLI で設定することにした。CLI に接続するには、以下の方法がある:
- ssh での接続
- デフォルトで
eth0
に LAN ケーブルを接続すると$ ssh ubnt@192.168.1.1
で接続できる - ネットワークの設定変更などで見えなくなることがある
- デフォルトで
- シリアルコンソールでの接続
- GNU Screen で接続できる
- ネットワークの設定変更によらず通信できる
EdgeRouter 6P には RJ45 のシリアルコンソールがついているので、今回はシリアルコンソールで設定することにした。
PC との接続にはこのようなガジェットを使う:
【CISCO互換ケーブル】FTDI chipset USB RJ45 コンソールケーブル
- 出版社/メーカー: Lontion Industrial
- メディア: エレクトロニクス
- この商品を含むブログを見る
ボーレートは 115200(ユーザマニュアルに書いてあった)。デバイスファイルは環境によって変わるが、たとえば /dev/tty.usbserial-AL03M04H
だった場合は、以下で接続できる:
$ screen /dev/tty.usbserial-AL03M04H 115200
EdgeOS のコマンド
EdgeOS のシェルには、操作モード(プロンプトが $
)と設定モード(プロンプトが #
)の2つの状態がある。
それぞれ使えるコマンドが異なるので注意。
基本コマンド
頻出コマンドは以下:
show
- (操作モードのみ)いろいろなシステム情報の表示
configure
- (操作モードのみ)操作モードから設定モードに入る
exit
- (設定モードのみ)設定モードから操作モードに戻る
set
- (設定モードのみ)システム・シェルオプションの設定
commit
- (設定モードのみ)
set
したものをすべて反映する(再起動すると変更は失われる)
- (設定モードのみ)
compare
- (設定モードのみ)
commit
する前に diff を確認できる
- (設定モードのみ)
save
- (設定モードのみ)
commit
したものをすべてファイルシステムに書き込む(再起動しても設定の変更が残る)
- (設定モードのみ)
reboot
- (操作モードのみ)機器を再起動する
ping
ping6
なお、Tab を 1 回入力するとサブコマンドやパラメータの候補が、Tab を 2 回入力すると説明が表示される。
EdgeOS は VyOS からのフォークなので、VyOS のドキュメントも参考になる:
操作モードのコマンド一覧
ubnt@ubnt:~$ Possible completions: add Add an object to a service clear Clear system information configure Enter configure mode connect Establish a connection copy Copy data debug Enable debugging of specified routing protocol delete Delete a file disconnect Take down a connection generate Generate an object initial-setup Enter initial configuration dialog no Disable or reset operational variable ping Send Internet Control Message Protocol (ICMP) echo request ping6 Send IPv6 Internet Control Message Protocol (ICMP) echo request reboot Reboot the system release Release specified variable rename Re-name something. renew Renew specified variable reset Reset a service restart Restart a service set Set system or shell options show Show system information shutdown Shutdown the system telnet Telnet to <hostname|IPv4 address> terminal Control terminal behaviors traceroute Track network path to <hostname|IPv4 address> traceroute6 Track network path to <hostname|IPv6 address> update Run an update command
設定モードのコマンド一覧
ubnt@ubnt# Possible completions: confirm Confirm prior commit-confirm comment Add comment to this configuration element commit Commit the current set of changes commit-confirm Commit the current set of changes with 'confirm' required compare Compare configuration revisions copy Copy a configuration element delete Delete a configuration element discard Discard uncommitted changes edit Edit a sub-element exit Exit from this configuration level load Load configuration from a file and replace running configuration loadkey Load user SSH key from a file merge Load configuration from a file and merge running configuration rename Rename a configuration element rollback Rollback to a prior config revision (requires reboot) run Run an operational-mode command save Save configuration to a file set Set the value of a parameter or create a new element show Show the configuration (default values may be suppressed)
設定情報の表示
show configuration
- running configuration を表示
show configuration all
- デフォルトの情報を含む running configuration を表示
show configuration commands
- running configuration を表示(あとでこれをコピペすれば再現できる)
ルーティングの表示
show ipv route
- IP のルーティングを表示
- 参考: ルーティングテーブルの見方
show ipv6 route
- IPv6 のルーティングを表示
インタフェースごとの設定情報の表示
show interfaces ethernet eth0
- eth0 の設定情報の表示
物理構成
インターネット回線 └── ONU(光回線終端装置) └── EdgeRouter 6P ├── 無線 AP(ブリッジモード) │ └── スマートフォンなど(無線 LAN 接続) └── PC など(有線 LAN 接続)
今回は EdgeRouter の eth0
を WAN (アップリンク)とし、ONU に LAN ケーブルで接続した。
eth1
eth2
にはブリッジモードの無線 AP や PC などの DHCP クライアントがぶら下がる想定。
IPoE + DSLite の設定
まずは EdgeRouter から IPv6 で接続できるようにし、そのあと DS-Lite で IPv4 接続(IPv4 over IPv6 トンネル)できるように設定する。
IPv6 アドレスの自動設定 (autoconf) と割当ての確認
eth0
に RA (Router Advertisement) を利用した IPv6 アドレスとルーティングの自動設定を行うには、以下のようにする。
configure set interfaces ethernet eth0 ipv6 address autoconf commit exit
10分ほど待つと RA が流れてきて IPv6 アドレスが設定される。 $ show interfaces
コマンドで確認できる:
ubnt@ubnt:~$ show interfaces Codes: S - State, L - Link, u - Up, D - Down, A - Admin Down Interface IP Address S/L Description --------- ---------- --- ----------- eth0 192.168.1.1/24 u/u ****:****:****:****:****:****:****:****/64 eth1 - u/D eth2 - u/D eth3 - u/D eth4 - u/D eth5 - u/D lo - A/D
IPv6 のルーティングテーブルの情報は $ show ipv6 route
で確認できる:
ubnt@ubnt:~$ show ipv6 route IPv6 Routing Table Codes: K - kernel route, C - connected, S - static, R - RIP, O - OSPF, IA - OSPF inter area, E1 - OSPF external type 1, E2 - OSPF external type 2, N1 - OSPF NSSA external type 1, N2 - OSPF NSSA external type 2, B - BGP Timers: Uptime IP Route Table for VRF "default" K ::/0 [0/1024] via fe80::212:e2ff:fe86:e24c, eth0, 00:02:48 C 2409:250:8a00:d700::/64 via ::, eth0, 00:02:37 C fe80::/64 via ::, eth0, 00:19:49
ここまでで $ ping6 2001:4860:4860::8888
(Google Public DNS の IPv6 アドレス)が通るようになる:
ubnt@ubnt:~$ ping6 2001:4860:4860::8888 PING 2001:4860:4860::8888(2001:4860:4860::8888) 56 data bytes 64 bytes from 2001:4860:4860::8888: icmp_seq=1 ttl=58 time=4.44 ms 64 bytes from 2001:4860:4860::8888: icmp_seq=2 ttl=58 time=4.74 ms ...
ただし、 IPv4 の設定をしていないので $ ping 8.8.8.8
は通らない:
ubnt@ubnt:~$ ping 8.8.8.8 connect: Network is unreachable
DS-Lite による IP-IP トンネルの設定
local-ip
には eth0
の IPv6 アドレス、 remote-ip
には AFTR の IPv6 アドレスを設定する(IIJ の場合は transix のアドレスを設定)。
configure set interfaces ipv6-tunnel v6tun0 encapsulation ipip6 set interfaces ipv6-tunnel v6tun0 local-ip ****:****:****:****:****:****:****:**** # 割り当てられた IPv6 アドレス set interfaces ipv6-tunnel v6tun0 remote-ip 2404:8e01::feed:100 # transix の AFTR set interfaces ipv6-tunnel v6tun0 mtu 1500 set interfaces ipv6-tunnel v6tun0 multicast disable set protocols static interface-route 0.0.0.0/0 next-hop-interface v6tun0 commit exit
これで $ ping 8.8.8.8
が通る:
ubnt@ubnt:~$ ping 8.8.8.8 PING 8.8.8.8 (8.8.8.8) 56(84) bytes of data. 64 bytes from 8.8.8.8: icmp_req=1 ttl=123 time=4.58 ms 64 bytes from 8.8.8.8: icmp_req=2 ttl=123 time=4.14 ms
ルータ再起動後でもすぐに使えるようにする
上記の設定だと、ルータを再起動後すると、IPv6 アドレスや対向ルータへのルーティングが RA として流れてくるまで 10分ほど接続できない。
設定後すぐに使いたい場合は IPv6 アドレスを設定し、対向ルータのリンクローカルアドレスを next hop に設定する。
対向ルータのリンクローカルアドレスは、 $ show ipv6 neighbors
でわかる( fe80::
で始まるアドレス):
ubnt@ubnt:~$ show ipv6 neighbors fe80::212:e2ff:fe86:e24c dev eth0 lladdr 00:12:e2:86:e2:4c router REACHABLE 2409:250:8a00:d700::fffe dev eth0 lladdr 00:12:e2:86:e2:4c router REACHABLE
reboot
などですべての設定をクリアし、以下のコマンドで再設定する:
configure set interfaces ethernet eth0 address ****:****:****:****:****:****:****:****/64 # 割り当てられた IPv6 アドレス set interfaces ipv6-tunnel v6tun0 encapsulation ipip6 set interfaces ipv6-tunnel v6tun0 local-ip ****:****:****:****:****:****:****:**** # 割り当てられた IPv6 アドレス set interfaces ipv6-tunnel v6tun0 remote-ip 2404:8e01::feed:100 set interfaces ipv6-tunnel v6tun0 mtu 1500 set interfaces ipv6-tunnel v6tun0 multicast disable set protocols static interface-route 0.0.0.0/0 next-hop-interface v6tun0 set protocols static route6 ::/0 next-hop fe80::212:e2ff:fe86:e24c interface eth0 # 対向ルータのリンクローカルアドレス commit exit
DNS の設定
configure set system name-server 2001:4860:4860::8888 set system name-server 2001:4860:4860::8844 commit exit
ここまでで $ ping6 google.com
$ ping google.com
が通るようになる。
タイムゾーンの設定
タイムゾーンは Asia/Tokyo
に。
configure set system time-zone 'Asia/Tokyo' commit exit
NTP の設定
NTP サーバはネットワーク的に近い ntp.nict.jp を使う。
configure delete system ntp server set system ntp server 'ntp.nict.jp' commit exit
DNS forwarding の設定
set service dns forwarding cache-size 5000 set service dns forwarding options listen-address=192.168.1.1 set service dns forwarding listen-on eth1 set service dns forwarding listen-on eth2 set service dns forwarding listen-on eth3 set service dns forwarding listen-on eth4 set service dns forwarding listen-on lo
DHCP の設定
DHCP で配布する DNS サーバの IP は、上記で設定した 192.168.1.1 (自分自身)にする。
set service dhcp-server disabled false set service dhcp-server hostfile-update disable set service dhcp-server shared-network-name HOME authoritative enable set service dhcp-server shared-network-name HOME subnet 192.168.1.0/24 default-router 192.168.1.1 set service dhcp-server shared-network-name HOME subnet 192.168.1.0/24 dns-server 192.168.1.1 set service dhcp-server shared-network-name HOME subnet 192.168.1.0/24 lease 86400 set service dhcp-server shared-network-name HOME subnet 192.168.1.0/24 domain-name home set service dhcp-server shared-network-name HOME subnet 192.168.1.0/24 start 192.168.1.64 stop 192.168.1.254
eth1 - eth4 の設定
とくに VLAN を分けたりはしないので、 eth1
- eth4
を同じブリッジ br0
に接続する。
EdgeOS で bridge
を使うとハードウェアにオフロードされない(オフロードされるのは switch
)が、EdgeRouter 6P には switch chip が搭載されておらず、 bridge
で接続するしかない。
delete interfaces ethernet eth0 address 192.168.1.1/24 set interfaces bridge br0 address 192.168.1.1/24 set interfaces ethernet eth1 bridge-group bridge br0 set interfaces ethernet eth2 bridge-group bridge br0 set interfaces ethernet eth3 bridge-group bridge br0 set interfaces ethernet eth4 bridge-group bridge br0
- EdgeRouter - Hardware Offloading – Ubiquiti Networks Support and Help Center
- EdgeRouter - Which EdgeRouter Should I Use? – Ubiquiti Networks Support and Help Center
全設定
(ファイアウォールの設定は省略)
configure set interfaces ethernet eth0 address ****:****:****:****:****:****:****:****/64 set interfaces ipv6-tunnel v6tun0 encapsulation ipip6 set interfaces ipv6-tunnel v6tun0 local-ip ****:****:****:****:****:****:****:**** set interfaces ipv6-tunnel v6tun0 remote-ip 2404:8e01::feed:100 set interfaces ipv6-tunnel v6tun0 mtu 1500 set interfaces ipv6-tunnel v6tun0 multicast disable set protocols static interface-route 0.0.0.0/0 next-hop-interface v6tun0 set protocols static route6 ::/0 next-hop fe80::212:e2ff:fe86:e24c interface eth0 set system name-server 2001:4860:4860::8888 set system name-server 2001:4860:4860::8844 set system time-zone 'Asia/Tokyo' delete system ntp server set system ntp server 'ntp.nict.jp' set service dns forwarding cache-size 5000 set service dns forwarding options listen-address=192.168.1.1 set service dns forwarding listen-on eth1 set service dns forwarding listen-on eth2 set service dns forwarding listen-on eth3 set service dns forwarding listen-on eth4 set service dns forwarding listen-on lo set service dhcp-server disabled false set service dhcp-server hostfile-update disable set service dhcp-server shared-network-name HOME authoritative enable set service dhcp-server shared-network-name HOME subnet 192.168.1.0/24 default-router 192.168.1.1 set service dhcp-server shared-network-name HOME subnet 192.168.1.0/24 dns-server 192.168.1.1 set service dhcp-server shared-network-name HOME subnet 192.168.1.0/24 lease 86400 set service dhcp-server shared-network-name HOME subnet 192.168.1.0/24 domain-name home set service dhcp-server shared-network-name HOME subnet 192.168.1.0/24 start 192.168.1.64 stop 192.168.1.254 delete interfaces ethernet eth0 address 192.168.1.1/24 set interfaces bridge br0 address 192.168.1.1/24 set interfaces ethernet eth1 bridge-group bridge br0 set interfaces ethernet eth2 bridge-group bridge br0 set interfaces ethernet eth3 bridge-group bridge br0 set interfaces ethernet eth4 bridge-group bridge br0 commit exit
ファームウェアのアップデート
ファームウェアのアップデートは、ルータがインターネットに繋がっていれば、イメージの URL を指定するだけで勝手にダウンロードしてくれてアップデートできるので簡単。
Ubiquiti Networks - Downloads から最新のファームウェアを探し、URL をコピーする(対象のファームウェアを選んだあと、 DOWNLOAD
ボタンを押し、条項に同意すると URL が表示される)。
URL を指定してイメージを組み込む:
$ add system image https://dl.ubnt.com/firmwares/edgemax/v1.10.x/ER-e300.v1.10.7.5127989.tar
show system image
でブートイメージが切り替わったのが確認できる:
ubnt@ubnt:~$ show system image The system currently has the following image(s) installed: v1.10.7.5127989.181001.1228 (default boot) v1.9.8.5012183.170825.0258 (running image) A reboot is needed to boot default image
reboot
してからまた見てみると、 v1.10
で動いていることがわかる:
ubnt@ubnt:~$ show system image The system currently has the following image(s) installed: v1.10.7.5127989.181001.1228 (running image) (default boot) v1.9.8.5012183.170825.0258
show version
でも切り替わっていることが確認できる:
ubnt@ubnt:~$ show version Version: v1.10.7 Build ID: 5127989 Build on: 10/01/18 12:28 Copyright: 2012-2018 Ubiquiti Networks, Inc. HW model: EdgeRouter 6P HW S/N: ************ Uptime: 02:16:26 up 11 min, 1 user, load average: 0.01, 0.10, 0.11