Страница 1 из 1

Странная проблема с инкапсуляцией gre в ipip (FreeBSD 8.2)

Добавлено: 2011-11-16 16:57:32
dynax60
Добрый день!

Какая-то странная проблема с инкапсуляцией gre в ipip.

Есть IPSec-соединение с определенной компанией:
X.X.X.X - мой IPSec-пир (реальник)
A.A.A.A - сервис реальным адресом (реальник)
Y.Y.Y.Y - их IPSec-пир (реальник)
Z.Z.Z.Z - их GRE шлюз (реальник)
10.0.0.0/24 - их терминальная сеть находящаяся за gre.

Задача: терминалы из их сети 10.0.0.0/24 должны ходить на адрес A.A.A.A через мой роутер X.X.X.X. Сеть свою они подают через IPSec-туннель, внутри которого gre с реальным адресом Z.Z.Z.Z (без туннельных p2p-адресов). Зачем делать такую мудрёную двойную инкапсуляцию — не спрашивайте, такие требования той компании.

И вроде бы все должно работать:

Код: Выделить всё

# ifconfig gre0
gre0: flags=9051<UP,POINTOPOINT,RUNNING,LINK0,MULTICAST> metric 0 mtu 1476
        tunnel inet X.X.X.X --> Y.Y.Y.Y
# ifconfig gif1
gif1: flags=8051<UP,POINTOPOINT,RUNNING,MULTICAST> metric 0 mtu 1280
        tunnel inet X.X.X.X --> Z.Z.Z.Z
        options=1<ACCEPT_REV_ETHIP_VER>
# netstat -rn | grep gre
10.0.0.0/24  gre0               US          0     4191   gre0
Так вот, вроде бы терминалы пытаются работать, но я заметил странный трафик:

Код: Выделить всё

10:27:58.028806 (authentic,confidential): SPI 0x0d640bcb: IP Y.Y.Y.Y > X.X.X.X: IP Y.Y.Y.Y > X.X.X.X: GREv0, length 48: IP 10.0.0.1.7337 > A.A.A.A.10008: Flags [S], seq 14633856, win 32120, options [[|tcp] (ipip-proto-4)
10:27:58.029544 (authentic,confidential): SPI 0x9e06a435: IP X.X.X.X > Y.Y.Y.Y: GREv0, length 48: IP A.A.A.A.10008 > 10.0.0.1.7337: Flags [S.], seq 1966363414, ack 14633857, win 8192, options [mss 1460], length 0
10:27:58.029552 (authentic,confidential): SPI 0x9e06a435: IP X.X.X.X > Y.Y.Y.Y: IP X.X.X.X > Y.Y.Y.Y: GREv0, length 48: IP A.A.A.A.10008 > 10.0.0.1.7337: Flags [S.], seq 1966363414, ack 14633857, win 8192, options [[|tcp] (ipip-proto-4)
10:27:58.628570 (authentic,confidential): SPI 0x0d640bcb: IP Y.Y.Y.Y > X.X.X.X: IP Y.Y.Y.Y > X.X.X.X: GREv0, length 44: IP 10.0.0.1.7337 > A.A.A.A.10008: Flags [.], ack 1, win 32120, length 0 (ipip-proto-4)
10:28:00.829033 (authentic,confidential): SPI 0x0d640bcb: IP Y.Y.Y.Y > X.X.X.X: IP Y.Y.Y.Y > X.X.X.X: GREv0, length 137: IP 10.0.0.1.7337 > A.A.A.A.9990: Flags [FSRP.W], seq 667402656:667402725, ack 2153916852, win 64615, options [[|tcp] (ipip-proto-4)
10:28:08.622620 (authentic,confidential): SPI 0x9e06a435: IP X.X.X.X > Y.Y.Y.Y: GREv0, length 44: IP A.A.A.A.10008 > 10.0.0.1.7337: Flags [F.], seq 1, ack 1, win 64240, length 0
10:28:08.622632 (authentic,confidential): SPI 0x9e06a435: IP X.X.X.X > Y.Y.Y.Y: IP X.X.X.X > Y.Y.Y.Y: GREv0, length 44: IP A.A.A.A.10008 > 10.0.0.1.7337: Flags [F.], seq 1, ack 1, win 64240, length 0 (ipip-proto-4)
10:28:09.808942 (authentic,confidential): SPI 0x0d640bcb: IP Y.Y.Y.Y > X.X.X.X: IP Y.Y.Y.Y > X.X.X.X: GREv0, length 44: IP 10.0.0.1.7337 > A.A.A.A.10008: Flags [.], ack 2, win 32120, length 0 (ipip-proto-4)
10:28:10.449265 (authentic,confidential): SPI 0x0d640bcb: IP Y.Y.Y.Y > X.X.X.X: IP Y.Y.Y.Y > X.X.X.X: GREv0, length 137: IP 10.0.0.1.7337 > A.A.A.A.10008: Flags [P.], ack 1, win 32120, length 93 (ipip-proto-4)
10:28:10.449672 (authentic,confidential): SPI 0x9e06a435: IP X.X.X.X > Y.Y.Y.Y: GREv0, length 44: IP A.A.A.A.10008 > 10.0.0.1.7337: Flags [R.], seq 2, ack 94, win 0, length 0
10:28:10.449679 (authentic,confidential): SPI 0x9e06a435: IP X.X.X.X > Y.Y.Y.Y: IP X.X.X.X > Y.Y.Y.Y: GREv0, length 44: IP A.A.A.A.10008 > 10.0.0.1.7337: Flags [R.], seq 2, ack 94, win 0, length 0 (ipip-proto-4)
Не понятно почему сначала gre-пакет с ответом от A.A.A.A не инкапсулируется в ipip и отправляется напрямую на Z.Z.Z.Z, а следом за ним пакет с тем же ack-ом, но уже нормально инкапсулируется в ipip и отправляется на IPSec-пир Y.Y.Y.Y (по той схеме как надо). Где я накосячил или это нормально? :( FreeBSD 8.2.

Re: Странная проблема с инкапсуляцией gre в ipip (FreeBSD 8.

Добавлено: 2012-02-26 21:09:07
Alex Keda
картинку надо
непонятно ничё