🌐
ProxmoxVE内でVyOSを使ってVM用のルーターを作ってみる
はじめまして。
今まではPVE上のコンテナやVMで遊ぶときに、雑におうちルーターのdhcpからipを付与してたけど、管理がめんどくさくなったので、ネットワークの勉強も兼ねてPVE内に簡易的なルーターを立ててみようと思いました。
なにもかもが初心者なので間違ってても許してください。
用意するもの
- パソコン(サーバー)
- ProxmoxVEのiso
- VyOSのiso
- USB
環境
- HPE ProLiant Thin Micro TM200
- ProxmoxVE 8.2.7
- VyOS 1.5 rolling
構築
とりあえずなんにも考えずにProxmoxを入れる。
その後VyOSのisoをProxmox内にぶち込む。
ノード→ネットワーク からLinux Bridgeを新規作成
お名前はお好みで、設定を以上にして作成後、適応して起動
VMを新規作成
さっき作ったブリッジを追加、ネットワークの設定以外はお好みで新規作成
VMを起動する
user : vyos
pass : vyos
VyOSをインストール
$ install image
適当に設定
$ reboot
再起動後ログイン
configureモードに入る。
$ configure
[edit]
インターフェースの確認
# show interfaces
ethernet eth0 {
hw-id mac-address
offload {
gro
gso
sg
tso
}
}
ethernet eth1 {
hd-id mac-address
offload {
gro
gso
sg
tso
}
}
loopback lo {
}
DNS(192.168.1.1)の設定
# set system name-server '192.168.1.1'
eth0のip割り当て
eth0はPVEのデフォルトのブリッジなのでおうちルーターからdhcpでipを割り当てる。
# set interfaces ethernet eth0 address dhcp
インターフェースの名前決め
今回はeth0→wan eth1→vmとしておく。
# set interfaces ethernet eth0 description 'wan'
# set interfaces ethernet eth1 description 'vm'
eth1のip割り当て
eth1(デフォルトゲートウェイ)のipを割り当てる。
今回は10.0.0.0/24をVM用に割り当てるようにし、10.0.0.1/24をeth1に割り当てる。
# set interfaces ethernet eth1 address 10.0.0.1/24
dhcpサーバーの設定
- ルーターipの設定
# set service dhcp-server shared-network-name vm subnet 10.0.0.0/24 option default-router '10.0.0.1'
- dnsの設定
# set service dhcp-server shared-network-name vm subnet 10.0.0.0/24 option name-server '10.0.0.1'
- ホストネームの設定
今回はvm.localに設定
# set service dhcp-server shared-network-name vm subnet 10.0.0.0/24 option domain-name 'vm.local'
- サブネットidの設定
今回は1に設定
# set service dhcp-server shared-network-name vm subnet 10.0.0.0/24 subnet-id 1
- リース期間の設定
今回は600に設定
# set service dhcp-server shared-network-name vm subnet 10.0.0.0/24 lease '600'
- レンジ0番として割り当てるipの範囲を決める
# set service dhcp-server shared-network-name vm subnet 10.0.0.0/24 range 0 start '10.0.0.2'
# set service dhcp-server shared-network-name vm subnet 10.0.0.0/24 renge 0 stop '10.0.0.254'
dnsクエリアクセス元の設定
# set service dns forwarding allow-from '10.0.0.1/24'
# set service dns forwarding listen-address '10.0.0.1/24'
# set service dns forwarding name-server '10.0.0.1/24'
ipマスカレードの設定
eth0を指定して、アドレスを全部に指定(おまかせ)
# set nat source rule 100 outbound-interface name eth0
# set nat source rule 100 source address 0.0.0.0/0
# set nat source rule 100 translation address masquerade
設定を保存してconfigureモードを離脱
# commit
# save
# exit
設定の確認
interfaces
結果
# show interfaces
ethernet eth0 {
address dhcp
description wan
hw-id mac-address
offload {
gro
gso
sg
tso
}
}
ethernet eth1 {
address 10.0.0.1/24
description vm
hd-id mac-address
offload {
gro
gso
sg
tso
}
}
loopback lo {
}
service dhcp-server
結果
#show service dhcp-server
shared-network-name vm {
subnet 10.0.0.0/24
lease 600
option {
default-router 10.0.0.1
domain-name vm.local
name-server 10.0.0.1
}
range 0 {
start 10.0.0.2
stop 10.0.0.254
}
subnet-id 1
}
}
新規VM(コンテナ)での設定
ネットワーク欄のブリッジ部分に今回作ったやつを、ipv4のところをdhcpにしてあげて作成
自動でVyOSからipが割り振られて、外につながれば成功。
最後に
今回作成したものは、あくまで簡易的なものであり、セキュリティ的にも不十分ですのでご注意ください。
いつかこれを拡張させて遊んでみたいですね。
参考文書
Discussion