Пишу сюда, так как мне кажется, что тут больше шансов найти специалистов по ipsec. Если не прав - пните в правильный раздел, с удовольствием туда улечу.Суть вопроса в следующем: Есть два линуксбокса: на одном ядро 2.4 и FreeS/Wan, на втором ядро 2.6 и KAME.
У обоих линуксбоксов eth0 - внутренний интерфейс в приватную сеть, eth1 - внешний в интернет со статическим айпи.Приватная сеть 2.4 - 192.168.0.0/24
Приватная сеть 2.6 - 192.168.3.0/24Задача - связать приватные сети туннелем ipsec.
Пробую для начала связать без использования pluto и racoon, в режиме manual.
Конфиг на 2.4:
================
#/etc/ipsec.conf на 2.4
conn test
# left - это 2.4, то есть мы.
left=217.72.х.х
leftsubnet=192.168.0.0/24
leftnexthop=217.72.х.х
# right - это 2.6
right=217.72.у.у
rightsubnet=192.168.3.0/24
rightnexthop=217.72.у.у
#
spi=0x325
leftespspi=0x326
esp=3des-md5-96
#
espenckey= тут ключ
espauthkey= и тут ключ
================При изменениях конфига перезапускаю туннель комбинацией
ipsec manual --down test ; ipsec manual --up testКонфиг на 2.6
================
#/etc/ipsec.conf на 2.6
flush;
spdflush;add 217.72.х.х 217.72.у.у esp 0x325 -m tunnel
-E 3des-cbc тут ключ;
-A hmac-md5 и тут ключ;
add 217.72.у.у 217.72.х.х esp 0x326 -m tunnel
-E 3des-cbc тут ключ;
-A hmac-md5 и тут ключ;spdadd 192.168.0.0/24 192.168.3.0/24 any -P in ipsec esp/tunnel/217.72.х.х-217.72.у.у/require ;
spdadd 192.168.3.0/24 192.168.0.0/24 any -P out ipsec esp/tunnel/217.72.у.у-217.72.х.х/require ;
================перезапускаю командой
setkey -f /etc/ipsec.conf
Так вот: пускаю пинг из сети 192.168.0.0 в сеть 192.168.3.0 - пинг проходит и возвращается.
При пинге из сети 192.168.3.0 в 192.168.0.0 - пинг внутри ipsec приходит на роутер 2.4 и там теряется (смотрел tcpdump'ом).Что крутить, где смотреть?
Немного поковырял - понял, что проблема в другом месте.При пинге из сети 192.168.3.0 в 192.168.0.0 - пинг доходит до роутера 2.6, а в ipsec не залезает.
То есть проблема где-то в настройках ipsec на 2.6Вот конфиг:
#/etc/ipsec.conf на 2.6
flush;
spdflush;add 217.72.х.201 217.72.у.180 esp 0x325 -m tunnel
-E 3des-cbc тут ключ;
-A hmac-md5 и тут ключ;
add 217.72.у.180 217.72.х.201 esp 0x326 -m tunnel
-E 3des-cbc тут ключ;
-A hmac-md5 и тут ключ;spdadd 192.168.0.0/24 192.168.3.0/24 any -P in ipsec esp/tunnel/217.72.х.201-217.72.у.180/require ;
spdadd 192.168.3.0/24 192.168.0.0/24 any -P out ipsec esp/tunnel/217.72.у.180-217.72.х.201/require ;Вот вывод setkey -D:
217.72.y.180 217.72.x.201
esp mode=tunnel spi=1062(0x00000426) reqid=0(0x00000000)
E: 3des-cbc **Тут был ключ**
A: hmac-md5 **И тут был ключ**
seq=0x00000000 replay=0 flags=0x00000000 state=mature
created: Jul 9 12:59:18 2007 current: Jul 9 13:13:38 2007
diff: 860(s) hard: 0(s) soft: 0(s)
last: Jul 9 12:59:20 2007 hard: 0(s) soft: 0(s)
current: 72912(bytes) hard: 0(bytes) soft: 0(bytes)
allocated: 651 hard: 0 soft: 0
sadb_seq=1 pid=2322 refcnt=0
217.72.x.201 217.72.y.180
esp mode=tunnel spi=805(0x00000325) reqid=0(0x00000000)
E: 3des-cbc **Тут был ключ**
A: hmac-md5 **И тут был ключ**
seq=0x00000000 replay=0 flags=0x00000000 state=mature
created: Jul 9 12:59:18 2007 current: Jul 9 13:13:38 2007
diff: 860(s) hard: 0(s) soft: 0(s)
last: Jul 9 12:59:20 2007 hard: 0(s) soft: 0(s)
current: 39060(bytes) hard: 0(bytes) soft: 0(bytes)
allocated: 651 hard: 0 soft: 0
sadb_seq=0 pid=2322 refcnt=0Вот вывод setkey -DP:
192.168.0.0/24[any] 192.168.3.0/24[any] any
in prio def ipsec
esp/tunnel/217.72.x.201-217.72.y.180/require
created: Jul 9 12:59:18 2007 lastused:
lifetime: 0(s) validtime: 0(s)
spid=72 seq=1 pid=2323
refcnt=1
192.168.3.0/24[any] 192.168.0.0/24[any] any
out prio def ipsec
esp/tunnel/217.72.y.180-217.72.x.201/require
created: Jul 9 12:59:18 2007 lastused: Jul 9 13:16:16 2007
lifetime: 0(s) validtime: 0(s)
spid=89 seq=2 pid=2323
refcnt=3
192.168.0.0/24[any] 192.168.3.0/24[any] any
fwd prio def ipsec
esp/tunnel/217.72.x.201-217.72.y.180/require
created: Jul 9 12:59:18 2007 lastused: Jul 9 13:10:43 2007
lifetime: 0(s) validtime: 0(s)
spid=82 seq=0 pid=2323
refcnt=2
Всем спасибо, проблему решил самостоятельно.Проблема была в файрволле. Точнее в правиле маскарадинга пакетов, которое, как оказалось, отрабатывало перед входом в туннель. Ну а после маскарада айписечить было уже нечего, поскольку адрес отправителя в пакете поменялся.