Afin d'implémenter la connectivité spoke to spoke dans la phase 2 DMVPN, avec le protocole OSPF, il est couramment connu d'utiliser le network type broadcast au lieu du point to multipoint qui lui est utilisé pour une connectivité Hub to Spoke.
La question, en quoi le comportement OSPF diffère lorsqu'on a le broadcast et le point to multipoint ?
La réponse se trouve dans les paquets LSA qui sont l'essence même et l'âme du protocole.
La LSA Type 1 est celle qui jouera un rôle majeur pour déterminer une connexion spoke to spoke sans saut supplémentaire en broadcast, ou bien une connexion hub to spoke avec saut supplémentaire (extra hop routing).
La LSA Type 1 décrit les types de connexions et les informations de liens directement connectés d'un routeur.
Chaque type de lien (Link Type) représente le type du réseau connecté (P-2-P, transit network, virtual link et stub network). Chaque lien est marqué ou bien libellé avec un ID de lien (Link ID) et un Link Data, ce Link ID fournit un nom de l'entité qui est connecté au routeur.
Ci-dessous la description des Link Type et son Link ID correspondant.
Link Type Description Link ID
1 Point-to-point link Neighbor Router ID
2 Link to transit network Interface address of DR
3 Link to Stub network IP network number
4 Virtual Link Neighbor Router ID
Le Link Data est spécifié pour chaque lien, il est codé sur 32 bits, par exemple pour les liens connectés au transit network, lien P-2-P ou lien virtuel (virtual Link), ce champ représente l'adresse IP du router connecté à ce lien (nécessaire pour le calcul SPF). Et pour les liens connectés au stub network, le Link Data est égal du Masque sous-réseau.
Dans le Type de network Point-to-Multipoint, chaque router génère une LSA Type 1 contenant les informations suivantes :
C’est qui est mentionné dans la section 12.4.1.4 de la RFC 2328 :
OSPF Network Type Point-to-multipoint
Dans RFC 2328:
12.4.1.4. Describing Point-to-MultiPoint interfaces
For operational Point-to-MultiPoint interfaces, one or
more link descriptions are added to the router-LSA as
follows:
A single Type 3 link (stub network) is added with
Link ID set to the router's own IP interface
address, Link Data set to the mask 0xffffffff
(indicating a host route), and cost set to 0.
For each fully adjacent neighbor associated with the
interface, add an additional Type 1 link (point-to-
point) with Link ID set to the Router ID of the
neighboring router, Link Data set to the IP
interface address and cost equal to the interface's
configured output cost.
Dans cette topologie les interfaces tunnels sont configurées en Point-to-Multipoint.
R3 annonce une Type-1 LSA avec trois liens :
R2#sh ip os data router ad 0.0.0.3
OSPF Router with ID (0.0.0.2) (Process ID 1)
Router Link States (Area 0)
LS age: 44
Options: (No TOS-capability, DC)
LS Type: Router Links
Link State ID: 0.0.0.3
Advertising Router: 0.0.0.3
LS Seq Number: 80000006
Checksum: 0x9EEB
Length: 60
Number of Links: 3
Link connected to: a Stub Network
(Link ID) Network/subnet number: 10.3.3.0
(Link Data) Network Mask: 255.255.255.0
Number of MTID metrics: 0
TOS 0 Metrics: 1
Link connected to: another Router (point-to-point)
(Link ID) Neighboring Router ID: 0.0.0.1
(Link Data) Router Interface address: 172.16.1.3
Number of MTID metrics: 0
TOS 0 Metrics: 1000
Link connected to: a Stub Network
(Link ID) Network/subnet number: 172.16.1.3
(Link Data) Network Mask: 255.255.255.255
Number of MTID metrics: 0
TOS 0 Metrics: 0
R2#
R1 annonce une LSA Type-1 avec des informations sur 4 liens :
R2#sh ip os data router ad 0.0.0.1
OSPF Router with ID (0.0.0.2) (Process ID 1)
Router Link States (Area 0)
LS age: 80
Options: (No TOS-capability, DC)
LS Type: Router Links
Link State ID: 0.0.0.1
Advertising Router: 0.0.0.1
LS Seq Number: 8000000A
Checksum: 0xC114
Length: 72
Number of Links: 4
Link connected to: a Stub Network
(Link ID) Network/subnet number: 10.1.1.0
(Link Data) Network Mask: 255.255.255.0
Number of MTID metrics: 0
TOS 0 Metrics: 1
Link connected to: another Router (point-to-point)
(Link ID) Neighboring Router ID: 0.0.0.3
(Link Data) Router Interface address: 172.16.1.1
Number of MTID metrics: 0
TOS 0 Metrics: 1000
Link connected to: another Router (point-to-point)
(Link ID) Neighboring Router ID: 0.0.0.2
(Link Data) Router Interface address: 172.16.1.1
Number of MTID metrics: 0
TOS 0 Metrics: 1000
Link connected to: a Stub Network
(Link ID) Network/subnet number: 172.16.1.1
(Link Data) Network Mask: 255.255.255.255
Number of MTID metrics: 0
TOS 0 Metrics: 0
R2#
Au niveau du routeur R2, ce dernier conclura que R1 est voisin avec R3, il est déjà voisin avec R1, pour joindre le stub network 10.3.3.0/24 derrière R3, il ajoute la métrique vers R1 (100 par défaut sur les interfaces tunnels) listé dans sa LSA Type 1 (plus exactement cette métrique 100 est listée dans le Link Type 1), à la métrique entre R1 et R3 listée dans la LSA Type 1 de R3 (1000), plus exactement 1000 se trouve dans le Link Type 3 du stub network 10.3.3.0/24.
R2 va utiliser l'adresse IP 172.16.1.1 de R1 comme next-hop, cette adresse IP est listée dans la LSA Type 1 de R1, plus exactement dans le Link Type 1, afin de joindre le sous réseau 10.3.3.0/24.
C'est le type network point to multipoint qui détermine l'architecture Hub to Spoke.
R2#sh ip route os | beg Gate
Gateway of last resort is 2.2.2.2 to network 0.0.0.0
10.0.0.0/8 is variably subnetted, 4 subnets, 2 masks
O 10.1.1.0/24 [110/1001] via 172.16.1.1, 00:08:52, Tunnel1
O 10.3.3.0/24 [110/2001] via 172.16.1.1, 00:02:22, Tunnel1
172.16.0.0/16 is variably subnetted, 4 subnets, 2 masks
O 172.16.1.1/32 [110/1000] via 172.16.1.1, 00:02:37, Tunnel1
O 172.16.1.3/32 [110/2000] via 172.16.1.1, 00:02:22, Tunnel1
R2#
La raison se trouve dans la section 16.1.1 de la RFC 2328 OSPFv2 :
The reason is mentioned in RFC 2328 in the following section:
16.1.1. The next hop calculation
If there is at least one intervening router in the current
shortest path between the destination and the root, the
destination simply inherits the set of next hops from the
parent. Otherwise, there are two cases. In the first case,
the parent vertex is the root (the calculating router
itself). This means that the destination is either a
directly connected network or directly connected router.
The outgoing interface in this case is simply the OSPF
interface connecting to the destination network/router. If
the destination is a router which connects to the
calculating router via a Point-to-MultiPoint network, the
destination's next hop IP address(es) can be determined by
examining the destination's router-LSA: each link pointing
back to the calculating router and having a Link Data field
belonging to the Point-to-MultiPoint network provides an IP
address of the next hop router. If the destination is a
directly connected network, or a router which connects to
the calculating router via a point-to-point interface, no
next hop IP address is required. If the destination is a
router connected to the calculating router via a virtual
link, the setting of the next hop should be deferred until
the calculation in Section 16.3.
In the second case, the parent vertex is a network that
directly connects the calculating router to the destination
router. The list of next hops is then determined by
examining the destination's router-LSA. For each link in
the router-LSA that points back to the parent network, the
link's Link Data field provides the IP address of a next hop
router. The outgoing interface to use can then be derived
from the next hop IP address (or it can be inherited from
the parent network).
Le deuxième type d'architecture dans DMVPN est spoke to spoke, en utilisant le protocole OSPF, le type de network qui offre cette solution est le broadcast.
Configurons les interfaces tunnels de R1, R2 et R3 en broadcast.
interface Tunnel1
ip ospf network broadcast
Dans un type de network broadcats, tout le monde connait qu'une élection d'un DR s'impose. Un routeur non-DR est adjacent dans l'état FULL (synchronisation de la base de données), ou bien il est un DR et il est adjacent à l'état FULL avec au moins un routeur.
Comme un DR est désigné dans les types de network broadcast, dans la LSA Type 1 de chaque routeur, un Link Type 2 (lien connecté au transit) est ajouté afin de décrire qu'un DR existe dans ce lien, le Link ID correspondant représente l'adresse IP du DR, et le Link Data correspond a l'adresse IP local, quand ses derniers champs sont identiques, cela signifie que c'est la LSA Type 1 du DR. Comme l'information des autres routeurs est manquante, c'est le DR qui se chargera d'informer les autres routeurs de la liste des routeurs connecté au segment de transit à travers la LSA Type 2 comme le montre la sortie de la LSA Type 2 ci-dessous.
R1 est le Hub, il est configuré comme DR, il annonce une LSA Type 2 avec dans le body la liste des routeurs connectés qui partagent le même segment de broadcast.
R2#sh ip os data net
OSPF Router with ID (0.0.0.2) (Process ID 1)
Net Link States (Area 0)
LS age: 17
Options: (No TOS-capability, DC)
LS Type: Network Links
Link State ID: 172.16.1.1 (address of Designated Router)
Advertising Router: 0.0.0.1
LS Seq Number: 80000001
Checksum: 0x630D
Length: 36
Network Mask: /24
Attached Router: 0.0.0.1
Attached Router: 0.0.0.2
Attached Router: 0.0.0.3
R2#
R2 reçoit la LSA Type 2 de R1, il détecte que R3 est localisé dans le même sous réseau dont il est joignable directement.
R3 annonce à R1 sa LSA Type 1 avec deux informations de liens dans le body:
Le Link Type 3 avec le Link ID 10.3.3.0 et Link Data (masque) 255.255.255.0 comme stub network.
Le Link Type 2 pour indiquer à R2 qu'il est connecté au réseau de transit 172.16.1.0/24 partageant le même DR R1. Dans le Data Link, il y'a l'adresse IP 172.16.1.3 que le routeur R2 va utiliser comme next hop pour joindre n'importe quel sous réseau derrière R3 comme 10.3.3.0/24.
R2#sh ip os data router adv 0.0.0.3
OSPF Router with ID (0.0.0.2) (Process ID 1)
Router Link States (Area 0)
LS age: 62
Options: (No TOS-capability, DC)
LS Type: Router Links
Link State ID: 0.0.0.3
Advertising Router: 0.0.0.3
LS Seq Number: 8000000A
Checksum: 0xD2C5
Length: 48
Number of Links: 2
Link connected to: a Stub Network
(Link ID) Network/subnet number: 10.3.3.0
(Link Data) Network Mask: 255.255.255.0
Number of MTID metrics: 0
TOS 0 Metrics: 1
Link connected to: a Transit Network
(Link ID) Designated Router address: 172.16.1.1
(Link Data) Router Interface address: 172.16.1.3
Number of MTID metrics: 0
TOS 0 Metrics: 1000
R2#
Finalement R2 détecte que le routeur R3 est dans le même réseau de transit 172.16.1.0/24 où ils ont élu le même DR, cette information est dérivée de la LSA Type 2 de R1. Donc il peut joindre 10.3.3.0/24 via R3 directement mais il lui manque le next hop R3.
Pour cela il analyse la LSA Type 1 de R3 pour trouver le next hop 172.16.1.3 afin d'installer une route 10.3.3.0.24 via 172.16.1.3.
R2#sh ip route os | beg Gate
Gateway of last resort is 2.2.2.2 to network 0.0.0.0
10.0.0.0/8 is variably subnetted, 4 subnets, 2 masks
O 10.1.1.0/24 [110/1001] via 172.16.1.1, 00:01:55, Tunnel1
O 10.3.3.0/24 [110/1001] via 172.16.1.3, 00:01:45, Tunnel1
R2#
C'est pour cette raison qu'il est recommandé d'utiliser le type de network broadcast lorsqu'on veut mettre en place une connectivité spoke to spoke.
Pour ajouter un commentaire ici, vous devez être inscrit. Si vous êtes déjà inscrit, connectez-vous. Dans le cas contraire, inscrivez-vous puis connectez-vous.
La communauté est un hub pour vous connecter avec vos pairs et les spécialistes Cisco, pour demander de l'aide, partager votre expertise, développer votre réseau et évoluer professionnellement.
Vous êtes un nouvel arrivant ? Cliquez ici pour en savoir plus.
Nous voulons que votre navigation soit la meilleure, donc vous trouverez des liens pour vous aider à être rapidement familiarisé avec la Communauté Cisco :