Неудача DNS Wireguard с двумя одновременно работающими пирами

Вопрос или проблема

Я хочу установить соединения Wireguard на mylaptop с network1 и network2 одновременно.

network1 и network2 находятся за межсетевыми экранами и имеют публичные доменные имена network1.org и network2.org согласно схеме ниже:

конфигурация сети и настройка wireguard

С mylaptop я могу установить одновременные соединения с network1 и network2. Как и планировалось, я могу разрешать имена хостов внутри network1:

ping somehost.domain1

работает корректно, но я не могу разрешить имена хостов внутри network2:

ping somehost.domain2

Тем не менее, я могу пинговать IP-адреса хостов в подсети network2, например: somehost.domain2:

ping 192.168.1.83

Стоит также отметить, что если я подключаюсь только к network1 или network2 (но не к обоим), то я могу разрешать имена хостов как и ожидалось:

ping somehost.domain1
ping somehost.domain2

Кто-нибудь знает, как исправить эту настройку, чтобы я мог разрешать имена хостов внутри как network1, так и network2?

Ответ или решение

Для начала, важно понимать, что проблема с разрешением DNS в вашем случае связана с конфликтами в конфигурации DNS-серверов, когда вы устанавливаете подключения к двум различным сетям одновременно.

Вам необходимо установить правильную конфигурацию DNS для того, чтобы одновременно использовать оба VPN-соединения, чтобы разрешать имена хостов из обеих сетей. Вот шаги, которые вы можете предпринять для решения проблемы:

  1. Проверьте настройки WireGuard: Убедитесь, что в конфигурациях ваших подключений к network1 и network2 указаны правильные DNS-серверы. Например, ваши конфигурации могут выглядеть следующим образом:

    [Interface]
    PrivateKey = <ваш_приватный_ключ>
    Address = 10.0.0.2/24
    DNS = 10.0.0.1 # DNS для network1
    
    [Peer]
    PublicKey = <публичный_ключ_network1>
    Endpoint = network1.org:51820
    AllowedIPs = 192.168.0.0/24
    
    [Interface]
    PrivateKey = <ваш_приватный_ключ>
    Address = 10.0.1.2/24
    DNS = 10.0.1.1 # DNS для network2
    
    [Peer]
    PublicKey = <публичный_ключ_network2>
    Endpoint = network2.org:51820
    AllowedIPs = 192.168.1.0/24

    Важно, чтобы DNS-серверы указанные в каждой конфигурации, соответствовали соответствующим сетям.

  2. Использование системного DNS: Можно попробовать использовать системный DNS на вашем устройстве, чтобы разрешить конфликты. Можете задать DNS-серверы из обеих сетей в системе, однако нужно будет настроить приоритеты так, чтобы системе было известно, какой DNS-сервер использовать в зависимости от трафика. Например, вы можете использовать файл /etc/resolv.conf для добавления обеих DNS-записей.

  3. Настройка маршрутизации: Убедитесь, что у вас правильно настроены маршруты для обеих сетей. Это позволит вашему компьютеру к маршрутизации пакетов через нужный интерфейс в зависимости от назначений. Важно проверить, что у вас нет конфликтующих маршрутов, которые могут перенаправлять запросы DNS в ненужное место.

  4. Использование split-DNS: Можно внедрить концепцию split-DNS, где DNS-запросы для доменов, относящихся к каждой сети, идут к соответствующему DNS-серверу. Это может потребовать дополнительной настройки вашего DNS-клиента. Например, используя dnsmasq, вы можете настроить сервер так, чтобы он перенаправлял запросы в зависимости от домена.

  5. Проверка конфликта IP-адресов: Убедитесь, что IP-адреса в обеих сетях не пересекаются между собой. Это может вызвать проблемы с маршрутизацией, когда DNS-запросы накладываются.

  6. Тестирование настроек: После внесения изменений обязательно протестируйте: используйте команды ping, dig и nslookup, чтобы удостовериться, что DNS-серверы корректно разрешают имена хостов. Например:

    nslookup somehost.domain1
    nslookup somehost.domain2

Если эти шаги были выполнены, но проблема все еще существует, рекомендуется проверить логи WireGuard и системные логи на предмет ошибок или конфликтов, которые могут помочь в диагностике проблемы.

Оцените материал
Добавить комментарий

Капча загружается...