Піднято IPSec тунель між двома хостами freebsd в інтернеті.
root@freebsd:/usr/local/etc/racoon # ifconfig gif1
gif1: flags=8051<UP,POINTOPOINT,RUNNING,MULTICAST> metric 0 mtu 1280
tunnel inet 109.201.232.120 --> 9.209.29.209
inet 172.16.1.5 --> 172.16.1.6 netmask 0xffffffff
options=1<ACCEPT_REV_ETHIP_VER>
Обмін пакетами між віддаленими внутрішніми мережами через тунель працює на ура!
Зараз на цих граничних хостах налаштовано quagga - сервіс ospf, але сусудскі (neighbord) відносини не встановлюються. Пакети на тунельних інтерфейсах кожного із маршрутизаторів анонсуються:
root@freebsd:/usr/local/etc/racoon # tcpdump -n -i gif1 proto ospf
tcpdump: verbose output suppressed, use -v or -vv for full protocol decode
listening on gif1, link-type NULL (BSD loopback), capture size 65535 bytes
19:14:43.636085 IP 172.16.1.5 > 224.0.0.5: OSPFv2, Hello, length 44
19:14:53.638069 IP 172.16.1.5 > 224.0.0.5: OSPFv2, Hello, length 44
Якщо глянути на другому кінці тунеля 172.16.1.5 --> 172.16.1.6:
root@lvho01srfs02:/home/andrian # tcpdump -n -i gif0 proto ospf
tcpdump: verbose output suppressed, use -v or -vv for full protocol decode
listening on gif0, link-type NULL (BSD loopback), capture size 65535 bytes
19:33:00.806475 IP 172.16.1.6 > 224.0.0.5: OSPFv2, Hello, length 44
19:33:10.807603 IP 172.16.1.6 > 224.0.0.5: OSPFv2, Hello, length 44
пакетів від маршрутизатора 172.16.1.5 - немає!
Питання: пакетів і не повинно бути, тому, що в правелах "spd" тунеля не прописано політик шифрування даних пакетів на зразок:
spdadd 172.16.1.5/32 224.0.0.5/32 any -P out ipsec esp/tunnel/109.201.232.120-9.209.29.209/require;
spdadd 224.0.0.5/32 172.16.1.6/32 any -P in ipsec esp/tunnel/9.209.29.209-109.201.232.120/require;
чи політику тут ні до чого, а гальмує щось інше?