仮想ホストで pfSense/OPNSense を設定するにはどうすればいいですか?

仮想ホストで pfSense/OPNSense を設定するにはどうすればいいですか?

*Sense ボックスを VM としてホストし、ホストにルーティングを提供する方法が少しわかりません。

Internet -> Modem/Router (bridge mode) -> en1 on Dell r710 -> OPNSense in a VM

Then also:
OPNSense in a VM -> en2 -> 12-port switch

たとえば、VM 上のネットワーク インターフェイスを何に設定するのか、また、OPNSense が (所有するスイッチ経由で) 接続するすべてのデバイスと VM が実行されるホストにルーティングを提供できるように、OPNSense を IP として 10.0.2.1 に設定し、それをメイン ルーター (dhcp など) にするように定義するにはどうすればよいでしょうか。

私の VM は、Ubuntu 16.04.5 上の Wok/Kimchi を搭載した KVM 上で実行されています。

答え1

残念ながら、質問が少し不正確すぎるため、これ以上質問する資格がありません。数日前に仮想環境で OPNSense をセットアップしたので、ここでいくつかのヒントを残せるといいのですが。これが良い解決策だとは言いませんが、私にとってはうまく機能しています。このシナリオでは、専用サーバーと /29 パブリック IP サブネットがあります。他の VM からのすべてのトラフィックは、OPNSense-VM 経由でルーティングされます。ホスト マシンのトラフィックは、仮想マシン経由で送信できません。

ネットワークと仮想マシンの管理にはウェブ仮想クラウド ただし、すべてを手動で行うことも可能です。

  1. パブリック IP ごとに仮想ネットワーク インターフェイスを作成します。

    /etc/network/interfaces
    
    auto eth0
    iface eth0 inet static
            address 103.x.x.104      #Dedicated server IP address
            netmask 255.255.255.255
            gateway 103.x.x.65
            pointopoint 103.x.x.65   #IP of the switch in the data center
    
    auto eth0:0
    iface eth0:0 inet static
    address 103.xx.77.136             #First IP from the public subnet
    netmask 255.255.255.255
    
    auto eth0:1
    iface eth0:1 inet static
    address 103.xx.77.137
    netmask 255.255.255.255
    

    [...]

  2. libvirtを使用して、説明に従ってネットワークを作成します。ここ: (または WebvirtCloud を使用) 少なくとも 2 つのブリッジが必要です。1 つは LAN 用、もう 1 つは WAN 用です。

この時点で、LAN (デバイス: virbr1)(ネットワーク: 192.168.100.0/24) というネットワークが 1 つと、WAN (デバイス: virbr0) (ネットワーク: 192.168.77.0/24) というネットワークがもう 1 つあるはずです。

  1. OPNSense マシン構成を作成する これは重要な部分です:
<interface type='network'>
      <mac address='00:52:66:d7:7e:65'/>
      <source network='WAN' bridge='virbr0'/>
      <target dev='vnet0'/>
      <model type='virtio'/>
      <alias name='net0'/>
      <address type='pci' domain='0x0000' bus='0x00' slot='0x03' function='0x0'/>
    </interface>
    <interface type='network'>
      <mac address='00:c0:41:50:f9:0b'/>
      <source network='lan' bridge='virbr1'/>
      <target dev='vnet1'/>
      <model type='virtio'/>
      <alias name='net1'/>
      <address type='pci' domain='0x0000' bus='0x02' slot='0x05' function='0x0'/>
    </interface>
    <interface type='network'>
      <mac address='00:98:c3:b1:b6:b8'/>
      <source network='lan' bridge='virbr1'/>
      <target dev='vnet2'/>
      <model type='virtio'/>
      <alias name='net2'/>
      <address type='pci' domain='0x0000' bus='0x02' slot='0x06' function='0x0'/>
    </interface>
  1. OPNSense を起動し、マシン構成に応じてインターフェイスを割り当て、ターミナル経由でインターフェイスの IP アドレスを設定します。私は OPNSense WAN IP アドレスとして 192.168.77.2 を選択しました。WAN アップストリーム ゲートウェイは 192.168.77.1 に設定されています。

また、OPNSense でパブリック IP ごとに個別の LAN を作成しました。

LAN136 IP-Address: 192.168.100.136/24 
LAN137 IP-Address: 192.168.100.137/32
No upstream Gateways.

[...]

  1. ホストマシン上の NAT POST および PREROUTING ルール
iptables -t nat -A POSTROUTING -s 192.168.77.2 -j SNAT --to-source 103.x.x.104
iptables -t nat -A POSTROUTING -s 192.168.77.136 -j SNAT --to-source 103.xx.77.136
iptables -t nat -A POSTROUTING -s 192.168.77.137 -j SNAT --to-source 103.xx.77.137

iptables -t nat -A PREROUTING -p tcp --dport 10:65530 -d 103.xx.77.136 -j DNAT --to 192.168.77.136
iptables -t nat -A PREROUTING -p udp --dport 10:65530 -d 103.xx.77.136 -j DNAT --to 192.168.77.136

iptables -t nat -A PREROUTING -p tcp --dport 10:65530 -d 103.xx.77.137 -j DNAT --to 192.168.77.137
iptables -t nat -A PREROUTING -p udp --dport 10:65530 -d 103.xx.77.137 -j DNAT --to 192.168.77.137

この手順の後、ウェブブラウザからOPNSenseを開くことができるはずです。そのためには、すでにLANの一部となっている仮想マシンが必要です。grmlやUbuntuのようなライブCDを使用することをお勧めします。この場合、OPNSenseには以下からアクセスできます。http://192.168.100.136

  1. OPNSense (Web ブラウザ) - WAN インターフェイスに仮想 IP を作成する
Virtual IP-address    Interface           TYPE
192.168.77.136/32         WAN          IP Alias
192.168.77.137/32         WAN          IP Alias

[...]

  1. OPNSense(ウェブブラウザ)のNATルールポート転送と送信ルールを作成する

ポート転送の例:

Interface Proto   S-address S-port    D-address       D-port       NAT-Ip         Nat-Port
WAN           TCP     *           *       192.168.77.137  80 (HTTP)   192.168.100.101 80 (HTTP)

送信ルールの例:

モードは手動に設定する必要があります

Interface     Source                S-port    Dest.    D-port       NAT-IP        Port   static?
WAN               192.168.100.100/32      *        *        *         192.168.77.136  *       no

すべてのパブリック IP に送信ルールと一意の NAT IP があることを確認してください。

答え2

うわあ...これは複雑ですね!専用の miniPC で実行する OPNsense セットアップを、TrueNAS (今は Scale ですが、長年 Core を実行しています) サーバー上の VM に置き換えようと考えていたのですが、もっと簡単な方法があるのではないかと思いました。私が望むのは、文字通りネットワークを実行し、VM が WAN および LAN (もちろん VM の内外) 経由で通信できるようにすることです。TrueNAS サーバー (主に Plex Media Server) を再起動すると、インターネット接続がダウンするなど、よくわかっています。また、ほとんどの状況でこれを行うのは理想的ではないこともよくわかっていますが、試してみたいと思います。私はフットプリントが小さいことがすべてであり、ネットワーク上や部屋で実行されているコンピューターを取り除くことができれば素晴らしいと思います。

さて、これまでに何ができたかというと、OPNsense VM に WAN 接続を表示させることしかできず、WebUI にアクセスすることもできました... 時々...

2023 年にこれを見た人がいたら、どんな助けでもありがたいです...笑。急ぐ必要はありませんが、興味深いので、ちょっとやってみたいと思います。

ありがとう、シギタイ

関連情報