Эта настройка должна быть основана на proxmox, находящемся за виртуальной машиной opnsense, размещенной на самом Proxmox, которая будет защищать proxmox, предлагать брандмауэр, частную локальную сеть и DHCP / DNS для виртуальных машин и предлагать подключение IPsec к локальной сети для доступа ко всем виртуальным машинам. / Proxmox без NAT. Сервер является типичным сервером Hetzner, поэтому только на сетевом адаптере, но с несколькими IP-адресами или / подсетями на этом сетевом адаптере.
Из-за блокировщика кластеров с настройкой PCI-passthrough это моя альтернатива
- Сервер Proxmox с 1 сетевой картой (eth0)
- 3 общедоступных IP-адреса, IP2 / 3 маршрутизируются по MAC-адресу в центре обработки данных (на eth0)
- Настройка моста KVM (eth0 без IP, vmbr0 подключен к eth0 с IP1)
- Частная локальная сеть на vmbr30, 10.1.7.0/24
- Shorewall на сервере proxmox
Чтобы лучше описать настройку, я создаю этот рисунок: (не уверен, что он идеальный, скажите, что нужно улучшить)
Текстовое описание:
Сетевые интерфейсы на Proxmox
auto lo
iface lo inet loopback
auto eth0
iface eth0 inet manual
pre-up sleep 2
auto vmbr0
# docs at
iface vmbr0 inet static
address External-IP1(148.x.y.a)
netmask 255.255.255.192
# Our gateway is reachable via Point-to-Point tunneling
# put the Hetzner gateway IP address here twice
gateway DATACENTER-GW1
pointopoint DATACENTER-GW1
# Virtual bridge settings
# this one is bridging physical eth0 interface
bridge_ports eth0
bridge_stp off
bridge_fd 0
pre-up sleep 2
bridge_maxwait 0
metric 1
# Add routing for up to 4 dedicated IP's we get from Hetzner
# You need to
# opnsense
up route add -host External-IP2(148.x.y.b)/32 dev vmbr0
# rancher
up route add -host External-IP2(148.x.y.c)/32 dev vmbr0
# Assure local routing of private IPv4 IP's from our
# Proxmox host via our firewall's WAN port
up ip route add 10.1.7.0/24 via External-IP2(148.x.y.b) dev vmbr0
auto vmbr30
iface vmbr30 inet static
address 10.1.7.2
netmask 255.255.255.0
bridge_ports none
bridge_stp off
bridge_fd 0
pre-up sleep 2
metric 1
Shorewall на Proxmox
интерфейсы
wan eth0 detect dhcp,tcpflags,nosmurfs
wan vmbr0 detect bridge
lan vmbr30 detect bridge
политики:
lan lan ACCEPT - -
fw all ACCEPT - -
all all REJECT INFO -
OPNsense
- WAN - ExternalIP2, подключенный к vmbr0 с MAC-XX
- LAN - 10.1.7.1, привязанный к vmbr30
Что работает:
- Базовая настройка работает нормально, я могу получить доступ к opnsense с IP2, я могу получить доступ к proxmox по IP1 и я могу получить доступ к rancher-VM по ip3 - это то, что не требует никакой маршрутизации.
- Я могу подключиться с помощью мобильного клиента IPSec к OPNsense, предлагая доступ к локальной сети (10.1.7.0/24) из диапазона виртуальных IP-адресов 172.16.0.0/24
- я могу получить доступ к 10.1.7.1 (опция) при подключении к OpenVPN
- я могу получить доступ к 10.1.7.11 / 10.1.7.151 из OPNsense (10.1.7.1) (оболочка)
- я могу получить доступ к 10.1.7.11 / 10.1.7.1 из othervm (10.1.7.151) (оболочка)
Что не работает:
а) подключение к 10.1.7.11/10.1.7.151 или 10.1.7.2 от клиента IPsec
б) [РЕШЕНО в ОБНОВЛЕНИИ 1] подключение к 10.1.7.2 из 10.1.7.1 (опционально)
c) Кажется, у меня асинхронная маршрутизация, и пока я могу получить доступ, например, 10.1.7.1:8443 я вижу много записей если
г) Совместное использование IPSec LAN будет включать правило i в цепочку IPSEC, «from * to LAN ACCEPT» - но это не сработало для меня, мне пришлось добавить «from * to * ACCEPT» а>
Вопросов:
I) Конечно, я хочу исправить a) b) c) d), вероятно, начиная с понимания c) и d)
II) поможет ли в этой настройке добавить вторую сетевую карту?
III) может быть проблема в том, что я активировал net.ipv4.ip_forward на хосте proxmox (лучше не маршрутизировать?)
Когда я разобрался с этим, я хотел бы разместить исчерпывающее руководство о том, как запустить OPNsense в качестве устройства с частной сетью на Proxmox, передать некоторые службы внешнему миру с помощью HAproxe + LE, а также получить доступ к частной локальной сети с помощью IPsec.
ОБНОВЛЕНИЕ1:
Удаление up ip route add 10.1.7.0/24 via IP2 dev vmbr0
из vmbr0 на proxmox устранило проблему, из-за которой ни proxmox не мог получить доступ к 10.1.7.0/24, ни получить доступ из локальной сети.
ОБНОВЛЕНИЕ2:
Я создал обновленную / измененную настройку, в которой используется pci-passthrough. Цели те же - это снижает сложность - см. здесь