VyOS は Debian GNU/Linux をもとにしたオープンソースの OS です。かつて無償提供されていた Vyatta Core から fork して開発されています。ルーティングソフトウェア Quagga や OpenVPN を利用した、ソフトウェアルータとしての機能を有しています。AWS EC2 の AMI も Marketplace で提供されており様々な環境で利用できますが、ここでは VirtualBox に VyOS の ISO イメージをインストールして利用します。
新規仮想マシンを作成
新規に仮想マシンを作成します。
- 名前 VyOS
- タイプ Linux
- バージョン Debian (64bit)
- メモリ 256MB
- 仮想ハードディスクを作成する VDI (可変サイズ) 1GB
ISO イメージのインストール
こちらの一覧から最新バージョンの amd64.iso
をダウンロードしてインストールします。2017/1/9 時点の最新バージョンは 1.1.7 です。起動後にログインするための ID とパスワードは以下のとおりです。
- ID
vyos
- パスワード
vyos
ISO イメージの Live-CD 上で動作していることを確認します。
$ show system image
System running on Live-CD
ディスクにインストールするために、以下のコマンドを実行します。ユーザーガイドにも記載のとおり Yes または既定値を指定して進めます。
$ install image ← install system ではありません
reboot
すると再び Live-CD から起動してしまうため、ここでは一度仮想マシンを停止します。
$ poweroff ← halt は使用できません
停止後、仮想マシンの「設定」→「ストレージ」→「vyos-1.1.7-amd64.iso
を右クリック」→「割り当てを除去」によって、Live CD を取り外します。この状態で再度仮想マシンを起動して VyOS 1.1.7 linux (KVM Console)
を選択します。ログイン後、以下のコマンドを実行すると、先程インストールしたイメージが利用されていることが確認できます。
$ show system image
...
1: 1.1.7 (default boot)
基本的な初期設定
Cisco ルータの基本コマンドと似たようなコマンドで操作できます。例えば ?
または tab 入力によって候補を表示できます。更に ?
または tab 入力によって、候補毎のヘルプが表示されます。加えて、Linux の基本的なコマンドも使用できます。これらのコマンドを利用して VyOS の初期設定を行います。現在の全設定を表示するためには以下のコマンドを実行します。
$ show configuration
特権モードに入ってから同様の確認を行うためには run
を付与します。
$ configure
# run show configuration
# exit
$ show configuration
SSH 接続するための設定
様々な設定方法が考えられますが、ここではゲスト OS である VyOS の eth0 が NAT 設定である場合を考えます。
仮想ルータへのポートフォワーディング設定
VyOS の eth0 は VirtualBox を起動しているホスト OS とは別のネットワークに所属しています。そのネットワーク内には VirtualBox が提供する DHCP サーバが存在します。eth0 には DHCP によってネットワーク内で有効なプライベート IP を付与できます。更にネットワーク内には VirtualBox が提供する仮想ルータが存在します。VyOS はこの仮想ルータの NATによって VirtualBox を起動しているホスト OS の IP を利用して外のネットワークと通信します。
VyOS から外のネットワークへの通信を開始する場合はこれで問題ありませんが、外部から VyOS が所属するネットワーク内への SSH 通信を開始するためには、仮想ルータにポートフォワーディングを設定しておく必要があります。「設定」→「ネットワーク」→「アダプター 1」→「高度」→「ポートフォワーディング」→「Rule 1 TCP 2222 を 22 に転送」
eth0 への DHCP によるプライベート IP の割り当て
初期設定では dhcp 設定が存在しませんので、以下のコマンドを実行します。特権モードに入ります。
$ configure
dhcp 設定を eth0 に登録します。
# set interfaces ethernet eth0 address dhcp
show
で差分を確認して commit
で確定します。
# show interfaces ethernet eth0
+address dhcp
duplex auto
hw-id 08:00:27:8c:9a:7b
smp_affinity auto
speed auto
# commit
プライベート IP が付与されたことを確認します。
# run show interfaces ethernet eth0
eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP group default qlen 1000
link/ether 08:00:27:8c:9a:7b brd ff:ff:ff:ff:ff:ff
inet 10.0.2.15/24 brd 10.0.2.255 scope global eth0
valid_lft forever preferred_lft forever
inet6 fe80::a00:27ff:fe8c:9a7b/64 scope link
valid_lft forever preferred_lft forever
RX: bytes packets errors dropped overrun mcast
34318 378 0 0 0 0
TX: bytes packets errors dropped carrier collisions
32084 276 0 0 0 0
再起動時に設定が消えないようにします。
# save
SSH サービスの起動
初期設定では ssh サービスが開始されていませんので、以下のコマンドを実行します。特権モードに入ります。
$ configure
SSH 設定を有効にします。
# set service ssh
差分を確認して確定します。
# show service
+ssh {
+ port 22
+}
# commit
再起動時に設定が消えないようにします。
# save
SSH 接続できることを確認
ホスト OS から接続するためには以下のコマンドを実行します。
$ ssh vyos@127.0.0.1 -p 2222
その他の基本コマンドおよび設定
ユーザーの新規作成
# set system login user mynewuser authentication plaintext-password mypassword
# show system login
# commit
# show system login
# save
パスワードの変更
# set system login user mynewuser authentication plaintext-password mypassword2
commit
前の取消
# discard
設定の削除
# delete system login user mynewuser
ホスト名の変更
次回ログイン時に確認できます。
# set system host-name myhostname
設定階層の移動
VyOS の設定はファイルシステムのように階層構造になっています。初期状態では最上位から絶対パスのような指定方法で設定を変更しますが edit
コマンドで編集中の階層を最上位から変更できます。
# edit system
一つ上の階層に移動できます。
# up
最上位に移動するコマンドもあります。
# top
固定 IP およびネットマスクの設定
VirtualBox の設定が NAT の場合は VirtualBox が提供する DHCP サーバが存在します。一方、ブリッジの場合はホスト OS と同じネットワークに所属することになるため DHCP サーバが存在しないことがあります。存在しない場合は以下のコマンドで IP を付与する必要があります。ホスト OS が所属するネットワークのアドレスは 192.168.179.0/24
であるとします。
# set interfaces ethernet eth1 address 192.168.179.200/24
# commit
# run show interfaces ethernet eth1
デフォルトゲートウェイの設定
これで eth1 によってホスト OS のネットワーク内で通信できるようになりました。ネットワークの外に出て通信するためには、更にデフォルトゲートウェイを設定する必要があります。DHCP サーバーから IP を取得する場合は、DHCP サーバーから提供されていた情報です。ホスト OS の環境設定からデフォルトゲートウェイを調べて、同じ値を設定します。
# set system gateway-address 192.168.179.1
# commit
これで外部との通信が可能になりました。
# ping www.example.com
関連記事
- Ciscoルータの基本操作シスコ社の製品のうち、ルータは Cisco*** という製品名でスイッチは Catalyst*** という製品名です。いずれも *** は機種番号で、数字が小さいほど小規模ネットワーク向けとなっています。例えば資格試験 CCNA Routing and Switching では小規模および中規模ネットワークが対象です。そのため、中小規模のネットワークのルータおよびス
- BIND 9 ゾーンファイル Dynamic Update の設定方法DHCP 環境下などで IP が動的に付与される場合は DNS レコードを動的に更新する必要があります。これを実現する Dynamic Update 機能が BIND 9 には実装されています。使用方法をまとめます。Dynamic Update に対応した DNS を特に Dynamic DNS または DDNS とよぶことがあります。 ゾーンファイルの作成 ローカルホストに example.co...
- VyOS の基本的なルーティング設定本ページでは、複数の LAN をつなぐルータとしての設定方法をまとめます。具体的には、スタティックルーティングおよびダイナミックルーティング (RIP/OSPF/BGP)の設定方法を把握します。 設定方法を検証するための構成 ルーティング設定の検証を行うために VirtualBox で 5 台の VM を用意します。ホスト OS から vyos-0001 へ SSH 接続する部分を除き、「内部ネッ...
- BIND 9.10.2 の公式マニュアルに学ぶ DNS の基本DNS の実装としては Internet Systems Consortium (ISC) の Berkeley Internet Name Domain (BIND) が有名です。本ページは公式サイトの Documentation からダウンロードできる v9.10.2 の PDF マニュアルおよび『DNSの仕組み完全解説』から基本事項を抽出してまとめ
- スタティックルートの設定インターフェイスに IP を設定しただけでは他のデバイスと通信できません。各デバイスにルーティングテーブルを設定する必要があります。ルーティングテーブルの設定方法には動的に自動設定するものと、静的に手動設定するものの二種類があります。ここでは静的に手動設定するスタティックルートの方法を紹介します。 具体的にはまず PC0, PC1, Router0, Router1 それぞれ