GRE-туннель между FreeBSD и Cisco

Материал из megapuper
Перейти к: навигация, поиск

Задача: соединить две удалённые локалки посредством простейшего туннеля. Имеем 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