У меня есть конфигурация StrongSWAN, основанная на тестовом примере trap-any
:
conn %default
ikelifetime=60m
keylife=20m
rekeymargin=3m
keyingtries=1
conn lan
right=%any
leftsubnet=fd12:3456:7890:abcd::/64
rightsubnet=fd12:3456:7890:abcd::/64
type=transport
authby=psk
auto=route
Это автоматически согласовывает SA с любой системой в моей локальной подсети, к которой я пытаюсь подключиться; в общем, он делает все правильно.
Однако, когда я многоадресно передаю всю свою подсеть:
ping6 -I fd12:3456:7890:abcd::1234 ff02::1
... я не только получаю ответы и устанавливаю связи безопасности с другими системами (ура!) , но у меня есть две отдельные ассоциации безопасности, сгенерированные для связи с самим локальным хостом , с fd12: 3456: 7890: abcd :: 1234
как инициатор и ответчик.
Моя первая мысль заключалась в том, чтобы избежать этого следующим образом:
conn local
type=passthrough
left=fd12:3456:7890:abcd::1234
right=fd12:3456:7890:abcd::1234
... но на самом деле это не предотвращает петлевые соединения.
Напротив, с:
conn local
type=passthrough
right=%any
rightsubnet=fd12:3456:7890:abcd::1234/128
] ... никакие ассоциации безопасности не устанавливаются вообще .
Как я могу избежать SA для локального трафика в этом режиме?
Извлеченные уроки:
leftsubnet
, так и rightsubnet
auto = route
для сквозного соединения
. Таким образом:
conn local
type=passthrough
right=%any
leftsubnet=fd12:3456:7890:abcd::1234/128
rightsubnet=fd12:3456:7890:abcd::1234/128
auto=route
Большое спасибо Терми за канал IRC #strongswan.