Proxmox上に仮想ルータを構築する方法

以下のようなルータ専用OSというものがあります。ルーターの機能に特化して設計された専用のOSです。一般的なOSと異なり、パケット転送やルーティングプロトコル、ファイアウォール機能など、ネットワーク機器としての動作に必要な機能を効率的に提供します。

TP Linkの高いWiFiルータ(BE805)を購入したのですが、1日使っている不安定になるので、化家買えを検討しましたが、最近のルータはどれでも高機能で不具合も多いと聞きます。いっそのこと自前でルーターを作るか!ルーター専用OSにたどり着くわけですが、一台のホストに専用OSを入れるものもったいないということもあり、今回はProxmox上の仮想ルータとして構築することにしました。

ルーターマシン

今回のマシンは、LANインターフェイスは10GbEにしたかったので、拡張カードスロットがあるAsRock X300にしました。

10GbEカードはASUS XG-C100Cにしました。が、X300は拡張スロットが1つしかないので、10GbEが2つほしい人は、一つのカードで二つ10GbEを搭載しているカード(Intel X540チップ搭載など)のほうがいいと思います。

ルータOSの選定

ルータOSは以下のようにいろいろありますが、ProxmoxのLXCで動作可能なものがよさそうなので、OpenWRTにしました。

  • VyOS
    • Debianベースのオープンソースネットワークプラットフォーム。CLIベースの管理、エンタープライズ向け機能や高度なルーティング機能を提供。高性能なパケット処理が可能
  • pfSense
    • FreeBSDベースのオープンソースファイアウォール/ルーターOS。直感的なWebUI、強力なファイアウォール機能、VPN機能などを提供。商用サポートも選択可能
  • OpenWRT
    • オープンソースの組み込み向けLinuxディストリビューション。家庭用ルーターから業務用まで幅広く対応。豊富なパッケージと活発なコミュニティが特徴。WebUIとCLI両方で管理可能

インストール手順

ホストマシン上で、コンテナイメージをダウンロードしてコンテナを作る

wget https://images.linuxcontainers.org/images/openwrt/23.05/amd64/default/20241227_11:57/rootfs.tar.xz
mv rootfs.tar.xz /var/lib/vz/template/cache/openwrt-rootfs.tar.xz
pct create 201 local:vztmpl/openwrt-rootfs.tar.xz \
  --rootfs local-lvm:0.256 --ostype unmanaged \
  --hostname owrt --arch amd64 --cores 2 --memory 512 \
  --swap 0 --unprivileged 1
ShellScript

ネットワーク設定を変更する

vi /etc/config/network
ShellScript
config interface 'loopback'
        option proto 'static'
        option ipaddr '127.0.0.1'
        option netmask '255.0.0.0'
        option device 'lo'

config interface 'wan'
        option proto 'dhcp'
        option device 'eth0'

config interface 'wan6'
        option proto 'dhcpv6'
        option device 'eth0'

config interface 'lan'
        option proto 'static'
        option ipaddr '10.0.1.1'
        option netmask '255.255.255.0'
        option device 'eth1'
ShellScript

ネットワークサービスを再起動する。

service network restart
ShellScript

IPv6のための設定を反映させる。LuCI(管理画面)から以下を設定する。

  • IPv4用LANインターフェイス
    • DHCPサーバ→IPv6設定
      • RAサービス: リレーモード
      • DHCPv6サービス: サーバーモード
      • NDPプロキシ: リレーモード
  • IPv6用WANインターフェイス
    • 一般
      • プロトコル: DHCPv6クライアント
    • DHCPサーバ→IPv6設定
      • Designated master:チェック
      • RAサービス: リレーモード
      • DHCPv6サービス: リレーモード
      • NDPプロキシ: リレーモード

上記以外は、LuCI(管理画面)から設定してください。