Настройка GRE для роутеров на irzOS
Туннель GRE - туннель, позволяющий настроить связность между двумя устройствами, IP адреса которых доступны друг другу, и настроить маршрутизацию, используя интерфейсы туннеля.
Данный вид туннеля не предполагает шифрования и может использоваться либо в закрытой сети, либо поверх зашифрованного канала.
Роутеры на базе irzOS поддерживают автоматическую настройку шифрования IPSec для туннелей GRE, однако совместимость гарантируется только между устройствами на базе irzOS.
Задача
Построить туннель между двумя точками.
В данном примере роутеры выходят в интернет по интерфейсам с внешними адресами 200.1.1.1 и 200.1.1.2.
GRE туннели имеют адреса 10.0.0.1 и 10.0.0.2 из подсети 10.0.0.0/30, так как нам нужно лишь 2 адреса для связи точка-точка.
Описания полей:
Disabled - включение или выключение туннеля без его удаления из системы
Local IP - интерфейс, через который будет построен туннель
Remote IP - IP адрес удаленной стороны туннеля
Tunnel IP - IP адрес, присвоенный интерфейсу туннеля
Key - идентификатор, позволяющий различать различные туннели, построенные от одного IP адреса. Если туннель лишь один - можно не указывать. Значение должно совпадать на обоих сторонах соответствующего туннеля
Encryption - включение или выключение шифрования IPSec для туннеля. При включении необходимо указать в поле Psk ключ\пароль для автоматической настройки шифрования
MTU - максимальный размер пакета для туннельного интерфейса. Без необходимости не следует изменять
TTL - максимальное время жизни пакета
DSCP - значение DSCP для пакетов в туннеле. По умолчанию - 0, допустимые значения: 0, 8, 16, 24, 32, 40, 48, 56
DF Flag - запрет на фрагментацию пакета в туннеле
Keepalive Delay - временной интервал в секундах, по истечении которого идет проверка соединения со встречной стороной
Keepalive Retries - максимальное количество неудачных проверок прежде, чем туннель будет считаться недействующим
Настройка
-
Перейдите в разделе /tunnel → gre в WEB или CLI интерфейсе iRZOS.
-
Кликните Add и дайте название туннелю, например, GRE чтобы начать настройку.
| Интерфейс не может называться «gre0» - это название зарезервировано для системных нужд! |
-
Выберите в поле Local IP интерфейс, через который будет работать туннель.
-
Укажите в поле Remote IP - внешний адрес удаленной стороны туннеля.
-
В поле Tunnel IP укажите IP адрес и маску, присваиваемые виртуальному интерфейсу туннеля.
-
Укажите в поле Key ключ туннеля, если их будет несколько.
-
Если необходимо шифрование IPSec, то в поле Encryption выберите ipsec и далее укажите ключ в поле psk. Аналогичная настройка потребуется и на другой стороне и может быть затрудненной на устройствах других производителей. Совместимость гарантируется только между роутерами на базе irzOS.
-
Нажмите Apply для применения введенных настроек.
Конфигурация на роутере R1
Назовем создаваемый туннель GRE. Интерфейс Wan в примере называется WAN.
Поле |
Значение |
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
Поле |
Значение |
Local IP |
WAN (выбирается из списка) |
Remote IP |
200.1.1.2 (задается пользователем) |
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.
В CLI это можно сделать следующим образом:
/firewall filter add chain=input
action accept
protocol gre
src zone-wan
reorder position=-1
apply
/firewall filter status
/
Статусная информация
Связность установлена, IP адреса туннельных интерфейсов доступны и пингуются с противоположных сторон:
Настройка статических маршрутов
Настроим статические маршруты до локальных сетей противоположных сторон, используя интерфейсы GRE и их туннельные адреса как шлюзы.
Настройки статических маршрутов задаются в разделе /ip — route — list.
Для роутера 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:
С помощью 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):
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! |