Настройка GRE для роутеров на irzOS

#irzOS #роутеры #GRE #tunnel #IPSec #r0 #r2 #r10 #r50 #vpn

Туннель GRE – туннель, позволяющий настроить связность между двумя устройствами, IP адреса которых доступны друг другу, и настроить маршрутизацию, используя интерфейсы туннеля.

Данный вид туннеля не предполагает шифрования и может использоваться либо в закрытой сети, либо поверх зашифрованного канала.

Роутеры на базе irzOS поддерживают автоматическую настройку шифрования IPSec для туннелей GRE, однако совместимость гарантируется только между устройствами на базе irzOS.

Задача:

Построить туннель между двумя точками.

gre1
Схема 1. Схема сети

В данном примере роутеры выходят в интернет по интерфейсам с внешними адресами 200.1.1.1 и 200.1.1.2.

GRE туннели имеют адреса 10.0.0.1 и 10.0.0.2 из подсети 10.0.0.0/30, так как нам нужно лишь 2 адреса для связи точка-точка.

Решение:

  1. Перейдите в разделе /tunnel → gre в WEB или CLI интерфейсе irzOS.

  2. Нажмите Add и дайте название туннелю, например, GRE.

Интерфейс не может называться gre0 – это название зарезервировано для системных нужд!
  1. В открывшейся форме задайте параметры:

    • В поле Local IP выберите интерфейс, через который будет построен туннель.

    • В поле Remote IP укажите IP адрес удаленной стороны туннеля.

    • В поле Tunnel IP укажите IP адрес и маску, присваиваемые виртуальному интерфейсу туннеля.

    • В поле Key укажите идентификатор, позволяющий различать различные туннели, построенные от одного IP адреса. Если туннель лишь один – можно не указывать. Значение должно совпадать на обоих сторонах соответствующего туннеля

    • В поле Encryption выберите ipsec, если необходимо шифрование IPSec. Далее укажите ключ/пароль в поле Psk. Аналогичная настройка потребуется и на другой стороне и может быть затрудненной на устройствах других производителей. Совместимость гарантируется только между роутерами на базе irzOS.

  2. Нажмите Apply для применения введенных настроек.

Конфигурация на роутере R1

Назовем создаваемый туннель GRE. Интерфейс Wan в примере называется WAN.

gre3
Параметры туннеля

Поле

Значение

Local IP

WAN (выбирается из списка)

Remote IP

200.1.1.2 (задается пользователем)

Tunnel IP

10.0.0.1/30 (задается пользователем)

Key

100 (задается пользователем, необязательно для единственного туннеля GRE)

Encryption

none или ipsec (при выборе ipsec автоматически создаст необходимые настройки шифрования IPSec, аналогичная настройка должна быть на другом роутере irzOS)

Настройка в CLI

Войдите в CLI консоль роутера и используйте следующие команды:

/tunnel gre add name=GRE
    disabled -
    do-not-frag true
    dscp 0
    encryption none
    keepalive-delay -
    key 100
    local-ip WAN
    mtu 1476
    remote-ip 200.1.1.2
    ttl 64
    tunnel-ip 10.0.0.1/30
    apply
  /

Конфигурация на роутере R2

gre4
Параметры туннеля

Поле

Значение

Local IP

WAN (выбирается из списка)

Remote IP

200.1.1.1 (задается пользователем)

Tunnel IP

10.0.0.2/30 (задается пользователем)

Key

100 (задается пользователем, необязательно для единственного туннеля GRE)

Encryption

none или ipsec (при выборе ipsec автоматически создаст необходимые настройки шифрования IPSec, аналогичная настройка должна быть на другом роутере irzOS)

Настройка в CLI

Войдите в CLI консоль роутера и используйте следующие команды:

/tunnel gre add name=GRE
    disabled -
    do-not-frag true
    dscp 0
    encryption none
    keepalive-delay -
    key 100
    local-ip WAN
    mtu 1476
    remote-ip 200.1.1.1
    ttl 64
    tunnel-ip 10.0.0.2/30
    apply
  /

Файрволл

В случае использования шифрования ipsec роутер уже имеет предустановленные правила для файрволла, позволяющие ему создавать туннели GRE. Если шифрование не используется, то в разделе /firewall → filter создайте правило, разрешающее трафик протокола GRE, и поместите это правило выше правила, запрещающего трафик из зоны Wan.
gre5

Настройка в CLI

/firewall filter add chain=input
    action accept
    protocol gre
    src zone-wan
    reorder position=-1
    apply
/firewall filter status
/

Статусная информация

Связность установлена, IP адреса туннельных интерфейсов доступны и пингуются с противоположных сторон:

gre6
gre7

Настройка статических маршрутов

Настроим статические маршруты до локальных сетей противоположных сторон, используя интерфейсы GRE и их туннельные адреса как шлюзы.

Настройки статических маршрутов задаются в разделе /ip → route → list.

Настройка для роутера R1

gre8
gre9

Настройка для роутера R1 в CLI

/ip route list add dst-addr=192.168.3.0/24 interface=GRE
    disabled -
    gateway 10.0.0.2
    metric -
    src-addr -
    table main
    type unicast
    apply
/

Настройка для роутера R2

gre10
gre11

Настройка для роутера R2 в CLI

/ip route list add dst-addr=192.168.2.0/24 interface=GRE
    disabled -
    gateway 10.0.0.1
    metric -
    src-addr -
    table main
    type unicast
    apply
/

Проверка связности

Осуществляется с помощью инструмента Ping (/tools → ping):

gre12

Проверка в CLI

admin@Router[/]> /tools ping host=192.168.3.1
PING 192.168.3.1 (192.168.3.1) 56(84) bytes of data.
64 bytes from 192.168.3.1: icmp_req=1 ttl=64 time=1.18 ms
64 bytes from 192.168.3.1: icmp_req=2 ttl=64 time=0.715 ms
64 bytes from 192.168.3.1: icmp_req=3 ttl=64 time=0.703 ms
64 bytes from 192.168.3.1: icmp_req=4 ttl=64 time=0.649 ms
64 bytes from 192.168.3.1: icmp_req=5 ttl=64 time=0.652 ms
64 bytes from 192.168.3.1: icmp_req=6 ttl=64 time=0.733 ms
64 bytes from 192.168.3.1: icmp_req=7 ttl=64 time=0.651 ms
64 bytes from 192.168.3.1: icmp_req=8 ttl=64 time=0.792 ms
64 bytes from 192.168.3.1: icmp_req=9 ttl=64 time=0.695 ms
64 bytes from 192.168.3.1: icmp_req=10 ttl=64 time=0.731 ms

--- 192.168.3.1 ping statistics ---
10 packets transmitted, 10 received, 0% packet loss, time 15ms
rtt min/avg/max/mdev = 0.649/0.751/1.189/0.152 ms, ipg/ewma 1.771/0.852 ms

Задача выполнена.

Все настройки навсегда сохраняются в память роутера только после выполнения команды /system → config → commit или нажатия кнопки commit в web-интерфейсе.