Введение
При настройки динамической маршрутизации OSPF в GRE необходимо учитывать следующие параметры:
- TTL
- MTU
- Firewall
- OSPF network type
Конфигурация
security zone untrusted exit security zone vpn exit router ospf log-adjacency-changes router ospf 1 router-id 172.16.1.1 area 0.0.0.0 enable exit enable exit interface gigabitethernet 1/0/1 security-zone untrusted ip address 192.0.2.1/30 exit tunnel gre 1 ttl 255 mtu 1476 security-zone vpn local address 192.0.2.1 remote address 198.51.100.1 ip address 192.168.1.1/30 ip ospf instance 1 ip ospf enable exit security zone-pair untrusted self rule 1 action permit match protocol icmp enable exit rule 2 action permit match protocol gre enable exit exit security zone-pair vpn self rule 1 action permit match protocol ospf enable exit rule 2 action permit match protocol icmp enable exit exit ip route 198.51.100.1/32 192.0.2.2
В данной конфигурации настроены перечисленные во введении параметры, установлено соседство OSPF over GRE :
esr# sh ip ospf neighbors Router ID Pri State DTime Interface Router IP --------- --- ----- ----- ----------------- --------- 172.16.1.2 128 Full/DR 00:39 gre 1 192.168.1.2
Описание
TTL
При настройке OSPF over GRE рекомендуется устанавливать максимальное либо требуемое значение TTL в конфигурации tunnel gre, так как если не настроить TTL, то значение будет наследоваться от инкапсулируемого пакета.
Дамп трафика при имеющейся настройки ttl 255 в tunnel gre 1:
10:30:23.269218 a8:f9:4b:aa:93:be > a8:f9:4b:aa:d3:88, ethertype IPv4 (0x0800), length 106: (tos 0xc0, ttl 255, id 61718, offset 0, flags [DF], proto GRE (47), length 92)
192.0.2.1 > 198.51.100.1: GREv0, Flags [none], proto IPv4 (0x0800), length 72
(tos 0xc0, ttl 1, id 9592, offset 0, flags [none], proto OSPF (89), length 68)
192.168.1.1 > 224.0.0.5: OSPFv2, Hello, length 48
Router-ID 172.16.1.1, Backbone Area, Authentication Type: none (0)
Options [External]
Hello Timer 10s, Dead Timer 40s, Mask 255.255.255.252, Priority 128
Designated Router 192.168.1.2, Backup Designated Router 192.168.1.1
Neighbor List:
172.16.1.2
10:30:24.873038 a8:f9:4b:aa:d3:88 > a8:f9:4b:aa:93:be, ethertype IPv4 (0x0800), length 106: (tos 0xc0, ttl 254, id 26952, offset 0, flags [DF], proto GRE (47), length 92)
198.51.100.1 > 192.0.2.1: GREv0, Flags [none], proto IPv4 (0x0800), length 72
(tos 0xc0, ttl 1, id 39618, offset 0, flags [none], proto OSPF (89), length 68)
192.168.1.2 > 224.0.0.5: OSPFv2, Hello, length 48
Router-ID 172.16.1.2, Backbone Area, Authentication Type: none (0)
Options [External]
Hello Timer 10s, Dead Timer 40s, Mask 255.255.255.252, Priority 128
Designated Router 192.168.1.2, Backup Designated Router 192.168.1.1
Neighbor List:
172.16.1.1
Дамп трафика без настройки ttl 255 в tunnel gre 1(при этом OSPF соседство разрушается):
10:34:43.267689 a8:f9:4b:aa:93:be > a8:f9:4b:aa:d3:88, ethertype IPv4 (0x0800), length 106: (tos 0xc0, ttl 1, id 23724, offset 0, flags [DF], proto GRE (47), length 92)
192.0.2.1 > 198.51.100.1: GREv0, Flags [none], proto IPv4 (0x0800), length 72
(tos 0xc0, ttl 1, id 42654, offset 0, flags [none], proto OSPF (89), length 68)
192.168.1.1 > 224.0.0.5: OSPFv2, Hello, length 48
Router-ID 172.16.1.1, Backbone Area, Authentication Type: none (0)
Options [External]
Hello Timer 10s, Dead Timer 40s, Mask 255.255.255.252, Priority 128
Designated Router 192.168.1.1
Neighbor List:
172.16.1.2
10:34:44.872276 a8:f9:4b:aa:d3:88 > a8:f9:4b:aa:93:be, ethertype IPv4 (0x0800), length 102: (tos 0xc0, ttl 254, id 58260, offset 0, flags [DF], proto GRE (47), length 88)
198.51.100.1 > 192.0.2.1: GREv0, Flags [none], proto IPv4 (0x0800), length 68
(tos 0xc0, ttl 1, id 7955, offset 0, flags [none], proto OSPF (89), length 64)
192.168.1.2 > 224.0.0.5: OSPFv2, Hello, length 44
Router-ID 172.16.1.2, Backbone Area, Authentication Type: none (0)
Options [External]
Hello Timer 10s, Dead Timer 40s, Mask 255.255.255.252, Priority 128
Designated Router 192.168.1.2
esr# sh ip ospf neighbors Router ID Pri State DTime Interface Router IP --------- --- ----- ----- ----------------- --------- 172.16.1.2 128 Init/Other 00:30 gre 1 192.168.1.2
MTU
Влияет на фрагментацию ip пакета, то есть при формировании максимального размера пакета в GRE необходимо учитывать заголовки ip(20B)+gre(4B), поэтому рекомендуется в tunnel gre устанавливать значение mtu 1476B (если на физическом интерфейсе установлено значении mtu 1500(по умолчанию)).
Если в конфигурации tunnel gre не указать необходимое значение mtu(например mtu 1476), то по умолчанию значение mtu будет равным 1500, в таком случае формирование ip пакета будет происходить с максимальным размером 1500B, при этом если на физическом интерфейсе, с ip адреса которого формируется tunnel gre, также установлено mtu 1500, то данные ip пакеты будут отброшены (не будут отправлены).
Также при установки значения mtu в tunnel gre необходимо учитывать, что на противоположной стороне tunnel gre значения mtu должно быть таким же.
Firewall
При настройке security-zone в tunnel gre необходимо создать разрешающее правило для протокола OSPF:
security zone-pair vpn self rule 1 action permit match protocol ospf enable exit exit
Также, для успешной работы протокола gre необходимо разрешить его работу из зоны, к которой относится интерфейс от IP-адреса которого строится туннель.
security zone-pair untrusted self rule 1 action permit match protocol gre enable exit exit
- OSPF network type
При настройке OSPF over GRE необходимо настраивать одинаковый тип сети ospf (команда ip ospf network <network-type>) с двух сторон GRE. На маршрутизаторах ESR по умолчанию на всех типах интерфейсов используется режим установления ospf соседства - broadcast. На Cisco, huawei на туннельных интерфейсах (например gre) по умолчанию используется - point-to-point.