Рейтинг:0

XCP-NG Single NIC MASQUERADE Правила iptable Порты, не перенаправляющие только основной сетевой трафик

флаг cn

У меня возникла проблема с переадресацией портов на виртуальную машину с помощью правил MASQUERADE iptable. У меня это работало на тех же серверах с Proxmox. Но теперь с XCP-NG я не могу заставить это работать. Я сделал однажды в прошлом на одном из этих серверов. Но мне не удалось повторить это снова. Сетевое соединение для исходящего трафика и получения обновлений, а также запрос http/https на виртуальных машинах работает нормально.Я просто не могу перенаправить порты на виртуальные машины VoyOs/Pfsense, чтобы передать их на внутренние виртуальные машины.

Короче говоря, я могу подключиться к виртуальной машине, но не могу перенаправить порты.

У меня есть два сервера, на которых работает XCP-NG, но на одном работает VoyOS, а на другом — OPNsense:

  • XCP-NG: 8.2
  • OPNSense: 21.7.1
  • VoyOS : Последние

Я следовал этим руководствам:

xenserver-single-ip-howto

настройка шлюза с использованием iptables и маршрута в Linux

создать-частную-сеть-мост-proxmox-с-нат

xen-host-and-guest-sharing-один и тот же ip

Карта сети

               - Интерфейс управления
Сетевая карта 0 --> xenbr0                                                 
               - MASQUERADE для xenbr1 (10.0.0.254) --> Wan-VoyOs/Pfsense (10.0.0.2) --> Внутренняя локальная сеть (10.0.1.1) --> ВМ (10.0.1.x)
                                                             

Пытался:

iptables -t nat -A POSTROUTING -s '10.0.0.0/24' -o xenbr0 -j MASQUERADE

iptables -A PREROUTING -t nat -p tcp -i xenbr0 -d XXX.XXX.XXX.XX --dport 2727 -j DNAT --to 10.0.0.2:2727

и удаление -d XXX.XXX.XXX.XX внешнего IP-адреса

iptables -A PREROUTING -t nat -p tcp -i xenbr0 --dport 2727 -j DNAT --to 10.0.0.2:2727 

Затем я удалил эти правила и попробовал:

iptables -I ВПЕРЕД 1 -i xenbr1 -j ПРИНЯТЬ

iptables -t nat -A POSTROUTING -o xenbr0 -j MASQUERADE

И, наконец, попробовал:

iptables --append ВПЕРЕД --in-interface xenbr1 -j ПРИНЯТЬ
iptables -D ВПЕРЕД --in-interface xenbr1 -j ПРИНЯТЬ

Правила IP-таблиц

# iptables --list-rules
-P ВВОД ПРИНЯТЬ
-P ВПЕРЕД ПРИНЯТЬ
-P ВЫВОД ПРИНЯТЬ
-N RH-Брандмауэр-1-ВХОД
-N xapi_nbd_input_chain
-N xapi_nbd_output_chain
-A ВХОД -p tcp -m tcp --dport 10809 -j xapi_nbd_input_chain
-A ВВОД -p gre -j ПРИНЯТЬ
-A ВХОД -j RH-Брандмауэр-1-ВХОД
-A FORWARD -j RH-Брандмауэр-1-ВХОД
-A ВЫХОД -p tcp -m tcp --sport 10809 -j xapi_nbd_output_chain
-A RH-Firewall-1-INPUT -i lo -j ПРИНЯТЬ
-A RH-Firewall-1-INPUT -p icmp -m icmp --icmp-type any -j ПРИНЯТЬ
-A RH-Firewall-1-INPUT -i xenapi -p udp -m udp --dport 67 -j ПРИНЯТЬ
-A RH-Firewall-1-INPUT -m conntrack --ctstate СВЯЗАННО, УСТАНОВЛЕНО -j ПРИНЯТЬ
-A RH-Firewall-1-INPUT -p udp -m conntrack --ctstate NEW -m udp --dport 694 -j ПРИНЯТЬ
-A RH-Firewall-1-INPUT -p tcp -m conntrack --ctstate NEW -m tcp --dport 22 -j ПРИНЯТЬ
-A RH-Firewall-1-INPUT -p tcp -m conntrack --ctstate NEW -m tcp --dport 80 -j ПРИНЯТЬ
-A RH-Firewall-1-INPUT -p tcp -m conntrack --ctstate NEW -m tcp --dport 443 -j ПРИНЯТЬ
-A RH-Firewall-1-INPUT -p tcp -m tcp --dport 21064 -j ПРИНЯТЬ
-A RH-Firewall-1-INPUT -p udp -m многопортовый --dports 5404,5405 -j ПРИНЯТЬ
-A RH-Firewall-1-INPUT -j REJECT --reject-with-icmp-host-prohibited
-A xapi_nbd_input_chain -j REJECT --reject-with icmp-port-unreachable
-A xapi_nbd_output_chain -j REJECT --reject-with icmp-port-unreachable

IP-таблицы

# iptables -L && iptables -t nat -L
Сеть INPUT (политика ACCEPT)
целевая защита выбор источника назначения
xapi_nbd_input_chain tcp -- где угодно и где угодно tcp dpt:nbd
ПРИНЯТЬ gre -- везде где угодно
RH-Firewall-1-INPUT все -- где угодно где угодно
Сеть FORWARD (политика ACCEPT)
целевая защита выбор источника назначения
RH-Firewall-1-INPUT все -- где угодно где угодно
Цепочка OUTPUT (политика ACCEPT)
целевая защита выбор источника назначения
xapi_nbd_output_chain tcp -- везде где угодно tcp spt:nbd
Цепочка RH-Firewall-1-INPUT (2 ссылки)
целевая защита выбор источника назначения
ПРИНИМАТЬ все -- в любом месте в любом месте
ПРИНЯТЬ icmp -- везде где угодно icmp любой
ПРИНЯТЬ udp -- где угодно udp dpt:bootps
ПРИНЯТЬ все -- где угодно и где угодно ctstate СВЯЗАННО, УСТАНОВЛЕНО
ПРИНЯТЬ udp -- в любом месте ctstate NEW udp dpt:ha-cluster
ПРИНЯТЬ tcp -- в любом месте ctstate NEW tcp dpt:ssh
ПРИНЯТЬ tcp -- в любом месте ctstate NEW tcp dpt:http
ПРИНЯТЬ tcp -- в любом месте ctstate NEW tcp dpt:https
ПРИНЯТЬ tcp -- в любом месте tcp dpt:21064
ПРИНЯТЬ udp -- в любом месте многопортовый dports hpoms-dps-lstn,netsupport
REJECT all -- везде, где угодно
Сеть xapi_nbd_input_chain (1 ссылка)
целевая защита выбор источника назначения
REJECT all -- везде, где угодно
Цепочка xapi_nbd_output_chain (1 ссылка)
целевая защита выбор источника назначения
REJECT all -- везде, где угодно
Цепь PREROUTING (политика ПРИНЯТЬ)
целевая защита выбор источника назначения
DNAT tcp -- в любом месте tcp dpt:mgcp-callagent to:10.0.0.2:2727
Сеть INPUT (политика ACCEPT)
целевая защита выбор источника назначения
Цепочка OUTPUT (политика ACCEPT)
целевая защита выбор источника назначения
Сеть POSTROUTING (правило ACCEPT)
целевая защита выбор источника назначения
MASQUERADE all -- 10.0.0.0/24 в любом месте

/etc/sysconfig/iptables

# кот /etc/sysconfig/iptables
# Сгенерировано iptables-save v1.4.21 в понедельник, 16 августа, 20:14:40 2021
*фильтр
:ВВОД ПРИНЯТЬ [0:0]
:ВПЕРЕД ПРИНЯТЬ [0:0]
: ВЫВОД ПРИНЯТ [6179:9587238]
:RH-Брандмауэр-1-ВХОД - [0:0]
:xapi_nbd_input_chain — [0:0]
:xapi_nbd_output_chain — [0:0]
-A ВХОД -p tcp -m tcp --dport 10809 -j xapi_nbd_input_chain
-A ВВОД -p gre -j ПРИНЯТЬ
-A ВХОД -j RH-Брандмауэр-1-ВХОД
-A FORWARD -j RH-Брандмауэр-1-ВХОД
-A ВЫХОД -p tcp -m tcp --sport 10809 -j xapi_nbd_output_chain
-A RH-Firewall-1-INPUT -i lo -j ПРИНЯТЬ
-A RH-Firewall-1-INPUT -p icmp -m icmp --icmp-type any -j ПРИНЯТЬ
-A RH-Firewall-1-INPUT -i xenapi -p udp -m udp --dport 67 -j ПРИНЯТЬ
-A RH-Firewall-1-INPUT -m conntrack --ctstate СВЯЗАННО, УСТАНОВЛЕНО -j ПРИНЯТЬ
-A RH-Firewall-1-INPUT -p udp -m conntrack --ctstate NEW -m udp --dport 694 -j ПРИНЯТЬ
-A RH-Firewall-1-INPUT -p tcp -m conntrack --ctstate NEW -m tcp --dport 22 -j ПРИНЯТЬ
-A RH-Firewall-1-INPUT -p tcp -m conntrack --ctstate NEW -m tcp --dport 80 -j ПРИНЯТЬ
-A RH-Firewall-1-INPUT -p tcp -m conntrack --ctstate NEW -m tcp --dport 443 -j ПРИНЯТЬ
-A RH-Firewall-1-INPUT -p tcp -m tcp --dport 21064 -j ПРИНЯТЬ
-A RH-Firewall-1-INPUT -p udp -m многопортовый --dports 5404,5405 -j ПРИНЯТЬ
-A RH-Firewall-1-INPUT -j REJECT --reject-with-icmp-host-prohibited
-A xapi_nbd_input_chain -j REJECT --reject-with icmp-port-unreachable
-A xapi_nbd_output_chain -j REJECT --reject-with icmp-port-unreachable
СОВЕРШИТЬ
# Завершено Пн, 16 августа, 20:14:40 2021
# Сгенерировано iptables-save v1.4.21 в понедельник, 16 августа, 20:14:40 2021
*натуральный
: ПРЕДВАРИТЕЛЬНОЕ ПРИНЯТИЕ [5:322]
:ВВОД ПРИНЯТЬ [3:164]
: ВЫВОД ПРИНЯТЬ [1:73]
:ОТПРАВКА ПРИНЯТИЯ [1:73]
-A PREROUTING -i xenbr0 -p tcp -m tcp --dport 2727 -j DNAT --назначение 10.0.0.2:2727
-A РАЗМЕЩЕНИЕ -s 10.0.0.0/24 -o xenbr0 -j МАСКАРАД
СОВЕРШИТЬ
# Завершено Пн, 16 августа, 20:14:40 2021

Ифконфиг

# есликонфиг
eth0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500
        эфир 78:2b:cb:3c:81:65 txqueuelen 1000 (Ethernet)
        Пакеты RX 24705 байт 3641727 (3,4 МБ)
        Ошибки RX 0 отброшено 0 переполнение 0 кадр 0
        Пакеты TX 47612 байт 37970921 (36,2 МБ)
        Ошибки передачи 0 отброшено 0 превышение пропускной способности 0 несущей 0 коллизий 0

eth1: flags=4099<UP,BROADCAST,MULTICAST> mtu 1500
        эфир 78:2b:cb:3c:81:66 txqueuelen 1000 (Ethernet)
        Пакеты RX 0 байт 0 (0,0 Б)
        Ошибки RX 0 отброшено 0 переполнение 0 кадр 0
        Пакеты TX 0 байт 0 (0,0 Б)
        Ошибки передачи 0 отброшено 0 превышение пропускной способности 0 несущей 0 коллизий 0

lo: flags=73<UP,LOOPBACK,RUNNING> mtu 65536
        инет 127.0.0.1 сетевая маска 255.0.0.0
        loop txqueuelen 1000 (локальная петля)
        Пакеты RX 5951 байт 33860750 (32,2 МБ)
        Ошибки RX 0 отброшено 0 переполнение 0 кадр 0
        Пакеты TX 5951 байт 33860750 (32,2 МБ)
        Ошибки передачи 0 отброшено 0 превышение пропускной способности 0 несущей 0 коллизий 0

vif1.0: flags=4291<UP,BROADCAST,RUNNING,NOARP,MULTICAST> mtu 1500
        эфир fe:ff:ff:ff:ff:ff txqueuelen 32 (Ethernet)
        Пакеты RX 6 байт 444 (444,0 Б)
        Ошибки RX 0 отброшено 0 переполнение 0 кадр 0
        Пакеты TX 0 байт 0 (0,0 Б)
        Ошибки передачи 0 отброшено 0 превышение пропускной способности 0 несущей 0 коллизий 0

vif1.1: flags=4291<UP,BROADCAST,RUNNING,NOARP,MULTICAST> mtu 1500
        эфир fe:ff:ff:ff:ff:ff txqueuelen 32 (Ethernet)
        RX-пакеты 1442 байта 95984 (93,7 КиБ)
        Ошибки RX 0 отброшено 0 переполнение 0 кадр 0
        Пакеты TX 1336 байт 143058 (139,7 КиБ)
        Ошибки передачи 0 отброшено 0 превышение пропускной способности 0 несущей 0 коллизий 0

xapi0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500
        эфир be:16:43:65:a2:4f txqueuelen 1000 (Ethernet)
        Пакеты RX 6 байт 444 (444,0 Б)
        Ошибки RX 0 отброшено 0 переполнение 0 кадр 0
        Пакеты TX 0 байт 0 (0,0 Б)
        Ошибки передачи 0 отброшено 0 превышение пропускной способности 0 несущей 0 коллизий 0

xenbr0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500
        inet XXX.XXX.XXX.XX сетевая маска 255.255.255.252 широковещательная передача XXX.XXX.XXX.XX
        эфир 78:2b:cb:3c:81:65 txqueuelen 1000 (Ethernet)
        Пакеты RX 23841 байт 3101836 (2,9 МБ)
        Ошибки RX 0 отброшено 0 переполнение 0 кадр 0
        Пакеты TX 33197 байт 36975647 (35,2 МБ)
        Ошибки передачи 0 отброшено 0 превышение пропускной способности 0 несущей 0 коллизий 0

xenbr1: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500
        инет 10.0.0.254 сетевая маска 255.255.255.0 широковещательная рассылка 10.0.0.255
        эфир 78:2b:cb:3c:81:66 txqueuelen 1000 (Ethernet)
        RX-пакеты 1442 байта 95984 (93,7 КиБ)
        Ошибки RX 0 отброшено 0 переполнение 0 кадр 0
        Пакеты TX 1336 байт 143058 (139,7 КиБ)
        Ошибки передачи 0 отброшено 0 превышение пропускной способности 0 несущей 0 коллизий 0

/etc/sysctl.conf

# настройки sysctl определяются через файлы в
# /usr/lib/sysctl.d/, /run/sysctl.d/ и /etc/sysctl.d/.
#
# Настройки поставщиков находятся в /usr/lib/sysctl.d/.
# Чтобы переопределить весь файл, создайте новый файл с таким же
# /etc/sysctl.d/ и поместить туда новые настройки. Переопределить
# только конкретные настройки, добавить файл с лексически более поздним
# имя в /etc/sysctl.d/ и поместите туда новые настройки.
#
# Для получения дополнительной информации см. sysctl.conf(5) и sysctl.d(5).
net.ipv4.ip_forward = 1

Ответить или комментировать

Большинство людей не понимают, что склонность к познанию нового открывает путь к обучению и улучшает межличностные связи. В исследованиях Элисон, например, хотя люди могли точно вспомнить, сколько вопросов было задано в их разговорах, они не чувствовали интуитивно связи между вопросами и симпатиями. В четырех исследованиях, в которых участники сами участвовали в разговорах или читали стенограммы чужих разговоров, люди, как правило, не осознавали, что задаваемый вопрос повлияет — или повлиял — на уровень дружбы между собеседниками.