GRE. Краткое описание протокола и его настройка.
GRE (англ. Generic Routing Encapsulation — общая инкапсуляция маршрутов) — протокол туннелирования сетевых пакетов, разработанный компанией Cisco Systems. Его основное назначение — инкапсуляция пакетов сетевого уровня сетевой модели OSI в IP-пакеты.
Пример стека протоколов:
Уровень модели OSI Протокол
-------------------------------------------
5. Сеансовый X.225
4. Транспортный UDP
3. Сетевой (GRE-инкапсуляция) IPv6
Инкапсуляция GRE
3. Сетевой IPv4
2. Канальный Ethernet
1. Физический Ethernet
Особенности GRE протокола
1. RFC2784
2. Использует IP протокол 47
3. Внутри - любой трафик (IPv4, IPv6, unicast, multicast, etc.)
4. Добавляет 24 байта к изначальному заголовку
- Новый IP заголовок - 20 байт (внешние (Underlay/NBMA) IP адреса);
- GRE заголовок - 4 байта
5. Необходимо следить за IP MTU и TCP-adj-mss:
- При использ-ии только GRE:
MTU: 1500 byte - 24 byte = 1476 byte
TCP-adj-mss: 1456 byte
- При использ-ии GRE + шифрование:
MTU: 1440 byte
TCP-adj-mss: 1400 byte
Ограничения GRE протокола
1. Слабая масштабируемость (каждому направлению нужно настраивать свой туннель);
2. Наличие предопределенных ip-адресов;
3. Использование адресного пространства ( /30 для каждого туннеля);
Настройка GRE туннеля
interface Tunnel0
tunnel mode gre ip ! В конфиг опция не отображается
ip address 172.16.1.1 255.255.255.0 ! IP адрес локального туннеля
tunnel source 1.1.1.1 ! Внешний IP адрес локального роутера
tunnel destination 2.2.2.2 ! Внешний IP адрес удаленного роутера
end
!
! Сети локального роутера, к-ые необх-о анонсировать
! В примере используется OSPF, но также использ-ся и статическая м.
!
router ospf 100
log-adjacency-changes
network 10.1.1.0 0.0.0.255 area 0
network 172.16.1.0 0.0.0.255 area 0
Troubleshooting GRE туннеля
# sh ip route 172.16.1.2
# show interfaces Tunnel 0
# sh ip ospf 100 inter br
Interface PID Area IP Address/Mask Cost State Nbrs F/C
Fa0/0 100 0 10.1.1.1/24 10 DR 0/0
Tu0 100 0 172.16.1.1/24 11111 P2P 1/1
# sh ip route ospf 100
10.0.0.0/24 is subnetted, 2 subnets
O 10.2.2.0 [110/11121] via 172.16.1.2, 00:02:21, Tunnel0