Сегодня мы рассмотрим создание GRE-туннеля между ESR-200 и Mikrotik в GNS3.
В рамках этой статьи я не буду рассматривать, что такое GRE и зачем он нужен.
Тем кто не в курсе, что это такое, рекомендую вот эту статью и, видео что внутри, в них все очень подробно и доступно рассмотрено.
Обратите внимание – версия ESR-200-FSTEC не поддерживает IPSEC, поэтому для таких устройств я не рекомендую использовать GRE в открытых сетях, например, для связи сетей через Internet.
VPN поддерживается в Сервисных маршрутизаторах ESR.
В версиях Серисных криптомаршрутизаторов ESR-ST осуществлена поддержка алгоритмов шифрования по ГОСТ 28147-89, ГОСТ Р 34.12-2015.
Для примера возьмем две подсети:
172.16.200.0/28 и 172.16.200.16/28
Мы хотим соединить эти подсети GRE-туннелем, как показано на схеме выше.
Подключим к ESR-200 через порт gi1/0/1 к тестовой ЛВС.
Подключим в порт gi1/0/2 ноутбук, он у нас будет выполнять роль еще одной подсети, так как имеет смысл поднимать GRE только между двумя подсетями.
Назначим ноутбуку адрес:
172.16.200.17/28
ESR-200 назначим адрес:
172.16.200.252/28 на gi1/0/1
172.16.200.30/28 на gi1/0/2
Пропишем маршруты по умолчанию:
На ноутбуке шлюзом будет
172.16.200.30/28
На PC1 шлюзом будет
172.16.200.14/28
Для Mikrotik в GNS3 назначим адрес
172.16.100.253/28
Настроим ESR-200:
hostname esr101
clock timezone gmt +11
security zone LAN
description "LAN"
exit
security zone GRE1
description "GRE1"
exit
security zone LAN2
description " LAN2"
exit
object-group service SSH
description "SSH"
port-range 22
exit
object-group service TRACEROUTE
port-range 33434-33529
port-range 15121
exit
object-group network MYLAN
description "MYLAN"
ip prefix 172.16.1.0/24
exit
interface gigabitethernet 1/0/1
description "LAN"
security-zone LAN
ip address 172.16.1.101/24
ip address 172.16.200.252/28
exit
interface gigabitethernet 1/0/2
description "LAN2"
security-zone LAN2
ip address 172.16.200.30/28
exit
interface gigabitethernet 1/0/4
shutdown
exit
interface gigabitethernet 1/0/5
shutdown
exit
interface gigabitethernet 1/0/6
shutdown
exit
interface gigabitethernet 1/0/7
shutdown
exit
interface gigabitethernet 1/0/8
shutdown
exit
security zone-pair LAN self
rule 1
description "ICMP"
action permit
match protocol icmp
match source-address any
match destination-address any
enable
exit
rule 2
description "SSH"
action permit
match protocol tcp
match source-address MYLAN
match destination-address any
match source-port any
match destination-port SSH
enable
exit
exit
security zone-pair LAN LAN2
rule 1
description "ICMP"
action permit
match protocol icmp
match source-address any
match destination-address any
enable
exit
rule 100
description "TRACEROUTE"
action permit
match protocol udp
match source-address any
match destination-address any
match source-port any
match destination-port TRACEROUTE
enable
exit
exit
security zone-pair LAN2 self
rule 1
description "ICMP"
action permit
match protocol icmp
match source-address any
match destination-address any
enable
exit
exit
security zone-pair LAN2 LAN
rule 1
description "ICMP"
action permit
match protocol icmp
match source-address any
match destination-address any
enable
exit
rule 100
description "TRACEROUTE"
action permit
match protocol udp
match source-address any
match destination-address any
match source-port any
match destination-port TRACEROUTE
enable
exit
exit
ip route 0.0.0.0/0 172.16.200.253
ip ssh server
Настроим Mikrotik в GNS3:
/interface ethernet
set [ find default-name=ether1 ] disable-running-check=no
set [ find default-name=ether2 ] disable-running-check=no
/system identity set name=GW1
/ip address
add address=172.16.200.14/28 interface=ether2 network=172.16.200.0
add address=172.16.200.253/28 interface=ether1 network=172.16.200.240
/ip route add dst-address=172.16.200.16/28 gateway=172.16.200.252
Добавим в GNS3:
В результате у нас получиться такой проект GNS3:

Настроим PC1
ip 172.16.200.1/28 172.16.200.14
С ESR-200 Проверим доступность mikrotik
PING 172.16.200.253 (172.16.200.253) 56(84) bytes of data.
!!!!!
--- 172.16.200.253 ping statistics ---
5 packets transmitted, 5 received, 0% packet loss, time 4006ms
rtt min/avg/max/mdev = 2.475/3.128/5.443/1.160 ms
Проверим доступность PC1:
ping 172.16.200.1
PING 172.16.200.1 (172.16.200.1) 56(84) bytes of data.
!!!!!
--- 172.16.200.1 ping statistics ---
5 packets transmitted, 5 received, 0% packet loss, time 4005ms
rtt min/avg/max/mdev = 2.625/3.450/5.409/0.999 ms
Проверим доступность ноутбука:
Пинг:
Обмен пакетами с 172.16.200.1 по с 32 байтами данных:
Ответ от 172.16.200.1: число байт=32 время=3мс TTL=64
Ответ от 172.16.200.1: число байт=32 время=2мс TTL=64
Ответ от 172.16.200.1: число байт=32 время=3мс TTL=64
Ответ от 172.16.200.1: число байт=32 время=2мс TTL=64
Трассировка:
PC1> trace 172.16.200.17
1 172.16.200.14 0.355 ms 0.388 ms 0.419 ms
2 172.16.200.252 2.858 ms 2.607 ms 2.455 ms
3 172.16.200.17 2.426 ms 2.346 ms 2.422 ms
Проверим доступность PC1:
Пинг:
Обмен пакетами с 172.16.200.1 по с 32 байтами данных:
Ответ от 172.16.200.1: число байт=32 время<2мс TTL=64
Ответ от 172.16.200.1: число байт=32 время<3мс TTL=64
Ответ от 172.16.200.1: число байт=32 время<3мс TTL=64
Ответ от 172.16.200.1: число байт=32 время<3мс TTL=64
Трассировка:
1 <1 мс <1 мс <1 мс 172.16.200.30
2 4 мс 4 мс 4 мс 172.16.200.253
3 5 мс 6 мс 6 мс 172.16.200.1
Связь есть.
Настроим GRE туннель:
На ESR-200 пропишем:
security zone GRE1
description GRE1
exit
tunnel gre 1
security-zone GRE1
local address 172.16.200.252
remote address 172.16.200.253
ip address 172.16.99.1/30
enable
exit
security zone-pair GRE1 LAN2
rule 1
description "ICMP"
action permit
match protocol icmp
match source-address any
match destination-address any
enable
exit
rule 100
description "TRACEROUTE"
action permit
match protocol udp
match source-address any
match destination-address any
match source-port any
match destination-port TRACEROUTE
enable
exit
exit
security zone-pair LAN2 GRE1
rule 1
description "ICMP"
action permit
match protocol icmp
match source-address any
match destination-address any
enable
exit
rule 100
description "TRACEROUTE"
action permit
match protocol udp
match source-address any
match destination-address any
match source-port any
match destination-port TRACEROUTE
enable
exit
exit
do com
do con
На mikrotik пропишем:
interface gre add name=gre1 remote-address=172.16.200.252 local-address=172.16.200.253
/ip address add address=172.16.99.2/30 interface=gre1
Одним из важных пунктов настройки GRE является маршрутизация. Нам необходимо завернуть нужные подсети в GRE туннель.
На ESR-200 проверим трассировку до 172.16.200.1
esr:esr101# traceroute 172.16.200.1
traceroute to 172.16.200.1 (172.16.200.1), 30 hops max, 60 byte packets
1 172.16.200.253 (172.16.200.253) 3.153 ms 3.118 ms 3.139 ms
2 172.16.200.1 (172.16.200.1) 4.286 ms 4.355 ms 4.329 ms
Добавим маршрут:
ip route 172.16.200.0/28 172.16.99.2
do com
do con
Поверим трассировку еще раз:
esr:esr101(config)# do traceroute 172.16.200.1
traceroute to 172.16.200.1 (172.16.200.1), 30 hops max, 60 byte packets
1 * * *
2 * * *
3 * * *
4 * * *
5 * * *
6 * 172.16.200.1 (172.16.200.1) 11.661 ms 11.743 ms
Вроде успешно, попробуем еще раз:
esr:esr101(config)# do traceroute 172.16.200.1
traceroute to 172.16.200.1 (172.16.200.1), 30 hops max, 60 byte packets
1 172.16.99.2 (172.16.99.2) 3.076 ms 3.235 ms 3.354 ms
2 172.16.200.1 (172.16.200.1) 6.796 ms 7.149 ms 7.752 ms
Работает, теперь трафик на эту подсеть будет заворачиваться в GRE туннель.
Настроим микротик:
/ip route> print
Flags: X - disabled, A - active, D - dynamic,
C - connect, S - static, r - rip, b - bgp, o - ospf, m - mme,
B - blackhole, U - unreachable, P - prohibit
# DST-ADDRESS PREF-SRC GATEWAY DISTANCE
0 ADC 172.16.99.0/30 172.16.99.2 gre1 0
1 ADC 172.16.200.0/28 172.16.200.14 ether2 0
2 A S 172.16.200.16/28 172.16.200.252 1
3 ADC 172.16.200.240/28 172.16.200.253 ether1 0
Найдем 172.16.200.16/28 и удалим старый маршрут:
/ip route remove 2
Добавим маршрут через GRE-туннель:
/ip route add dst-address=172.16.200.16/28 gateway=172.16.99.1
Проверим с PC1
1 172.16.200.14 0.273 ms 0.273 ms 0.204 ms
2 172.16.99.1 2.872 ms 2.470 ms 2.357 ms
3 172.16.200.17 2.936 ms 2.536 ms 2.636 ms
На ноутбуке трафик тоже заворачивается в GRE-туннель.
Проверим статус туннеля на ESR-200
show tunnels status gre 1
Tunnel 'gre 1' status information:
Description: --
Administrative state: Up
Operational state: Up
Supports broadcast: No
Supports multicast: No
MTU: 1500
Проверим на микротике
/interface gre print
Flags: X - disabled, R - running
0 R name="gre1" mtu=auto actual-mtu=1476 local-address=172.16.200.253
remote-address=172.16.200.252 keepalive=10s,10 dscp=inherit
clamp-tcp-mss=yes dont-fragment=no allow-fast-path=yes
Туннель поднят и работает!
Заключение
Сегодня мы рассмотрели настройку GRE-туннеля между ESR-200 и Mikrotik, запущенным в GNS3.
Настроили сеть на ESR-200 и на Mikrotik, и проверили связь между двумя сетями.
Подняли GRE-туннель между двумя сетями и проверили, что трафик действительно заворачивается в туннель.