strongswan не может отправить DNS-преобразователь в OSX Mountain Lion (разделенный туннель)
Я хотел бы настроить IPSec-ответчик (VPN-сервер) для настольных компьютеров и ноутбуков OSX.
Кажется, что все работает нормально, за исключением того, что я не могу заставить DNS-сервер использоваться для всей системы на инициаторе (VPN-клиент).
Я использую поддержку IKEv1 Харона в StrongSwan 5.0.4 с расширениями Unity, а машины OSX графически настраиваются с помощью "Cisco VPN" в сетевых настройках.
Я попытался изменить порядок обслуживания на клиенте, чтобы поставить VPN наверху, но это не помогло.
В scutils --dns
распознаватель отображается только как resolver #1
в DNS configuration (for scoped queries)
раздел, а не в первом разделе DNS configuration
,
Вот соответствующие файлы конфигурации:
/etc/ipsec.conf:
conn %default
ikelifetime=24h
keylife=1h
rekeymargin=10m
keyingtries=3
keyexchange=ikev1
left=%defaultroute
auto=add
conn main
leftfirewall=yes
leftsubnet=0.0.0.0/0
leftauth=psk
right=%any
rightauth=psk
rightauth2=xauth-pam
rightsourceip=172.17.0.0/22
/etc/strongswan.conf:
charon {
threads = 16
cisco_unity = yes
plugins {
attr {
dns = 172.16.0.23
split-include = 10.0.0.0/8, 172.16.0.23/32
split-exclude = 10.65.36/22
}
xauth-pam {
pam_service = ipsec
}
}
}
1 ответ
Пара комментариев к вашему конфигу:
Подсеть, для которой вы настроили
split-exclude
является недействительным. Наверное должно бытьsplit-exclude = 10.65.36.0/22
Если вы используете плагин Unity, вы должны настроить
leftsubnet=10.0.0.0/8, 172.16.0.23/32
вместо
split-include
вstrongswan.conf
, Это позволяет назначать разные подсети для каждого соединения.Аналогично, DNS-серверы могут быть назначены для каждого соединения через
rightdns
вариант.
Что касается вашего основного вопроса, Mac OS X устанавливает DNS-серверы с незаданной областью, только если весь трафик передается через VPN, то есть, если leftsubnet=0.0.0.0/0
настроен и клиент не получает никаких UNITY_SPLIT_INCLUDE
атрибутов.
Чтобы правильно разрешить имена хостов на вашем удаленном сайте, я предлагаю вам отправить клиенту нужный домен поиска через UNITY_DEF_DOMAIN
атрибут, например:
charon {
plugins {
attr {
28674 = strongswan.org
}
}
}
Этот атрибут занимает только одно доменное имя. Если требуется несколько доменов, UNITY_SPLITDNS_NAME
Атрибут можно использовать:
charon {
plugins {
attr {
28675 = strongswan.org hsr.ch
}
}
}
Он принимает разделенный пробелами список доменных имен, который отправляется клиенту как есть (приводит к распознавателю для каждого домена на клиенте).