背景
EdgeRouterXをみんなで共同購入した。
設定のノウハウはみなさん挙げてくださっているが、WebUIを使った方法が多いかな、という印象を感じた。
せっかくVyatta系のOSを積んでいるのでCLIで頑張っていこうと思い、メモをしていく。
この記事では、PPPoEによるフレッツ光への接続、LAN側の設定を行う。
IPv6、サーバへの転送等の設定は後日行う。
サーバへの転送についても書きました。
EdgeRouter Xで外部側のポートをLAN内サーバのポートへ転送する設定
使ったもの
- EdgeRouterX本体
- ACアダプタ(付属)
- コンセント変換端子(EuroDKで買ったら付いてきた)
- LANケーブル
- LAN-USBアダプタ(MacbookにEthernetないので)
本投稿で行う構成
- EdgeRouterX
- eth0:フレッツ光のモデムへ
- eth1:スイッチへ
- スイッチ
- ポート1:サーバへ
- ポート2:Macbookへ
WebUIでライセンス同意(これいらないかも)
- EdgeRouterのeth0とMacbookをLANケーブルで一時的に接続する
- Macの設定を以下の通りにする
- ブラウザで https://192.168.1.1 にアクセスし、ログインする。
SSL証明書の警告がでるが無視する。
1度ログインすればブラウザを閉じてもよい。
Macのネットワーク設定
構成: 手入力
IP アドレス: 192.168.1.2
サブネットマスク: 255.255.255.0
ルーター: 192.168.1.1
初期アカウントパスワード
username: ubnt
password: ubnt
SSHでログイン
Macbookからsshでログイン
$ ssh ubnt@192.168.1.1
パスワードは先程と同じ
本体の設定
ユーザ作成、パスワードの変更
$ configure
# set system login user [ユーザ名]
# set system login user [ユーザ名] authentication plaintext-password [パスワード]
# set system login user [ユーザ名] level admin
# commit
# save
Saving configuration to '/config/config.boot'...
Done
# exit
ここで1度ログアウトして新規作成したユーザでログインする。
デフォルトユーザubntを消す。
$ configure
# delete system login user ubnt
# commit
# save
Saving configuration to '/config/config.boot'...
Done
ホスト名の設定
# set system host-name router
タイムゾーンの設定
# set system time-zone Asia/Tokyo
NTPの設定
NICTのNTPサーバを追加して他を消す。
# set system ntp server ntp.nict.jp
# delete system ntp server 0.ubnt.pool.ntp.org
# delete system ntp server 1.ubnt.pool.ntp.org
# delete system ntp server 2.ubnt.pool.ntp.org
# delete system ntp server 3.ubnt.pool.ntp.org
LAN構築
eth1ポートの設定
# set interfaces ethernet eth1 address '192.168.0.1/24'
# set interfaces ethernet eth1 description 'INSIDE'
DHCPの設定
192.168.0.19から192.168.0.254をDHCPに設定する。
# set service dhcp-server disabled 'false'
# set service dhcp-server shared-network-name LAN subnet 192.168.0.0/24
# set service dhcp-server shared-network-name LAN subnet 192.168.0.0/24 default-router '192.168.0.1'
# set service dhcp-server shared-network-name LAN subnet 192.168.0.0/24 dns-server '192.168.0.1'
# set service dhcp-server shared-network-name LAN subnet 192.168.0.0/24 domain-name 'internal-network'
# set service dhcp-server shared-network-name LAN subnet 192.168.0.0/24 lease '86400'
# set service dhcp-server shared-network-name LAN subnet 192.168.0.0/24 start 192.168.0.19 stop 192.168.0.254
# exit
DNSの設定
# set service dns forwarding cache-size 0
# set service dns forwarding listen-on eth1
# set service dns forwarding name-server 8.8.8.8
# set service dns forwarding name-server 8.8.4.4
# commit
[ service dhcp-server ]
Starting DHCP server daemon...
# save
Ethernetケーブルを差し替える
一旦ログアウトする。
eth0に刺さってるケーブルをeth1ポートに刺す。
ログインをしてみて入れればOK。
ssh [ユーザ名]@192.168.0.1
WAN設定
Firewallの設定
WANに接続する前にFirewallの設定をする。
Wikiを見ながらとりあえずで。あんまり深く理解してない。
$ configure
# set firewall name WAN_IN default-action drop
# set firewall name WAN_IN description 'WAN to internal'
# set firewall name WAN_IN rule 10 action accept
# set firewall name WAN_IN rule 10 description 'Allow established/related'
# set firewall name WAN_IN rule 10 state established enable
# set firewall name WAN_IN rule 10 state related enable
# set firewall name WAN_IN rule 20 action drop
# set firewall name WAN_IN rule 20 description 'Drop invalid state'
# set firewall name WAN_IN rule 20 state invalid enable
# set firewall name WAN_LOCAL default-action drop
# set firewall name WAN_LOCAL description 'WAN to router'
# set firewall name WAN_LOCAL rule 10 action accept
# set firewall name WAN_LOCAL rule 10 description 'Allow established/related'
# set firewall name WAN_LOCAL rule 10 state established enable
# set firewall name WAN_LOCAL rule 10 state related enable
# set firewall name WAN_LOCAL rule 20 action drop
# set firewall name WAN_LOCAL rule 20 description 'Drop invalid state'
# set firewall name WAN_LOCAL rule 20 state invalid enable
PPPoEの設定
# set interfaces ethernet eth0 pppoe 0 user-id [プロバイダの接続ID]
# set interfaces ethernet eth0 pppoe 0 password [プロバイダの接続パスワード]
# set interfaces ethernet eth0 pppoe 0 default-route auto
# set interfaces ethernet eth0 pppoe 0 name-server auto
# set interfaces ethernet eth0 pppoe 0 firewall in name WAN_IN
# set interfaces ethernet eth0 pppoe 0 firewall local name WAN_LOCAL
# set interfaces ethernet eth0 pppoe 0 description 'WAN'
NATの設定
# set nat source rule 10 translation address masquerade
# set nat source rule 10 source address 192.168.0.0/24
# set nat source rule 10 outbound-interface pppoe0
フレッツ光向け設定(MTU、MSS)
上記のままの設定だとspeedtest.netなどのサイトに接続できなかった。
フレッツ光でPPPoE通信を行うには別途以下の設定が必要となるらしい。
この場合、PPPoEに必要なヘッダ分8byteを引いたサイズが1度に遅れるデータ量となるため、MTUを1454以下に設定した。
また、MSS-clampは、1度に送るデータ量の上限を接続相手に予め伝えることができる。
この数値は一般にMTUから40引いた値が良いとされているため、1414に設定した。
(ここまで全部「らしい」なので、あとでもう1度勉強してみる必要ある)
# set interfaces ethernet eth0 pppoe 0 mtu 1454
# set firewall modify pppoe-out rule 1 action modify
# set firewall modify pppoe-out rule 1 modify tcp-mss 1414
# set firewall modify pppoe-out rule 1 protocol tcp
# set firewall modify pppoe-out rule 1 tcp flags 'SYN'
# set interfaces ethernet eth0 pppoe 0 firewall out modify pppoe-out
まとめ
上記の設定を行うことでとりあえずの通信を行うことができた。
サーバへの転送やIPv6対応等が残っているが、それはまた後日やっていきたい。
また、作業を行ったあとに書いているので、実際の設定項目と比較して漏れがあったらごめんなさい。
付録の設定は実際の設定を吸い出したものなので、おかしいなと思ったらそちらを見て欲しい。
参考文献
- User Guide - vyOS
- 初期設定 - EdgeOS 日本語Wiki [非公式]
- EdgeRouter X – 1. 初期設定 |yabe.jp
- Vyattaでフレッツ光ネクストにPPPoE接続する - Qiita
- EdgeRouterLiteを使ってiijmioひかりでインターネット接続する方法メモ - /home/tnishinaga/TechMEMO
付録・設定
本投稿内で行った結果の設定ファイルを掲載しておく。
firewall {
all-ping enable
broadcast-ping disable
ipv6-receive-redirects disable
ipv6-src-route disable
ip-src-route disable
log-martians enable
modify pppoe-out {
rule 1 {
action modify
modify {
tcp-mss 1414
}
protocol tcp
tcp {
flags SYN
}
}
}
name WAN_IN {
default-action drop
description "WAN to internal"
rule 10 {
action accept
description "Allow established/related"
state {
established enable
related enable
}
}
rule 20 {
action drop
description "Drop invalid state"
state {
invalid enable
}
}
}
name WAN_LOCAL {
default-action drop
description "WAN to router"
rule 10 {
action accept
description "Allow established/related"
state {
established enable
related enable
}
}
rule 20 {
action drop
description "Drop invalid state"
state {
invalid enable
}
}
}
receive-redirects disable
send-redirects enable
source-validation disable
syn-cookies enable
}
interfaces {
ethernet eth0 {
address 192.168.1.1/24
duplex auto
pppoe 0 {
default-route auto
description WAN
firewall {
in {
name WAN_IN
}
local {
name WAN_LOCAL
}
out {
modify pppoe-out
}
}
mtu 1454
name-server auto
password [パスワード]
user-id [ID]
}
speed auto
}
ethernet eth1 {
address 192.168.0.1/24
description INSIDE
duplex auto
speed auto
}
ethernet eth2 {
duplex auto
speed auto
}
ethernet eth3 {
duplex auto
speed auto
}
ethernet eth4 {
duplex auto
speed auto
}
loopback lo {
}
switch switch0 {
mtu 1500
}
}
service {
dhcp-server {
disabled false
hostfile-update disable
shared-network-name LAN {
authoritative disable
subnet 192.168.0.0/24 {
default-router 192.168.0.1
dns-server 192.168.0.1
domain-name internal-network
lease 86400
start 192.168.0.19 {
stop 192.168.0.254
}
}
}
}
dns {
forwarding {
cache-size 0
listen-on eth1
name-server 8.8.8.8
name-server 8.8.4.4
}
}
gui {
https-port 443
}
nat {
rule 5010 {
outbound-interface pppoe0
source {
address 192.168.0.0/24
}
type masquerade
}
}
ssh {
port 22
protocol-version v2
}
}
system {
host-name router
login {
user [ユーザ名] {
authentication {
encrypted-password ****************
plaintext-password ****************
}
level admin
}
}
ntp {
server ntp.nict.jp {
}
}
syslog {
global {
facility all {
level notice
}
facility protocols {
level debug
}
}
}
time-zone Asia/Tokyo
}