LINUX.ORG.RU
ФорумAdmin

IPSec routing


0

1

Здравствуйте.
Возможно, какая-то типичная проблема.

Гейтвей. 2 внешних интерфейса: eth1, eth2. Настроен IPSec (tunnel), бегающий через вторичный интерфейс eth2, т.е. имеются записи

default via <provider1_gw_ip> dev eth1
default via <provider2_gw_ip> dev eth2 metric 1

Пингую из своей подсети удалённую. Вижу, что IPSec работает и расшифрованный icmp echo reply появляется на eth2, но в локалку (eth0) он (reply) не попадает.
Если eth2 сделать дефолтным (уронить eth1), то всё ок.

Ещё стоит упомянуть, что та сторона IPSec находится в разных подсетях с eth2. Т.е. присутствует

<ipsec_peer_ip> via <provider2_gw_ip> dev eth2

Файрволл приводить не буду. Думаю, он тут ни причём. NAT для ipsec-подсетей выключен.

Ответ на: комментарий от Cyril

Скажу, что eth1 - это на самом деле не ethernet, а ppp.

# Чтобы, если клиент снаружи обращается к сервисам, висящим на вторичном интерфейса, то ответ ему приходил с того же интерфейса.
$ ip rule
0:      from all lookup local 
32764:  from <if1_ip> lookup provider1 
32765:  from <if2_ip> lookup provider2
32766:  from all lookup main 
32767:  from all lookup default

$ ip route show table provider1
172.16.0.0 dev ppp0  scope link src <if1_ip>
default dev ppp0  scope link

$ ip route show table provider2
<provider2_net> dev eth1  scope link 
default via <provider1_gw> dev eth2

# main
$ ip route
172.16.5.1 dev ppp0  proto kernel  scope link  src <if2_ip> 
<provider2_net> dev eth1  proto kernel  scope link  src <if2_ip> 
<ipsec_peer_net> via <provider2_net> dev eth2
192.168.0.0/24 dev eth0  proto kernel  scope link  src 192.168.0.1 

$ cat /etc/ipsec-tools.conf
spdadd 192.168.0.0/24 192.168.139.0/24 any -P out ipsec
        esp/tunnel/<if2_ip>-<ipsec_peer_ip>/require;
spdadd 192.168.139.0/24 192.168.0.0/24 any -P in ipsec
        esp/tunnel/<ipsec_peer_ip>-<if2_ip>/require;

racoon приводить не буду: он тут ни причём.

markevichus ★★★
() автор топика
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.