zaki work log

作業ログやら生活ログやらなんやら

VyOSをインストールしてIPアドレスとsshの初期設定

OSSで開発されているネットワークOS(Wikipediaの説明より)であるVyOSを使って、仮想環境上にルーターを構築してみる。
VyOSはDebianベースで動作するOSで、VMにインストールすることができる。

vyos.io

ちなみにLinux(CentOS)をルーターにするには以下参照。

zaki-hmkc.hatenablog.com

社内のハンズオンイベントで扱ったりひよこ本にも載ってたりしててVyOS触っておきたいなーと思いつつタスク積んでいたけど、Linuxにスタティックルートの設定をする際にこれあった方が絶対によさそうだったのでようやく自宅ラボに導入しようとしてます。。
ちなみに本記事ではVyOSのイメージの入手とOSインストール、OSインストール後のIPアドレス設定と外部からssh接続できるようにする設定までです。

Rolling Release版のVyOS イメージの入手

f:id:zaki-hmkc:20210408094742p:plain

「Rolling Release」であればISOのダウンロードページにすぐたどり着く。

なんだけど、初めてなのでLTS(2021.04.07時点でv1.2.7)を使いたい。

vyos.io

なんだけど、ここを見ると全部有償版に見える。。。
ハテ…と思ってドキュメントのinstallationのページを見てみると、

docs.vyos.io

登録すればダウンロードできるっぽい?

Registered subscribers can log into https://support.vyos.io/ to have access to a variety of different downloads via the “Downloads” link. These downloads include LTS (Long-Term-Support) and associated hot-fix releases, early public access releases, pre-built VM images, as well as device specific installation ISOs.

というわけで、ここからユーザー登録。

support.vyos.io

・・・してみたけど、やっぱりLTSのダウンロードページを見つけられない。

ということであきらめて、現在の最新版を使ってみる。
最初にも書いたけど「Rolling Release」->「Downloading Rolling Release」で1.4のISOファイルダウンロードページにたどり着く。

downloads.vyos.io

「latest」をダウンロードするとあとからわからなくなるので、2021.04.07時点で最新の「vyos-1.4-rolling-202104061641-amd64.iso」をゲット。(中身はlatest)

ちなみにOVAファイルも配布されてたけど、1.1.8で妙に古かったのでスルー。

VMの作成

インストールのドキュメントは以下。

docs.vyos.io

The minimum system requirements are 512 MiB RAM and 2 GiB storage. Depending on your use you might need additional RAM and CPU resources e.g. when having multiple BGP full tables in your system.

マシンスペックは掲載されてるけど、ESXiで作る際の「ゲストOSのバージョン」はいまいち。ベースはDebianだけどバージョンがわからず。
あとで変更できるし、とりあえず「Debian GNU/Linux 10 (64bit)」で作成。 (ちなみに以下の通り10.9なので最新版のイメージであれば選択するDebianバージョンも最新でたぶん大丈夫)

vyos@vyos:~$ cat /etc/debian_version 
10.9

今回はルーターとして動かしたいのでNICを2個セット。
マシンスペックはそんなに必要ないみたいだけど、一応こんな感じ。

f:id:zaki-hmkc:20210408095328p:plain

install

CDブートするとLive Linux状態で使用可能になる。
VMにインストールするには「Permanent installation」の項を参照

docs.vyos.io

電源投入するとログイン待ち状態になるので、ユーザー名・パスワードはどちらもvyosを入力しコンソールログインする。

インストールするにはinstall imageを実行。
聞かれる質問は以下の通り。基本デフォルトで問題ない。

  • Would you like to continue? (Yes/No) [Yes]:
  • Partition (Auto/Parted/Skip) [Auto]:
  • Install the image on? [sda]:
  • This will destroy all data on /dev/sda. Continue? (Yes/No) [No]: Yes
  • How big of a root partition should I create? (2000MB - 4294MB) [4294]MB:

これでCreating filesystem on /dev/sda1 と表示されパーティションが作成される。

  • What would you like to name this image? [1.4-rolling-202104061641]:
  • Which one should I copy to sda? [/opt/vyatta/etc/config/config.boot]:
  • Enter password for user 'vyos': <管理ユーザー"vyos"のパスワードを入力する>
  • Retype password for user 'vyos':
  • Which drive should GRUB modify the boot partition on? [sda]:

Setting up grub: と出てOKと表示されれば処理完了。
poweroffしてシャットダウンし、isoファイルをVMから取り外す。

設定

ディスクから起動したらvyosユーザーでログイン。
主要な設定はQuick Startを参照。

docs.vyos.io

IPアドレス設定

NICを2個乗せているので、ip aで2つあることを確認(このコマンドでいいんだっけ 後述)し、eth0eth1がそれぞれVMのどのNICかをESXiのネットワークアダプタMACアドレスを見て確認する。

configureを実行して設定モードに変更。

vyos@vyos:~$ configure
[edit]
vyos@vyos# 

これはプロンプトが以下の2行になるって感じかな。。

[edit]
vyos@vyos#

で、eth0のアドレス設定。
172.16.1.3でサブネットは/23
DHCPはオフになってるので特にdeleteの必要はない。

set interfaces ethernet eth0 address 172.16.1.3/23

eth1は別途設定するので未設定のまま残しておく。

setを実行したらshowで内容を確認できる。
問題無ければ、commitで適用し、saveで保存する。

(commitを実行した時点で設定が反映されるので他のホストからpingなどで反応できる。ただしsaveしないとrebootで設定は消える)

設定確認

最初ip aを使って確認してた…

vyos@vyos:~$ 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 fe80::200:ff:fe00:0/64 scope link 
       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 mq state UP group default qlen 1000
    link/ether 00:0c:29:3b:48:8c brd ff:ff:ff:ff:ff:ff
    inet 172.16.1.3/23 brd 172.16.1.255 scope global eth0
       valid_lft forever preferred_lft forever
    inet6 fe80::20c:29ff:fe3b:488c/64 scope link 
       valid_lft forever preferred_lft forever
3: eth1: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mq state UP group default qlen 1000
    link/ether 00:0c:29:3b:48:96 brd ff:ff:ff:ff:ff:ff
    inet6 fe80::20c:29ff:fe3b:4896/64 scope link 
       valid_lft forever preferred_lft forever

けどここはネットワークOSらしく、show interfacesを使おう。

vyos@vyos:~$ show interfaces 
Codes: S - State, L - Link, u - Up, D - Down, A - Admin Down
Interface        IP Address                        S/L  Description
---------        ----------                        ---  -----------
eth0             172.16.1.3/23                     u/u  
eth1             -                                 u/u  
lo               127.0.0.1/8                       u/u  
                 ::1/128     

sshサーバー

以降の作業用にsshサーバーを有効にする。
IPアドレスと同様configureで設定モードで実行する。

vyos@vyos:~$ configure
[edit]
vyos@vyos# 
set service ssh

これを実行し、IPアドレスの設定と同様にcommitsaveすれば、他のホストからsshで接続できるようになる。

zaki@ubuntu-node:~$ ssh vyos@172.16.1.3
The authenticity of host '172.16.1.3 (172.16.1.3)' can't be established.
ECDSA key fingerprint is SHA256:O03Yp97VsV5iOpw+BrW/tUvQH6l3ritn1+njB8rR9CE.
Are you sure you want to continue connecting (yes/no/[fingerprint])? yes
Warning: Permanently added '172.16.1.3' (ECDSA) to the list of known hosts.
Welcome to VyOS

vyos@172.16.1.3's password: 
Linux vyos 5.10.27-amd64-vyos #1 SMP Sun Apr 4 22:05:07 UTC 2021 x86_64

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:~$ 

というわけで、VyOSをインストールしてeth0のみアドレス設定完了。
現在の構成はこんな感じ。

f:id:zaki-hmkc:20210412080027p:plain

ルーターの設定などは次回で。。