У меня есть сервер Proxmox Linux, который может отправлять и получать пакеты на хосты в локальной сети, но не будет обрабатывать пакеты от шлюза. Это приводит к сбою интернет-трафика, поэтому я не могу запустить apt для обновления пакетов. Похоже, все протоколы затронуты.
ВМ, работающие на сервере может доступ к шлюзу просто отлично.
Мой файл /etc/network/interfaces содержит:
авто вот
iFace Lo Inet Loopback
iface enp10s0 инет руководство
авто вмбр0
iface vmbr0 инет статический
адрес 10.0.1.200/24
шлюз 10.0.1.1
bridge_ports enp10s0
мост_стп выключен
bridge_fd 0
авто wlp7s0
Статический инет iface wlp7s0
hostapd /etc/hostapd/hostapd.conf
адрес 10.0.2.1
сетевая маска 255.255.255.0
авто вмбр1
iface vmbr1 инет статический
адрес 10.1.2.1
сетевая маска 255.255.255.0
мост_порты нет
мост-стп выкл.
мост-fd 0
последующее эхо 1 > /proc/sys/net/ipv4/ip_forward
post-up iptables -t nat -A POSTROUTING -s '10.1.2.0/24' -o wlp7s0 -j MASQUERADE
post-down iptables -t nat -D POSTROUTING -s '10.1.2.0/24' -o wlp7s0 -j MASQUERADE
wlp7s0 и vmbr1 настроены на NAT, чтобы разрешить виртуальной машине доступ к беспроводным устройствам Интернета вещей, которые не должны иметь доступа к общей сети/Интернету.
Моя таблица маршрутов:
$ IP-маршрут
по умолчанию через 10.0.1.200 dev vmbr0 метрика 100
10.0.1.0/24 dev vmbr0 прото-область ядра ссылка src 10.0.1.200
10.0.2.0/24 dev wlp7s0 ссылка на область ядра proto src 10.0.2.1
10.1.2.0/24 dev vmbr1 прото-область ядра ссылка src 10.1.2.1
После некоторого чтения я попытался изменить rp_filter, но изменение значения с 2 на 0 не помогло. Настройки по умолчанию (с удаленными интерфейсами ВМ):
$ sysctl-а | grep \.rp_filter
net.ipv4.conf.all.rp_filter = 2
net.ipv4.conf.default.rp_filter = 0
net.ipv4.conf.enp10s0.rp_filter = 0
net.ipv4.conf.lo.rp_filter = 0
net.ipv4.conf.vmbr0.rp_filter = 0
net.ipv4.conf.vmbr1.rp_filter = 0
net.ipv4.conf.wlp7s0.rp_filter = 0
ip_forward установлен:
$ кошка /proc/sys/net/ipv4/ip_forward
1
Я проверил через tcpdump, что пакеты принимаются от шлюза, когда я пытаюсь пропинговать с сервера на шлюз или с сервера на шлюз. В этом примере используется пинг:
# tcpdump -n -i хост vmbr0 10.0.1.1 и icmp
tcpdump: подробный вывод подавлен, используйте -v или -vv для полного декодирования протокола
прослушивание на vmbr0, тип канала EN10MB (Ethernet), размер захвата 262144 байт
22:42:37.136341 IP 10.0.1.200 > 10.0.1.1: эхо-запрос ICMP, идентификатор 22073, последовательность 1, длина 64
22:42:37.136478 IP 10.0.1.1 > 10.0.1.200: эхо-ответ ICMP, идентификатор 22073, последовательность 1, длина 64
22:42:38.142240 IP 10.0.1.200 > 10.0.1.1: эхо-запрос ICMP, идентификатор 22073, последовательность 2, длина 64
22:42:38.142429 IP 10.0.1.1 > 10.0.1.200: эхо-ответ ICMP, идентификатор 22073, последовательность 2, длина 64
Вывод ping -v просто пуст:
$ пинг -v 10.0.1.1
PING 10.0.1.1 (10.0.1.1) 56 (84) байт данных.
^ С
--- 10.0.1.1 статистика пинга ---
22 пакета передано, 0 получено, 100% потери пакетов, время 511 мс
Единственная запись в таблицах ip — это NAT:
# iptables-сохранить -c
# Сгенерировано iptables-save v1.8.2 в субботу, 29 января, 22:45:46 2022 г.
*сырой
: ПРЕДВАРИТЕЛЬНОЕ ПРИНЯТИЕ [1828405583:1847667077335]
: ВЫВОД ПРИНЯТ [10762322:981310704]
СОВЕРШИТЬ
# Завершено в субботу, 29 января, 22:45:46 2022 г.
# Сгенерировано iptables-save v1.8.2 в субботу, 29 января, 22:45:46 2022 г.
*фильтр
:ВВОД ПРИНЯТЬ [10597558:1212589593]
:ВПЕРЕД ПРИНЯТЬ [1782904005:1841102268241]
: ВЫВОД ПРИНЯТ [10762351:981313827]
СОВЕРШИТЬ
# Завершено в субботу, 29 января, 22:45:46 2022 г.
# Сгенерировано iptables-save v1.8.2 в субботу, 29 января, 22:45:46 2022 г.
*натуральный
: ПРЕДВАРИТЕЛЬНОЕ ПРИНЯТИЕ [29808561:4940456833]
:ВВОД ПРИНЯТЬ [2456738:231340403]
: ВЫВОД ПРИНЯТ [1168080:75403202]
:ОТПРАВКА ПРИНЯТИЯ [2829337:181352732]
[190:11400] -A ОТПРАВКА -s 10.1.2.0/24 -o wlp7s0 -j MASQUERADE
СОВЕРШИТЬ
# Завершено в субботу, 29 января, 22:45:46 2022 г.