В моей домашней сети (10.0.1.0/24) у меня есть Mac и устройства iOS (остальные не имеют значения). Клиенты LAN получают IPv4 и IPv6 (собственный) доступ через Airport Extreme (AEBS), подключенный к кабельному модему на Comcast (у меня нет лучшего выбора). Мне требуется VPN для доступа к некоторым рабочим ресурсам, и было бы удобно, если бы VPN "просто работала" на любом из имеющихся у меня экранов. Чтобы избежать управления VPN-клиентом на каждом устройстве, я запускаю OpenVPN на своем сервере (10.0.1.252).
После подключения к VPN на сервер добавляются типичные статические маршруты, и я включил переадресацию и NAT, поэтому трафик от $ private_lan -> <vpn_netblocks>
правильно NAT направляется по туннелю VPN (tun0). Мой DNS-рекурсор работает на этом сервере и знает, что нужно перенаправить определенные DNS-запросы на внутренние DNS-серверы. Все работает
Последний бит - информировать клиентов локальной сети о VPN. Их маршрут по умолчанию - AEBS (10.0.1.1). Это идеально, потому что у AEBS и кабельного модема есть собственная батарея, поэтому сеть не отключается через много часов после отключения питания. Чтобы клиенты ЛВС могли получить доступ к VPN, им необходимо изучить более конкретные маршруты, доступные на сервере. В Mac OS ручное добавление статических маршрутов работает следующим образом:
route add 10.7.0.0/16 10.0.1.252
Вопрос в том, как автоматически информировать устройства Mac и iOS об этих маршрутах. Я не могу добавить статические маршруты в AEBS (я был бы рад оказаться ошибочным!). Изменение маршрута IPv4 по умолчанию для указания на сервер - это мое последнее средство.
Я попытался добавить маршруты в dhcpd.conf как статические маршруты (код опции dhcp 121), как описано в RFC 3442. Вот соответствующие части моего dhcpd.conf:
# options for static routes
option rfc3442-classless-static-routes code 121 = array of integer 8;
option ms-classless-static-routes code 249 = array of integer 8;
subnet 10.0.1.0 netmask 255.255.255.0 {
option rfc3442-classless-static-routes 16, 10,7, 10,0,1,252;
option ms-classless-static-routes 16, 10,7, 10,0,1,252;
# needed b/c this overrides option routers
option rfc3442-classless-static-routes 0, 10,0,1,1;
option ms-classless-static-routes 0, 10,0,1,1;
}
Опции обслуживаются dhcpd, но в Mac OS X они игнорируются. Есть:
- Какой-то другой вариант DHCP, который работает?
- Если я настрою OSPF или RIP, будет ли он "просто работать" для устройств Mac и iOS?
- Что-то вроде протокола обнаружения соседей для IPv4?
Указатели на документацию, которая, как известно, работает, высоко ценится.
Обновить
- Добавлен dhcpd.conf, показывающий мой конфиг
- Добавлена ссылка на обсуждение в Apple, ссылаясь на отсутствие поддержки RFC 3442