お金をかけずにサーバーの勉強をしよう

VyOSインストール(ソフトウェアルーター)(後編)

2022年10月30日

メニューへ戻る

こんにちは。

VyOSインストール(ソフトウェアルーター)(前編)」にてソフトウェアルーターのインストールをしましたが、でどうするの?というとルーターだけでは何にもならないので、ここでは VMware Workstation Playerの中で仮想的なネットワークを作って、ソフトウェアルーターでそれらを繋いでみます。

でもサーバーエンジニアにとってこれが何か役に立つかというとちょっと微妙で、これはネットワークエンジニアの範囲なのではないでしょうか。

まぁサーバーエンジニアがネットワークまでやらされるのは良くある話なので気にせずやっていきます。


VyOSのガイドにセッティングの例があります。
Quick Start

WAN(多分インターネットを想定している)とLANの間に VyOSを挟んでルーティングさせつつファイアウォールもやらせよう(VyOSにはファイアウォール機能もあります)というもののようで、ちょうどブロードバンドルーターの役割ですかね。

ただ既にブロードバンドルーターがある我が家の環境では、この例だとイマイチなところがありますので、純粋に外に繋がっていない仮想ネットワークを構成して VyOSにルーティングをさせるようにしてみます。

こんなの。
作成環境のネットワーク構成


現在の VyOSの仮想マシンが1つしかなく、その仮想マシンもネットワークインターフェイスが1つしかありません。
仮想マシンにネットワークインターフェイスを 1つ足した後、仮想マシンをコピって VyOSの仮想マシンをもう1つ作ります。

VMware Workstation Playerを立ち上げます。

VyOSの仮想マシンが選択されている状態で、[仮想マシン設定の編集]をクリックします。
仮想マシンにネットワークインターフェイスを追加 1

[ネットワークアダプタ]を選択し、右にある[ネットワーク接続]で[カスタム:特定の仮想ネットワーク]を選択、対象は「VMnet2」を指定します。
その後追加を押します。
仮想マシンにネットワークインターフェイスを追加 3

この[カスタム]で選べる VMnet0 〜 VMnet19 ですが、それぞれがネットワーク機器のハブであると考えれば分かりやすいと思います。

この環境では
192.168.2.0/24
192.168.3.0/24
192.168.4.0/24
のネットワークを新設するので VMnet2・VMnet3・VMnet4 というハブを3つ持ってきてそれに結線しましたよ、ということです。

構成としてはこのようになります。
仮想ネットワーク

※VMnet1・VMnet8はデフォルトで別用途に使われているので 2からにしました。

[ネットワークアダプタ]を選択し、完了を押します。
仮想マシンにネットワークインターフェイスを追加 4

[ネットワークアダプタ 2]というのが今追加されたものです。
これを選択し、[ネットワーク接続]で[カスタム:特定の仮想ネットワーク]を選択、対象は「VMnet3」を指定します。
OKを押します。
仮想マシンにネットワークインターフェイスを追加 5

ここで一旦留め置きます。
仮想マシンにネットワークインターフェイスを追加 6


VyOSの仮想マシンイメージをコピーします。

私の環境では、F:¥vmware¥VyOS というフォルダで作ってありましたので、これを VyOS1に名前変更してから、フォルダをコピーして VyOS2を作りました。
結果
F:¥vmware¥VyOS1
F:¥vmware¥VyOS2
ができたことになります。


VMware Workstation Playerの画面に戻ります。

VyOSの行で右クリックするとメニューが出ますので、[ライブラリから削除]を選択します。
仮想マシンにネットワークインターフェイスを追加 7

[仮想マシンを開く]をクリックします。
仮想マシンにネットワークインターフェイスを追加 8

ファイル選択画面になりますので VyOS1にあたる F:¥vmware¥VyOS1¥VyOS.vmx を選択します。

これで仮想マシンの一覧に出てきますが以前の名前のままですので名前を変更します。
VyOSの行で右クリックするとメニューがでますので、[名前の変更]を選択して、「VyOS1」にします。
仮想マシンにネットワークインターフェイスを追加 9

同様に VyOS2側もやりました。
仮想マシンにネットワークインターフェイスを追加 10


VyOS1を起動します。
起動したら vyosユーザーでログインしましょう。
(パスワードはインストールの時に設定したものです。)

ネットワークの状態を見てみます。

vyos@vyos:~$ ip address
1: lo:  mtu 65535 qdisc noqueue state UNKNOWN group default qlen 1000
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
    inet 172.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:  mtu 1500 qdisc pfifo_fast state UP group default qlen 1000
    link/ether 00:0c:29:29:68:c2 brd ff:ff:ff:ff:ff:ff
    inet6 fe80::20c:29ff;fe29;68c2/64 scope link
       valid_lft foreever preferred_lft forever
3: eth1:  mtu 1500 qdisc pfifo_fast state UP group default qlen 1000
    link/ether 00:0c:29:29:68:cc brd ff:ff:ff:ff:ff:ff
    inet6 fe80::20c:29ff;fe29;68cc/64 scope link
       valid_lft foreever preferred_lft forever

[eth0]が[ネットワークアダプタ]、[eth1]が追加した[ネットワークアダプタ 2]です。

それぞれのネットワークアダプタはこのように使おうと思います。
VyOSのネットワークインターフェイス

まだIPアドレスは割り振られていませんので、割り振ります。
eth0:192.168.2.1/24
eth1:192.168.3.1/24

vyos@vyos:~$ configure
[edit]
vyos@vyos# set interfaces ethernet eth0 address '192.168.2.1/24'
[edit]
vyos@vyos# set interfaces ethernet eth1 address '192.168.3.1/24'
[edit]
vyos@vyos# commit
[edit]
vyos@vyos# save
Saving configuration to '/config/config.boot'...
Done!
[edit]
vyos@vyos# exit
exit
vyos@vyos:~$

ネットワークの状態を見てみます。

vyos@vyos:~$ ip address
1: lo:  mtu 65535 qdisc noqueue state UNKNOWN group default qlen 1000
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
    inet 172.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:  mtu 1500 qdisc pfifo_fast state UP group default qlen 1000
    link/ether 00:0c:29:29:68:c2 brd ff:ff:ff:ff:ff:ff
    inet 192.168.2.1/24 brd 192.168.2.255 scope global eth0
       valid_lft 14285sec preferred_lft 14285sec
    inet6 fe80::20c:29ff;fe29;68c2/64 scope link
       valid_lft foreever preferred_lft forever
3: eth1:  mtu 1500 qdisc pfifo_fast state UP group default qlen 1000
    link/ether 00:0c:29:29:68:cc brd ff:ff:ff:ff:ff:ff
    inet 192.168.3.1/24 brd 192.168.3.255 scope global eth1
       valid_lft forever preferred_lft forever
    inet6 fe80::20c:29ff;fe29;68cc/64 scope link
       valid_lft foreever preferred_lft forever

両方共 IPアドレスの設定ができました。

ルーティング情報を見てみます。

vyos@vyos:~$ 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-Direce, A - Babel, F - PBR,
       f - OpenFabric,
       > - selected route, * - FIB route, q - queued, r - rejected, b - backup
       t - trapped, o - offload failure

C>* 192.168.2.0/24 is directly connected, eth0, 00:06:21
C>* 192.168.3.0/24 is directly connected, eth1, 00:06:21

VyOS2と紛らわしくなるので、ホスト名を変更します。
(リブートもします)

vyos@vyos:~$ configure
[edit]
vyos@vyos# set system host-name 'VyOS1'
[edit]
vyos@vyos# commit
[edit]
vyos@vyos# save
Saving configuration to '/config/config.boot'...
Done!
[edit]
vyos@vyos# exit
exit
vyos@vyos:~$ reboot
Are you sure you want to reboot this system? [y/N] y

VyOS1の方はこれでOKでしょう。

同様に VyOS2の方もやります。
VMware Workstation Playerの仮想マシン設定で、[ネットワークアダプタ]には[VMnet2]を、[ネットワークアダプタ 2]には[VMnet4]をそれぞれ割り当てるのを忘れないようにして下さい。

結果、こんな風になりました。

vyos@VyOS2:~$ 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-Direce, A - Babel, F - PBR,
       f - OpenFabric,
       > - selected route, * - FIB route, q - queued, r - rejected, b - backup
       t - trapped, o - offload failure

C>* 192.168.2.0/24 is directly connected, eth0, 00:01:38
C>* 192.168.4.0/24 is directly connected, eth1, 00:01:38

これで VyOSの方はできましたので、以下を作りました。

VMnet3に Ubuntu Desktop 22.04
VMnet4に Ubuntu Server 22.04.1 (Wiki.js稼働中)

これで改めて、以下の図の構成ができました。
全体構成


Ubuntu Desktopから、Ubuntu Serverにある Wiki.jsにアクセスしたいと思います。
この環境では、http://192.168.4.2:3000 になります。

が、アクセスしてもタイムアウトします。
まだVyOSにルーティング設定が無いからですね。

VyOS1に、192.168.4.0/24 へのアクセスがあった場合は 192.168.2.2 へ飛ばすよう設定します。

vyos@VyOS1:~$ configure
[edit]
vyos@VyOS1# set protocols static route 192.168.4.0/24 next-hop 192.168.2.2
[edit]
vyos@VyOS1# commit
[edit]
vyos@VyOS1# save
Saving configuration to '/config/config.boot'...
Done!
[edit]
vyos@VyOS1# exit
exit
vyos@VyOS1:~$ 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-Direce, A - Babel, F - PBR,
       f - OpenFabric,
       > - selected route, * - FIB route, q - queued, r - rejected, b - backup
       t - trapped, o - offload failure

C>* 192.168.2.0/24 is directly connected, eth0, 00:58:23
C>* 192.168.3.0/24 is directly connected, eth1, 00:58:24
S>* 192.168.4.0/24 [1/0] via 192.168.2.2, eth0, weight 1, 00:03:45

VyOS2には反対に、192.168.3.0/24 へのアクセスがあった場合は 192.168.2.1 へ飛ばすよう設定します。

vyos@VyOS2:~$ configure
[edit]
vyos@VyOS2# set protocols static route 192.168.3.0/24 next-hop 192.168.2.1
[edit]
vyos@VyOS2# commit
[edit]
vyos@VyOS2# save
Saving configuration to '/config/config.boot'...
Done!
[edit]
vyos@VyOS2# exit
exit
vyos@VyOS2:~$ 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-Direce, A - Babel, F - PBR,
       f - OpenFabric,
       > - selected route, * - FIB route, q - queued, r - rejected, b - backup
       t - trapped, o - offload failure

C>* 192.168.2.0/24 is directly connected, eth0, 00:23:15
S>* 192.168.3.0/24 [1/0] via 192.168.2.1, eth0, weight 1, 00:00:11
C>* 192.168.4.0/24 is directly connected, eth1, 00:23:16

これで静的ルーティングの設定が完了しました。

Ubuntu Desktopから、改めて Wiki.jsにアクセスしてみます。
Wiki.js
できました。\(^o^)/

長いことかかりましたが、上手く VyOSでルーターを作れたようです。


VyOSの設定コマンドは Ciscoルーターのそれに似ているようです。

ルーター設定のお勉強をしたいけど、ルーターなんて自宅に買えない!人(殆どそうだと思いますが)は、このように VyOSを使ってタダでルーターのお勉強をしてはいかがでしょうか。

それにしても、VMware Workstation Playerの仮想ネットワーク機能も大したものです。
よくぞここまでタダでできるよな!って感心しますね。


Ciscoの資格って受けたことがないですが、今回ものは試験勉強に供するのでしょうか。