はじめに
Proxmox上にシンプルな好き放題できる検証用のネットワークを用意して使いたいなということで、pfSenseなどを使って試してみました。
(家のネットワークをいじるともし壊してしまったときに困るので、壊しても日常生活に影響を出さないようにしたかった)
今回やりたいこと
以下の画像のようにvmbr0に接続したVMでは家のネットワークの影響を受けてしまうので、影響が少なく、好き放題にできるネットワークを作る。
作り方
まず、ISOを公式HPからダウンロードする。
とくにこだわりがなければ、「AMD64 ISO IPMI/Virtual Machines」を選択するとISOがダウンロードでき、Proxmoxでも使いやすいと思います。
ダウンロードしたISOを使ってVMを作っていきます。
公式HPには
- 64 ビット amd64 (x86-64) 互換 CPU
- 1GB以上のRAM
- 8 GB 以上のディスクドライブ (SSD、HDD など)
- 1 つ以上の互換性のあるネットワーク インターフェイス カード
- 初期インストール用の起動可能なUSBドライブまたは大容量光学ドライブ(DVDまたはBD)
となっているので、参考にしたらいいと思います。
自分は以下のように設定しました。
ネットデバイスは、1つ目にvmbr0のネットワークを、2つ目にvmbr1のネットワークを設定してます。
実際のインストール手順は、http: //IPアドレス にアクセスして基本的にそのままでいいですが、WANの設定で以下の設定を無効にすることをお忘れなく。
vmbr0のデバイスから設定する場合
vmbr0つまりpfSense的にはWAN側からアクセスすることになるので、そのままではできません。そこで、Proxmoxのコンソールからシェル(8)で以下コマンドを実行することで、一時的にいろいろなフィルタリングを無効にできるので、最初はこれを実行して設定するようにしましょう。(vmbr1にVMおいてやっても何でもいいです。)
pfctl -d
pfctl -e
一時的にセキュリティが良くない状態になるので気を付けて作業してください。
次に、vmbr0(WAN)側からpfSenseのGUIにアクセスできるようにファイアウォールを設定しましょう。
Firewall > Rules > WANでルールを追加してこんな感じに設定したらいいと思います。(ログとかお好きなようんしてください。)
ファイアウォールを設定した後は、設定を反映するのをお忘れなく。
DNSについてですが、DNSの解決をpfSenseのDNSリゾルバではなく、DNSフォワーダとするように設定を変更していきます。
まず、デフォルトで有効になっているDNSリゾルバを無効にします。
次にDNSフォワーダを有効にします。
Service > DNS Forwarder
これで、vmbr1からインターネットとかいろいろつながるようになったと思います。
細かな設定は各環境に合わせて設定してください。
他にも、vmbr1からvmbr0のマシンにアクセスできないようにしたいときなどは、以下のようにファイアウォールを設定するといいと思います。(一例)
Firewall > Rules > LANでルールを追加
素人が書いています。ファイアウォールについては適切に設定してください。
Tailscaleとの併用について
で、実際にこのネットワークを作ったとしてSSHができなくなってしまいます。
それでは本末転倒なので解決していきたいと思います。
vmbr0とvmbr1の両方に接続したVMを用意して踏み台にしてもいいですが、今回は他の方法を紹介したいと思います。(このやり方はとても有名なのでGoogle先生に聞いてみてください。)
作り方
まずはvmbr1にVMを1台なんでもいいので適当に用意してください。
そして、公式サイトにも書いてありますが、
echo 'net.ipv4.ip_forward = 1' | sudo tee -a /etc/sysctl.d/99-tailscale.conf
echo 'net.ipv6.conf.all.forwarding = 1' | sudo tee -a /etc/sysctl.d/99-tailscale.conf
sudo sysctl -p /etc/sysctl.d/99-tailscale.conf
そして、
sudo tailscale up --advertise-routes=192.168.0.0/24
といった感じで、vmbr1のネットワークを指定してあげます。
そして、Tailscaleのコンソールから
といった感じで、有効にしてください。そうすると、Tailscaleに接続されているデバイスから、vmbr1のVMを経由して、ネットワーク内のすべてのデバイスにアクセスできるようになります。
(この際、vmbr1のVMにアクセスしたときに接続元IPアドレスが用意したVMのものになることがあるので、設定やファイアウォールの設定ではお気を付けください。(Zabbixとか))
サブネットルーターとトラフィックリレーノードについての公式サイト
Cloudflareとの併用について
で、実際にこのネットワークを作ったとしてWEBサイトの公開ができなくなってしまいます。
そこで、Tailscaleの時と同じように、適当なVMにcloudflaredを設置してあげてください。
そうすると、普通に使えます。
複数ノードについて
複数ノードならどうするかは、あまり検証していないので、参考になりそうな記事を載せておきます。
QEMU-guest-agentについて
ProxmoxのコンソールからIPとか確認するために、ほしいですよね...
以下リンクに沿って設定してください。