GRE — пример настройки и описание
GRE (Generic Routing Encapsulation) – протокол инкапсуляции, который широко применяется как сам по себе, так и в совокупности с IPSec для создания туннелей. Перед прочтением данной статьи рекомендуется ознакомиться со статьёй «Принципы организации VPN».
В этой статье мы будем настраивать GRE туннель. Сам по себе GRE не обеспечивает никакой безопасности передаваемых данных – это site-to-site VPN туннель в чистом виде. Используется обычно такой туннель, когда есть специфичные задачи, связанные с маршрутизацией и нет требований к безопасности. Не стоит забывать, что чистый GRE туннель – не нагружает оборудование, а нагрузка при шифровании большого объёма данных весьма существенна.
Протокол GRE инкапсулируется напрямую в IP, минуя TCP или UDP, в IP пакете есть специальное поле «Protocol type», в котором содержится число, обозначающее протокол, инкапсулированный в данный IP пакет, для GRE protocol type равен 47. В связи с этим, если в сети есть GRE туннели, то стоит внимательно относиться к написанию расширенных списков контроля доступа (ACL), так как permit tcp any any и permit udp any any приведут к запрету на GRE из-за того, что он инкапсулируется напрямую в пакет, надо писать либо permit ip any any либо permit gre any any.
Схема инкапсуляции GRE выглядит следующим образом:

Как видно, IP инкапсулируется в GRE, который инкапсулируется в IP. При этом заголовок GRE и заголовок внешнего IP пакета добавляют 24 байта, соответственно, уменьшая размер пакета на эту величину. В данном примере мы настраиваем IPv4 в GRE в IPv4, тем не менее, GRE может успешно работать с другими инкапсулируемыми и транспортными протоколами, например, IPv6.
Рассмотрим работающую топологию. Есть две локальный сети: LAN1 за маршрутизатором R1 с адресацией 192.168.0.0/24 и LAN2 – за маршрутизатором R3, с адресацией 192.168.1.0/24. В каждой сети есть по одному компьютеру. Между маршрутизаторами есть сети 1.0.0.0/8 и 2.0.0.0/8, а также маршрутизатор R2 – это в нашем примере интернет. Маршрутизация для простоты настроена с помощью протокола RIP.

Выполним трассировку с компьютера PC1 до компьютера PC2:
Tracing route to 192.168.1.2 over a maximum of 30 hops: 1 0 ms 0 ms 0 ms 192.168.0.1 2 0 ms 0 ms 0 ms 1.1.1.2 3 0 ms 0 ms 0 ms 2.2.2.2 4 1 ms 0 ms 0 ms 192.168.1.2
Как видно, пакет проходит через все маршрутизаторы последовательно, вплоть до компьютера адресата. Теперь создадим GRE туннель между R1 и R3 со внутренней адресацией 10.10.10.0/24.
R1(config)#interface tunnel 0 R1(config-if)# %LINK-5-CHANGED: Interface Tunnel0, changed state to up R1(config-if)#tunnel mode gre ip R1(config-if)#ip address 10.10.10.1 255.255.255.0 R1(config-if)#tunnel source FastEthernet0/1 R1(config-if)#tunnel destination 2.2.2.2 R1(config-if)# %LINEPROTO-5-UPDOWN: Line protocol on Interface Tunnel0, changed state to up R1(config-if)#exit
Мы создали интерфейс Tunnel0, в нём указали с помощью ip address внутреннюю адресацию туннеля – тот есть это адреса инкапсулированного IP, а с помощью команд tunnel source и tunnel destination мы указали параметры транспортного протокола IP (внешнего). У нас появилась новая сеть, которая виртуально соединяет напрямую два маршрутизатора R1 и R3 (без лишнего хопа на R2). Настроим вторую сторону туннеля – на R3. Для примера создадим интерфейс Tunnel99:
R3(config)#interface tunnel 99 R3(config-if)# %LINK-5-CHANGED: Interface Tunnel99, changed state to up R3(config-if)#tunnel mode gre ip R3(config-if)#ip address 10.10.10.2 255.255.255.0 R3(config-if)#tunnel source FastEthernet0/0 R3(config-if)#tunnel destination 1.1.1.1 R3(config-if)# %LINEPROTO-5-UPDOWN: Line protocol on Interface Tunnel99, changed state to up R3(config-if)#exit
Теперь выполним трассировку с маршрутизатора R1 противоположного конца туннеля – на R3:
R1#traceroute 10.10.10.2 Type escape sequence to abort. Tracing the route to 10.10.10.2 1 10.10.10.2 1 msec 0 msec 0 msec
Как видно, трассировка проходит внутри туннеля и мы не видим лишнего хопа в виде R2. Посмотрим таблицу маршрутизации на R1:
R1#show ip route Codes: C - connected, S - static, I - IGRP, R - RIP, M - mobile, B - BGP D - EIGRP, EX - EIGRP external, O - OSPF, IA - OSPF inter area N1 - OSPF NSSA external type 1, N2 - OSPF NSSA external type 2 E1 - OSPF external type 1, E2 - OSPF external type 2, E - EGP i - IS-IS, L1 - IS-IS level-1, L2 - IS-IS level-2, ia - IS-IS inter area * - candidate default, U - per-user static route, o - ODR P - periodic downloaded static route Gateway of last resort is not set C 1.0.0.0/8 is directly connected, FastEthernet0/1 R 2.0.0.0/8 [120/1] via 1.1.1.2, 00:00:12, FastEthernet0/1 10.0.0.0/24 is subnetted, 1 subnets C 10.10.10.0 is directly connected, Tunnel0 C 192.168.0.0/24 is directly connected, FastEthernet0/0 R 192.168.1.0/24 [120/2] via 1.1.1.2, 00:00:12, FastEthernet0/1
Видно, что новая сеть отображается, как непосредственно подключенная к интерфейсу Tunnel 0. Если сейчас попробовать сделать трассировку с компьютера 1 до компьютера 2, то она не пойдёт по туннелю. Это связано с тем, что на маршрутизаторе R1 нет соответствующего маршрута. Просматривая свою таблицу маршрутизации, R1 отправит пакеты на PC2 по маршруту «R 192.168.1.0/24 [120/2] via 1.1.1.2, 00:00:12, FastEthernet0/1», то есть как и раньше – в обход туннеля. Чтобы исправить ситуацию пропишем с двух сторон на R1 и R3 статические маршруты, в которых явно укажем, что в сети 192.168.0.0 и 192.168.1.0 надо доставлять трафик через туннель. На R1:
R1(config)#ip route 192.168.1.0 255.255.255.0 10.10.10.2
R3(config)#ip route 192.168.0.0 255.255.255.0 10.10.10.1 R3#show ip route Codes: C - connected, S - static, I - IGRP, R - RIP, M - mobile, B - BGP D - EIGRP, EX - EIGRP external, O - OSPF, IA - OSPF inter area N1 - OSPF NSSA external type 1, N2 - OSPF NSSA external type 2 E1 - OSPF external type 1, E2 - OSPF external type 2, E - EGP i - IS-IS, L1 - IS-IS level-1, L2 - IS-IS level-2, ia - IS-IS inter area * - candidate default, U - per-user static route, o - ODR P - periodic downloaded static route Gateway of last resort is not set R 1.0.0.0/8 [120/1] via 2.2.2.1, 00:00:05, FastEthernet0/0 C 2.0.0.0/8 is directly connected, FastEthernet0/0 10.0.0.0/24 is subnetted, 1 subnets C 10.10.10.0 is directly connected, Tunnel99 S 192.168.0.0/24 [1/0] via 10.10.10.1 C 192.168.1.0/24 is directly connected, FastEthernet0/1
Теперь, как видно из таблицы маршрутизации, трафик пойдёт через GRE туннель. Проверим это, выполнив трассировку с PC1 до PC2, как и в начале этой статьи:
tracert 192.168.1.2 Tracing route to 192.168.1.2 over a maximum of 30 hops: 1 0 ms 0 ms 0 ms 192.168.0.1 2 0 ms 0 ms 0 ms 10.10.10.2 3 1 ms 0 ms 1 ms 192.168.1.2 Trace complete.
Как видно, из результатов трассировки, теперь на пути всего два хопа: 192.168.0.1 – R1, шлюз PC1, который заворачивает трафик в туннель. Далее, транспортный (внешний) IP пакет с GRE внутри проходит на R2, затем на R3 и только тут из пакета декапсулируется внутренний IP – это и есть наш второй хоп – 10.10.10.2, затем пакет по локальной сети идёт адресату – на 192.168.1.2, если добавить в интернете ещё несколько маршрутизаторов, то трассировка не изменится, в ней по-прежнему будет два хопа до адресата. Пример конфигурации доступен в формате pkt.
Записки IT специалиста
Одна из наиболее часто решаемых системным администратором задач — объединение нескольких сетей в единое пространство, для обеспечения совместной работы с общими ресурсами (site-to-site). Обычно для этих целей используется VPN, тип которого большой роли не играет. Но именно для данной задачи более предпочтительно использовать IPIP или GRE-туннели, особенно если вам требуется хорошая пропускная способность соединения. В данной статье мы расскажем об особенностях настройки и использования данного вида подключений.
Научиться настраивать MikroTik с нуля или систематизировать уже имеющиеся знания можно на углубленном курсе по администрированию MikroTik. Автор курса, сертифицированный тренер MikroTik Дмитрий Скоромнов, лично проверяет лабораторные работы и контролирует прогресс каждого своего студента. В три раза больше информации, чем в вендорской программе MTCNA, более 20 часов практики и доступ навсегда.
Сначала коротко о протоколах. GRE (Generic Routing Encapsulation — общая инкапсуляция маршрутов) — протокол инкапсуляции, разработан компанией Cisco и предназначен для инкапсуляции пакетов сетевого уровня (L3) в IP-пакеты. IPIP (IP Encapsulation within IP — инкапсуляция IP в IP) во многом похож на GRE, но работает только с IPv4-трафиком. Наиболее популярным и используемым протоколом является GRE, его поддержка присутствует во всех современных ОС и сетевом оборудовании. Mikrotik поддерживает оба вида туннелей.
Туннели, созданные с помощью данных протоколов, не имеют никаких механизмов обеспечения безопасности (шифрование, аутентификация), поэтому в чистом виде они практически не используются. Для обеспечения нужного уровня безопасности используется IPsec, поверх которого уже разворачивается GRE или IPIP-туннель ( GRE over IPsec, IPIP over IPsec). Далее, говоря о данном типе туннелей мы будем подразумевать ввиду именно их.
Еще одна особенность указанных протоколов — они работают без сохранения состояния соединения (stateless) и понять в каком состоянии находится туннель невозможно. Мы можем только настроить обе стороны и проверить передачу данных между ними. Кроме очевидных минусов такое решение имеет и свои плюсы, GRE или IPIP-интерфейсы являются статичными и присутствуют в системе вне зависимости от состояния туннелей, что облегчает настройку маршрутизации. А состояние туннеля позволяют контролировать механизмы RouterOS, которые с заданной периодичностью умеют проверять доступность его второго конца.
Ни GRE, ни IPIP не используют порты, поэтому они не могут преодолеть NAT, это требует от обоих узлов иметь выделенные IP-адреса или находиться в одной сети. Проблема NAT частично снимается при использовании IPsec, за счет использования протокола NAT-T, но требование выделенных адресов узлов остается. Кроме того, по этой причине вы не сможете установить более одного GRE или IPIP-соединения между узлами.
Итак, подведем коротко итог: для использования GRE или IPIP-туннелей вам потребуются выделенные IP-адреса с обоих сторон и для защиты передаваемых данных обязательно использовать IPsec. Что касается оборудования, то предпочтительно использовать роутеры с аппаратной поддержкой шифрования — hEX, RB3011/4011 и все остальные модели на базе процессоров ARM. В этом случае вполне достижима пропускная способность туннеля на уровне 300-400 МБит/с. На остальных моделях роутеров (MIPSBE, SMIPS) вы получите не более 30-40 МБит/с. Подробнее об этом вы можете прочитать здесь.
Далее мы будем придерживаться следующей схемы:
![]()
Согласно которой у нас имеются две условные сети: A — 192.168.111.0/24, внешний IP-адрес 198.51.100.1 и B — 192.168.222.0/24, внешний адрес 203.0.113.1. Между ними мы будем поднимать GRE или IPIP-туннель с внутренними адресами 10.10.10.1 и 10.10.10.2.
Настройка GRE-туннеля
Открываем Winbox и переходим в Interfaces — Interface где добавляем новый интерфейс с типом GRE Tunnel, в открывшемся окне заполняем поля: Local Address — внешний IP-адрес этого роутера, Remote Address — внешний IP-адрес противоположного роутера, IPsec Secret — общий ключ IPsec, рекомендуется использовать длинную случайную строку из цифр, букв в обоих регистрах и спецсимволов. Также обязательно снимите флаг Allow Fast Path.

В терминале это можно выполнить командой:
/interface gre
add allow-fast-path=no ipsec-secret=MyIP$ecret123 local-address=198.51.100.1 name=gre-tunnel1 remote-address=203.0.113.1
Полностью аналогичную настройку выполняем и на втором роутере, только меняем местами Local Address и Remote Address, после чего туннель должен перейти в рабочее состояние. За отслеживание состояние туннеля отвечает параметр Keepalive, по умолчанию он предполагает десять попыток с интервалов в 10 секунд, если за это время с противоположной стороны не будет получен ответ, то туннель будет считаться неработоспособным.
Важный момент связан с настройками IPsec, RouterOS использует для туннелей настройки по умолчанию и нет возможности это переопределить, поэтому на обоих роутерах профили default в IP — IPsec — Proposals и Profiles должны иметь одинаковые настройки.
![]()
В противном случае вы будете получать ошибку при согласовании параметров IPsec:
![]()
Если все сделано правильно, то в Interfaces — Interface напротив туннеля появится флаг R — running, что означает, что туннель находится в рабочем состоянии.
Настройка IPIP-туннеля
Настройка данного вида туннеля ничем не отличается от GRE, также переходим в Interfaces — Interface и добавляем новый интерфейс с типом IP Tunnel. Указываем все те же параметры: Local Address — внешний IP-адрес этого роутера, Remote Address — внешний IP-адрес противоположного роутера, IPsec Secret — общий ключ IPsec, также снимаем флаг Allow Fast Path.

В терминале это же действие:
/interface ipip
add allow-fast-path=no ipsec-secret=MyIP$ecret123 local-address=198.51.100.1 name=ipip-tunnel1 remote-address=203.0.113.1
Затем дублируем настройки на второй роутер, заменяя местами Local Address и Remote Address, также учитываем все то, что было сказано выше о настройках IPsec.
Настройка маршрутизации
Итак, туннель поднят, теперь нужно пустить в него трафик между сетями. Прежде всего присвоим адреса туннельным интерфейсам. Согласно схеме со стороны роутера А это будет 10.10.10.1, а со стороны роутера B — 10.10.10.2. Переходим в IP — Addresses и добавляем новый адрес: Address — 10.10.10.1/24 — именно так, с указанием префикса (/24, что соответствует маске 255.255.255.0), в противном случае сеть у вас работать не будет. В поле Interface указываем имя интерфейса GRE или IPIP-туннеля.

В терминале для этого же действия выполните команду:
/ip address
add address=10.10.10.1/24 interface=gre-tunnel1 network=10.10.10.0
Где вместо interface=gre-tunnel1 укажите имя собственного туннельного интерфейса.
Аналогичные настройки следует выполнить и на втором роутере.
Теперь приступим к указанию маршрутов, для роутера A нам нужно указать маршрут к сети 192.168.222.0/24 через туннель. Переходим в IP — Routes и создаем новый маршрут. В качестве Dst. Address указываем сеть назначения — 192.168.222.0/24, в поле Gateway указываем шлюз в эту сеть — противоположный конец туннеля, который имеет адрес 10.10.10.2, после того как мы нажмем Apply в поле рядом со шлюзом появится исходящий интерфейс, в качестве которого будет выступать наш туннель.
![]()
В терминале:
/ip route
add distance=1 dst-address=192.168.222.0/24 gateway=10.10.10.2
На втором роутере делаем аналогичные настройки с учетом IP-адреса роутера и сети назначения.
После чего пробуем получить из одной сети доступ к узлу другой. Если все сделано правильно, то попытка увенчается успехом.
![]()
Научиться настраивать MikroTik с нуля или систематизировать уже имеющиеся знания можно на углубленном курсе по администрированию MikroTik. Автор курса, сертифицированный тренер MikroTik Дмитрий Скоромнов, лично проверяет лабораторные работы и контролирует прогресс каждого своего студента. В три раза больше информации, чем в вендорской программе MTCNA, более 20 часов практики и доступ навсегда.
Дополнительные материалы:
Mikrotik
- Оборудование MikroTik класса SOHO. Общий обзор и сравнение возможностей
- Производительность младших моделей Mikrotik hEX и hAP. Экспресс-тестирование
- Базовая настройка роутера MikroTik
- Расширенная настройка DNS и DHCP в роутерах Mikrotik
- Автоматическое резервное копирование настроек Mikrotik на FTP
- Проброс портов и Hairpin NAT в роутерах Mikrotik
- Настройка IPTV в роутерах Mikrotik на примере Ростелеком
- Настройка VPN-подключения в роутерах Mikrotik
- Настройка черного и белого списков в роутерах Mikrotik
- Настройка выборочного доступа к сайтам через VPN на роутерах Mikrotik
- Настройка OpenVPN-сервера на роутерах Mikrotik
- Безопасный режим в Mikrotik или как всегда оставаться на связи
- Настройка Proxy ARP для VPN-подключений на роутерах Mikrotik
- Настраиваем Port Knocking в Mikrotik
- Резервирование каналов в Mikrotik при помощи рекурсивной маршрутизации
- Настраиваем родительский контроль на роутерах Mikrotik
- Настраиваем IKEv2 VPN-сервер на роутерах Mikrotik с аутентификацией по сертификатам
- Расширенная настройка Wi-Fi на роутерах Mikrotik. Режим точки доступа
- Mikrotik CHR — виртуальный облачный роутер
- Настройка контроллера CAPsMAN (бесшовный Wi-Fi роуминг) на Mikrotik
- Настройка VPN-подключения на роутерах Mikrotik если подсети клиента и офиса совпадают
- Настраиваем использование DNS over HTTPS (DoH) на роутерах Mikrotik
- Настройка PPTP или L2TP VPN-сервера на роутерах Mikrotik
- Установка Mikrotik CHR на виртуальную машину Proxmox
- Защита RDP от перебора паролей при помощи оборудования Mikrotik
- Настройка SSTP VPN-сервера на роутерах Mikrotik
- Настройка выборочного доступа к сайтам через VPN с автоматическим получением маршрутов по BGP на роутерах Mikrotik
- Особенности эксплуатации CA на роутерах Mikrotik: резервное копирование, экспорт и импорт сертификатов
- Настройка туннелей GRE и IPIP на роутерах Mikrotik
- Правильное использование Fast Path и FastTrack в Mikrotik
- DHCP Snooping — настройка защиты от неавторизованных DHCP-серверов на оборудовании Mikrotik
- Работа оборудования Mikrotik в режиме беспроводной станции (клиента)
- Используем режим ARP reply-only для повышения безопасности сети на оборудовании Mikrotik
The Dude
- The Dude. Установка и быстрое начало работы
- Централизованное управление обновлением RouterOS при помощи The Dude
- Централизованный сбор логов Mikrotik на сервер The Dude
Помогла статья? Поддержи автора и новые статьи будут выходить чаще:
![]()
![]()
Или подпишись на наш Телеграм-канал:
Управление туннелированием
GRE (англ. Generic Routing Encapsulation — общая инкапсуляция маршрутов) — протокол туннелирования сетевых пакетов. Его основное назначение — инкапсуляция пакетов сетевого уровня сетевой модели OSI в IP-пакеты. GRE может использоваться для организации VPN на 3-м уровне модели OSI. В маршрутизаторе ESR реализованы статические неуправляемые GRE-туннели, то есть туннели создаются вручную путем конфигурирования на локальном и удаленном узлах. Параметры туннеля для каждой из сторон должны быть взаимосогласованными или переносимые данные не будут декапсулироваться партнером.
Алгоритм настройки
esr(config)# tunnel gre
– идентификатор туннеля в диапазоне:
- для ESR-10/12V(F)/14VF – [1..10];
- для ESR-20/21/100/200 – [1..250];
- для ESR-1000/1200/1500
/1511/1700/3100 – [1..500].
esr(config-gre )# ip vrf forwarding
esr(config-gre)# description
esr(config-gre)# local address
esr(config-gre)# local interface
esr(config-gre)# remote address
esr(config-gre)# mode
– режим инкапсуляции для GRE-туннеля:
- ip – инкапсуляция IP-пакетов в GRE;
- ethernet – инкапсуляция Ethernet-фреймов в GRE.
Значение по умолчанию: ip
esr(config-gre)# ip address
– IP-адрес и префикс подсети задаётся в виде AAA.BBB.CCC.DDD/EE, где каждая часть AAA – DDD принимает значения [0..255] и EE принимает значения [1..32].
Можно указать до 8 IP-адресов перечислением через запятую.
Дополнительные функции IPv4-адресации см. в разделе Настройка IP-адресации.
esr(config-gre)# bridge-group
– идентификационный номер моста, принимает значения в диапазоне:
- для ESR-10/12V(F)/14VF – [1..50];
- для ESR-20/21/100/200 – [1..250];
- для ESR-1000/1200/1500
/1511/1700/3100 – [1..500]
esr(config-gre)# security-zone
esr(config-gre)# ip firewall disable
Указать размер MTU (MaximumTransmitionUnit) для туннеля (не обязательно).
MTU более 1500 будет активно только если применена команда «system jumbo-frames»
esr(config-gre)# mtu
– значение MTU, принимает значения в диапазоне:
- для ESR-10/12V(F)/14VF – [1280..9600];
- для ESR-20/21 – [1280..9500];
- для ESR-100/200/1000/1200/1500/1511/1700/3100 – [1280..10000].
Значение по умолчанию: 1500.
Указать значение времени жизни TTL для туннельных пакетов (не обязательно).
esr(config-gre)# ttl
– значение TTL, принимает значения в диапазоне [1..255].
Значение по умолчанию: Наследуется от инкапсулируемого пакета.
Указать DSCP для использования в IP-заголовке инкапсулирующего пакета (не обязательно).
esr(config-gre)# dscp
– значение кода DSCP, принимает значения в диапазоне [0..63].
Значение по умолчанию: наследуется от инкапсулируемого пакета.
Разрешить передачу ключа (Key) в туннельном заголовке GRE (в соответствии с RFC 2890) и установить значение ключа. Настраивается только с обеих сторон туннеля.
(не обязательно).
esr(config-gre)# key
– значение KEY, принимает значения в диапазоне [1..2000000].
Значение по умолчанию: ключ не передаётся.
Включить вычисление контрольной суммы и занесение её в GRE-заголовок отправляемых пакетов. При этом на удаленной стороне необходимо включить проверку контрольной суммы.
(не обязательно)
esr(config-gre)# local checksum
Включить проверку наличия и соответствия значений контрольной суммы в заголовках принимаемых GRE-пакетов. При этом на удаленной стороне необходимо включить вычисление контрольной суммы.
(не обязательно)
esr(config-gre)# remote checksum
Включить проверку доступности удаленного шлюза туннеля (не обязательно)
esr(config-gre)# keepalive enable
Изменить время ожидания keepalive пакетов от встречной стороны (не обязательно)
esr(config-gre)# keepalive timeout
– время в секундах, принимает значения в диапазоне [1..32767].
Значение по умолчанию: 10
Изменить количество попыток проверки доступности удаленного шлюза туннеля (не обязательно)
esr(config-gre)# keepalive retries
– количество попыток, принимает значения в диапазоне [1..255].
Значение по умолчанию: 5
Указать IP-адрес для работы механизма keepalive (обязательно в режиме ethernet)
esr(config-gre)# keepalive dst-address
Изменить интервал времени, за который усредняется статистика о нагрузке на туннеле (не обязательно)
esr(config-gre)# load-average
– интервал в секундах, принимает значения [5..150].
Значение по умолчанию: 5
Включить отправку snmp-trap о включении/отключении туннеля.
esr(config-gre)# snmp init-trap
Включить механизм перезапроса IP-адресов по протоколу DHCP на указанных интерфейсах при отключении GRE-туннеля по keepalive (не обязательно)
esr(config-gre)# keepalive dhcp dependent-interface
– физический/логический интерфейс, на котором включено получение IP-адреса по DHCP
Задать интервал времени между отключением GRE-туннеля и перезапросом IP-адреса на интерфейсе/интерфейсах, указанных командой keepalive dhcp dependent-interface (не обязательно)
esr(config-gre)# keepalive dhcp link-timeout
– интервал между отключением GRE-туннеля и перезапросом IP-адреса по DHCP на интерфейсах
esr(config-gre)# ip tcp adjust-mss
< MSS >– значение MSS , принимает значения в диапазоне [500..1460].
Значение по умолчанию: 1460
esr(config-gre)# history statistics
esr(config-gre)# enable
Также для GRE-туннеля возможно настроить:
- QoS в базовом или расширенном режимах (см. раздел Управление QoS);
- proxy (см. раздел Проксирование HTTP/HTTPS-трафика);
- мониторинг траффика (см. разделы Настройка Netflow и Настройка sFlow);
- функционал протоколов маршрутизации (см. раздел Управление маршрутизацией);
- функционал BRAS (см. раздел Управление BRAS (Broadband Remote Access Server));
Пример настройки IP-GRE-туннеля
Задача:
Организовать L3-VPN между офисами компании через IP-сеть, используя для туннелирования трафика протокол GRE.
- в качестве локального шлюза для туннеля используется IP-адрес 115.0.0.1;
- в качестве удаленного шлюза для туннеля используется IP-адрес 114.0.0.10;
- IP-адрес туннеля на локальной стороне 25.0.0.1/24.

Решение:
Предварительно на маршрутизаторах должны быть настроены интерфейсы для связи с сетью WAN разрешено получение пакетов протокола GRE из зоны безопасности, в которой работают интерфейсы, подключенные к сети WAN.
Создадим туннель GRE 10:
esr(config)# tunnel gre 10
Укажем локальный и удаленный шлюз (IP-адреса интерфейсов, граничащих с WAN):
esr(config-gre)# local address 115.0.0.1 esr(config-gre)# remote address 114.0.0.10
Укажем IP-адрес туннеля 25.0.0.1/24:
esr(config-gre)# ip address 25.0.0.1/24
Также туннель должен принадлежать к зоне безопасности, для того чтобы можно было создать правила, разрешающие прохождение трафика в firewall. Принадлежность туннеля к зоне задается следующей командой:
esr(config-gre)# security-zone untrusted
Включим туннель:
esr(config-gre)# enable esr(config-gre)# exit
На маршрутизаторе должен быть создан маршрут до локальной сети партнера. В качестве интерфейса назначения указываем ранее созданный туннель GRE:
esr(config)# ip route 172.16.0.0/16 tunnel gre 10
После применения настроек трафик будет инкапсулироваться в туннель и отправляться партнеру, независимо от наличия GRE-туннеля и правильности настроек с его стороны.
Опционально для GRE-туннеля можно указать следующие параметры:
-
Включить вычисление и включение в пакет контрольной суммы заголовка GRE и инкапсулированного пакета для исходящего трафика:
esr(config-gre)# local checksum
esr(config-gre)# remote checksum
esr(config-gre)# key 15808
esr(config-gre)# dscp 44 esr(config-gre)# mtu 1426 esr(config-gre)# ttl 18
esr(config-gre)# keepalive enable esr(config-gre)# keepalive timeout esr(config-gre)# keepalive retries
Состояние туннеля можно посмотреть командой:
esr# show tunnels status gre 10
Счетчики входящих и отправленных пакетов можно посмотреть командой:
esr# show tunnels counters gre 10
Конфигурацию туннеля можно посмотреть командой:
esr# show tunnels configuration gre 10
Настройка туннеля IPv4-over-IPv4 производится аналогичным образом.
При создании туннеля необходимо в firewall разрешить протокол GRE (47).
Настройка DMVPN
DMVPN (Dynamic Multipoint Virtual Private Network) — технология для создания виртуальных частных сетей, с возможностью динамического создания туннелей между узлами. Преимуществом данного решения является высокая масштабируемость и легкость настройки при подключении филиалов к головному офису. DMVPN используется в топологии Hub-and-Spoke, и позволяет строить прямые VPN туннели Spoke-to-Spoke в дополнение к обычным Spoke-to-Hub туннелям. Это означает, что филиалы смогут общаться друг с другом напрямую, без необходимости прохождения трафика через Hub.
Чтобы установить такое соединение, клиенты (NHC) по шифрованному IPsec-туннелю отправляют соответствие своего внутреннего (туннельного) адреса и внешнего (NBMA) адреса на NHRP-сервер (NHS). Когда клиент захочет соединиться с другим NHC, он посылает на сервер запрос, чтобы узнать его внешний адрес. Получив ответ от сервера, клиент теперь самостоятельно может устанавливать соединение c удалённым филиалом.
Туннель GRE
Если в вашей компании имеется удаленный филиал, в котором также установлен ИКС, то для объединения локальных сетей безопасным способом наиболее подходящим решением будет настройка шифрованного туннеля между ними.
Для обеспечения безопасности передачи данных в туннеле используется IPSec . Защита передачи данных по туннелям позволяет избежать утечки информации и получения ложных данных.
В ИКС можно настроить подключение между серверами статическим туннелем по IPIP — или GRE -протоколу.
Обычно выбор типа туннеля зависит от промежуточных провайдеров, которые по каким-либо причинам могут блокировать трафик GRE или IPIP, что приводит к невозможности использования какого-то одного типа туннеля. Принципиальной разницы между данными типами туннелей нет.
Добавить туннель GRE можно в меню Сеть > Провайдеры и сети. Для этого выполните следующие действия:
- Нажмите кнопку «Добавить» и выберите «Туннели > Туннель GRE».

- На вкладке «Общие настройки» введите название туннеля.
- Выберите внешний интерфейс.
- Введите в соответствующих полях следующие адреса: внешний IP-адрес удаленного сервера, локальный IP-адрес туннеля, удаленный IP-адрес туннеля.

- На вкладке также можно задать локальные сети, удаленные сети и MTU .
- Если требуется, установите флаги:
- «Автоматически создавать статический маршрут для удаленных сетей»;
- «Использовать NAT ».
- При необходимости задайте ключ GRE. По умолчанию он не используется.
- На вкладке «Настройки шифрования» можно выбрать шифрование IPSec и установить его параметры. Внимание! Данную процедуру необходимо произвести на обоих концах туннеля, в противном случае передача данных работать не будет. Внимание! При использовании IPSec-шифрования в туннелях IPIP и GRE трафик будет проходить через интерфейс enc0 . Статистика на данном интерфейсе не собирается!

- На вкладке «Настройки мониторинга» можно установить флаги :
- «Проверять наличие пинга внешнего IP-адреса удаленного сервера» — проверка, отвечает ли на ICMP -запросы внешний адрес удаленного сервера, который указан в общих настройках туннеля. Если пинг не будет проходить, в статусе туннеля отобразится соответствующее уведомление;
- «Проверять наличие пинга удаленного IP-адреса туннеля» — проверка доступности удаленного IP-адреса туннеля;
- «Проверять доступность серверов» — при установке флага укажите серверы, доступность которых будет проверяться.
По умолчанию все флаги сняты.


Внимание! Для корректной работы туннеля необходимо, чтобы в межсетевом экране ИКС был разрешен GRE-трафик, а также разрешены входящие соединения с IP-адреса удаленного сервера.