GRE-туннель между FreeBSD и Cisco
Задача: соединить две удалённые локалки посредством простейшего туннеля. Имеем FreeBSD 9.1 и Cisco 1841
Во фре:
Проверяем подгружен ли модуль:
# kldstat -v | grep gre 5 1 0xcaacd000 4000 if_gre.ko (/boot/kernel/if_gre.ko) 529 if_gre
Если нет загружаем руками(у меня модуль подгружался при создании gre0 интерфейса):
# kldload if_gre.ko
Далее:
# ifconfig gre0 create # ifconfig gre0 10.10.30.2 10.10.30.1 netmask 255.255.255.0 # ifconfig gre0 tunnel 85.233.115.11 89.113.51.18
- 10.10.30.2 - ипишка туннеля на стороне фри
- 10.10.30.1 - ипишка туннеля на стороне cisco
- 85.233.115.11 - реальник на стороне фри
- 89.113.51.18 - реальник на стороне cisco
# ifconfig gre0: flags=9051<UP,POINTOPOINT,RUNNING,LINK0,MULTICAST> metric 0 mtu 1476 tunnel inet 85.233.115.11 --> 89.113.51.18 inet 10.10.30.2 --> 10.10.30.1 netmask 0xffffff00 inet6 fe80::250:56ff:fe90:d3b%gre0 prefixlen 64 scopeid 0x4 nd6 options=21<PERFORMNUD,AUTO_LINKLOCAL>
На cisco:
interface Tunnel1 description glazik ip address 10.10.30.1 255.255.255.252 tunnel source 89.113.51.18 tunnel destination 85.233.115.11
Проверяем доступность туннеля с фри:
# ping 10.10.30.1 PING 10.10.30.1 (10.10.30.1): 56 data bytes 64 bytes from 10.10.30.1: icmp_seq=0 ttl=255 time=37.448 ms 64 bytes from 10.10.30.1: icmp_seq=1 ttl=255 time=38.254 ms 64 bytes from 10.10.30.1: icmp_seq=2 ttl=255 time=37.219 ms
Чтобы всё это работало после перезагрузки, в /usr/local/etc/rc.d/
создаём скрипт ifup_gre0.sh, права 555(туда же пихаем маршруты к сетям):
#!/bin/sh sleep 2 kldload /boot/kernel/if_gre.ko ifconfig gre0 create ifconfig gre0 tunnel 85.233.115.11 89.113.51.18 ifconfig gre0 10.10.30.2 10.10.30.1 netmask 255.255.255.0 ifconfig gre0 up route add 192.168.2.0/24 10.10.30.1