VyOS (読み方:ヴィワイオーエス)とは
VMware や KVM 等の仮想基盤 (ハイパーバイザ) 上で動作する仮想ルータのことです。オープンソースであるため、無償で利用することが可能です。もともとは vyatta (読み方:ビャッタ) と呼ばれていました。
VyOS は Linux ベースであり、Kernel は 2019/9/20 時点では 4.19.70 です。
config は Juniper SRX 等に似ています。
ISO をダウンロード
VyOS の ISO イメージは https://vyos.io/ からダウンロードできます。
Rolling Release をクリックします。
amd64 という文字列が見えますが、命令セットのことですので、Intel の一般的な CPU (x64 系) であれば互換性がありますので問題ありません。
最新バージョンをダウンロードしましょう。
Oracle VM Virtual BOX の設定
Virtual BOX で『新規(N)』をクリックします。
以下の赤枠のように設定します。名前は任意です。「作成」ボタンをクリックします。
デフォルトのまま「作成」ボタンをクリックします。
左ペインの「ストレージ」をクリックし、ダウンロードした ISO ファイルをセットします。セットするためには、下図の「コントローラーIDE」の下の「空」をクリックした後、右側の「属性」の「光学ドライブ(D):」の横にあるディスクの絵をクリックし、「仮想光学ディスクファイルを選択...」をクリックし、ファイルを選択します。
次に左ペインの「ネットワーク」をクリックし、3 つのアダプターを以下のように設定します。『アダプター 1』と『アダプター 2』はルータとして 2 つのネットワークを接続するために使います。『アダプター 3』は VyOS に SSH 接続するために使います。
ここまで出来たら次はいよいよ VyOS を起動します。
VyOS の環境セットアップ
ISO ブート
Oracle VM の『起動』ボタンをクリックすると、ISO ファイルでブートします。
ログイン
起動して 1 分くらいするとログイン画面が表示されます。表示されていない場合は Enter を押下してみましょう。それでもだめなら再起動します。
ログイン画面が表示されたら ID パスワードを入力します。初期パスワードは
vyos login: vyos Password: vyos
です。
VyOS のローカルインストール
ISO ファイルから起動しているため、このままでは commit/save しても再起動をしたら設定が初期化されてしまいます。まずは VyOS をローカルインストール/ローカルブートにしましょう。
vyos@vyos:~$ install image
対話式ですが、1か所を除いてデフォルト設定で OK です。パスワードは適切なものに変更しましょう。
Would you like to continue? (Yes/No) [Yes]: (空欄でEnter) Partition (AutoParted/Skip) [Auto]: (空欄でEnter) Install the image on? [sda]: (空欄でEnter) This will destroy all date on /dev/sda. Continue? (Yes/No) [No]: yes How big of a root partition should I create? (2000MB - 8589MB) [8589]MB: (空欄でEnter) What would you like to name this image? [1.2-rolling-201909200118]: (空欄でEnter) Which one should I copy to sda? [/opt/vyatta/etc/config/config.boot]: (空欄でEnter) Enter password for user 'vyos': vyos Retype password for user 'vyos': vyos Which drive should GRUB modify the boot partition on? [sda]: (空欄でEnter)
最後に Done! と表示されれば完了です。
次に ISO メディアを外して起動するか確認します。まずは poweroff します。
vyos@vyos:~$ poweroff Are you sure you want to poweroff this system? [y/N] y
ISO メディアを除去
左ペイン「ストレージ」をクリックし、中央ペインの以下のメディアファイルを右クリックし、『割り当てを除去』をクリックします。
『除去(R)』をクリックします。
今度はローカルブート
ログイン画面が表示されますので、ユーザ名 vyos , パスワードは先程設定したパスワードを入力します。
VyOS の初期設定セットアップ
設定モードへ切り替え
設定変更をするためには configure で設定モードになります。
vyos@vyos:~$ configure
[edit]
vyos@vyos#
表示が $ から # に変わります。
ホスト名変更
設定変更は基本的に set コマンドを使います。まずはホスト名を変更しましょう。
vyos@vyos# set system host-name vyos-0
設定変更の反映およびセーブ
設定変更を runnning 中の config に反映するには commit を打ちます。また、再起動後の startup の config に反映するには save を使います。commit と save は 1 セットで覚えましょう。
vyos@vyos# commit [edit] vyos@vyos# save Saving configuration to '/config/config.boot'... Done [edit] vyos@vyos#
ただし、ホスト名については次回ログイン時のみに反映されますのでこの時点では反映が確認できません。
ログアウト
ログアウトしてみます。設定モードにいる場合は 2 回 exit を打てば OK です。
vyos@vyos# exit vyos@vyos:~$ exit
するとログイン画面で vyos-0 login: と表示され、設定変更されていることが分かります。
vyos-0 login:
先程と同様にログインします。
インタフェース設定の確認
次にインタフェース設定をしてみます。まずはインタフェースの確認です。
vyos@vyos-0:~$ show interfaces
Codes: S - State, L - Link, u - Up, D - Down, A - Admin Down
Interface IP Address S/L Description
--------- ---------- --- -----------
eth0 - u/u
eth1 - u/u
eth2 - u/u
lo 127.0.0.1/8 u/u
::1/128
eth0, eth1, eth2 がそれぞれ Oracle VM の『アダプター 1』『アダプター 2』『アダプター 3』に対応しています。
インタフェースへの IP 設定 ( 固定と DHCP )
次にインタフェースに IP を設定してみます。また、備考のために Description も設定します。
vyos@vyos-0:~$ configure [edit] vyos@vyos-0# set interface ethernet eth0 address 192.168.1.1/24 [edit] vyos@vyos-0# set interface ethernet eth0 description LAN1 [edit]
適宜 commit/save をします。次に eth1 も同様に設定します。これは Oracle VM アダプター2 (WAN1) に相当します。
vyos@vyos-0# set interface ethernet eth1 address 198.51.100.1/24 [edit] vyos@vyos-0# set interface ethernet eth0 description WAN1 [edit]
最後に eth2 を設定しますが、これは dhcp とします。その流れで commit と save をします。
vyos@vyos-0# set interface ethernet eth2 address dhcp [edit] vyos@vyos-0# set interface ethernet eth0 description for-ssh [edit] vyos@vyos-0# commit [edit] vyos@vyos-0# save
ルーティングの設定
ルーティングは set protocols static route コマンドを使います。
vyos@vyos-0# set protocols static route 10.0.0.0/8 next-hop 192.168.2.2 [edit] vyos@vyos-0# commit [edit] vyos@vyos-0# save
通常モードに exit して show ip route でルーティングテーブルを確認できますが、設定モードでも Linux のコマンド ip route で確認できます。
vyos@vyos-0# ip route
default via 10.0.4.2 dev eth2 proto static metric 20
10.0.4.0/24 dev eth2 proto kernel scope link src 10.0.4.15
192.168.1.0/24 dev eth0 proto kernel scope link src 192.168.1.1
198.51.100.0/24 dev eth1 proto kernel scope link src 198.51.100.1
[edit]
vyos@vyos-0#
通常モードだと以下のような表示
vyos@vyos-0:~$ show ip route
Codes: K - kernel route, C - connected, S - static, R - RIP,
O - OSPF, I - IS-IS, B - BGP, E - EIGRP, N - NHRP,
T - Table, v - VNC, V - VNC-Direct, A - Babel, D - SHARP,
F - PBR, f - OpenFabric,
> - selected route, * - FIB route, q - queued route, r - rejected route
S>* 0.0.0.0/0 [210/0] via 10.0.4.2, eth2, 00:02:43
C>* 10.0.4.0/24 is directly connected, eth2, 00:33:09
C>* 192.168.1.0/24 is directly connected, eth0, 00:34:06
C>* 198.51.100.0/24 is directly connected, eth1, 00:34:07
vyos@vyos-0:~$
設定削除
設定追加が set であるのに対し、設定削除は delete です。
先程追加したルーティング設定を削除してみます。
vyos@vyos-0# delete protocols static route 10.0.0.0/8 next-hop 192.168.2.2 [edit] vyos@vyos-0# commit [ protocols static route 10.0.0.0/8 ] Must add either a next-hop or blackhole or dhcp-interface for route 10.0.0.0/8 [[protocols static route 10.0.0.0/8]] failed Commit failed [edit]
削除に失敗してしまいました。これは VyOS の癖のようで、複数設定が可能な config において、1つしかない設定を削除するためには大枠で削除しなければならないようです。
試しに "set protocols static route 10.0.0.0/8 next-hop 192.168.1.2" を設定して commit し、その後に上記コマンドを打つと成功します。
もし1つしかない設定を削除したい場合は、以下のように next-hop の前で止めます。
vyos@vyos-0# delete protocols static route 10.0.0.0/8 [edit] vyos@vyos-0# commit [edit] vyos@vyos-0# save
config 全体の確認と部分的な確認
設定は通常モードなら show configuration、設定モードなら show のみです。
vyos@vyos-0~$ show configuration or vyos@vyos-0# show
なお、設定モードで interfaces のみの設定を確認したいなら show interfaces を打ちます。
vyos@vyos-0# show interfaces
ethernet eth0 {
address 192.168.1.1/24
description LAN1
hw-id 08:00:27:10:b5:06
}
ethernet eth1 {
address 198.51.100.1/24
description WAN1
hw-id 08:00:27:11:be:ce
}
ethernet eth2 {
address dhcp
description for-ssh
hw-id 08:00:27:be:95:9c
}
loopback lo {
}
[edit]
vyos@vyos-0#
Linux ベースなので Linux コマンドの ip a でも確認できます。
vyos@vyos-0# ip a 1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000 link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00 inet 127.0.0.1/8 scope host lo valid_lft forever preferred_lft forever inet6 ::1/128 scope host valid_lft forever preferred_lft forever 2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP group default qlen 1000 link/ether 08:00:27:10:b5:06 brd ff:ff:ff:ff:ff:ff inet 192.168.1.1/24 brd 192.168.1.255 scope global eth0 valid_lft forever preferred_lft forever inet6 fe80::a00:27ff:fe10:b506/64 scope link valid_lft forever preferred_lft forever 3: eth1: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP group default qlen 1000 link/ether 08:00:27:11:be:ce brd ff:ff:ff:ff:ff:ff inet 198.51.100.1/24 brd 198.51.100.255 scope global eth1 valid_lft forever preferred_lft forever inet6 fe80::a00:27ff:fe11:bece/64 scope link valid_lft forever preferred_lft forever 4: eth2: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP group default qlen 1000 link/ether 08:00:27:be:95:9c brd ff:ff:ff:ff:ff:ff inet 10.0.4.15/24 brd 10.0.4.255 scope global eth2 valid_lft forever preferred_lft forever inet6 fe80::a00:27ff:febe:959c/64 scope link valid_lft forever preferred_lft forever [edit] vyos@vyos-0#
SSH 接続するための設定
SSH サービス起動
vyos ではデフォルトでは SSH サービスは上がっていませんがコマンド1つで起動可能です。
vyos@vyos-0# set service ssh vyos@vyos-0# commit [edit] vyos@vyos-0# save
TeraTermでログイン
TeraTerm から接続する際は「キーボードインタラクティブ認証」を使わないと認証に失敗します。
Windows Terminal でログイン
TeraTerm を使わず、Windows のコマンドプロンプトから以下コマンドを使ってもアクセス可能です。
ssh vyos@[ip address]
NAT インタフェースへSSH接続したい場合
クライアントからアクセスできる場合は上記の設定までで問題ありませんが、もし VirtualBOX の NAT インタフェースにアクセスしたい場合はそのままではアクセスできませんので以下のようにポートフォワーディングを設定します。
左ペインの「ネットワーク」をクリックし、SSH 用に用意していた「アダプター 3」タブから「ポートフォワーディング(P)」をクリックします。
ポップアップした画面の右上にあるプラスボタンをクリックします。
ルールが追加されるので以下のように編集します。ホスト IP とポート番号のペアは他の VM のルールと競合させてはいけませんので、ホスト IP を例えば 127.0.0.11 としましょう。こうすれば2台目の VyOS ではルールで 127.0.0.12 ポート 22 としても被りません。
ここまで設定すれば使えるはずです。みんな大好き TeraTerm で接続してみます。
The programs included with the Debian GNU/Linux system are free software; the exact distribution terms for each program are described in the individual files in /usr/share/doc/*/copyright. Debian GNU/Linux comes with ABSOLUTELY NO WARRANTY, to the extent permitted by applicable law. vyos@vyos-0:~$
コメント