あゝ、めんどくさい

めんどくさがり屋のIT勉強録

Labo用のネットワークを作る

自宅にLaboを作ろうと機材を調達したところまで書いた。今日はネットワークを作る辺り。

ESXiの入っている安鯖には物理NICが2つ付いている。この2つ目の物理NICにLabo用のネットワークをぶら下げたい。今はまだ何も繋がっていないが、将来的に安鯖が2つ・3つと増えた場合にはここからL2スイッチを介して、Labo用ネットワークを繋ぎたいという算段もある。
ネットワークにはゲートウェイが必要。ESXiにVyOSの最新版を入れて、こいつを家庭内ネットワークへのゲートウェイとする。今回はOVAファイルをインポートして使った。
VyOSを触るのは久しぶりなので色々と忘れていたが、ネット上のVyOSチートシートなどを参照して次のような設定を行った。
まずはNICの設定から。

vyos@myhostname# delete interfaces ethernet eth0 address dhcp
vyos@myhostname# set interfaces ethernet eth0 address 192.168.0.101/24
vyos@myhostname# delete interfaces ethernet eth1 address dhcp
vyos@myhostname# set interfaces ethernet eth1 address 172.16.0.1/24
vyos@myhostname# commit
vyos@myhostname# save

Labo側にDHCPをサービスする。

vyos@myhostname# set service dhcp-server shared-network-name LABO subnet 172.16.0.0/24
vyos@myhostname# set service dhcp-server shared-network-name LABO subnet 172.16.0.0/24 start 172.16.0.200 stop 172.16.0.253
vyos@myhostname# set service dhcp-server shared-network-name LABO subnet 172.16.0.0/24 default-router 172.16.0.1
vyos@myhostname# set service dhcp-server shared-network-name LABO subnet 172.16.0.0/24 dns-server 172.16.0.1
vyos@myhostname# commit
vyos@myhostname# save

Labo側にDNSをサービスする。先にVyOS自体にDNS解決できる設定をしておく必要がある。

vyos@myhostname# set system name-server 192.168.0.1
vyos@myhostname# set service dns forwarding listen-on eth1
vyos@myhostname# commit
vyos@myhostname# save

NAT設定。Laboから家庭内LANやインターネットへ抜ける通信用。

vyos@myhostname# set nat source rule 100 translation address masquerade
vyos@myhostname# set nat source rule 100 source address 172.16.0.0/24
vyos@myhostname# set nat source rule 100 outbound-interface eth0
vyos@myhostname# commit
vyos@myhostname# save

今度は外から中へ入る通信用。通信チェック用に172.16.0.11にSSHが通るように設定する。

vyos@myhostname# set nat destination rule 1 destination address 192.168.0.101
vyos@myhostname# set nat destination rule 1 destination port 10022
vyos@myhostname# set nat destination rule 1 protocol tcp
vyos@myhostname# set nat destination rule 1 translation address 172.16.0.11
vyos@myhostname# set nat destination rule 1 translation port 22
vyos@myhostname# set nat destination rule 1 inbound-interface eth0
vyos@myhostname# commit
vyos@myhostname# save

ファイアーウォールの設定。VyOSに対する通信と、VyOSを抜けてLaboに入る通信と両方設定する必要がある。まず前者の「local」通信用のルール。ついでに、SSHサービスを起動しておく。

vyos@myhostname# set firewall name PUBLIC-LOCAL default-action drop
vyos@myhostname# set firewall name PUBLIC-LOCAL rule 10 action accept
vyos@myhostname# set firewall name PUBLIC-LOCAL rule 10 state established enable
vyos@myhostname# set firewall name PUBLIC-LOCAL rule 10 state related enable
vyos@myhostname# set firewall name PUBLIC-LOCAL rule 20 action accept
vyos@myhostname# set firewall name PUBLIC-LOCAL rule 20 protocol tcp
vyos@myhostname# set firewall name PUBLIC-LOCAL rule 20 destination port 22
vyos@myhostname# set interfaces ethernet eth0 firewall local name PUBLIC-LOCAL
vyos@myhostname# set service ssh
vyos@myhostname# commit
vyos@myhostname# save

後者の「in」通信用のルール。

vyos@myhostname# set firewall name PUBLIC-IN default-action drop
vyos@myhostname# set firewall name PUBLIC-IN rule 10 action accept
vyos@myhostname# set firewall name PUBLIC-IN rule 10 state established enable
vyos@myhostname# set firewall name PUBLIC-IN rule 10 state related enable
vyos@myhostname# set firewall name PUBLIC-IN rule 20 action accept
vyos@myhostname# set firewall name PUBLIC-IN rule 20 protocol tcp
vyos@myhostname# set firewall name PUBLIC-IN rule 20 destination port 22
vyos@myhostname# set interfaces ethernet eth0 firewall in name PUBLIC-IN
vyos@myhostname# commit
vyos@myhostname# save

とりあえずここまでやれば、通信は通る。ESXiでLaboネットワーク上にゲストOSを作り、172.16.0.11のアドレスを割り振る。このゲストOSからpingテストでwww.yahoo.co.jpから応答が返ってくることを確認できた。
ゲストOSから家庭内LANにはpingできるが、インターネットに出れないという場合は、VyOSのところで名前解決できていないのが原因なので、name-serverの設定を見直すと良い。

次はVPN辺りかな。