Схема такая. Есть виртуалка есть хост, между ними виртуальный адаптер, адреса соответственно 192.168.57.2 -виртуалка, 192.168.57.1-хост.
Пытаюсь осовоить IPsec, ковыряюсь со strongswan.
Проблема такая посылаю пинг с хоста на виртуалку, виртуалка отвечает через туннель и повторно отвечает в открытую, посылаю пинг с виртуалки на хост, виртуалка шлет один запрос в открытую один через туннель.
Вот так это выглядит в wireshark
ping с виртуалки на хост:
ping -I enp0s9 192.168.57.1 -c 2
PING 192.168.57.1 (192.168.57.1) from 192.168.57.2 enp0s9: 56(84) bytes of data.
64 bytes from 192.168.57.1: icmp_seq=1 ttl=64 time=0.241 ms
64 bytes from 192.168.57.1: icmp_seq=2 ttl=64 time=0.294 ms
--- 192.168.57.1 ping statistics ---
2 packets transmitted, 2 received, 0% packet loss, time 1013ms
rtt min/avg/max/mdev = 0.241/0.267/0.294/0.031
ping c хоста на виртуалку:
ping 192.168.57.2 -c 2
PING 192.168.57.2 (192.168.57.2) 56(84) bytes of data.
64 bytes from 192.168.57.2: icmp_seq=1 ttl=64 time=0.451 ms
64 bytes from 192.168.57.2: icmp_seq=2 ttl=64 time=0.359 ms
--- 192.168.57.2 ping statistics ---
2 packets transmitted, 2 received, 0% packet loss, time 1019ms
rtt min/avg/max/mdev = 0.359/0.405/0.451/0.046 ms
Конфигурация swanctl на хосте:
cat swanctl.conf
#ike_v1_psk_connection_cld simple test configuration for ipsec client/server
# main configuration section
connections {
ike-v1-psk-connection {
version = 1
remote_addrs = 192.168.57.2,0.0.0.0/0
local-1 {
auth = psk
id = "server"
}
remote-1 {
auth = psk
}
children {
ike-server {
local_ts = 192.168.57.0/24
remote_ts = 192.168.57.0/24
mode = tunnel
# defalt start_action is none, that's more \
# suitable for server
}
}
}
}
# secrets section
secrets {
ike_pks_mari {
id-0 = "server"
id-2 = "mari-el"
secret = "super_pass"
}
ike_psk_server {
id = "server1"
secret = "secrete ingredient"
}
}
Конфигурация swanctl на виртуалке:
cat swanctl.conf
# client ipsec configuration
# main configuration section
connections {
ike-v1-client-conf {
version = 1
remote_addrs = 192.168.57.1 # remote address for server
local-1 {
auth = psk
id = "mari-el"
}
remote-1 {
auth = psk
}
children {
ike-1{
remote_ts = 192.168.57.0/24 // all trafic for server side
mode = tunnel
start_action = start
}
}
}
}
#secrets section
secrets {
ike-1 {
id-1 = "mari-el"
secret = "super_pass"
}
}
В обоих случаях используется strongswan 5.8.1 собранный из исходников по инструкции с гитхаба.