Я установил L2TP / IPsec VPN с помощью OpenSwan и xl2tpd, используя параметр ppp «nodefaultroute». Виртуальный IP-адрес сервера установлен на 10.10.31.1, и он выделяет адреса в диапазоне 10.10.31.2-254. Это устанавливает связи PPP между 10.10.31.1 <-> 10.10.31.2 и т. Д., И это прекрасно работает - подключенные к VPN узлы могут связываться с сервером.
Как я могу настроить ссылку ppp, чтобы конец сервера выглядел как весь диапазон 10.10.0.0, а не только этот IP-адрес? Я надеюсь, что подключающиеся клиенты будут маршрутизировать любые запросы для этой подсети через интерфейс VPN, где сервер сможет их перехватить и действовать как шлюз. Если пойти в другом направлении, опция «proxyarp» позволит VPN-серверу перехватывать трафик обратно к VPN-клиентам.
Одно из очевидных решений - использовать VPN-сервер в качестве маршрута по умолчанию. Я бы предпочел не делать этого, чтобы через VPN проходил только трафик, специфичный для этой подсети. Это вообще возможно?
Как я и подозревал, проблема в том, что я немного болван. Если кто-то найдет этот вопрос и задастся тем же вопросом, вам следует знать вот что:
nodefaultroute не входит в конфигурацию вашего VPN-сервера. Это что-то для клиента PPP. Клиенты PPP несут ответственность за принятие решения о создании маршрута по умолчанию. Это флажок «Отправлять весь трафик» на iOS.
Ваш клиент PPP всегда будет создавать маршрут к удаленному шлюзу, а также маршрут для удаленной подсети. При условии, что на вашем VPN-сервере включена переадресация IP (/ proc / sys / net / ipv4 / ip_forward = 1 плюс соответствующие правила iptables в Linux), ваш клиент сможет отправлять трафик к хосты в удаленной подсети.
Вы должны указать proxyarp в файле ppp options.xl2tpd для хостов в локальной сети VPN-сервера, чтобы иметь возможность отправлять трафик обратно клиентам. Это создаст запись в таблице arp и включит параметр proxy_arp в ядре. Это позволяет серверу VPN принимать пакеты от имени клиентов VPN, используя свой собственный интерфейс Ethernet. Если вы не хотите этого делать или вам нужно использовать перекрестные маршрутизаторы, похоже, что размещение VPN-клиентов за NAT является популярным решением, хотя я сам этого не тестировал.
Используйте параметр ms-dns ppp, чтобы предоставить клиентам сервер имен, если они собираются использовать VPN в качестве маршрута по умолчанию. В противном случае iPad будет жаловаться, что он не подключен к Интернету.