Вопрос или проблема
Мой брандмауэр имеет два шлюза. WAN_Wireguard, который выходит в Швеции, и мой локальный WAN. У меня настроен Unbound для пересылки определенных запросов на DNSMasq, который затем создает псевдоним IP-адресов для этих сайтов. Обычно это работает безупречно, и через правила брандмауэра маршрутизирует эти сайты через мой WAN, в то время как всё остальное по умолчанию выходит через WAN_Wireguard. Но иногда это не срабатывает.
Я все еще могу выходить через WAN, но время от времени я выхожу с IP адресом иностранного сайта. Если я выполняю tracepath
, то временами получаю маршрут, начинающийся в Швеции, а не в США. Обычно, подождав несколько минут или переподключив компьютер к сети, проблема решается. Я могу даже зайти на тот же сайт в разных браузерах и получить американский сайт на Mozilla, а иностранный на Brave. Как только я попадаю на американский сайт, он не переключается обратно до перезагрузки брандмауэра.
То, что я делаю, основывается на этом. Я делаю это, сохраняя конфигурацию в /usr/local/etc/dnsmasq.conf.d/dnsmasq-ipset.conf
ipset=/example-USA.com/clearnet
no-resolv
server=1.1.1.1
После получения IP я использую правило на моей локальной сети, чтобы отправить все IP из этого псевдонима через WAN, а все остальные через WAN_Wireguard.
У меня настроены два DoT DNS, один из которых используется исключительно для запросов, отправляемых на dnsmasq, в то время как другой просто используется Unbound. Кто-нибудь знает, что может быть причиной подключения брандмауэра к неверному сайту время от времени? Как я могу сделать это более стабильным?
Думаю, я мог бы изменить адреса иностранных сайтов, чтобы они указывали на эквиваленты в США. Но я не всегда перенаправляюсь на другое доменное имя. Как я могу сделать поведение более последовательным?
Ответ или решение
Ваша ситуация связана с использованием нескольких шлюзов и правил маршрутизации на платформе OPNsense, что является неисчерпаемым источником гибкости, но также может привести к непредсказуемому поведению, если настройки не будут строго определены и проверены. Давайте рассмотрим возможные причины возникновения проблемы и предложим пути ее решения.
Теория
Проблема, с которой вы сталкиваетесь, заключается в том, что некоторые запросы через ваш брандмауэр OPNsense вместо того, чтобы проходить через локальный WAN-шлюз, нерегулярно маршрутизируются через VPN-шлюз WireGuard, расположенный в Швеции. В результате сайты распознают ваш IP-адрес как исходящий из другого региона, что может влиять на их контент и функциональность.
Основная гипотеза заключается в том, что сбои в маршрутизации могут быть вызваны:
-
Конфигурациями DNS и маршрутизации: Возможно, правила, определяющие, как DNS-запросы обрабатываются и как трафик маршрутизируется, имеют несовершенства. Это может происходить из-за условий конфигурации, несовместимости или конфликтов между правилами.
-
Кэширование DNS: Кэширование DNS в вашем маршрутизаторе, браузере или на клиентских устройствах может приводить к некорректному разрешению IP. В разных браузерах могут использоваться разные кэши, что объясняет различия в поведении между ними.
-
Неопределенности в правилах перемаршрутизации: В случае, если одно и то же правило неоднозначно применимо к нескольким потокам трафика, это может привести к тому, что запросы идут по неправильному маршруту.
Пример (Как может возникнуть ваша проблема)
Представим, что вы сделали запрос для сайта, который ожидается маршрутизироваться через локальный WAN. Ваш OPNsense настроен так, чтобы использовать Unbound DNS для общего разрешения и DNSMasq для выделенных IP-адресов и направляет отдельные запросы к внешнему DNS-серверу. Однако, в какой-то момент DNSMasq может неверно обработать DNS-запрос или по ошибке кэшировать старый маршрут, который ведет через VPN-шлюз.
Применение (Рекомендации по улучшению ситуации)
-
Перепроверьте правила маршрутизации и приоритеты: Убедитесь, что правила, определяющие маршрутизацию через нужные шлюзы, точно совпадают с теми доменами и IP-адресами, которые вы хотите. Убедитесь, что они имеют высший приоритет по сравнению с другими применяющимися правилами.
-
Отключите кэширование DNS на клиентских устройствах и в OPNsense: Проверьте, не кэшируются ли где-либо неподходящие IP-адреса, и очистите этот кэш. Это можно сделать с помощью командного интерфейса на клиентских устройствах и перепроверки настроек Unbound и DNSMasq в OPNsense.
-
Рассмотрите возможность использования единого DNS-сервера: Вместо использования Unbound и DNSMasq в качестве отдельных решений, вы можете объединить их конфигурацию и задачи, чтобы уменьшить вероятность несогласованности и конфликта.
-
Протестируйте через временное отключение: Попробуйте временно отключить VPN-шлюз и проверьте, исчезает ли проблема. Это поможет изолировать источник проблемы, если она связана с перемаршрутизацией через неправильный шлюз.
-
Обновите и проверьте логи: Убедитесь, что ваша версия OPNsense самая актуальная, и проверьте журналы событий на наличие ошибок или предупреждений, которые могут указывать на причину неправильной маршрутизации.
-
Разделение трафика по IP-диапазонам: Убедитесь, что в ваших правилах четко определены диапазоны IP-адресов, которые должны использовать тот или иной шлюз, и избегайте перекрытия диапазонов.
Решив вышеописанные аспекты, вы сможете более точно консолидировать свои правила маршрутизации и DNS, тем самым повышая стабильность взаимодействия с сайтами через ваши шлюзы.