OpenWrtをProxmoxに入れてルーターにした話
結論
- VM開発機として使っているマシンに対してProxmoxを入れているProxmoxでもOpenWrtは当然動くし、ルーターとしても動ける。
- VM機が止まったらネットワークが止まる脆弱な構成であるため、できればルーターを別にしましょう
- この構成でパワーのあるルーターは作れるが、そもそも障害発生した時の切り分けだったり復旧が割と困難なので、前の記事のこれとこれで構築するほうが堅牢。こちらはもし止まった時のためにもうワンセットNIC周理についても同様の構成のものが必要となり、ちょっと冗長かな?感あります。
方針・前提条件
- ProxmoxでOpenWrtのVMを入れちゃう
- Proxmoxのホストマシンに対してNICを追加してルーターとしてほしいネットワーク分だけ通信を用意できるように
環境
- Proxmox7.1-10
- Proxmoxが入ってるマシンのスペック
- AMD Ryzen 7 PRO 4750GE with Radeon Graphics
- Mem: 64G(OpenWrtはメモリ1Gくらいでいい)
- Proxmoxが入ってるマシンのスペック
作業前
作業前段階でもルーターはOpenWrtで用意しているのだが、作業時点では、Archer C6を利用していた。(X86マシンだと電気代少し高くなるなーと思ってたので)
作業後のイメージ
作業後は、常時動かしていたProxmoxのサーバーマシン内でOpenWrtが動くようになる。 なお、VMとしてルーターを作成している関係で上記図ではProxmox自体がルーターになってるように見えるが、実際は、以下の図のようにVMがルーターとして動作
作業内容
- Proxmoxが用意されていない人はProxmoxをインストールする
- OpenWrtをProxmoxにVMとしてインストールする
- 参考URL:How to install OpenWrt in Proxmox VE as a VM - JW Tech Tips
- 平たく言うと openwrtのイメージを用意して、空のVMを作成して、qm importdiskでインポートして起動すればいいよ。
- ホストOSに対してNICを設定する
- ブリッジに対してVMのNICを設定する
- OpenWrt上でVLANの設定やら、WAN側の設定を行う
やったことは上記のような感じですが、3,4,5については、説明をバッサリと割愛し、3,4について書きます。
ホストOSに対してNICを設定する
最初のネットワークはこんな感じです
私の環境でのネットワークだと次のように定義しました。
Createから作成できますので自分のネットワークで問題なさそうになったらApply Configurationしましょう。
すでにVLANが設定されている環境だと、mgportとなっているOVS IntPortがあるかと思います、その際に追加をしていこうとすると、OVS IntPortが削除されるようなので注意。(この辺なんでかわかっていないです。)
ブリッジに対してVMのNICを設定する
ホストOSに対してブリッジを設定できたので、次は、VMに対して必要な個数分のNIC(今回私の環境であれば、以下の4つ)
- WAN(PPPoE)
- LAN(VLAN2)
- VM(VLAN3/4)
- VMネットワークにつながってるNIC(すでにVLANがある環境での設定となったので)
- net0: OpenWrtセットアップ用に1個用意
- net1: WAN用に用意
- net2: LAN用に用意
- net3: VM群用に用意
初回起動時 192.168.1.1でOpenWrtは起動するので、Consoleから以下のようにしてIPアドレスを変えておきましょう
uci show network.lan
uci set network.lan.ipaddr='XX.XX.XX.XX'
uci set network.lan.gateway='XX.XX.XX.XXのgateway'
uci commit network
/etc/init.d/network restart
速度計測
設定が終わったら、速度計測を行っていく
- VLAN2 => VLAN3
- VLAN2 => VLAN4
- VLAN3 => VLAN4
VLAN2=>VLAN3
Connecting to host 192.168.11.22, port 5201
[ 4] local 192.168.10.120 port 29494 connected to 192.168.11.22 port 5201
[ ID] Interval Transfer Bandwidth
[ 4] 0.00-1.00 sec 112 MBytes 935 Mbits/sec
[ 4] 1.00-2.00 sec 112 MBytes 937 Mbits/sec
[ 4] 2.00-3.00 sec 108 MBytes 901 Mbits/sec
[ 4] 3.00-4.00 sec 109 MBytes 912 Mbits/sec
[ 4] 4.00-5.00 sec 112 MBytes 938 Mbits/sec
[ 4] 5.00-6.00 sec 112 MBytes 940 Mbits/sec
[ 4] 6.00-7.00 sec 112 MBytes 933 Mbits/sec
[ 4] 7.00-8.00 sec 104 MBytes 880 Mbits/sec
[ 4] 8.00-9.00 sec 113 MBytes 946 Mbits/sec
[ 4] 9.00-10.00 sec 113 MBytes 947 Mbits/sec
- - - - - - - - - - - - - - - - - - - - - - - - -
[ ID] Interval Transfer Bandwidth
[ 4] 0.00-10.00 sec 1.08 GBytes 927 Mbits/sec sender
[ 4] 0.00-10.00 sec 1.08 GBytes 927 Mbits/sec receiver
VLAN2=>VLAN4
[ 4] local 192.168.10.120 port 1086 connected to 10.0.3.1 port 5201
[ ID] Interval Transfer Bandwidth
[ 4] 0.00-1.00 sec 106 MBytes 890 Mbits/sec
[ 4] 1.00-2.00 sec 108 MBytes 910 Mbits/sec
[ 4] 2.00-3.00 sec 110 MBytes 924 Mbits/sec
[ 4] 3.00-4.00 sec 112 MBytes 940 Mbits/sec
[ 4] 4.00-5.00 sec 112 MBytes 939 Mbits/sec
[ 4] 5.00-6.00 sec 112 MBytes 942 Mbits/sec
[ 4] 6.00-7.00 sec 112 MBytes 944 Mbits/sec
[ 4] 7.00-8.00 sec 112 MBytes 941 Mbits/sec
[ 4] 8.00-9.00 sec 112 MBytes 941 Mbits/sec
[ 4] 9.00-10.00 sec 112 MBytes 939 Mbits/sec
- - - - - - - - - - - - - - - - - - - - - - - - -
[ ID] Interval Transfer Bandwidth
[ 4] 0.00-10.00 sec 1.08 GBytes 931 Mbits/sec sender
[ 4] 0.00-10.00 sec 1.08 GBytes 931 Mbits/sec receiver
VLAN3=>VLAN4
Connecting to host 10.0.3.1, port 5201
[ 5] local 192.168.11.22 port 41472 connected to 10.0.3.1 port 5201
[ ID] Interval Transfer Bitrate Retr Cwnd
[ 5] 0.00-1.00 sec 1.67 GBytes 14.4 Gbits/sec 0 3.04 MBytes
[ 5] 1.00-2.00 sec 1.85 GBytes 15.9 Gbits/sec 0 3.04 MBytes
[ 5] 2.00-3.00 sec 1.84 GBytes 15.8 Gbits/sec 0 3.04 MBytes
[ 5] 3.00-4.00 sec 1.84 GBytes 15.8 Gbits/sec 0 3.04 MBytes
[ 5] 4.00-5.00 sec 1.84 GBytes 15.8 Gbits/sec 0 3.04 MBytes
[ 5] 5.00-6.00 sec 1.84 GBytes 15.8 Gbits/sec 0 3.04 MBytes
[ 5] 6.00-7.00 sec 1.86 GBytes 16.0 Gbits/sec 0 3.04 MBytes
[ 5] 7.00-8.00 sec 1.84 GBytes 15.8 Gbits/sec 0 3.04 MBytes
[ 5] 8.00-9.00 sec 1.82 GBytes 15.6 Gbits/sec 0 3.04 MBytes
[ 5] 9.00-10.00 sec 1.76 GBytes 15.1 Gbits/sec 0 3.04 MBytes
- - - - - - - - - - - - - - - - - - - - - - - - -
[ ID] Interval Transfer Bitrate Retr
[ 5] 0.00-10.00 sec 18.2 GBytes 15.6 Gbits/sec 0 sender
[ 5] 0.00-9.98 sec 18.2 GBytes 15.6 Gbits/sec receiver
最後に
最初やるときには、VM側に貯節USBをパススルーしていましたが、安定しないなーと思ってOpenVSwitchで接続するように変えてみるとできたのでこの記事書きました。
冒頭でも話した通り、ネットワークのスペックは強くなるかもしれませんが、VLANありの中で安定運用できなかった場合のダメージはでかいのでその場合は、代替え機を用意ししましょう。
Open VSwitchのことよくわからないで設定してるからやばいのありそうな気はする。
今はよいかと思ってるので、いったんこれで行くよ。(WAN側もIPとってないからパケットはホストOSは経由するけど、受け取らないはずなんでね。)