Estou um pouco confuso sobre como hospedar uma caixa *Sense como uma VM e fazer com que ela forneça roteamento para o host.
Internet -> Modem/Router (bridge mode) -> en1 on Dell r710 -> OPNSense in a VM
Then also:
OPNSense in a VM -> en2 -> 12-port switch
Por exemplo, para que defino as interfaces de rede na VM e como defino o OPNSense para ter 10.0.2.1 como seu IP e ser o roteador principal (dhcp, etc) para que o OPNSense possa fornecer roteamento para qualquer dispositivo que eu conectar (por meio de um switch que possuo) e também o host em que a VM é executada?
Minhas VMs estão rodando em KVM com Wok/Kimchi no Ubuntu 16.04.5.
Responder1
Infelizmente, a pergunta é um pouco imprecisa e não tenho reputação de fazer mais perguntas. Há alguns dias configurei o OPNSense em um ambiente virtual, então espero poder deixar algumas dicas aqui. Não afirmo que esta seja uma boa solução, mas funciona para mim. Neste cenário, tenho um servidor dedicado e uma sub-rede IP pública/29. Todo o tráfego de outras VMs é roteado através do OPNSense-VM. O tráfego da máquina host não pode ser enviado pela máquina virtual.
Para administração das redes e máquinas virtuais que utilizoWebvirtCloud mas também é possível fazer tudo manualmente.
Crie interfaces de rede virtuais para cada um dos seus IPs públicos.
/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
[...]
Use libvirt para criar as redes conforme descritoaqui: (ou use WebvirtCloud) Você precisa de pelo menos duas pontes, uma para LAN e outra para WAN.
Neste ponto você deve ter uma rede chamada LAN (Dispositivo: virbr1)(Rede: 192.168.100.0/24) e outra chamada WAN (Dispositivo: virbr0) (Rede: 192.168.77.0/24)
- Crie a configuração da sua máquina OPNSense Esta é a parte importante:
<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>
- Inicie o OPNSense, atribua interfaces de acordo com a configuração da sua máquina e defina os endereços IP das interfaces através do terminal. Selecionei 192.168.77.2 para meu endereço IP WAN OPNSense. O gateway upstream da WAN está definido como 192.168.77.1.
Também criei LANs separadas para cada um dos meus IPs públicos no OPNSense.
LAN136 IP-Address: 192.168.100.136/24
LAN137 IP-Address: 192.168.100.137/32
No upstream Gateways.
[...]
- Regras NAT POST e PREROUTING na máquina host
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
Após esta etapa, você poderá abrir o OPNSense em seu navegador. Para fazer isso você precisa de uma máquina virtual que já faça parte da LAN. Eu recomendo usar um live CD como grml ou Ubuntu. Neste caso, o OPNSense pode ser acessado viahttp://192.168.100.136
- OPNSense (navegador web) - Crie IPs virtuais na interface WAN
Virtual IP-address Interface TYPE 192.168.77.136/32 WAN IP Alias 192.168.77.137/32 WAN IP Alias
[...]
- Regras NAT no OPNSense (navegador da web) Crie suas regras de encaminhamento e saída de porta
exemplo de encaminhamento de porta:
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)
exemplo de regras de saída:
o modo deve ser definido como manual
Interface Source S-port Dest. D-port NAT-IP Port static? WAN 192.168.100.100/32 * * * 192.168.77.136 * no
Certifique-se de que todos os seus IP públicos tenham regras de saída e um IP NAT exclusivo.
Responder2
Caramba... Isso é complexo! Estou procurando substituir minha configuração dedicada do OPNsense executada em miniPC por uma VM em meu servidor TrueNAS (Scale agora, mas executo Core há muitos anos) e estava me perguntando... existe uma maneira mais simples de fazer tudo funcionar? Tudo o que eu quero é literalmente executar minha rede e fazer com que a VM seja capaz de se comunicar via WAN e LAN (dentro e fora da VM, é claro...). Estou bem ciente de que se eu reiniciar meu servidor TrueNAS (é principalmente meu Plex Media Server), minha conexão com a Internet cairá, etc. Também estou ciente de que não é ideal fazer isso na maioria das situações, mas eu quero experimentar. Eu adoro ocupar menos espaço, e se eu conseguir me livrar de um computador rodando na minha rede e no meu quarto, isso seria incrível.
Agora, o que consegui fazer até agora? Só consegui fazer com que minha VM do OPNsense visse uma conexão WAN e também consegui acessar sua webUI... às vezes...
Qualquer ajuda seria apreciada se alguém visse isso em 2023... haha. Não há pressa, mas eu meio que quero fazer isso porque é interessante.
Obrigado, Shiggitay