Найти в Дзене

VPN c динамической маршрутизацией (GRE Racoon OSPF) Alt Linux

Схема такой сети масштабируема от двух офисов до довольно большой сети крупного предприятия. Применение OSPF позволяет не прописывать маршруты вручную на каждом из маршрутизаторов сети удалённых филиалов, а также позволяет организовать несколько резервных каналов с автоматическим переключением. Начнём с простого — два филиала, на каждом в качестве маршрутизатора стоит Linux. 192.168.1.0/24 ------|Linux |-x.x.x.x~~~~~~~~~~~y.y.y.y- |Linux |-----192.168.2.0/24 Pоутеры (rtr) используют IP multicast для обмена сообщениями, поэтому необходимо использовать туннели GRE over IP. В ALT linux Ark 5 поддержка таких туннелей идёт из коробки. Конфиги: папка /etc/net/ifaces/gre1 (её нужно создать вручную, как и нижеприведенные файлы): /etc/net/ifaces/gre1/ipv4address: 172.16.4.2 peer 172.16.5.2 /etc/net/ifaces/gre1/options: TUNLOCAL=x.x.x.x
TUNREMOTE=y.y.y.y
TUNTYPE=gre
TYPE=iptun
TUNTTL=64
TUNMTU=1476
TUNOPTIONS='ttl 64'
DISABLED=no Настройки противоположной стороны идентичны, необходимо лишь поме
Оглавление

Исходные данные

Схема такой сети масштабируема от двух офисов до довольно большой сети крупного предприятия. Применение OSPF позволяет не прописывать маршруты вручную на каждом из маршрутизаторов сети удалённых филиалов, а также позволяет организовать несколько резервных каналов с автоматическим переключением. Начнём с простого — два филиала, на каждом в качестве маршрутизатора стоит Linux.

192.168.1.0/24 ------|Linux |-x.x.x.x~~~~~~~~~~~y.y.y.y- |Linux |-----192.168.2.0/24

Решение

Туннели

Pоутеры (rtr) используют IP multicast для обмена сообщениями, поэтому необходимо использовать туннели GRE over IP. В ALT linux Ark 5 поддержка таких туннелей идёт из коробки. Конфиги: папка /etc/net/ifaces/gre1 (её нужно создать вручную, как и нижеприведенные файлы): /etc/net/ifaces/gre1/ipv4address:

172.16.4.2 peer 172.16.5.2

/etc/net/ifaces/gre1/options:

TUNLOCAL=x.x.x.x
TUNREMOTE=y.y.y.y
TUNTYPE=gre
TYPE=iptun
TUNTTL=64
TUNMTU=1476
TUNOPTIONS='ttl 64'
DISABLED=no

Настройки противоположной стороны идентичны, необходимо лишь поменять местами IP адреса в TUNLOCAL и TUNREMOTE.

Разрешить 47 IP протокол (GRE) в ваших правилах фильтрации трафика:

iptables -I INPUT -i eth1 -p 47 -j ACCEPT
iptables -I OUTPUT -o eth1 -p 47 -j ACCEPT

на «внешних» интерфейсах обоих филиалов. Делаем

ifup gre1

на обеих сторонах. Если солнечная активность в день настройки минимальна, в системе появится сетевой интерфейс gre1, смотрим:

# ifconfig gre1
gre1 Link encap:UNSPEC HWaddr 3E-7A-38-81-8A-BF-00-05-00--00-00-00-00-00
inet addr:172.17.0.0 P-t-P:172.17.0.1 Mask:255.255.255.255
UP POINTOPOINT RUNNING NOARP MTU:1476 Metric:1
RX packets:0 errors:0 dropped:0 overruns:0 frame:0
TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:0
RX bytes:0 (0.0 b) TX bytes:0 (0.0 MiB)

и здесь:

# ip tu sh
gre0: gre/ip remote any local any ttl inherit nopmtudisc
gre1: gre/ip remote y.y.y.y local x.x.x.x ttl 64

Примечание: для нормальной работы OSPF необходимо явно задать значение TTL для строящегося туннеля (например, TUNOPTIONS='ttl 64'). По умолчанию TTL=inherit, что значит «наследовать значение TTL из вкладываемого в туннель пакета». В случае с OSPF, TTL=1, стало быть первый встречный маршрутизатор отбросит такой пакет, что нам совсем не нужно.

Проверка работы — пинг удалённой стороны туннельного интерфейса (в нашем случае это 172.17.0.1).

Если через этот туннель будет передаваться любая бизнес-информация, то её следует шифровать