3 голоса против фаворита
У меня странное поведение при настройке сервера. Это похоже на то.
client1 192.168.11.2/24 <----> 192.168.11.7/24 (br1 / vlan1) Сервер 192.168.21.1/24 (br21 / vlan21) <---> 192.168.21.101/24 client2
На сервере я настроил DNAT для двух портов в другое место назначения.
~> sudo iptables -t nat -nL -v Цепочка PREROUTING (политика ПРИНЯТЬ 3631 пакетов, 220 Кбайт) pkts bytes target prot opt in out source destination
5332 320K DNAT tcp - * * 0.0.0.0/0 192.168.11.7 многопортовые dports 5308,21 в: 192.168.2.19
~> ip r получить 192.168.2.19 192.168.2.19 через 192.168.11.1 dev br1 src 192.168.11.7
Это работает в течение некоторого времени от обоих клиентов, но по прошествии неопределенного времени только пакеты от client2 пересылаются. Счетчик пакетов увеличивается, когда я пытаюсь подключиться с client1, но NAT больше нет. Иногда через несколько часов он снова начинал работать.
В брандмауэре ничего не блокируется, потому что все политики находятся в состоянии ПРИНЯТЬ, а правила не установлены. Контракт тоже не полон. Я уже пробовал несколько вещей с rp_filter и так далее, но в этих настройках проблем быть не должно.
когда я устанавливаю br1 в режим promisc, он начинает работать, но я хочу понять, почему интерфейс не принимает пакеты без режима promisc.
Надеюсь, у кого-то есть идея.
Попробуйте уменьшить размер MTU на интерфейсах своих клиентов на тот случай, если что-то сбрасывает фрагментированные пакеты. В любом случае вы должны запустить tcpdump / wirehark как на клиентах, так и на сервере и посмотреть, какой из них вызывает эту проблему.