У моїй домашній мережі (10.0.1.0/24) у мене є пристрої Mac і iOS (інші не мають значення). Клієнти локальної мережі отримують доступ до 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 та кабельний модем мають власний акумулятор, тому мережа залишається на багато годин після вимкнення живлення. Щоб клієнти LAN отримали доступ до 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