Translation(s): Русский

(!) ?Обсуждения


Виртуальные IP-адреса


Оба, IKE-v1 и IKE-v2, понимают концепцию виртуальных IP-адресов. Это означает, что инициатор соединения на подключение выполняет запрос на получение дополнительного IP-адреса от пира для того, чтобы воспользоваться им как внутренним IP-адресом, внутри туннеля IPsec.

В IKE-v1 обмен назначением виртуальных IP-адресов происходит при помощи дополнительного режима настройки, а IKE-v2 уже имеет полноценную поддержку виртуальных IP-адресов в основе IKE-v2-стандарта при помощи полезной нагрузки (payload), содержащей информацию о настройках.

strongSwan в настоящее время поддерживает только один сценарий с полезной нагрузкой (payload), которая в себе содержит информацию о настройках, где IP-адрес назначается инициатору соединения на подключение, то есть roadwarrior'у (начиная с версии stongSWAN 5.0.1, уже можно назначать несколько IP-адресов из нескольких пулов). Обратное поддерживается протоколом, но такая ситуация случается крайне редко и, следовательно, не поддерживается.

Настройка инициатора (клиента)


Клиенту потребуется внести в свой клиентский "ipsec.conf" дополнительный параметр, называемый "leftsourceip"

 leftsourceip=%config

Под "%config" подразумевается выполнение запроса на получение IP-адреса от ответчика (VPN-сервера), "%config" представляет собой алиас для "%modecfg", доступного только для IKE-v1. Но можно также и указать IP-адрес явно ручками:

 leftsourceip=10.3.0.5

Этот параметр настройки включит IP-адрес "10.3.0.5" в payload-запрос, который содержит информацию о настройках. Однако, пир с обратной стороны (VPN-сервер) может вернуть другой IP-адрес, или может вернуть ни одного IP-адреса.

Начиная с версии strongSWAN 5.0.1, VPN-клиент может запросить несколько IP-адресов, перечисляя в "leftsourceip" через запятую сочетание "%config4", "%config6" или фиксированные IP-адреса. Если указывается "%config" (или один из его алиасов), то будет запрашиваться IP-адрес, входящий в семейство IP-протокола для туннеля, то есть будет запрашиваться IP-v4 или IP-v6. Обычный случай использования запроса виртуального IP-адреса из каждого семейства IP-протокола для dualstack-хостов:

 leftsourceip=%config4,%config6

Это также показано на тестовом сценарии - ikev2/ip-two-pools-v4v6

Параметр настройки "leftsubnet" не должен указываться при запросе виртуального IP-адреса, так как подсеть может не совпадать с полученный IP-адресом от VPN-сервера. Без параметра настройки "leftsubnet" подсеть сужается до назначенного VPN-сервером виртуального IP-адреса автоматически.

Настройка DNS-серверов

Before 5.0.1 the client couldn't explicitly request other attributes, but it may still have processed the DNS attribute. With current releases DNS servers may explicitly be requested with the leftdns option. Received DNS servers are handled, for instance, by the resolve plugin which writes them to /etc/resolv.conf, or an other file specified with the --with-resolve-conf configure directive. Implementation

On Linux, the virtual IP addresses will be installed on the outbound interface by default (may be changed, since 5.0.1, with the charon.install_virtual_ip_on option) and source routes will be installed in the routing table configured with charon.routing_table in strongswan.conf (or ./configured with --with-routing-table). The source routes force the use of the virtual IP when sending packets to the subnets in rightsubnet.

Настройка ответчика (сервера)


Настройка ответчика использует параметр настройки "rightsourceip"

    rightsourceip=10.3.0.6

Это будет выдавать клиенту IP-адрес 10.3.0.6, даже если инициатор запрашивал другой IP-адрес. Кроме того, ответчик может указать:

    rightsourceip=%config

для того, чтобы позволить клиенту выбирать IP-адреса по желанию. Это не рекомендуется в том случае, если вы не доверяете полностью VPN-клиенту.

Вы можете указать пул IP-адресов в нотации CIDR, т.н.

    rightsourceip=10.3.0.0/24

для выдачи IP-адресов из этого пула.

Вы также можете использовать внешний пул IP-адресов, при помощи реализации в виде плагина, где вы можете назначать имена пулам IP-адресов для того, чтобы их выбирать. Указание

    rightsourceip=%poolname

делает запрос при помощи зарегистрированных (то есть подключенных и рабочих) плагинов на получение IP-адреса из пула под именем "poolname". Также можно подставить имя другого подключения (раздела conn) в "ipsec.conf", в котором ранее уже определён пул в нотации CIDR для параметра "rightsourceip", и первый пул под именем этого подключения создастся неявно. Начиная с версии strongSWAN 5.0.1, несколько подключений (разделов conn) могут неявно создавать один и тот же пул в том случае, если эти подключения используют одни и те же значения параметра "rightsourceip" (ранее каждое подключение использовало свою собственную копию и везде, в каждом разделе conn, был указан один и тот же виртуальный IP-адрес, который раздавался разным VPN-клиентам).

Множество пулов можно указывать списком в значении параметра "rightsourceip" начиная с версии strongSWAN 5.0.1, т.н.

    rightsourceip=10.3.0.0/28,fec3::/120

как используется в тестовом сценарии - "ikev2/ip-two-pools-v4v6"

Настройка DNS-серверов

DNS-серверы и различные остальные атрибуты могут назначаться при помощи плагинов (т.н. плагином "attr") или, начиная с версии strongSWAN 5.0.1, напрямую в "ipsec.conf" при помощи добавления параметра настройки "rightdns"

База данных на backend


The ipsec pool utility allows to easily manage IP address pools and other attributes, like DNS servers, stored in an SQL database using the attr-sql plugin.

DHCP на backend


При помощи плагина "dhcp", ответчик (VPN-сервер) может запрашивать виртуальные IP-адреса для инициаторов (VPN-клиентов) прямо от DHCP-сервера при помощи широковещательных пакетов (broadcast), или от конкретно указанного DHCP-сервера.

Информация про сервера DNS/WINS дополнительно выдаётся VPN-клиентам в том случае, если DHCP-сервер предоставляет такую информацию.

Плагин используется в настройке "ipsec.conf" при помощи указания значения

    rightsourceip=%dhcp

При использовании плагина "dhcp" можно также использовать плагин "farp". Использование плагина "farp" позволит ответчику (VPN-серверу) подделать ответные ARP-пакеты от виртуальных IP-адресов, выданных VPN-клиентам. Это позволяет roadwarrior'у взаимодействовать с локальной сетью VPN-сервера как полноценный клиент локальной сети (LAN), в которой находится VPN-сервер.

RADIUS на backend


Since 5.0.3 the RADIUS plugin can provide virtual IP addresses assigned to RADIUS clients via the Framed-IP-Address attribute.

The plugin is used in ipsec.conf configurations by setting

Версии strongSWAN до 5.0.0


The description above covers the features of the charon daemon, which handled only IKEv2 connections in earlier releases. The pluto daemon that handled IKEv1 connections provided a similar feature set but not everything was supported (for instance, the dhcp and farp plugins).

The pluto daemon did not request virtual IP addresses from the responder if they were explicitly configured with leftsourceip. In that case, that is, if the virtual IP was not assigned by the responder with rightsourceip one may had to use the rightsubnetwithin directive (refer to this example).

The IKEv2 daemon charon supports address pools since version 4.2.1, the IKEv1 daemon pluto gained support for this in 4.4.0.