Dans certaines topologies on peut se retrouver avec plusieurs ABRs. Lorsque plusieurs ABRs sont présents dans une architecture avec des area types comme NSSA, faut s’attendre à beaucoup de comportements dans le choix de routes (Path Selection), la translation de la LSA Type-7 vers une LSA Type-5, etc….
Dans cet article, on verra comme deux ABRs réagissent lorsqu’ils reçoivent des LSA Type-7? Vont-il translater les deux ses LSA Type-7? Y’a t-il seulement un ABR choisi pour etre le translateur suivant une régle bien définie?
Essayons de répondre à ses interrogations:
Configuration de base:
R1:
ipv uni
!
interface FastEthernet0/0
ip address 123.0.0.1 255.255.255.0
ipv6 enable
ospfv3 1 ipv4 area 0
no shut
!
router ospfv3 1
!
address-family ipv4 unicast
router-id 1.1.1.1
exit-address-family
R2:
ipv uni
!
interface FastEthernet0/0
ip address 123.0.0.2 255.255.255.0
ipv6 enable
ospfv3 1 ipv4 area 0
no shut
!
interface Serial1/0
ip address 24.0.0.2 255.255.255.0
ipv6 enable
ospfv3 1 ipv4 area 1
no shut
!
router ospfv3 1
!
address-family ipv4 unicast
router-id 2.2.2.2
exit-address-family
R3:
ipv uni
!
interface FastEthernet0/0
ip address 123.0.0.3 255.255.255.0
ipv6 enable
ospfv3 1 ipv4 area 0
no shut
!
interface Serial1/0
ip address 34.0.0.3 255.255.255.0
ipv6 enable
ospfv3 1 ipv4 area 1
no shut
!
router ospfv3 1
!
address-family ipv4 unicast
router-id 3.3.3.3
exit-address-family
R4:
ipv uni
!
interface Loopback0
ip address 4.4.4.4 255.255.255.0
!
interface Serial1/0
ip address 24.0.0.4 255.255.255.0
ipv6 enable
ospfv3 1 ipv4 area 1
no shut
!
interface Serial1/1
ip address 34.0.0.4 255.255.255.0
ipv6 enable
ospfv3 1 ipv4 area 1
no shut
!
router ospfv3 1
router-id 4.4.4.4
!
address-family ipv4 unicast
redistribute connected route-map CONNECTED
area 1 nssa
exit-address-family
!
route-map CONNECTED permit 10
match interface Loopback0
Area 1 est configuré comme une area NSSA
R2 et R3 sont des NSSA ABRs
R4 est un NSSA ASBR, il redistribue le prefixe 4.4.4.0/24 dans l’area NSSA.
R4#show ospfv3 database nssa-external
OSPFv3 1 address-family ipv4 (router-id 4.4.4.4)
Type-7 AS External Link States (Area 1)
LS age: 63
LS Type: AS External Link
Link State ID: 1
Advertising Router: 4.4.4.4
LS Seq Number: 80000001
Checksum: 0x6148
Length: 48
Prefix Address: 4.4.4.0
Prefix Length: 24, Options: P
Metric Type: 2 (Larger than any link state path)
Metric: 20
Forward Address: 34.0.0.4
R4#
Ci-dessous, on voit bien qu’aprés la redistribution dans R4, ce dernier crée une LSA Type-7 pour le prefixe 4.4.4.0/24.
La RFC 3101 stipule que si plusieurs NSSA ABRs sont eligibles de faire la translation de la LSA Type-7 vers la LSA Type-5, L’ABR avec le plus grand router-ID est elu le translator. Dans ce scenario le RID de R2 est 2.2.2.2 tandis que le RID de R3 est 3.3.3.3, au final R3 gagne l’election et translate ainsi la LSA Type-7 comme le montre la commande show ospfv3 data ex ci-dessous, cette commande affiche une seule LSA Type-5 dont l’Advertising Router 3.3.3.3 confirme que c’est R3 qui a réalisé la translation.
R3#show ospfv3 database external
OSPFv3 1 address-family ipv4 (router-id 3.3.3.3)
Type-5 AS External Link States
LS age: 116
LS Type: AS External Link
Link State ID: 0
Advertising Router: 3.3.3.3
LS Seq Number: 80000001
Checksum: 0x8315
Length: 48
Prefix Address: 4.4.4.0
Prefix Length: 24, Options: None
Metric Type: 2 (Larger than any link state path)
Metric: 20
Forward Address: 34.0.0.4
R3#
Pour confirmer, la commande sho ospfv data ex self est executée au niveau de R2 et elle révéle qu’il ne génére pas de LSA Type-5. Aussi la commande sho ospfv data adv 3.3.3.3 confirme également que c’est R3 le translator.
R2#show ospfv3 database external self-originate
OSPFv3 1 address-family ipv4 (router-id 2.2.2.2)
R2#
R2#show ospfv3 database external adv 3.3.3.3
OSPFv3 1 address-family ipv4 (router-id 2.2.2.2)
Type-5 AS External Link States
LS age: 286
LS Type: AS External Link
Link State ID: 0
Advertising Router: 3.3.3.3
LS Seq Number: 80000001
Checksum: 0x8315
Length: 48
Prefix Address: 4.4.4.0
Prefix Length: 24, Options: None
Metric Type: 2 (Larger than any link state path)
Metric: 20
Forward Address: 34.0.0.4
R2#
Une autre command intéréssante show ospfv3 permet de vérifier quel ABR est actuellement le translator, la ligne « Perform type-7/type-5 LSA translation » montre bien que R3 est le translator.
R3#show ospfv3
OSPFv3 1 address-family ipv4
Router ID 3.3.3.3
Supports NSSA (compatible with RFC 3101)
Event-log enabled, Maximum number of events: 1000, Mode: cyclic
It is an area border and autonomous system boundary router
Redistributing External Routes from,
Router is not originating router-LSAs with maximum metric
Initial SPF schedule delay 5000 msecs
Minimum hold time between two consecutive SPFs 10000 msecs
Maximum wait time between two consecutive SPFs 10000 msecs
Minimum LSA interval 5 secs
Minimum LSA arrival 1000 msecs
LSA group pacing timer 240 secs
Interface flood pacing timer 33 msecs
Retransmission pacing timer 66 msecs
Retransmission limit dc 24 non-dc 24
Number of external LSA 1. Checksum Sum 0x00791E
Number of areas in this router is 2. 1 normal 0 stub 1 nssa
Graceful restart helper support enabled
Reference bandwidth unit is 100 mbps
RFC1583 compatibility enabled
Area BACKBONE(0)
Number of interfaces in this area is 1
SPF algorithm executed 7 times
Number of LSA 12. Checksum Sum 0x065EE8
Number of DCbitless LSA 0
Number of indication LSA 0
Number of DoNotAge LSA 0
Flood list length 0
Area 1
Number of interfaces in this area is 1
It is a NSSA area
Perform type-7/type-5 LSA translation
SPF algorithm executed 10 times
Number of LSA 11. Checksum Sum 0x0551F8
Number of DCbitless LSA 0
Number of indication LSA 0
Number of DoNotAge LSA 0
Flood list length 0
R3#
Enfin dans la sortie de la command show ospfv3 au niveau de R2, une information importante est revélée, c’est la RFC 3101 activée par défaut.
Faut noter que l’option NSSA a été defini dans deux RFCs, l’ancienne RFC 1587 publiée en mars 1994 et la RFC 3101 qui remplace 1587 publiée en janvier 2003.
R2#show ospfv3
OSPFv3 1 address-family ipv4
Router ID 2.2.2.2
Supports NSSA (compatible with RFC 3101)
Event-log enabled, Maximum number of events: 1000, Mode: cyclic
It is an area border and autonomous system boundary router
Redistributing External Routes from,
Router is not originating router-LSAs with maximum metric
Initial SPF schedule delay 5000 msecs
Minimum hold time between two consecutive SPFs 10000 msecs
Maximum wait time between two consecutive SPFs 10000 msecs
Minimum LSA interval 5 secs
Minimum LSA arrival 1000 msecs
LSA group pacing timer 240 secs
Interface flood pacing timer 33 msecs
Retransmission pacing timer 66 msecs
Retransmission limit dc 24 non-dc 24
Number of external LSA 1. Checksum Sum 0x009704
Number of areas in this router is 2. 1 normal 0 stub 1 nssa
Graceful restart helper support enabled
Reference bandwidth unit is 100 mbps
RFC1583 compatibility enabled
Area BACKBONE(0)
Number of interfaces in this area is 1
SPF algorithm executed 12 times
Number of LSA 12. Checksum Sum 0x065EE8
Number of DCbitless LSA 0
Number of indication LSA 0
Number of DoNotAge LSA 0
Flood list length 0
Area 1
Number of interfaces in this area is 1
It is a NSSA area
SPF algorithm executed 17 times
Number of LSA 11. Checksum Sum 0x057503
Number of DCbitless LSA 0
Number of indication LSA 0
Number of DoNotAge LSA 0
Flood list length 0
R2#
La raison pourquoi un seul ABR est eligible à faire la translation d’une LSA Type-7 vers une LSA Type-5 est clairement mentionné dans la section suivante de la RFC 3101.
3.1 Type-7 Translator Election
It is not recommended that multiple NSSA border routers perform
Type-7 to Type-5 translation unless it is required to route packets
efficiently through Area 0 to an NSSA partitioned by Type-7 address
ranges. It is normally sufficient to have only one NSSA border
router perform the translation. Excessive numbers of Type-7
translators unnecessarily increase the size of the OSPF link state
data base.
Dans une architecture ou plusieurs ABRs existent dans une area NSSA, on peut forcer un ABR pour devenir le translator sans etre appelé à modifier le router-ID. la commande area 1 nssa translate type7 always permet de forcer un ABR pour etre le translator.
Executant la commande « area 1 nssa translate type7 always » au niveau de R2. Rappelons-nous, R3 a été élu le translator parcequ’il a le plus grand router-id.
R2(config)#router ospfv3 1
R2(config-router)#address-family ipv4 unicast
R2(config-router-af)#area 1 nssa translate type7 always
Below we can see that R2 is originating the LSA Type 5:
R2#show ospfv3 database external
OSPFv3 1 address-family ipv4 (router-id 2.2.2.2)
Type-5 AS External Link States
LS age: 31
LS Type: AS External Link
Link State ID: 2
Advertising Router: 2.2.2.2
LS Seq Number: 80000001
Checksum: 0x8D0D
Length: 48
Prefix Address: 4.4.4.0
Prefix Length: 24, Options: None
Metric Type: 2 (Larger than any link state path)
Metric: 20
Forward Address: 34.0.0.4
R2#
Au niveau de R2, executons la command sho ospfv. Notez deux informations importantes.
1-La ligne « Configured to translate Type-7 LSAs » nous dit explicitement que R2 est configuré comme forced NSSA
ABR translator. C’est à dire on l’a forcé a etre le translator.
2-La ligne « Perform type-7/type-5 LSA translation » nous confirme que R2 est le NSSA ABR qui fait la translation, meme si son router-id 2.2.2.2 est inferieur à celui de R3 3.3.3.3.
R2#show ospfv3 | incl 7
Configured to translate Type-7 LSAs
Perform type-7/type-5 LSA translation
R2#
RFC 5340 pour OSPFv3 definit un nouveau bit Nt bit (Nt = NSSA translation) dans la LSA Type-1 dans la section A.4.3.
RFC 5340 section: A.4.3. Router-LSAs
Bit Nt
When set, the router is an NSSA border router that is
unconditionally translating NSSA-LSAs into AS-external-LSAs (Nt
stands for NSSA translation). Note that such routers have their
NSSATranslatorRole area configuration parameter set to Always.
(See [NSSA].)
RFC 3101 includes also the Nt Bit explained in the following option:
Appendix B: Router-LSAs
bit Nt
When set, the router is an NSSA border router that is
unconditionally translating Type-7 LSAs into Type-5 LSAs (Nt
stands for NSSA translation). Note that such routers have
their NSSATranslatorRole area configuration parameter set to
Always. (See Appendix D and Section 3.1.)
Appendix D: Configuration Parameters
NSSATranslatorRole
Specifies whether or not an NSSA border router will
unconditionally translate Type-7 LSAs into Type-5 LSAs. When
it is set to Always, an NSSA border router always translates
Type-7 LSAs into Type-5 LSAs regardless of the translator state
of other NSSA border routers. When it is set to Candidate, an
NSSA border router participates in the translator election
process described in Section 3.1. The default setting is
Candidate.
Essayons d’afficher la LSA Type-1 de R2 dans l’area 1. Dans le header de la LSA la line « The “Unconditional NSSA translator » indique effectivement que R2 a mis à 1 le Nt bit, il indique l’état du NSSA ABR comme le forced translator.
R2#show ospfv data router self | beg Area 1
Router Link States (Area 1)
LS age: 226
Options: (N-Bit, R-bit, DC-Bit, AF-Bit)
LS Type: Router Links
Link State ID: 0
Advertising Router: 2.2.2.2
LS Seq Number: 80000002
Checksum: 0x8006
Length: 40
Area Border Router
AS Boundary Router
Unconditional NSSA translator
Number of Links: 1
Link connected to: another Router (point-to-point)
Link Metric: 64
Local Interface ID: 4
Neighbor Interface ID: 4
Neighbor Router ID: 4.4.4.4
R2#
Par défault, la RFC 3101 est activé. Essayons de désactiver la RFC 3101 en activant la RFC 1587 avec la commande compatible rfc1587.
R2(config)#router ospfv 1
R2(config-router)#address-family ipv4 uni
R2(config-router-af)#compatible rfc1587
Voyons le résultat, ci-dessous on bien que R3 est le translator, le champ Advertising Router 3.3.3.3 correspond au RID de R3, ce qui indique que maintenant c’est lui qui a translaté la LSA Type-7 vers la LSA Type-5.
R2#show ospfv3 database external
OSPFv3 1 address-family ipv4 (router-id 2.2.2.2)
Type-5 AS External Link States
Routing Bit Set on this LSA
LS age: 13
LS Type: AS External Link
Link State ID: 2
Advertising Router: 3.3.3.3
LS Seq Number: 80000001
Checksum: 0x6F27
Length: 48
Prefix Address: 4.4.4.0
Prefix Length: 24, Options: None
Metric Type: 2 (Larger than any link state path)
Metric: 20
Forward Address: 34.0.0.4
R2#
Executant la commande show ospfv3 au niveau de R3 pour confirmer que c’est bien R3 le translator.
R3#show ospfv3 | incl 7|RFC
Supports NSSA (compatible with RFC 3101)
Number of external LSA 1. Checksum Sum 0x006F27
RFC1583 compatibility enabled
SPF algorithm executed 7 times
Perform type-7/type-5 LSA translation
R3#
Pourquoi R3 est devenu le translator meme si R2 est configuré comme le forced translator, c’est à dire on l’a forcé?
Executons la commande show ospfv3 command on R2, y’a deux remarques qu’on peut tirer de la sortie de la commande.
La ligne « Supports NSSA (compatible with RFC 1587) » spécifie que la RFC 1587 est active, R2 est compatible avec la RFC 1587.
La ligne « Configured to translate Type-7 LSAs, inactive (RFC3101 support disabled) » spécifie que l’ABR est bien configuré pour etre le forced translator de la LSA Type-7 mais le status inactif parceque la RFC 3101 est désactivée.
Par conséquent, a partir du moment ou la RFC 1587 est active donc la RFC 3101 est inactive, OSPFv3 ignore la commande exécutée precedemment « area 1 nssa translate type7 always », et le router-id le plus grand deviendra le translator.
R2#show ospfv3
OSPFv3 1 address-family ipv4
Router ID 2.2.2.2
Supports NSSA (compatible with RFC 1587)
Event-log enabled, Maximum number of events: 1000, Mode: cyclic
It is an area border and autonomous system boundary router
Redistributing External Routes from,
Router is not originating router-LSAs with maximum metric
Initial SPF schedule delay 5000 msecs
Minimum hold time between two consecutive SPFs 10000 msecs
Maximum wait time between two consecutive SPFs 10000 msecs
Minimum LSA interval 5 secs
Minimum LSA arrival 1000 msecs
LSA group pacing timer 240 secs
Interface flood pacing timer 33 msecs
Retransmission pacing timer 66 msecs
Retransmission limit dc 24 non-dc 24
Number of external LSA 1. Checksum Sum 0x006F27
Number of areas in this router is 2. 1 normal 0 stub 1 nssa
Graceful restart helper support enabled
Reference bandwidth unit is 100 mbps
RFC1583 compatibility enabled
Area BACKBONE(0)
Number of interfaces in this area is 1
SPF algorithm executed 13 times
Number of LSA 12. Checksum Sum 0x065EE8
Number of DCbitless LSA 0
Number of indication LSA 0
Number of DoNotAge LSA 0
Flood list length 0
Area 1
Number of interfaces in this area is 1
It is a NSSA area
Configured to translate Type-7 LSAs, inactive (RFC3101 support disabled)
SPF algorithm executed 21 times
Number of LSA 11. Checksum Sum 0x057105
Number of DCbitless LSA 0
Number of indication LSA 0
Number of DoNotAge LSA 0
Flood list length 0
R2#
Conclusion: forcer un ABR pour etre le translator dépend de la RFC 3101, si elle est active, la commande est prise en compte, si elle est désactivé, elle est tout simplement ignorée par OSPFv3.