Я начал с довольно стандартной настройки pfSense: один интерфейс WAN и один интерфейс LAN, доступ LAN-to-WAN через NAT.
теперь мне нужна вторая логическая подсеть в локальной сети, которую я настроил следующим образом:
- настроил VIP из второй подсети на интерфейсе локальной сети pfSense
- переключил исходящий NAT с автоматического на ручной
- создал копию автоматически сгенерированного правила NAT, установив диапазон IP-адресов для нового подсеть
- добавлено новое правило LAN, разрешающее любой трафик из новой подсети
Что касается доступа в Интернет, все вроде хорошо. Хосты из подсети могут получать доступ к внешним ресурсам.
однако, я хотел бы также pfSense для маршрутизации трафика между двумя подсетями. И тут дело доходит до хитрости: я могу пинговать между подсетями, но попытки TCP-подключения с хоста в подсети а к цели в подсети Б будут истекать.
некоторый захват пакета выявлено следующее:
- несмотря на записи таблицы маршрутизации, согласно которым хост B является удаленным и шлюз по умолчанию является pfSense, хост A не маршрутизирует через pfSense, но разрешает MAC-адрес хоста B через ARP. Следовательно SYN TCP идет прямо от хоста A до хоста B, без pfSense, когда-либо видящего его.
- хост B получает SYN и отвечает SYN-ACK. На этот раз, однако, связь проходит обратно через pfSense.
- pfSense таким образом видит SYN-ACK, никогда не встречаясь с соответствующим SYN и отбрасывает его, предполагая, что это вредоносный трафик. (Перехваты ясно показывают SYN-ACK на pfSense, но не на хосте A, и журналы показывают, что это фильтруется.)
Я точно не знаю, что заставляет хост a игнорировать настройки маршрута и обходить шлюз по умолчанию, однако все это не было бы проблемой, если бы у меня был только простой маршрутизатор. Я бы предпочел не полагаться на конкретное поведение ОС, а построить инфраструктура толерантным образом-следовательно, я хочу, чтобы маршрутизация между двумя сетями работала, даже если pfSense видит только одно направление трафика. Так как обе подсети LAN имеют одинаковый уровень доверия, фильтрация между ними не требуется.
Как отключить фильтрацию между двумя подсетями в pfSense? Я попытался установить "тип состояния" в "нет", но безуспешно...