Привет! Я поставил свежий Proxmox на выделенный сервер у Hetzner. У меня есть только один IPv4 и подсеть IPv6. Всё работает нормально, а именно:
- 3 интерфейса: eno1, vmbr0 с маршрутизацией и vmbr1 с NAT.
- Я могу напрямую подключаться к ВМ по IPv6.
- ВМ может выходить в IPv4 сеть через NAT.
/etc/network/interfaces
Код:
### LOOPBACK ###
auto lo
iface lo inet loopback
iface lo inet6 loopback
### IPv4 ###
# Основной IPv4 от хоста
auto eno1
iface eno1 inet static
address <MAIN IP>
netmask 255.255.255.255
gateway <GATEWAY_IP>
pointopoint <GATEWAY_IP>
### IPv6 ###
# Основной IPv6
iface eno1 inet6 static
address <ipv6 addr from subnet>::2
netmask 128
gateway <gateway>
up sysctl -p
### VM-Routed IPv4
auto vmbr0
iface vmbr0 inet static
address <MainIP>
netmask 255.255.255.255
bridge_ports none
bridge_stp off
bridge_fd 0
# VM-Routed IPv6
iface vmbr0 inet6 static
address <ipv6>::3
netmask 64
up ip -6 route add <ipv6>::/64 dev vmbr0
### Частная NAT-сеть Proxmox
auto vmbr1
iface vmbr1 inet static
address 10.10.10.1
netmask 255.255.255.0
bridge_ports none
bridge_stp off
bridge_fd 0
bridge_maxwait 0
post-up iptables -t nat -A POSTROUTING -s '10.10.10.0/24' -o eno1 -j MASQUERADE
post-down iptables -t nat -D POSTROUTING -s '10.10.10.0/24' -o eno1 -j MASQUERADE
Конфигурация ВМ:
Код:
auto lo
iface lo inet loopback
auto eth0
iface eth0 inet6 static
address <ipv6>::4/64
gateway <ipv6>::3
auto eth1
iface eth1 inet dhcp
Пока что, как минимум на данном этапе, у меня всё работает, как и ожидалось. Проблема в том, что когда я включаю файрвол, перестаёт работать IPv4 из ВМ. Файрвол включён только на уровне датацентра с правилами для SSH и порта 8006 для GUI. IPv6, судя по всему, работает нормально. Нужно ли мне добавить особое правило для vmbr1 с NAT, чтобы сохранить исходящие подключения с ВМ?
- 3 интерфейса: eno1, vmbr0 с маршрутизацией и vmbr1 с NAT.
- Я могу напрямую подключаться к ВМ по IPv6.
- ВМ может выходить в IPv4 сеть через NAT.
/etc/network/interfaces
Код:
### LOOPBACK ###
auto lo
iface lo inet loopback
iface lo inet6 loopback
### IPv4 ###
# Основной IPv4 от хоста
auto eno1
iface eno1 inet static
address <MAIN IP>
netmask 255.255.255.255
gateway <GATEWAY_IP>
pointopoint <GATEWAY_IP>
### IPv6 ###
# Основной IPv6
iface eno1 inet6 static
address <ipv6 addr from subnet>::2
netmask 128
gateway <gateway>
up sysctl -p
### VM-Routed IPv4
auto vmbr0
iface vmbr0 inet static
address <MainIP>
netmask 255.255.255.255
bridge_ports none
bridge_stp off
bridge_fd 0
# VM-Routed IPv6
iface vmbr0 inet6 static
address <ipv6>::3
netmask 64
up ip -6 route add <ipv6>::/64 dev vmbr0
### Частная NAT-сеть Proxmox
auto vmbr1
iface vmbr1 inet static
address 10.10.10.1
netmask 255.255.255.0
bridge_ports none
bridge_stp off
bridge_fd 0
bridge_maxwait 0
post-up iptables -t nat -A POSTROUTING -s '10.10.10.0/24' -o eno1 -j MASQUERADE
post-down iptables -t nat -D POSTROUTING -s '10.10.10.0/24' -o eno1 -j MASQUERADE
Конфигурация ВМ:
Код:
auto lo
iface lo inet loopback
auto eth0
iface eth0 inet6 static
address <ipv6>::4/64
gateway <ipv6>::3
auto eth1
iface eth1 inet dhcp
Пока что, как минимум на данном этапе, у меня всё работает, как и ожидалось. Проблема в том, что когда я включаю файрвол, перестаёт работать IPv4 из ВМ. Файрвол включён только на уровне датацентра с правилами для SSH и порта 8006 для GUI. IPv6, судя по всему, работает нормально. Нужно ли мне добавить особое правило для vmbr1 с NAT, чтобы сохранить исходящие подключения с ВМ?
