PROXMOX上でvyOS1.4でルータを作る

# ほとんど覚書のためあんまり参考にならないかも

PROXMOX上の仮想マシン設定
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/323146/238517cc-84d8-5320-1975-4e0a116d9399.png)

ネットデバイス1はUSB3.0接続のLANアダプタ
メモリやらCPUやらはこの設定で問題ない様子
PROXMOXでUSB3.0接続のLANアダプタ使用する場合なぜか異常に長いデバイス名になるため、以下のような設定をPROXMOX上に設定させる必要あり
```shell:/etc/systemd/network/10-persistent-net.link 
# viとかで以下の設定を書き込む
[Match]
MACAddress= 00:00:00:00:00:00　# USB3.0接続のLANアダプタのMACアドレス
[Link]
Name=lan0 # eth1などのデバイス名
```
取りあえず上のを入れて再起動すると以下のようにデバイス名になる

```shell:結果
root@proxmox:~# ip addr
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 ::1/128 scope host 
       valid_lft forever preferred_lft forever
2: eno1: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast master vmbr0 state UP group default qlen 1000
    link/ether 00:23:24:b8:c9:c1 brd ff:ff:ff:ff:ff:ff
    altname enp0s25
3: lan0: <BROADCAST,MULTICAST> mtu 1500 qdisc noop state DOWN group default qlen 1000
    link/ether 00:e0:4c:68:05:63 brd ff:ff:ff:ff:ff:ff
4: vmbr0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue state UP group default qlen 1000
    link/ether 00:23:24:b8:c9:c1 brd ff:ff:ff:ff:ff:ff
    inet 190.203.162.148/24 scope global vmbr0
       valid_lft forever preferred_lft forever
    inet6 fe80::223:24ff:feb8:c9c1/64 scope link 
       valid_lft forever preferred_lft forever
5: vmbr1: <NO-CARRIER,BROADCAST,MULTICAST,UP> mtu 1500 qdisc noqueue state DOWN group default qlen 1000
    link/ether 16:05:99:06:bc:69 brd ff:ff:ff:ff:ff:ff
root@proxmox:~# 
```

ブリッジ設定で以下のよう設定し

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/323146/9088d5c3-d975-c321-fe38-b6540b7cbdbf.png)

仮想マシン側の設定を以下のようにして起動させる

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/323146/6a6781d3-2a23-33a7-fda9-ec7361a5c74b.png)

# DHCP＆DNSサーバ設定
OSインストールは参考ページを参照してください

まずはWAN側の設定

```shell:WAN側とssh設定
# configモードで設定すること

set interfaces ethernet eth1 address dhcp # WAN側のデバイスで外部との通信を行うデバイスを設定
                                          #  ip aでMACアドレスを確認して選択する

set service ssh # sshできるように指定
commit
save
```
この設定で上位ルータからのIPが割り当てられて、sshできるようになる

ここからLAN設定
```shell:LAN側の設定
# 今回はeth0のデバイスがUSB3.0接続のLANアダプタのMACアドレスのためデバイス名はeth0を指定する

# ntpの設定
set system ntp server 'ntp.nict.jp'

# time-zoneの設定
set system time-zone 'Asia/Tokyo'

# DNSの設定 googleのDNSを指定する
set system name-server '8.8.8.8'

# eth0にIPアドレスを割り振る
set interfaces ethernet eth0 address '192.168.0.1/24'

# ネットワークデバイスの説明を入れる
set interfaces ethernet eth1 description 'localnet'
set interfaces ethernet eth0 description 'OutboundNetWork'

#localnetという名前を付けて、セグメントとデフォルトルートを定義 eth0に割り当てること
set service dhcp-server shared-network-name localnet subnet 192.168.0.0/24 default-router '192.168.0.1'

# このネットワーク唯一のDHCPサーバである設定
set service dhcp-server shared-network-name localnet authoritative

# DHCPで払い出すアドレスレンジがどこからどこまでかを設定

set service dhcp-server shared-network-name localnet subnet 192.168.0.0/24 range 0 start '192.168.0.2'
set service dhcp-server shared-network-name localnet subnet 192.168.0.0/24 range 0 stop '192.168.0.254'

# DNSサーバをVyOSに設定
# なお、指定ではなくdns-serverではなく現在使用しているバージョンだとname-server指定しないと正しく設定されない
set service dhcp-server shared-network-name localnet subnet 192.168.0.0/24 name-server '192.168.0.1'

# ネットワークの名称を設定（なんでもいい）
set service dhcp-server shared-network-name localnet subnet 192.168.0.0/24 domain-name 'vyos.local'

# DHCPアドレスのリース時間を設定（デフォルトでは86400秒＝一日）
set service dhcp-server shared-network-name localnet subnet 192.168.0.0/24 lease '86400'

# DNSクエリのアクセス元を設定
set service dns forwarding allow-from '192.168.0.0/24'
# どのネットワークインターフェースをlisten状態にするか設定
set service dns forwarding listen-address '192.168.0.1'

# フォワード先を設定
set service dns forwarding name-server '8.8.8.8'
```
取りあえず上の設定を入れとけば問題ないポイ
後でHyper-V上で仮想マシンを作成して同じような設定を投入してみて通信できるか確認する

# 参考にしたサイト（順不同）
https://docs.vyos.io/en/latest/quick-start.html#dhcp-dns-quick-start

https://qiita.com/flets708/items/1a9514c343359045853c

https://forum.proxmox.com/threads/problem-to-assign-vlan-to-vmbridge-proxmox-ve-6-pve-bridge-error-512.59525/

https://wiki.debian.org/NetworkInterfaceNames#CUSTOM_SCHEMES_USING_.LINK_FILES