PfSense 2.2: ipsec up - пропадает lan
-
Всем Доброе время суток!
Пару дней назад обновил pfSense c 2.1.5 до версии 2.2. Сразу после обновления отвалилась авторизация через AD, zabbix-agent стал не доступен.
Схема с проблемным шлюзом: LAN офиса –- pfSense 2.2 (на котором проблема) --- ipsec-тоннель LAN-LAN (локальная сеть LAN, удаленная сеть 0.0.0.0/0) --- pfSense 2.2 --- LAN главного офиса
На прошлых версия pfSense все прекрасно работало, конфигурация не менялась, проводил только автоматическое обновление версии.
Вчера в ходе экспериментов выяснил:
-
при отключенном ipsec все в любую сторону работает корректно, т.е: dns, zabbix-agent, авторизация в AD, доступ в интернет (напрямую через WAN, не через удаленную сеть), ping на lan-адрес pfsense, с pfsense есть ping на localhost, свой lan-адрес, другие хосты lan;
-
при включенном ipsec:
- dns pfSense может отрезолвить только хосты с dns серверов, которые достижимы через WAN или через ipsec;
- есть пинг lan адреса только из удаленной сети (главного офиса), из LAN'а пинговать шлюз не выходит, web-интерфейс не доступен;
- с pfsense пингуется localhost;
- с pfsense lan адрес и любой адрес из его же локальной сети не пингуется, собственно потому и отвались некоторые сервисы, которые находятся в локальной сети: это доменный контроллер и прокси zabbix'а (повторюсь, при отключенном ipsec это все работает и работало на прежних версиях с включенном ipsec).
- достижимы все локальные хосты из удаленной сети, в локальной сети работают сервисы и ресурсы интернета и удаленной сети.
При этом pfSense 2.2 уже работает в 2-х других офисах (этой 3-ий, который я обновлял), что натолкнуло на мысль. В итоге проблема оказалось в том, что политика ipsec воспринимается буквально: "все из LAN через удаленную сеть", даже когда я пинговал lan адрес pfsense из локальной сети - я видел эти пакеты на удаленном шлюзе. При поднятии ipsec с политикой "LAN офиса---LAN удаленного офиса (т.е. не 0.0.0.0/0)" все работает корректно.
Это баг? Кто-то уже сталкивался с подобным? Бегло по баг-треккеру пробежался подобного не увидел. Есть идеи?
-
-
В итоге проблема оказалось в том, что политика ipsec воспринимается буквально: "все из LAN через удаленную сеть", даже когда я пинговал lan адрес pfsense из локальной сети - я видел эти пакеты на удаленном шлюзе
Если в remote network стоит 0.0.0.0, то весь трафик будет заворачиваться в туннель.
При поднятии ipsec с политикой "LAN офиса–-LAN удаленного офиса (т.е. не 0.0.0.0/0)" все работает корректно.
Это значит, что всё, что относится к удаленной лок. сети будет уходить в туннель. Остальное - в WAN.
И это, я так понимаю, нормальное поведение.
- при включенном ipsec:
По какой схеме выше ?
- dns pfSense может отрезолвить только хосты с dns серверов, которые достижимы через WAN или через ipsec;
А что в настройках DNS самого pfsense ? Указаны ли адреса лок. DNS ?
Возможно, что адресация в лок. сетях за pfsense-ми совпадает. Проверьте это.
-
Все проверено, адресация не совпадает - уже почти 10 лет работает :) (на pf не все эти годы, но все же)
Если в remote network стоит 0.0.0.0, то весь трафик будет заворачиваться в туннель.
Верно. Это нужно, это работает. Проблема в том, что в туннель попадает трафик, который относится к lan адресу pfsense. Что я имею в виду:
- с pfsense пингуется localhost;
- с pfsense lan адрес и любой адрес из его же локальной сети не пингуется, собственно потому и отвались некоторые сервисы, которые находятся в локальной сети: это доменный контроллер и прокси zabbix'а (повторюсь, при отключенном ipsec это все работает и работало на прежних версиях с включенном ipsec).
Прохождение пакета в pf? Ответ, например, тут https://forum.pfsense.org/index.php?topic=73670.0
По моим результатам получается, что я спрашиваю: "кто такой localhost?" - ответ pf: "Я!"
Вопрос:"кто такой по lan ip (настроен как статика на порту em0)" - ответ pf: "Не Я!", и отправляет его в ipsec-тоннель, т.к. его ip попадает в пространство 0.0.0.0/0.Да и собственно, да и если даже теоретически представить, что такой же ip есть в удаленной сети, то это не должно влиять, т.к. pf обязан понять что это адрес принадлежит также и ему. По ссылке выше есть схема, где есть блок условия "to me?", и он выше таблицы маршрутизации, и я совершенно согласен. что это правильно.
Я это все к чему - я не понимаю в чем может быть причина, когда я задал локальному интерфейсу ip, допустим, 10.0.0.1, а pf мой запрос по этому адресу (даже не только с компа локальной сети, но и через web (Diagnostics-Ping или Diagnostics-Command Promt), и из терминала) уходит в тоннель.
Уважаемый werter, я настроен позитивно - ни капли негатива если что :) попытался объяснить, что все по максимуму постарался проверить, а ехать переустанавливать неблизко, резервного канала и второго белого ip нет. Хочется выслушать идеи, если есть.
Что в таком случае можно проверить? Как я понимаю нужно смотреть на уровне ядра т.к. не проходит проверка принадлежности ip адреса к списку адресов, которые присвоены интерфейсам на pfsense.