Un routeur Brocade exécutant NetIron 5.2 et une émulation Dynamips exécutant IOS 12.4 ne parviennent pas à utiliser de manière fiable des chemins de coût égal dans ce qui semble être une configuration très simple. Je dis "de manière fiable" parce que j'ai observé très brièvement le comportement attendu du Brocade, mais c'était après une longue période d'inactivité et a disparu dès que j'ai perturbé le système.
Dans le cas où cela est pertinent, je mets en place une destination anycast pour un service réseau sans état. Ce sera une configuration spécifique au site, avec peu ou pas de diversité de longueur de chemin de réseau, donc le but de la capacité anycast est principalement pour la redondance de basculement et en partie pour le partage de charge. Ma question concerne la fonction de partage de charge.
Mon réseau prototype ressemble à ceci.
R1 <--N1--> Rcore <--N2--> R2
R1
et R2
annoncer la destination anycast via OSPF. Si Rcore
a un coût identique sur ses interfaces N1
et N2
, et que la destination anycast a un coût identique pour chacun des autres routeurs, je m'attendrais à trouver deux chemins de coût égal dans la Rcore
table de routage. Je ne le fais pas, du moins pas toujours, et même pas de manière prévisible. Pourquoi pas?
Entre autres, les détails potentiellement pertinents sont les suivants.
Rcore
est une connexion ABRN1
etN2
, qui se trouvent dans des zones NSSA distinctes, à la dorsale (non illustrée).- L'inspection du
Rcore
LSDB confirme que les LSA attendus deR1
etR2
sont correctement installés, et contiennent la destination anycast avec la métrique correcte.
J'ai considéré trois explications possibles.
- Je ne comprends pas comment configurer et utiliser ECMP sur ces plateformes. C'est probable, et j'espère trouver ici des éclaircissements que je n'ai pas pu trouver dans les documents du vendeur.
- Je ne comprends pas l'interaction entre les zones OSPF, ECMP, anycast, etc. Je ne pense pas que ce soit très probable, mais je suis prêt à apprendre quelque chose de toute façon.
- Ces deux implémentations de fournisseurs souffrent du même bogue, d'une mauvaise fonctionnalité ou de quelque chose. Je suppose que cela pourrait arriver.
Édition Exemple de configuration et sortie ajoutées pour l'implémentation de Dynamips / Dynagen.
Configurations
Routeur R1
!
version 12.4
!
hostname R1
!
interface Loopback0
ip address 1.1.1.1 255.255.255.255
ip ospf cost 1
!
interface FastEthernet0/0
ip address 10.1.0.2 255.255.255.252
ip ospf cost 2
!
router ospf 1
router-id 10.1.0.2
log-adjacency-changes
area 0.0.0.1 nssa no-summary
passive-interface Loopback0
network 1.1.1.1 0.0.0.0 area 0.0.0.1
network 10.1.0.0 0.0.0.3 area 0.0.0.1
!
line console 0
exec-timeout 0 0
!
end
Routeur R2
!
version 12.4
!
hostname R2
!
interface Loopback0
ip address 1.1.1.1 255.255.255.255
ip ospf cost 1
!
interface FastEthernet0/0
ip address 10.2.0.2 255.255.255.252
ip ospf cost 2
!
router ospf 1
router-id 10.2.0.2
log-adjacency-changes
area 0.0.0.2 nssa no-summary
passive-interface Loopback0
network 1.1.1.1 0.0.0.0 area 0.0.0.2
network 10.2.0.0 0.0.0.3 area 0.0.0.2
!
line console 0
exec-timeout 0 0
!
end
Routeur Rcore
!
version 12.4
!
hostname Rcore
!
interface Loopback0
ip address 10.0.0.1 255.255.255.255
ip ospf cost 4
!
interface FastEthernet0/0
ip address 10.1.0.1 255.255.255.252
ip ospf cost 2
!
interface FastEthernet0/1
ip address 10.2.0.1 255.255.255.252
ip ospf cost 2
!
router ospf 1
log-adjacency-changes
area 0.0.0.1 nssa no-summary
area 0.0.0.2 nssa no-summary
passive-interface Loopback0
network 10.0.0.1 0.0.0.0 area 0.0.0.0
network 10.1.0.0 0.0.0.3 area 0.0.0.1
network 10.2.0.0 0.0.0.3 area 0.0.0.2
!
line console 0
exec-timeout 0 0
!
end
Production
Routeur Rcore
Routeur LSA à partir de R1
Rcore#sh ip ospf database router 10.1.0.2
OSPF Router with ID (10.0.0.1) (Process ID 1)
Router Link States (Area 0.0.0.1)
LS age: 1618
Options: (No TOS-capability, DC)
LS Type: Router Links
Link State ID: 10.1.0.2
Advertising Router: 10.1.0.2
LS Seq Number: 80000002
Checksum: 0x726F
Length: 48
Number of Links: 2
Link connected to: a Stub Network
(Link ID) Network/subnet number: 1.1.1.1
(Link Data) Network Mask: 255.255.255.255
Number of TOS metrics: 0
TOS 0 Metrics: 1
Link connected to: a Transit Network
(Link ID) Designated Router address: 10.1.0.2
(Link Data) Router Interface address: 10.1.0.2
Number of TOS metrics: 0
TOS 0 Metrics: 2
Routeur LSA à partir de R2
Rcore#sh ip ospf database router 10.2.0.2
OSPF Router with ID (10.0.0.1) (Process ID 1)
Router Link States (Area 0.0.0.2)
LS age: 1766
Options: (No TOS-capability, DC)
LS Type: Router Links
Link State ID: 10.2.0.2
Advertising Router: 10.2.0.2
LS Seq Number: 80000002
Checksum: 0x8A53
Length: 48
Number of Links: 2
Link connected to: a Stub Network
(Link ID) Network/subnet number: 1.1.1.1
(Link Data) Network Mask: 255.255.255.255
Number of TOS metrics: 0
TOS 0 Metrics: 1
Link connected to: a Transit Network
(Link ID) Designated Router address: 10.2.0.2
(Link Data) Router Interface address: 10.2.0.2
Number of TOS metrics: 0
TOS 0 Metrics: 2
Extrait de table de routage
Rcore#sh ip route 1.1.1.1
Routing entry for 1.1.1.1/32
Known via "ospf 1", distance 110, metric 3, type intra area
Last update from 10.1.0.2 on FastEthernet0/0, 00:30:54 ago
Routing Descriptor Blocks:
* 10.1.0.2, from 10.1.0.2, 00:30:54 ago, via FastEthernet0/0
Route metric is 3, traffic share count is 1
Réponses:
Ma première pensée serait que l'OSPF pense que c'est le même LSA au lieu de simplement le même préfixe. Je ne sais pas grand-chose sur le brocart, mais avec les sorties LSA de la box Cisco, je pourrais probablement vous en dire plus.
En général, pour Cisco, si les routes sont égales dans le protocole, elles seront toutes les deux présentées à la table de routage. La table de routage, par défaut, installera les deux chemins et effectuera l'ECMP. Si les métriques ou les protocoles diffèrent, ils ne seront pas ECMP. Cela s'appliquerait également à différents LSA pour le même préfixe.
la source
J'examine si ECMP a du sens pour anycast. Le routage doit diriger anycast vers la destination logiquement la plus proche dans laquelle un hôte serait favorisé par rapport à l'autre. Même dans le cas où les hôtes anycast sont équidistants, je m'attendrais toujours à ce que cela reste vrai. En ce qui concerne le partage de charge ECMP, je pense que la destination est impossible avec un / 32. Il existe peut-être des algorithmes de partage de charge qui tiennent compte de la source. Par paquet semble risqué, même pour DNS. Je crois que la plupart des solutions anycast prêtes à l'emploi exécutent ospf sur l'hôte.
A pris un peu de recherche, mais l'extrait suivant de rfc2178 confirme la cause.
16.8. Multipath à coût égal
Le protocole OSPF gère plusieurs routes à coût égal vers toutes les destinations. Cela peut être vu dans les étapes utilisées ci-dessus pour calculer la table de routage et dans la définition de la structure de la table de routage.
Chacune des routes multiples sera du même type (intra-zone, inter-zone, type 1 externe ou type 2 externe), de coût, et aura la même zone associée . Cependant, chaque route spécifie un prochain saut et un routeur publicitaire distincts.
la source
Je ne peux pas reproduire cela dans mon laboratoire, en utilisant 12.4 (24). Même topologie, boucle RCore zone 0, R1 avec lo0 et interface dans la zone 1, R2 avec lo0 et interface dans la zone 2 (les deux NSSA), la route redistribuée est récupérée pour ECMP sur Rcore:
Possibilités auxquelles je peux penser: en fonction de la façon dont l'itinéraire se rend dans OSPF et du type de route OSPF utilisé, le coût du routeur ASBR peut / peut ne pas être pris en compte dans le processus de sélection de l'itinéraire (pour que ECMP fonctionne, les deux coûts de l'itinéraire et le coût pour ASBR doivent correspondre). Voir la métrique sur le LSA réel pour les deux peut aider.
J'ai pu reproduire cela sur IOS en imitant votre configuration - en plaçant l'anycast sur une interface et en plaçant l'interface dans une zone. Si vous avez besoin d'ECMP, envisagez de redistribuer la route dans OSPF, car cela semble fonctionner.
la source
Selon le matériel Brocade que vous utilisez (MLX? CER? XMR?), Vous souhaiterez peut-être mettre à jour le logiciel. Plusieurs bogues ont été corrigés dans les arborescences logicielles 5.3 (et 5.4 selon votre matériel) dont les symptômes étaient liés au fait que les coûts de routage OSPF n'étaient pas mis à jour correctement. Je ne connais pas tous les critères pour voir les bogues, mais certains d'entre eux étaient: Si le coût a été modifié sur un port 1gig ou une interface de bouclage sur un routeur exécutant OSPF, le changement n'a pas été traité et le coût n'a pas été mis à jour .
Je sais que vous voyez cela sur les plates-formes de deux fabricants, il est donc plus probable que ce soit un problème de configuration. Je me rends également compte que le vieux support technique «mettre à jour votre logiciel» ne vaut souvent rien de plus qu'un roulement des yeux. Cela dit, c'est peut-être quelque chose à garder à l'esprit.
la source