g00chyの技術ブログ

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くらいでいい)

前の記事のこれこれ

作業前

作業前段階でもルーターはOpenWrtで用意しているのだが、作業時点では、Archer C6を利用していた。(X86マシンだと電気代少し高くなるなーと思ってたので)
before

作業後のイメージ

作業後は、常時動かしていたProxmoxのサーバーマシン内でOpenWrtが動くようになる。 after なお、VMとしてルーターを作成している関係で上記図ではProxmox自体がルーターになってるように見えるが、実際は、以下の図のようにVMがルーターとして動作 vm

作業内容

  1. Proxmoxが用意されていない人はProxmoxをインストールする
  2. OpenWrtをProxmoxにVMとしてインストールする
  1. ホストOSに対してNICを設定する
  2. ブリッジに対してVMのNICを設定する
  3. 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がある環境での設定となったので)

vm-network

  • 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は経由するけど、受け取らないはずなんでね。)


Share

comments powered by Disqus