Назад | Перейти на главную страницу

Создание избыточных IPSec-соединений с помощью OpenSwan

У меня есть экземпляр linux (netkey) с установленным openswan, экземпляр имеет два подключения к одному и тому же одноранговому узлу IPSec, который должен действовать как избыточные подключения. свойства обоих соединений одинаковы (за исключением IP-адресов однорангового узла и правильного идентификатора) ...

версия ipsec - Linux Openswan U2.6.37 / K3.2.0-65-generic (netkey)

conn con1
    dpdtimeout=25
    salifetime=28800s
    overlapip=yes
    ike=aes128-sha1
    rightsubnets=172.28.0.0/24
    dpddelay=30
    leftid=<linux box id>
    pfs=no
    rightid=<peer's id>
    leftsubnets=172.28.2.0/24
    phase2alg=aes128-sha1
    dpdaction=restart_by_peer
    auto=ignore
    forceencaps=yes
    keyingtries=3
    left=<linux ip>
    ikelifetime=86400s
    right=<peer's public IP A>

conn con2
    dpdtimeout=25
    salifetime=28800s
    overlapip=yes
    ike=aes128-sha1
    rightsubnets=172.28.0.0/24
    dpddelay=30
    leftid=<linux box id>
    pfs=no
    rightid=<peer's id>
    leftsubnets=172.28.2.0/24
    phase2alg=aes128-sha1
    dpdaction=restart_by_peer
    auto=ignore
    forceencaps=yes
    keyingtries=3
    left=<linux ip>
    ikelifetime=86400s
    right=<peer's public IP B>

Поскольку openswan устанавливает политику xfrm как часть согласования в быстром режиме, одно из подключений всегда будет давать сбой в QuickMode, поскольку Linux не позволяет использовать 2 политики xfrm с одинаковой классификацией (обратите внимание, что мои левая и правая подсети одинаковы).

Это само по себе не проблема.

Мой вопрос в том, как я могу использовать openswan для создания автоматического режима быстрого переключения при отказе между двумя подключениями, которые переключатся на второе соединение после сбоя первого (например, из-за срабатывания DPD).

Я пробовал использовать dpdaction = restart или restart_by_peer, но он не удаляет исходную политику xfrm при перезапуске соединения (это ошибка?) И, следовательно, не позволяет второму соединению сработать. И dpdaction = clean удалит xfrm, но не перезапускает соединение. есть ли рекомендуемый подход к настройке этих соединений, чтобы они действовали как избыточная пара?

Есть ли способ сказать Плутону не установить политики маршрутизации и передать установку политики xfrm второстепенному процессу, который будет управлять политиками xfrm.