我對如何將 *Sense 盒子託管為虛擬機器並讓它為主機提供路由感到有點困惑。
Internet -> Modem/Router (bridge mode) -> en1 on Dell r710 -> OPNSense in a VM
Then also:
OPNSense in a VM -> en2 -> 12-port switch
例如我在虛擬機器上設定網路介面的目的,以及如何定義 OPNSense 將 10.0.2.1 作為其 IP 並使其成為主路由器(dhcp 等),以便 OPNSense 可以為我連接的任何設備提供路由(透過我擁有的交換器),以及虛擬機器運作的主機?
我的虛擬機器在 Ubuntu 16.04.5 上使用 Wok/Kimchi 的 KVM 上運作。
答案1
不幸的是,這個問題有點太不精確,我沒有資格提出進一步的問題。幾天前我在虛擬環境中設定了 OPNSense,所以希望我可以在這裡留下一些提示。我並不認為這是一個好的解決方案,但它對我有用。在這種情況下,我有一個專用伺服器和一個 /29 公用 IP 子網路。來自其他 VM 的所有流量都透過 OPNSense-VM 路由。宿主機器的流量無法透過虛擬機器發送。
用於管理我使用的網路和虛擬機Web虛擬雲 但也可以手動完成所有操作。
為每個公用 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
[...]
使用 libvirt 依照描述建立網絡這裡:(或使用 WebvirtCloud)您至少需要兩座橋,一個用於 LAN,另一個用於 WAN。
此時,您應該有一個名為 LAN(設備:virbr1)(網路:192.168.100.0/24)的網路和另一個名為 WAN(設備:virbr0)(網路:192.168.77.0/24)的網路
- 建立您的 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>
- 啟動 OPNSense,根據您的機器配置分配介面並透過終端機設定介面 IP 位址。我選擇 192.168.77.2 作為我的 OPNSense WAN IP 位址。 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.
[...]
- 主機上的 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
完成此步驟後,您應該可以從 Web 瀏覽器開啟 OPNSense。為此,您需要一台已經屬於 LAN 的虛擬機器。我建議使用 grml 或 Ubuntu 等 Live CD。在這種情況下,可以透過以下方式存取 OPNSensehttp://192.168.100.136
- OPNSense(網頁瀏覽器)- 在 WAN 介面上建立虛擬 IP
Virtual IP-address Interface TYPE 192.168.77.136/32 WAN IP Alias 192.168.77.137/32 WAN IP Alias
[...]
- OPNSense(Web 瀏覽器)中的 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
天啊……這很複雜!我一直在尋找用TrueNAS(現已擴展,但我已經運行Core 多年)伺服器上的虛擬機來替換我專用的miniPC 運行的OPNsense 設置,我只是想知道......是否有一種更簡單的方法一切順利嗎?我想要的只是它能夠真正運行我的網絡,並使虛擬機能夠透過 WAN 和 LAN 進行通訊(當然是在虛擬機器內部和外部...)。我很清楚,如果我重新啟動我的 TrueNAS 伺服器(主要是我的 Plex 媒體伺服器),我的網路連線將會中斷等。嘗試一下。我喜歡更小的佔地面積,如果我能擺脫在我的網路和房間裡運行的計算機,那就太棒了。
那麼到目前為止我能做什麼呢?我只能讓我的 OPNsense 虛擬機器查看 WAN 連接,並且我能夠進入其 WebUI...有時...
如果有人在 2023 年看到此內容,我們將不勝感激......哈哈。並不著急,但我有點想做,因為它很有趣。
謝謝,希吉泰