При настройки динамической маршрутизации OSPF в GRE необходимо учитывать следующие параметры:
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 |
При настройке OSPF over GRE рекомендуется устанавливать максимальное либо требуемое значение TTL в конфигурации tunnel gre, так как если не настроить TTL, то значение будет наследоваться от инкапсулируемого пакета.
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.210: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
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 |
Влияет на фрагментацию 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 должно быть таким же.
При настройке 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 over GRE необходимо настраивать одинаковый тип сети ospf (команда ip ospf network <network-type>) с двух сторон GRE. На маршрутизаторах ESR по умолчанию на всех типах интерфейсов используется режим установления ospf соседства - broadcast. На Cisco, huawei на туннельных интерфейсах (например gre) по умолчанию используется - point-to-point.