LINUX.ORG.RU
ФорумAdmin

Помогите с маршрутизацией IPSEC

 


0

1

Всем привет! Помогите с маршрутизацией в ipsec. Схема такая: comp1 - proxy - comp2

«comp1» и «comp2» подключаются как ipsec-клиенты к ipsec-серверу «proxy». У них нет белых ip, а у сервера есть.

Использую Strongswan. Настроил VTI на всех трех компьютерах, роутинг такой:

«proxy»

root@ubuntu1604:~# ip a
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
    inet 127.0.0.1/8 scope host lo
       valid_lft forever preferred_lft forever
    inet 10.1.1.1/32 scope global lo
       valid_lft forever preferred_lft forever
2: enp0s5: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP group default qlen 1000
    link/ether 00:1c:42:53:83:34 brd ff:ff:ff:ff:ff:ff
    inet 10.2.0.47/24 brd 10.2.0.255 scope global enp0s5
       valid_lft forever preferred_lft forever
3: ip_vti0@NONE: <NOARP> mtu 1332 qdisc noop state DOWN group default qlen 1
    link/ipip 0.0.0.0 brd 0.0.0.0
7: ipsec1@NONE: <POINTOPOINT,NOARP,UP,LOWER_UP> mtu 1436 qdisc noqueue state UNKNOWN group default qlen 1
    link/ipip 10.2.0.47 peer 10.2.0.49
8: ipsec2@NONE: <POINTOPOINT,NOARP,UP,LOWER_UP> mtu 1436 qdisc noqueue state UNKNOWN group default qlen 1
    link/ipip 10.2.0.47 peer 10.2.0.48
root@ubuntu1604:~# ip r
default via 10.2.0.1 dev enp0s5 
10.2.0.0/24 dev enp0s5  proto kernel  scope link  src 10.2.0.47 
10.1.2.1 dev ipsec1  scope link 
10.1.3.1 dev ipsec2  scope link 

«comp1»

root@ubuntu1604:~# ip a
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
    inet 127.0.0.1/8 scope host lo
       valid_lft forever preferred_lft forever
2: enp0s5: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP group default qlen 1000
    link/ether 00:1c:42:86:b5:24 brd ff:ff:ff:ff:ff:ff
    inet 10.2.0.48/24 brd 10.2.0.255 scope global enp0s5
       valid_lft forever preferred_lft forever
3: ip_vti0@NONE: <NOARP> mtu 1332 qdisc noop state DOWN group default qlen 1
    link/ipip 0.0.0.0 brd 0.0.0.0
5: ipsec2@NONE: <POINTOPOINT,NOARP,UP,LOWER_UP> mtu 1436 qdisc noqueue state UNKNOWN group default qlen 1
    link/ipip 10.2.0.48 peer 10.2.0.47
    inet 10.1.3.1/32 scope global ipsec2
       valid_lft forever preferred_lft forever
root@ubuntu1604:~# ip r
default via 10.2.0.1 dev enp0s5 
10.2.0.0/24 dev enp0s5  proto kernel  scope link  src 10.2.0.48 
10.1.0.0/16 dev ipsec2  scope link

«comp2»

root@ubuntu1604:~# ip a
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
    inet 127.0.0.1/8 scope host lo
       valid_lft forever preferred_lft forever
2: enp0s5: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP group default qlen 1000
    link/ether 00:1c:42:ef:b6:53 brd ff:ff:ff:ff:ff:ff
    inet 10.2.0.49/24 brd 10.2.0.255 scope global enp0s5
       valid_lft forever preferred_lft forever
3: ip_vti0@NONE: <NOARP> mtu 1332 qdisc noop state DOWN group default qlen 1
    link/ipip 0.0.0.0 brd 0.0.0.0
6: ipsec2@NONE: <POINTOPOINT,NOARP,UP,LOWER_UP> mtu 1436 qdisc noqueue state UNKNOWN group default qlen 1
    link/ipip 10.2.0.49 peer 10.2.0.47
    inet 10.1.2.1/32 scope global ipsec2
       valid_lft forever preferred_lft forever
root@ubuntu1604:~# ip r
default via 10.2.0.1 dev enp0s5
10.2.0.0/24 dev enp0s5  proto kernel  scope link  src 10.2.0.49 
10.1.0.0/16 dev ipsec2  scope link 

Когда пингую 10.1.2.1 -> 10.1.3.1 — всё хорошо, tcpdump на «proxy» показывает, что пакеты идут через него на второй компьютер.

Проблема следующая: нужно пробросить интернет-трафик через второй компьютер, делаю так: на «comp2»:

ip route add 8.8.4.4/32 via 10.1.3.1
на «comp1» (который 10.1.3.1):
iptables -t nat -A POSTROUTING -s 10.1.0.0/16 ! -d 10.1.0.0/16 -j MASQUERADE

Дело в том, что, мониторя tcpdump'ом трафик на «proxy», трафик дальше сервера не уходит. Словно шлюз 10.1.3.1 в команде роутинга игнорится! Что может быть, как это исправить?