#!/bin/handwriting #File written at 04/01/00 by flowerz, this doc is Y2K compliant #MAC power*f_u_c_k_i_n_g*book is not compliant with me = Introduction au routage = Ce petit document a ete ecrit dans un but precis , celui d'informer. De donner a un certain d'entre vous des idees (@&#! bon ce mac ca fait 3 fois qu'il me plante a la gueule avec mon texte fini donc cette fois je tacherai d'etre bref...). En gros des idees et des direction pour utiliser,s'amuser, exploiter le routage qui offre d'enorme possibilites. = INDEX =
2 - Routage Statique 3 - Routage Dynamique 4 - Cas Particuliers (ICMP redir, Source routing) 5 - Internet, et AS (Autonomous System) 6 - Amusons nous....>=> = Fin INDEX = Note: Ce document ne vous expliquera pas le fonctionnement mais donnera une idee du fonctionnement. pour en avoir un gout plus precis reportez vous au rfc qui repondent en general a toutes les questions. I PresentationPour commencer je ne serai pas sans vous presenter internet, vous y etes ,vous y vivez, cet espace est gouverne par certaine regles, dont certaines vous permettent d'envoyer vos paquets a l'autre bout de la planete avec la surete (ahem!!) que vos paquets arrivent. Ceci graaaaace a la magie du routage IP, he vii!! Alors il faut savoir 2 choses c est que le routage sur internet est hierarchise, je veux dire par la que chaque fournisseur fait son routage (en interne) et que par la suite un routage est mis place entre les != fournisseurs(AS). Comment ca marche, et comment un routeur il route: le routeur recoit un paquet en provenance de A sur une de ses interfaces a destination de B
pour pas faire chier on va garder des classe C et pas subnetter une classe C en sous reseaux de X ips (et pis chuis feignant la pas envie de reflechir pour calculer le netmask) if0=172.31.33.1 A=172.31.33.7 if1=172.31.32.1 B=172.31.32.15 if2=172.31.31.1 if3=172.31.30.1(default route) | (1a)>> | if0 |______ (1b)<< | if1 |______ ROUTEUR | if2 |______ (1c)<< | if3 | Voila un exemple tout bete de routage. II Routage StatiqueC'est un des moyens les plus simple et basique de diriger ses paquets sur un ou vers un reseau. Les possibilites sont restreinte certes, mais non negligeable. Pour le fonctionnement tout le monde doit le connaitre, il se base sur la comparaison de l'adresse destination avec la table de routage (statique). Vous devez donc definir une table de routage faisant correspondre a un reseau, un host , une route particuliere. Le netmask connu de tous, vous permet de subnetter votre reseau et par consequent les routes, s en trouvent alterŽ. l'option gw(gateway) vous permet de preciser le prochains hop a contacter pour joindre le host destination. D'autres options vous permettent de definir une priorite basique sur des routes :
root ~#route add -net 194.174.53.0 gw 130.79.200.1 eth0 metric 0 (1)
root ~#route -n Kernel IP routing table Destination Gateway Genmask Flags Metric Ref Use Iface 194.174.53.0 130.79.200.1 255.255.255.0 U 0 0 0 eth0 194.174.53.0 194.47.43.1 0.0.0.0 UG 1 0 0 eth0 dans cet exemple : la route (1) sera la route emprunte pour joindre le reseau 194.174.53.0 si la passerelle est joignable, si la passerelle est injoingnable les paquets passerons sur la route (2). Si une QoS a ete definie , le routage sera effectue selon la priorite du(es) services , un peu comme dans IPv6 avec l en-tete priority. Le kernel linux propose encore d 'autre options tel que le policy routing permettant de faire du routage par services, host, protocoles definissant la meilleur route a prendre pour tel ou tel type de traffic. III Le Routage Dynamique
Par opposition au routage statique, le routage dynamique permet une auto configuration
des routes via des informations transitant sur le reseau, un ensemble de protocoles ont
ete definis pour effectuer ces taches.
A) les protocoles a vecteurs distance
-theoriquement
R6 R7 \ / R1 ------ host0 / \ R3 R2 / \ / \ R4 R5 \ host1
Le routeur du reseau R1 sait atteindre R2,R3,R6 et R7, le routeur du reseau
R2 dis au routeur de R1 qu'il sait atteindre R4 et R5. host1 fait partie de
R5. -les specs 3 GROS protocoles sont connus et utilise dans cette categorie: RIP (Routing Information Protocol),IGRP(Interior Gateway Routing Protocol),EIGRP(Extended Interior etc..) RIP possede quelques limitations:
* impose un masque de sous reseau unique pour le reseau * il ne prend pas en compte le type de liaison (debit, reponse etc.) mais uniquement le nombre de sauts, les choix ne sont donc pas forcement les plus judicieux dans certain cas.
IGRP est une version evolue de RIP avec moin de limitation (www.cisco.com
pour plus d'info). B) Les protocoles a etat de liens Ce sont les protocoles de nouvelles generations, charge d effectue un routage plus intelligent ( je suis loin de les connaitre parfaitement mais bon je vais vous en parler comme je peux ), ils sont en gros charges d'annoncer l'etat d un lien physique, conduisant a une map complete de la charge et de la topologie du reseau. Avec ce genre d 'information eterogene sur les differents lien d'un reseau on peut trouver la route la plus efficace. Voila pour un presentation rapide, plus d'information sont contenu dans les RFC que vous trouverez n'importe ou sur le net, pour comprendre et utiliser ces protocoles. Je parlerai de BGP dans la partie Internet et AS il devra etre introduit en meme tps que la notions d'AS.
IV Cas ParticulierBon le routage n est pas base que sur des routes(mais a 90% quand meme =]), le protocoles ICMP joue un role de chef d'orchestre quand a l evaluation de la charge sur certain lien, il peut egalement prevenir du mauvais choix d'une route (ICMP redir) ou d'une surcharge d'une passerelle (Source Quench) certain routeur tiennent compte de ces messages pour changer "eventuellement" votre route vers une certaine destination.
ICMP redirection :
Exemple: host2 Network0 / | / host1 gw2 |_______________________________| | gw1(default)
Bon imaginons le host1 avec une table de routage simple et incomplete.
pour envoyer ses packets a host2 il utiliserait sa route par default (etant
donne que host2 pas dans le meme sous reseau) ici gw1, mais gw1 se rend
compte que la route est mauvaise, renvoie le packet a gw2 et envoie un
message ICMP redir a host1 lui disant que la route pour host2 vers gw2 est
meilleure. Source Routing Comme son nom l indique permet de forger un packet, avec la totalite de la route devant etre suivi par le packet a l'interieur de celui ci. N'ayant moi meme jamais forger de packet source route, je serai incapable de donner plus d'information. Il faut savoir que ca existe et la RFC (a lire!!!) vous donnera plus d'information sur le fonctionnement et la construction de ce genre de packets, l'imagination fera le reste.
V Internet, et AS (Autonomous System)
Comme dis dans la presentation on met en oeuvre 2 type de routage le routage
propre au fournisseur d'acces (en interne) et le routage entre les !=
fournisseur d'acces. Bon ca sera plus clair avec un schema : _______ BGP4 | ASXXX |___________________________________________ | ISP1 | | |_______| | ___|___ \ |ASYYY | \ ______ | ISP2 | \ BGP4 / BGP4 |_______| \ / \ _______ / (*) default route \ _ _|ASZZZ |_ |_ OUR ISP__| |_______| \ ______________/ | | \__________ / | | \ / | \ (*) \(*) /(*) (*)/ \ \ _____/_____ _____/_____ \___________ __\________ Router 1 Routeur 2 Routeur 3 Routeur 4 | | | | RIP EIGRP IGRP OSPF Reseau A Reseau B Reseau C Reseau D
Bon reprenons!! Voila pour la partie routage interne.
Maintenant le routage entre ISP comment se passe t il?
Des informations sur les reseaux que gerent chaque ISP sont echange par ces
protocoles particuliers (que je connais peu) appele protocoles de
passerelles externes tel que EGP(le premier du genre) et BGPv4 le plus
utilise a present.
Exemple: notation CIDR | Masque correspondant | Reseaux Couvert ______________________________________________________________________ 10.0.0.0/8 | 255.0.0.0 | 10.0.0.0 10.0.0.0/7 | 254.0.0.0 | 10.0.0.0;11.0.0.0 etc... cela s'apparente au subnetting sur une classe (c est pareil :).
bon donc l'InterNIC attribue un numero d'AS permettant de definir
grace a la notation CIDR independament des classes Bon ensuite poru rire un coup il vous est possible de voir comment le routage entre AS s'effectue au niveau de votre ISP, par exemple pour moi Cybercable, une ptit requete sur les server du RIPE pour avoir les numeros d'AS du mon ISP (ipw outils tres utile :)
rival ~$ipw 212.198.211.60 route: 212.198.0.0/16 descr: CYBERCABLE descr: Lyonnaise Communication descr: Paris origin: AS6678 <=== et voila le numero d AS de cybercable =] mnt-by: AS6678-MNT changed: adm-tech@cybercable.tm.fr 19980325 source: RIPE ...% Rights restricted by copyright. See http://www.ripe.net/ripencc/pub-services/db/copyright.html Puis pour avoir les routes des AS entrants et les routes vers les AS suffit de faire un whois sur le numero d'AS en question :) rival ~$whois AS6678 ... aut-num: AS6678 descr: CYBERCABLE descr: Cybercable / Lyonnaise Communications descr: 20, Place des vins de France descr: 75614 Paris Cedex 12 descr: FRANCE as-in: from AS3256 200 accept ANY AND NOT {0.0.0.0/0} as-in: from AS8297 200 accept ANY AND NOT {0.0.0.0/0} as-in: from AS5594 200 accept ANY AND NOT {0.0.0.0/0} as-in: from AS5436 100 accept AS5436 as-in: from AS2686 100 accept AS-IGNEMEA as-in: from AS6729 100 accept AS6729 as-in: from AS2917 100 accept AS-OLEANE as-in: from AS8228 100 accept AS-CEGETEL AS-BTFR as-in: from AS6771 100 accept AS6771 AS6774 AS5432 as-in: from AS3215 100 accept AS-RAIN as-in: from AS3342 100 accept AS-PLANETE as-in: from AS3259 100 accept AS-INETWAYFR as-in: from AS3256 100 accept AS6 AS789 AS1717 AS8332 AS5410 as-in: from AS3256 100 accept AS5630 AS6727 as-in: from AS6804 100 accept AS6804 OR {194.183.193.0/24} as-in: from AS6804 100 accept {194.183.194.0/24, 194.183.196.0/24} as-out: to AS3256 announce AS-CYBERCABLE as-out: to AS5436 announce AS-CYBERCABLE as-out: to AS6729 announce AS-CYBERCABLE as-out: to AS8297 announce AS-CYBERCABLE as-out: to AS5594 announce AS-CYBERCABLE as-out: to AS2686 announce AS-CYBERCABLE as-out: to AS2917 announce AS-CYBERCABLE as-out: to AS6729 announce AS-CYBERCABLE as-out: to AS8228 announce AS-CYBERCABLE as-out: to AS6771 announce AS-CYBERCABLE as-out: to AS3215 announce AS-CYBERCABLE as-out: to AS3342 announce AS-CYBERCABLE as-out: to AS3259 announce AS-CYBERCABLE as-out: to AS3256 announce AS-CYBERCABLE as-out: to AS6804 announce AS-CYBERCABLE admin-c: MGR20-RIPE tech-c: DP1707-RIPE tech-c: PJ187-RIPE remarks: ----------------------------------------------- remarks: Cybercable / Lyonnaise Communications remarks: Peering requests/info should be sent to: remarks: noc@cybercable.fr remarks: ----------------------------------------------- mnt-by: AS6678-MNT changed: pdg@euroconnect.fr 19990817 source: RIPE ...
Et voila toutes les routes Sympa non ? >=]
VI Amusons nous un peu >=]Je ne donnerai pas de commande, ni rien, j ai deja pu tester certain truc et des potes ont teste d'autres choses.Je vous files les idees a vous de les mettres en place. c est pas un HOWTO_use_routing_for_hax_the_white_house. [Exemple 1]
Bon Cybercable a mis ses #@$!#@ de quotas en route, mais
_MAIS_ :)
donc la demarche est tout simple 2)Tu te monte un VPN avec de l'UDP en prenant soit une adresse libre publique de ton boulot (si boulot tu utilise) ou alors apres tu pourras faire du masq sur ton ip de VPN,pour le VPN tcp over UDP, y a CIPE ou Vtun pour ceux que j'utilise (cf schema en dessous).
3)tu te fous une route vers le host ou tu connecte ton VPN via la gw cybercable
genre : puis tu te fous une route par default via ton adresse de VPN ok ? route add default gw ip_de_vpn_distante
et le tour est joue :) Schema Exemple 1 MODE classique (default route) [-MOI-] <-- tcp/udp(pas facture) --> [GW] <--- tcp/udp --> [INTERNET][-MACHINE_FIXE-] Dans ta config normale ta passerelle par default est celle de cybercable ok? Tout ton traffic tcp/udp passe par la gw, et donc toutes tes connections TCP sont facturables.
VPN powered [-MOI-] <---- VPN UDP (only) --------> [GW] | UDP | [MACHINE_FIXE] <-- tcp/udp --> [INTERNET]Dans cette config tu route vers [MACHINE_FIXE] avec qui tu etablit ton VPN. Celle ci devient ta passerelle par default pour tout le traffic via son adresse de VPN (privee). Il te faut juste une route vers [MACHINE_FIXE] (son ip publique) avec comme gw celle de cybercable.
Voila le tour est joue :) NB: faut pas oublier de NATer le reseau privee sur [MACHINE_FIXE] pour pouvoir acceder au net via celle ci, config de NAT classique, je n y reviendrais pas.
Bon c est sur ca demande un certain nombre de trucs. deja te faut une machine , avec des ips que tu libere ou libres tu colle a nouveau un VPN vers la machine de la boite.
Pouf tu prend plusieurs de leurs adresses publiques pour etablir
ton VPN tranquillos.
/* #dev*this*string*crypted,spoty, shado, ank, kewly, zlz, lionel, drN0
and the others >=] */
|