目次
何をするか
使わなくなったノートPC上でvyosというネットワークOSを導入して、ノートPCを家庭用ルータとして使用してみます。
やる理由としてはvyosを使ってルータを作ってみたかっただけです。
環境
OS:Win8
ソフト:VMware Workstation 12 Player
↓ざっくり構成(before)

↓ざっくり構成(after)
※無線LANアダプタがあればvyos自体がAPにもなれます。

vyosの機能
vyosは企業などで使われる商用ルータと同等の機能があります。
家庭用ルータとしてはほぼ不要ですが…。
yvso機能wiki
WebキャッシュサーバやIPSecVPNは家庭でも使えるかも。
家庭用ルータに必要な機能を洗い出し
・送信元NAT
自宅のPCがインターネットに出る際に使用
・DHCP
自宅のPCがAPにアクセスした際にローカルアドレスを自動取得する為に使用
・DNS転送
ISP(WAN側)から自動取得したDNSの情報をDHCPクライアントに伝える事が出来ないので、自身がDNSサーバのように振る舞いISPのDNSへクエリを中継するため。
VMware Workstationの設定など
vyosのisoをダウンロードして仮想マシンを作成する
vyosのisoをダウンロード → vyos
仮想マシン、仮想ネットワークエディタの設定。
自動ブリッジではなくVMnetを使用したのは、今後の物理インタフェース追加も考えてインタフェースを明示的に指定する為です。
NATを使用しているのはホスト(ノートPC)に振られているグローバルIPをvyosで使用する為です。


ノートPC内部のイメージはこんな感じ。
USBNICを1つつけてるので物理NICが2つあります。

vyosの設定
初期設定は長くなるので別の記事で書きます
LAN側(eth2)、WAN側(eth3)のインタフェースを認識している事を確認。
vyos@vyos:~$ show interfaces
Codes: S - State, L - Link, u - Up, D - Down, A - Admin Down
Interface IP Address S/L Description
--------- ---------- --- -----------
eth2 - u/u
eth3 - u/u
lo 127.0.0.1/8 u/u
::1/128
設定モードに移行してLAN側、WAN側それぞれのアドレスを設定。
ONUからのグローバルIP取得はDHCPです。
vyos@vyos:~$ configure vyos@vyos# set interfaces ethernet eth2 address 192.168.1.254/24 vyos@vyos# set interfaces ethernet eth3 address dhcp
SSHを有効にして今までの設定変更を反映。
これでターミナルソフトからSSH経由で接続できます。
vyos@vyos# set service ssh vyos@vyos# commit
LAN→WANへの送信元NATのルールを作成。
vyos@vyos# set nat source rule 900 translation address masquerade vyos@vyos# set nat source rule 900 source address 192.168.1.0/24 vyos@vyos# set nat source rule 900 outbound-interface eth3
DHCPサーバになる為の設定。
アドレスプールは 192.168.1.100-150
vyos@vyos# set service dhcp-server shared-network-name my_pool subnet 192.168.1.0/24 vyos@vyos# set service dhcp-server shared-network-name my_pool subnet 192.168.1.0/24 start 192.168.1.100 stop 192.168.1.150 vyos@vyos# set service dhcp-server shared-network-name my_pool subnet 192.168.1.0/24 default-router 192.168.1.254 vyos@vyos# set service dhcp-server shared-network-name my_pool subnet 192.168.1.0/24 dns-server 192.168.1.254
DNS転送の設定。
vyos@vyos# set service dns forwarding listen-on eth2
設定を保存して再起動。
vyos@vyos# commit vyos@vyos# save vyos@vyos# exit vyos@vyos:~$ reboot
使えそうな確認コマンドなど
コンフィグの確認。
vyos@vyos:~$ show configuration
インターフェースの状態確認。
vyos@vyos:~$ show interfaces
ルーティングテーブルの確認。
vyos@vyos:~$ show ip route
NATルールの確認。
vyos@vyos:~$ show nat source rules
現在の送信元NATの状態を確認。
vyos@vyos:~$ show nat source translations detail
完成版コンフィグ
vyos@vyos:~$ show configuration
interfaces {
ethernet eth2 {
address 192.168.1.254/24
duplex auto
hw-id 00:0c:29:0a:a4:89
smp_affinity auto
speed auto
}
ethernet eth3 {
address dhcp
duplex auto
hw-id 00:0c:29:0a:a4:93
smp_affinity auto
speed auto
}
loopback lo {
}
}
nat {
source {
rule 900 {
outbound-interface eth3
source {
address 192.168.1.0/24
}
translation {
address masquerade
}
}
}
}
service {
dhcp-server {
disabled false
shared-network-name my_pool {
authoritative disable
subnet 192.168.1.0/24 {
default-router 192.168.1.254
dns-server 192.168.1.254
lease 86400
start 192.168.1.100 {
stop 192.168.1.150
}
}
}
}
dns {
forwarding {
cache-size 150
listen-on eth2
}
}
ssh {
port 22
}
}
system {
config-management {
commit-revisions 20
}
console {
device ttyS0 {
speed 9600
}
}
host-name vyos
login {
user vyos {
authentication {
encrypted-password ****************
plaintext-password ****************
}
level admin
}
}
ntp {
server 0.pool.ntp.org {
}
server 1.pool.ntp.org {
}
server 2.pool.ntp.org {
}
}
package {
auto-sync 1
repository community {
components main
distribution helium
password ****************
url http://packages.vyos.net/vyos
username ""
}
}
syslog {
global {
facility all {
level notice
}
facility protocols {
level debug
}
}
}
time-zone UTC
}
スループットの測定
回線速度計測サイトを使用して有線接続時の速度テストをしてみた結果。
※干渉をうけにくい有線接続でテスト。
・モデム—自宅のPC
下り:74Mbps 上り:4.5Mbps
・モデム—vyos—自宅のPC
下り:94Mbps 上り:5.6Mbps
無線アダプタを買ってAP設定をすれば高機能無線ルータとして実用的に使えるんじゃないか??
安定稼働するかどうかは分かりませんが。