Skip to content →

Catégorie : Réseau

Passer de Cisco IOS à IOS-XR, une nouvelle façon de penser !

Pour industrialiser des nouveaux équipements ASR 99xx sous Cisco IOS-XR, j’ai écrit un script pour convertir rapidement la configuration des interfaces L3 IPv4 / IPv6, l’IGP OSPF/OSPFv3 et ses costs, ainsi que le routage BGP depuis une configuration de Cisco 6K sous IOS. Ceci afin principalement d’éviter les erreurs de ctrl+c / ctrl+v (ou l ‘effet PEBKAC) .

La majorité des changements est facile à appréhender entre IOS et IOS-XR, même si parfois les choix technologiques entrainent de changer sa manière de corréler la technique réseau et la configuration des équipements. Exemple : la MTU n’est plus considérée au niveau 3 sur un IOS-XR, mais comme la MTU niveau 2, voir ASR9000/XR: Understanding MTU calculations ou
MTU Behavior on Cisco IOS XR and Cisco IOS Routers).

Mais le changement majeur de IOS-XR, c’est l’arrivée des route-policies. Pour ceux qui ont l’habitude des SUP720 /  SUP2T, lorsque l’on configure une session BGP, on configure 3 éléments communs en IN / OUT :

  • filter-list [AS_PATH] (in|out) : On configure ici la liste des AS / AS_PATH BGP autorisés ou interdits en in et out
  • prefix-list [PFX_LIST] (in|out) : On configure ici la liste des préfixes annoncés ou interdits en in et out
  • route-map [ROUTEMAP] (in|out) : On configure ici la route-map in et out qui permettra de modifier les attributs BGP, les next-hop …. Tout un ensemble d’éléments nécessaires pour maitriser la répartition de trafic, les commits en fonction des transitaires, l’acceptation des default routes ou de la DFZ, etc ….

Sur Cisco IOS-XR, plus besoin de lire 1000 lignes éparpillées dans la configuration pour comprendre la logique de tel ou tel neighbor BGP ! On peut avoir le tableau d’équivalences suivant:

Cisco IOS Cisco IOS-XR
Sets d’AS Paths ip as-path access-list as-path-set
Sets de préfixes ip prefix-list prefix-set
Configuration neighbor BGP filter-list
prefix-list
route-map
route-policy

 

Désormais, les annonces, les filtres et la modification des attributs BGP se réalisent dans un seul et même endroit : la route-policy.

Ces route-policies sont un peu déroutantes au début, car il fait penser à tout. Plus possible de changer les annonces avec la modification rapide d’un prefix-list en out avec un clear ip bgp soft.

La logique de ces routes policies est beaucoup plus “programmatique” qu’avant :

  • Par défaut, on interdit tout (deny / drop implicite). Il n’y a donc plus de deny non plus dans les prefix-set ou les as-path-set, car il faut utiliser le mot clé “not” avant un test.
  • Les conditions sont faites par des conditions “if  then” > “elseif then” > “else” > “endif”, comme en bash. L’ordre des conditions remplace les numéros de séquences bien connues des route-maps.
  • L’exécution d’une route-policy se fait à l’aide d’un “ticket” qui peut changer de valeur en fonction des conditions :
    • mot clé “PASS” : L’exécution continue et on autorise, tant que le reste de la RPL ne drop pas (le deny implicite ne s’applique pas)
    • mot clé “SET” : Même usage que “PASS”, mais on ajoute la modification des attributs BGP
    • mot clé “DONE” : L’exécution s’arrête avec un “PASS”
    • mot clé “DROP”: L’exécution s’arrête avec un deny explicite.

Exemple simple et stupide !

route-policy example
    # On autorise les AS_PATH dans allowed-ases
    # On évite la default route dans default-route
    if (as-path in allowed-ases and not destination in default-route) then
         pass
    # On set le local-pref à 20 si on tombe sur la default-route
    elseif (destination in default-route) then
         set local-preference 20
    # Sinon on laisse passer le reste avec un local-preference a 10
    else 
         set local-preference 10
    endif
# Ici, on a un drop implicite, d'où le dernier set
end-policy

On peut aussi faire un appel à des routes-policies de manière imbriqué, en passant des variables :

route-policy set_localpref($pref)
  set local-pref $pref
end-policy

Dans la route-policy précédente, il nous suffit donc de faire

    else 
         apply set_localpref(10)
    endif

L’exemple ci-dessus n’est pas forcément le plus intelligent, mais en élargissant à des exemples concrets, on prend conscience de la puissance des route-policies sous IOS-XR. Il est même possible à priori d’appeler une route-policy avec un argument dans la configuration d’un neighbor BGP.

Cette nouvelle manière de penser / écrire les optimisations et actions sur le routage est très percutante, même si le changement est difficile à appréhender et nécessite de la réflexion.

En effet, dans la réalisation de mon script de migration, j’ai pu convertir les as-path access-list, les prefix-list, et les route-maps, mais le nombre de combinaisons possibles pour les neighbors BGP m’a empêcher d’automatiser leur conversion de manière simple. Le changement dans l’application des paramètres de configuration du neighbor BGP nécessite une revue complète et manuelle des paramètres de configuration du neighbor BGP.

Pour en savoir plus, je vous engage à lire ce très bon article sur le supportforums cisco, qui m’a permis de démarrer et automatiser la conversion des routes-maps : ASR9000/XR: Understanding and using RPL (Route Policy Language)

De nombreux articles sont disponibles sur le net, et la pratique vaut forcément mieux que l’exemple.

Bon courage à ceux qui doivent migrer des milliers de lignes à la main 😉

Comments closed

Génération de prefix-list pour peering BGP sur un IXP par script

Lorsqu’on est connecté sur un point d’échange IX, type FranceIX ou Equinix-IX, il peut être intéressant pour les membres de se connecter en direct d’AS à AS au lieu de passer par les routes servers de l’IXP.

Pour cela, il est conseillé de filtrer par liste de préfixes les peerings directs, afin d’éviter d’obtenir une mauvaise annonce de route(s). La génération de ces prefix-lists peut devenir fastidieuse et lourde en cas de nombreux peerings.

Ce script se base sur l’API Stat du RIPE-NCC, donc la documentation est ici : https://stat.ripe.net/docs/data_api

Le script est disponible sur mon repository github : https://github.com/beufanet/ripe-tools/blob/master/cisco_pfx_list_from_as.pl

Il permet de générer en Cisco IOS-Like des prefix-lists standardisées pour mise en place dans la configuration du peering BGP, qu’il sera assez simple d’appliquer pour éviter des leaks de route voir un blackhole …

Comments closed

Doubler son upload chez Numéricable

Il est désormais possible aux propriétaires de LaBox by Numéricable qui sont à 100Mbps ou 200Mbps de download d’augmenter son débit en upload par 2, pour passer de 5 à 10Mbps.

L’option est bien cachée dans l’espace client, mais vous pouvez la retrouvez en suivant la métthode suivante :

Numéricable, doubler le débit montant
Numéricable, doubler le débit montant

Vous pouvez alors activer, votre Box devra se resynchroniser ou rebooter pour que le modification soit effective

Une fois opérationnel, vous pourrez constater avec un speedtest le passage à 10Mbps en upload au lieu des 5Mbps précédemment.

Comments closed

LaBox by Numericable, bien mais pas top …

J’ai commandé il y a plusieurs mois LaBox by Numericable pour remplacer mes vieux modem NetGear et boitier HD Box. Passés les problèmes de mauvais provisionning fait par Numéricable, j’ai enfin pu profiter de ce produit, quand même bien foutu en terme d’interface (quelle évolution par rapport à la HD Box disposant d’une interface d’un autre âge).

Petit à petit, de fonctionnalité en fonctionnalité, je me suis rendu compte de nombreux bugs ou fonctionnalités promises et vendus même par la Valérie Damido mais pourtant non accessibles … Twitter, Facebook n’ont jamais fonctionné pour moi, et la VOD est un problème insolvable, même par la très compétente et très disponible cellule Experts de Lyon.

Pour ceux qui n’auraient pas accès à la VOD sur LaBox, je pense que c’est vraiment un problème matériel, si comme moi, il vous manque des accroches sur certaines porteuses. Petit explication :

Pour ma part, la première porteuse est à 122000KHz, Canal 85. Normalement, il y en a 8 en réception, espacées de 8000KHz chacune. Vous devez, en fonction de la fréquence de démarrage, obtenir donc des porteuses sur les fréquences suivantes :

  • 122.000 KHz => Canal 85
  • 130.000 KHz => Canal 86
  • 138.000 KHz => Canal 87
  • 146.000 KHz => Canal 89
  • 154.000 KHz => Canal 90
  • 162.000 KHz => Canal 91
  • 170.000 KHz => Canal 109
  • 178.000 KHz => Canal 110

En tout cas, même si je ne peux confirmer cette information, vous devriez avoir 8 porteuses en réception pour profiter de tous les services. Problème chez moi, lorsque le technicien fait le test avec son boitier dédié, aucun problème. Dès que je branche LaBox, celle-ci n’accroche que 4 des 8 porteuses, 122.000 KHz, 146.000 KHz, 154.000 KHz et 162.000 KHz.

NUMERICABLE_porteuses
Numéricable – problème réception porteuses

Ce qui fait qu’il manque des services. Je suspecte fortement un problème matériel sur LaBox, c’est à dire un bug sur le driver DOCSIS permettant l’accroche sur les porteuses du câble. Bizarrement, le problème ne se produit pas en boutique (SNR et puissance meilleurs ?)

En effet, dès que je force la fréquence de démarrage sur une porteuse, celle ci est acquise …

Forcé à 130000KHz
Statut     Modulation     Canal     Débit de symboles     Fréquence     Puissance     SNR
Acquis     QAM256     86     6952000 sym/sec     130000000 Hz     7.1 dBmV     43.9 dB
Acquis     QAM256     89     6952000 sym/sec     146000000 Hz     7.0 dBmV     42.4 dB
Acquis     QAM256     90     6952000 sym/sec     154000000 Hz     7.1 dBmV     42.5 dB
Acquis     QAM256     91     6952000 sym/sec     162000000 Hz     6.7 dBmV     42.6 dB
Forcé à 138000KHz
Statut     Modulation     Canal     Débit de symboles     Fréquence     Puissance     SNR
Acquis     QAM256     87     6952000 sym/sec     138000000 Hz     7.3 dBmV     43.9 dB
Acquis     QAM256     89     6952000 sym/sec     146000000 Hz     7.0 dBmV     42.1 dB
Acquis     QAM256     90     6952000 sym/sec     154000000 Hz     7.1 dBmV     42.5 dB
Acquis     QAM256     91     6952000 sym/sec     162000000 Hz     6.6 dBmV     42.6 dB
Forcé à 170000KHz
Statut     Modulation     Canal     Débit de symboles     Fréquence     Puissance     SNR
Acquis     QAM256     109     6952000 sym/sec     170000000 Hz     5.0 dBmV     41.1 dB
Forcé à 178000KHz
Statut     Modulation     Canal     Débit de symboles     Fréquence     Puissance     SNR
Acquis     QAM256     110     6952000 sym/sec     178000000 Hz     5.0 dBmV     42.4 dB

Dans les logs, j’ai également pas mal de lignes comme celles-ci :

 No Ranging Response received – T3 time-out;CM-MAC=24:ec:99:x:x:x;CMTS-MAC=68:ef:bd:x:x:x;CM-QOS=1.0;CM-VER=3.0;

Bref, si vous êtes comme moi, remontez le problème par Twitter @SAV_Numericable pour qu’un correctif soit appliqué, pour ma part, la seule solution proposée à part un échange en boutique puis un retour sur une HD Box Memory, aucune solution n’a été trouvée pas Numéricable.

Je reste content du débit (95MBps en down et 5Mbps en up) ainsi que du service support par Numéricable (par Twitter, le téléphone étant une catastrophe et une perte de temps).

Mais je trouve dommage d’avoir commercialisé un produit aussi peu fini, j’ai l’impression de me retrouver avec une Freebox v5 (voir v6 d’après ce que j’ai pu lire) à ses débuts. C’est très énervant quand on voit les pubs et chez soi, aucun service accessoire vendu ne fonctionne …. (je n’ai aucun problème sur la TV, l’Internet et le téléphone, ouf …)

A bon entendeur !

 

One Comment

[IPv6] ipv6.he.net certification

Ca y est je l’ai !

Je vous invite à réaliser cette certification ipv6 : http://ipv6.he.net/certification/

Elle est très bien réalisée, et vous aide au travers de différentes étapes (configuration réseau, interface 6in4 et routage, smtp/dns/http), à monter un tunnel 6in4 chez vous et obtenir gratuitement un préfixe /48 pour l’adressage de tous vos postes chez vous (quand ils sont accessibles).

Pour l’instant, IPv6 Sage avec 1022 points, pour aller plus loin, il faut soumettre un ping / traceroute / dig AAAA / dig -x / whois pour obtenir un point pour chacun des tests, afin d’être dans le Top du top avec les 1500 points maximum.

IPv6 Certification Badge for beufa

Allez pour vous donner l’eau à la bouche, la conf de mon interface 6in4 :

iface heipv6 inet6 v4tunnel
	address 2001:470:xxxx:xxx::2
	netmask 64
	endpoint 216.66.84.42  # Map IPv4/6 he.net
	gateway ::216.66.84.42 # Map IPv6/4 he.net
	local 192.168.0.yyy    # Endpoint tunnel 6in4 local
	#bring up the networking needed for LAN dual-stack
	    up /sbin/ip -6 route add ::/0 dev heipv6
	    up /sbin/ip -6 addr add 2001:470:xxx::1/64 dev eth1 # Address from IPv6 /48 Prefix
	#take it down!
	    pre-down /sbin/ip -6 addr del 2001:470:xxx::1/64 dev eth1
	    pre-down /sbin/ip -6 route del ::/0 dev heipv6

 

Bon courage !

Comments closed
fr_FRFR