Добрый день. Появилась задача, поднять GRE-туннель, но в качестве интерфейса от которого будут посылаться пакеты использовать виртуальный tap0. Это необходимо, чтобы потом в настройках strogswan можно было задать "интересный" трафик для шифрования.

Т.е. пусть ip адрес для GRE 10.234.234.9/30 у пира соответственно 10.234.234.10/30.
IP адрес tap0 10.11.12.13/32 - это source для GRE (local ip), 10.11.12.14/32 - это destination для GRE (remote ip).

"ip tuntap add dev tap0 mode tap
ip address add 10.11.12.13/32 dev tap0"


1.1.1.1 - адрес внешнего интерфейса, 1.1.1.2 - маршрут по-умолчанию, есть статический маршрут чтобы ip:10.11.12.14/32 был доступен через 1.1.1.2.

Ожидаемый результат: при запуске пинга к 10.234.234.10 (GRE peer), на внешнем интерфейсе я должен видеть пакеты с адресом источника 10.11.12.13, адресом назначения 10.11.12.14 и типом протокола в IP-type 47, т.е. GRE.

Но на практике, на внешнем интерфейсе я вижу, что адрес источника, это адрес внешнего интерфейса 1.1.1.1 :

17:33:14.883724 IP (tos 0x0, ttl 255, id 7760, offset 0, flags [DF], proto GRE (47), length 108)
1.1.1.1 > 10.11.12.14: GREv0, Flags [none], length 88
IP (tos 0x0, ttl 64, id 62184, offset 0, flags [DF], proto ICMP (1), length 84)
10.234.234.9 > 10.234.234.10: ICMP echo request, id 25331, seq 1, length 64

NAT-а нет, если вдруг будет такая мысль.

Возможно кто-то с этого форума, мог бы помочь с этой задачей. Тестовый стенд собирался на Debian, там работало:

auto eth0
iface eth0 inet static
address 1.1.1.1
netmask 255.255.255.0

auto tap0
iface tap0 inet static
address 10.11.12.13
netmask 255.255.255.255
tunctl_user uml-net

auto gre0
iface gre0 inet static
address 10.234.234.9
netmask 255.255.255.252
up ifocnifg gre0 multicast
pre-up iptunnel add gre0 mode gre local 10.11.12.13 remote 10.11.12.14 ttl 255
pre-up modprobe ip_gre
mtu 1420
pointtopoint 10.234.234.10
post-down iptunnel del gre0

root@debian:~# ip r
default via 1.1.1.2 dev eth0
10.11.12.13/32 dev tap0 proto kernel scope link src 10.11.12.13 linkdown
10.234.234.8/30 dev gre0 proto kernel scope link src 10.234.234.9
10.11.12.14 via 1.1.1.2 dev eth0