45
Routage Philippe Langevin Oct 2007, Nov 2008.

Route

Embed Size (px)

Citation preview

Page 1: Route

Routage

Philippe Langevin

Oct 2007, Nov 2008.

Page 2: Route

Protocole IP

Interface reseau

Routeur

Livraison physique

Routage IP

Adresse multicast

Filtrage et translation d’adresse

Algorithme de routage

Page 3: Route

Couche reseau

couche physique

couche liaison de donnees

couche reseau

couche transport

couche session

couche presentation

couche application

I Le protocole IP (Internet Protocole) constitue la couchereseau de TCP/IP. Il gere l’adressage et realisel’acheminement des donnees.

Page 4: Route

Classe d’adressesUne adresse IP est formee de 4 octets:

192.168.0.253

Classe Debut Numros Combinaison Nb hotes

A 1-126 1 2553 16581375B 128-191 2 2552 65025C 192-223 3 255 255D MulticastingE Reserve

127.x .y .z

designe une adresse locale, la RFC1357 prevoit des adressesprivees:

I En classe A : 10.0.0.0 a 10.255.255.255

I En classe B : 172.16.0.0 a 172.31.255.255

I En classe C : 192.168.0.0 a 192.168.255.255

Page 5: Route

Adresse Reseau

adresse ip reseau

adresse ip hote

masque

192 168 52128

255 255 240 0

192 168 176 0

0192 168 128

I L’adresse 192.168.128.52 ne fait pas partie du reseau192.168.176.0 / 20 bits

Page 6: Route

Interface Reseau

Le peripherique dedie a la communcation reseau est une interfacereseau. La commande ifconfig permet de configurer uneinterface reseau.

I ifconfig : voir une configuration.

I ifconfig eth0 done : desactiver l’interface.

I ifconfig eth1 up : activer l’interface.

I ifconfig eth0 192.168.0.1 mask 255.255.255.0 :assigner une adresse IP.

Page 7: Route

ifconfig

eth0 Link encap:Ethernet HWaddr 00:60:97:AA:04:0Dinet adr:10.2.73.86 Bcast:10.2.79.255 Mask:255.255.248.0adr inet6: fe80::260:97ff:feaa:40d/64 Scope:LienUP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1RX packets:230900 errors:0 dropped:0 overruns:0 frame:0TX packets:89477 errors:0 dropped:0 overruns:0 carrier:1collisions:12043 lg file transmission:1000RX bytes:74627279 (71.1 MiB) TX bytes:55943233 (53.3 MiB)Interruption:10 Adresse de base:0xe800

lo Link encap:Boucle localeinet adr:127.0.0.1 Masque:255.0.0.0adr inet6: ::1/128 Scope:HoteUP LOOPBACK RUNNING MTU:16436 Metric:1RX packets:10794 errors:0 dropped:0 overruns:0 frame:0TX packets:10794 errors:0 dropped:0 overruns:0 carrier:0collisions:0 lg file transmission:0RX bytes:9488777 (9.0 MiB) TX bytes:9488777 (9.0 MiB)

Page 8: Route

Routeur

Les reseaux sont relies entre eux par des routeurs. Un routeur estun hote qui joue le role de passerelle entre les reseaux sur lequel ilest physiquement connecte.

I une adresse physique par interface

I une adresse IP par reseau.I autorisation des transfert d’interface :

I /proc/sys/net/ipv4/ip forwardI find /proc -name ‘‘*forward*’’

Page 9: Route

datagramme

hlenver longeur

identification deplacement

TTL protocole check−sum

data

paddingoption IP

adresse ip source

adresse ip destination

flags

tos

Page 10: Route

Encapsulation

hlenver longeuridentification deplacement

TTL protocole check−sum

datapaddingoption IP

adresse ip sourceadresse ip destination

flagstos

mac dst mac srcadresseadresse parite

Ne pas confondre adresses mac et adresses IP !

Page 11: Route

Livraison physique

who as

reseau physique10.1.0.254

Page 12: Route

Livraison physique

reseau physique

arp reply : 10.1.0.254is at 00:01:30:10:CB:20

Page 13: Route

ping mail.univ-tln.fr

[ root@mnsnet ]# / u s r / s b i n /tcpdump −n − i any

0 7 : 3 6 . arp who−has 1 9 2 . 1 6 8 . 0 . 2 5 4 t e l l 1 9 2 . 1 6 8 . 0 . 3 00 7 : 3 6 . arp r e p l y 1 9 2 . 1 6 8 . 0 . 2 5 4 i s−at 0 0 : 0 7 : cb : 1 a : 1 6 : 3 d0 7 : 3 6 . IP 1 9 2 . 1 6 8 . 0 . 3 0 . f i l e n e t −nch > 2 1 2 . 2 7 . 5 4 . 2 5 2 . domain :

37820+ A? m a i l . un iv−t l n . f r .0 7 : 3 6 . IP 2 1 2 . 2 7 . 5 4 . 2 5 2 . domain > 1 9 2 . 1 6 8 . 0 . 3 0 . f i l e n e t −nch :

37820 1/0/0 A 1 9 3 . 4 9 . 9 6 . 20 7 : 3 6 . IP 1 9 2 . 1 6 8 . 0 . 3 0 > 1 9 3 . 4 9 . 9 6 . 2 : ICMP echo r e q u e s t ,

i d 6933 , seq 1 , l e n g t h 640 7 : 3 6 . IP 1 9 3 . 4 9 . 9 6 . 2 > 1 9 2 . 1 6 8 . 0 . 3 0 : ICMP echo r e p l y ,

i d 6933 , seq 1 , l e n g t h 640 7 : 3 6 . IP 1 9 2 . 1 6 8 . 0 . 3 0 . f i l e n e t −nch > 2 1 2 . 2 7 . 5 4 . 2 5 2 . domain :

52476+ PTR? 2 . 9 6 . 4 9 . 1 9 3 . in−addr . a rpa . ( 4 2 )

Page 14: Route

Usurpation d’adresse mac

Le protocole arp n’est pas securise :

I diffusion des requetes.

I un hote pirate peut usurper une adresse mac.

I arp spoofing.

Page 15: Route

Commandes et fichiers

I arp - manipule la table ARP du systeme.

I fichier /proc/net/arp d

[dm@msnet] cat /proc/net/arp d.IP address HW type Flags HW address Mask Device192.168.0.254 0x1 0x2 00:07:CB:1A:16:3D * eth

Page 16: Route

traceroute www.upf.fr

1 1 0 . 2 . 7 2 . 1 3 . 9 8 0 ms 4 . 9 4 7 ms 6 . 3 4 4 ms2 c7200 6 . 7 1 6 ms 4 . 1 1 2 ms 4 . 8 5 8 ms3 1 9 4 . 2 1 4 . 6 6 . 3 0 14 .135 ms 9 . 4 6 3 ms 7 . 6 9 7 ms4 1 9 3 . 5 0 . 1 0 8 . 9 3 7 . 4 4 8 ms 9 . 8 6 7 ms 6 . 2 9 2 ms5 1 9 3 . 4 9 . 2 . 1 4 8 . 0 7 9 ms 7 . 0 1 5 ms 11.694 ms6 m a r s e i l l e −g3−2−24. c s s i . r e n a t e r . f r 7 . 2 1 7 ms7 m o n t p e l l i e r−pos2−0. c s s i . r e n a t e r . f r 17 .109 ms8 lyon−pos15−0. c s s i . r e n a t e r . f r 16 .135 ms9 f t l d −l y o n . c s s i . r e n a t e r . f r 20 .408 ms 19 .344 ms

10 po0−0. p a s s e 2 . P a r i s . o p e n t r a n s i t . ne t 24 .689 ms11 t e n g i g e 0 −3−0−0−1000. p a s t r 1 . P a r i s . o p e n t r a n s i t . ne t12 v e r i o −4.GW. o p e n t r a n s i t . ne t 28 .795 ms 30.372 ms13 as−0. r23 . londen03 . uk . bb . g i n . n t t . n et 33 .649 ms14 xe−3−1. r01 . londen03 . uk . bb . g i n . n t t . ne t 50 .833 ms15 xe−3−1. r01 . londen05 . uk . bb . g i n . n t t . ne t 32 .742 ms16 ge−2−15. c01 . londen02 . uk . wh . v e r i o . n et 32 .899 ms17 8 3 . 2 3 1 . 1 5 2 . 3 6 44 .401 ms 32.400 ms 34 .702 ms18 eul0001112−p i p . eu . v e r i o . ne t 34 .425 ms

Page 17: Route

Renater

Page 18: Route

Routage IP

extractionadresse IPdestination

le paquetest arrive suivant

a l’hote

la table deroutage

consulter

envoyer

locale ?

datagramme

acces ?

Page 19: Route

Routage IP

eth2

eth0

eth1

10.0.1.1192.168.1.5

192.168.5.2

192.168.5.0 / 24 192.168.5.1 eth0192.168.1.0 / 24 192.168.1.1 eth10.0.0.0 10.0.0.1 eth2

192.168.1.5

Page 20: Route

Messages ICMP

Lorsque un paquet traverse une passerelle, le TTL du datagrammeest decremente. Le routeur emet un message ICMP a l’adressesource IP du paquet:

I paquet perdu

I pas d’hote sur le reseau

I pas de route pour la destination

I port ferme

I paquet filtre

Page 21: Route

Paquet filtre

[root@ou812 ~]# traceroute luminy.univ-mrs.fr.traceroute to luminy.univ-mrs.fr (139.124.100.7), 30 hops max, 38 byte packets1 10.2.72.1 (10.2.72.1) 0.815 ms 0.860 ms 0.717 ms2 c7200 (192.168.6.2) 1.284 ms 2.705 ms 0.743 ms3 194.214.66.30 (194.214.66.30) 24.132 ms 28.485 ms 29.849 ms 4 vers-ustv-lagarde.ge-0-1-1.ns1-mars.sherpaa.net (193.50.108.93) 21.238 ms 9.177 ms 5.657 ms5 193.50.108.138 (193.50.108.138) 29.207 ms 32.550 ms 29.857 ms6 194.214.66.194 (194.214.66.194) 10.021 ms 4.012 ms 3.708 ms 7 * * *8 vpn-internet-u2-Timone.phocean.fr (194.214.97.5) 21.966 ms 6.592 ms 23.842 ms9 ad-u2-Luminy.phocean.fr (193.50.131.23) 20.335 ms 5.991 ms 4.405 ms

10 luminy.univ-mrs.fr (139.124.100.7) 10.074 ms 8.488 ms 4.799 ms

[root@ou812 ~] # ping -c1 -t4 luminy.univ-mrs.frPING luminy.univ-mrs.fr (139.124.100.7) 56(84) bytes of data.From (192.168.6.2) icmp_seq=0 Packet filtered

--- luminy.univ-mrs.fr ping statistics ---1 packets transmitted, 0 received, +1 errors,100 % lost

Page 22: Route

Time to live exceeded

[pl@localhost $ traceroute www.univ-tln.frtraceroute to www.univ-tln.fr (193.49.96.34), 30 hops max, 60 byte packets1 192.168.0.254 (192.168.0.254) 2.538 ms 4.685 ms 5.327 ms2 82.244.173.254 (82.244.173.254) 25.973 ms 29.212 ms 29.967 ms3 78.254.6.222 (78.254.6.222) 31.299 ms 31.923 ms 32.659 ms4 tga83-1-v902.intf.nra.proxad.net (78.254.254.113) 33.824 ms 34.710 ms 35.426 ms5 tsm83-1-v900.intf.nra.proxad.net (78.254.254.109) 36.630 ms 37.223 ms 47.977 ms6 tdv83-1-v902.intf.nra.proxad.net (78.254.254.105) 48.845 ms 22.422 ms 22.067 ms7 tro83-1-v900.intf.nra.proxad.net (78.254.254.101) 22.586 ms 25.163 ms 25.886 ms8 tca83-1-v902.intf.nra.proxad.net (78.254.254.97) 26.375 ms 26.865 ms 27.713 ms9 lse83-1-v900.intf.nra.proxad.net (78.254.254.93) 28.436 ms 30.469 ms 32.329 ms

10 sf283-1-v902.intf.nra.proxad.net (78.254.254.89) 33.990 ms 35.823 ms 36.350 ms11 ban83-1-v900.intf.nra.proxad.net (78.254.254.85) 37.797 ms 39.720 ms 40.580 ms12 lbe83-1-v902.intf.nra.proxad.net (78.254.254.81) 22.952 ms 23.090 ms 22.816 ms13 scy83-1-v900.intf.nra.proxad.net (78.254.254.77) 23.605 ms 24.233 ms 26.805 ms14 cio13-1-v902.intf.nra.proxad.net (78.254.254.73) 27.558 ms 30.166 ms 31.434 ms15 au213-1-v900.intf.nra.proxad.net (78.254.254.69) 32.455 ms 33.004 ms 34.909 ms16 au113-1-v902.intf.nra.proxad.net (78.254.254.65) 36.067 ms 36.734 ms 37.258 ms17 etc...

Page 23: Route

Time to live exceeded

[pl@localhost]$ ping -c1 -t8 www.univ-tln.frPING www.univ-tln.fr (193.49.96.34) 56(84) bytes of data.From tca83-1-v902.intf.nra.proxad.net(78.254.254.97) icmp_seq=1 Time to live exceeded

--- www.univ-tln.fr ping statistics ---1 packets transmitted, 0 received, +1 errors,100% packet loss, time 65ms

Page 24: Route

Destination Host Unreachable

[root@ou812 ~]# host port-aciport-aci.univ-tln.fr has address 10.2.73.93

[root@ou812 ~]# ping -c1 10.2.73.93PING 10.2.73.93 (10.2.73.93) 56(84) bytes of data.From 10.2.73.86 icmp_seq=0 Destination Host Unreachable

--- 10.2.73.93 ping statistics ---1 packets transmitted, 0 received, +1 errors

Page 25: Route

Destination Net Unreachable

[root@ou812 ~]# ping 10.0.0.1PING 10.0.0.1 (10.0.0.1) 56(84) bytes of data.From 193.49.2.14 icmp_seq=7 Destination Net UnreachableFrom 193.49.2.14 icmp_seq=8 Destination Net UnreachableFrom 193.49.2.14 icmp_seq=9 Destination Net UnreachableFrom 193.49.2.14 icmp_seq=10 Destination Net Unreachable

--- 10.0.0.1 ping statistics ---11 packets transmitted, 0 received, +4 errors, 100

Page 26: Route

Port unreachable

[langevin@ou812 ~] host port-aci maitinfo7;; connection timed out; no servers could be reached

[root@ou812 ~]# tcpdump -t icmp or port domaintcpdump: verbose output suppressed, use -v or -vv for full protocol decodelistening on eth0, link-type EN10MB (Ethernet), capture size 96 bytes

IP ou812.univ-tln.fr.32831 > maitinfo7.univ-tln.fr.domain:18541+ A? port-aci.univ-tln.fr. (38)

IP ou812.univ-tln.fr.32832 > mail.univ-tln.fr.domain:21309+ PTR? 223.185.9.10.in-addr.arpa. (43)

IP maitinfo7.univ-tln.fr > ou812.univ-tln.fr:icmp 74: maitinfo7.univ-tln.fr

udp port domain unreachable

Page 27: Route

Manipulation des tables de Routage

I route affiche la table de routage.

I route add permet d’ajouter une route.

I route del permet de supprimer une route.

Page 28: Route

Exemple

[ root@ou812 ] r o u t e

Table de r o u t a g e IP du noyauD e s t i n a t i o n P a s s e r e l l e Genmask I f a c e1 0 . 2 . 7 2 . 0 ∗ 2 5 5 . 2 5 5 . 2 4 8 . 0 U eth01 6 9 . 2 5 4 . 0 . 0 ∗ 2 5 5 . 2 5 5 . 0 . 0 U eth0defau l t 1 0 . 2 . 7 2 . 1 0 . 0 . 0 . 0 UGeth0

[ root@ou812 ] r o u t e add 1 9 2 . 1 6 8 . 0 . 1 r e j e c t

[ root@ou812 ] r o u t eTable de r o u t a g e IP du noyauD e s t i n a t i o n P a s s e r e l l e Genmask I f a c e1 9 2 . 1 6 8 . 0 . 1 − 2 5 5 . 2 5 5 . 2 5 5 . 2 5 5 !H −1 0 . 2 . 7 2 . 0 ∗ 2 5 5 . 2 5 5 . 2 4 8 . 0 Ueth01 6 9 . 2 5 4 . 0 . 0 ∗ 2 5 5 . 2 5 5 . 0 . 0 Ueth0defau l t 1 0 . 2 . 7 2 . 1 0 . 0 . 0 . 0 UGeth0

Page 29: Route

Correct ou pas ?

destination masque passerelle interface ?

10.1.30.0 255.255.0.0 10.1.30.9 10.1.30.1

10.1.40.0 255.255.255.0 10.1.40.2 10.1.40.1

10.1.50.0 255.255.255.0 10.1.50.1 10.1.50.1

10.1.60.0 255.255.255.0 10.1.60.1 10.1.40.1

10.1.70.0 255.255.255.0 10.1.40.8 10.1.40.1

10.1.80.1 255.255.255.0 10.1.50.9 10.1.50.1

10.1.90.1 255.255.255.255 10.1.50.9 10.1.40.1

0.0.0.0 0.0.0.0 10.1.50.9 10.1.40.1

Page 30: Route

Adresse multicast

I L’adresse 224.0.0.1 identifie tous les hotes d’un sous-reseau.Tous les hotes ayant des capacites multicast dans unsous-reseau doivent faire partie de ce groupe.

I L’adresse 224.0.0.2 identifie tout routeur multicast dans unreseau.

I Le champ d’adresse 224.0.0.0 - 224.0.0.255 est alloue pour lesprotocoles bas niveau. Les datagrammes envoyes dans cetteplage d’adresse ne seront pas routes par des routeursmulticast.

I La plage d’adresse 239.0.0.0 - 239.255.255.255 est allouee ades fins administratives. Les adresses sont allouees localementpour chaque organisation mais elles ne peuvent exister al’exterieur de celles-ci. Les routeurs de l’organisation nedoivent pas pouvoir router ces adresses a l’exterieur du reseaude l’entreprise.

Page 31: Route

Regions multicast

scope TTL Plage d’adresse

Noeud 0

Lien 1 224.0.0.0 - 224.0.0.255

Departement < 32 239.255.0.0 - 239.255.255.255

Organisation < 64 239.192.0.0 - 239.195.255.255

Global < 255 224.0.1.0 - 238.255.255.255

Page 32: Route

Conversion IP multicast adresse physique

ADRESSE IP MULTICAST

ADRESSE PHYSIQUE MULTICAST

0 0 5 E0 1

224 x y z

y zx

Page 33: Route

ping -c1 -t1 224.0.0.1

64 bytes from 10.2.73.86: icmp_seq=0 ttl=64 time=0.133 ms64 bytes from 10.2.73.84: icmp_seq=0 ttl=64 time=0.578 ms (DUP!)64 bytes from 10.2.73.103: icmp_seq=0 ttl=64 time=0.657 ms (DUP!)64 bytes from 10.2.73.87: icmp_seq=0 ttl=64 time=0.718 ms (DUP!)64 bytes from 10.2.73.100: icmp_seq=0 ttl=64 time=0.780 ms (DUP!)64 bytes from 10.2.73.75: icmp_seq=0 ttl=64 time=0.797 ms (DUP!)64 bytes from 10.2.73.113: icmp_seq=0 ttl=64 time=1.08 ms (DUP!)64 bytes from 10.2.73.181: icmp_seq=0 ttl=64 time=1.08 ms (DUP!)64 bytes from 10.2.73.178: icmp_seq=0 ttl=64 time=1.18 ms (DUP!)64 bytes from 10.2.73.74: icmp_seq=0 ttl=254 time=1.19 ms (DUP!)64 bytes from 10.2.73.187: icmp_seq=0 ttl=255 time=1.39 ms (DUP!)64 bytes from 10.2.73.111: icmp_seq=0 ttl=64 time=1.39 ms (DUP!)64 bytes from 10.2.75.5: icmp_seq=0 ttl=128 time=1.49 ms (DUP!)64 bytes from 10.2.73.48: icmp_seq=0 ttl=60 time=2.30 ms (DUP!)64 bytes from 10.2.73.43: icmp_seq=0 ttl=60 time=2.56 ms (DUP!)64 bytes from 10.2.73.206: icmp_seq=0 ttl=64 time=6.79 ms (DUP!)64 bytes from 10.2.73.183: icmp_seq=0 ttl=255 time=6.81 ms (DUP!)64 bytes from 10.2.73.78: icmp_seq=0 ttl=64 time=7.12 ms (DUP!)64 bytes from 10.2.73.29: icmp_seq=0 ttl=255 time=7.35 ms (DUP!)64 bytes from 10.2.73.184: icmp_seq=0 ttl=255 time=7.80 ms (DUP!)64 bytes from 10.2.73.131: icmp_seq=0 ttl=64 time=8.34 ms (DUP!)64 bytes from 10.2.72.1: icmp_seq=0 ttl=128 time=8.42 ms (DUP!)64 bytes from 10.2.73.126: icmp_seq=0 ttl=60 time=8.93 ms (DUP!)64 bytes from 192.168.0.1: icmp_seq=0 ttl=127 time=8.93 ms (DUP!)

Page 34: Route

setsockopt - Lire et ecrire les options dune socket.

#inc lude <s y s / t y p e s . h>#inc lude <s y s / s o c k e t . h>i n t s e t s o c k o p t ( i n t s , i n t l e v e l , i n t optname , void ∗ o p t v a l ,

s o c k l e n t o p t l e n ) ;

setsockopt() manipule les options associees une socket. Il s’agitde preciser le niveau vise et le nom de loption. Au niveau socket,level prend la valeur SOL SOCKET. Pour tous les autres niveaux,il faut fournir le numro de protocole approprie.Les parametres optval et optlen sont utilises pour determiner lesoptions.optname et toute autre option sont passees sans interpretation auprotocole approprie, pour quil linterprete lui-meme.

Page 35: Route

Socket multicast : main

// kwds=r e c e p t i o n , e m i s s i o ni n t main ( i n t argc , char∗ a r g v [ ] ){

i n t sock ;

ADDRMULTICAST = i n e t a d d r ( "224.1.2.3" ) ; // a d r e s s e par d e f a u t

i f ( ( sock = s o c k e t ( AF INET , SOCK DGRAM, 0 ) ) < 0)

p e r r e u r ("socket" ) ;

i f ( ! a r g s ( argc , a r g v ) ) e x i t ( 1 ) ;

i f ( RECEPT ) r e c e p t i o n ( sock ) ;i f ( SEND ) e m i s s i o n ( sock ) ;

c l o s e ( sock ) ;return 0 ;

}

Page 36: Route

Socket multicast : args// mark=a r g si n t a r g s ( i n t argc , char∗ a r g v [ ] ){

char ∗ o p t l i s t e = "a:p:rs:t:h" ;i n t opt ;whi le ( ( opt = g e t o p t ( argc , argv , o p t l i s t e ) ) >=0 ) {

switch ( opt ){case ’a’ : ADDRMULTICAST = i n e t a d d r ( o p t a r g ) ; break ;case ’s’ : SEND = a t o i ( o p t a r g ) ;

break ;case ’r’ : RECEPT = 1 ;

break ;case ’t’ : TTL = a t o i ( o p t a r g ) ;

break ;case ’p’ : PORT = a t o i ( o p t a r g ) ;

break ;case ’h’ : p r i n t f ("\nusage %s : %s" , a r g v [ 0 ] , o p t l i s t e ) ;defau l t : return 0 ;}

}return 1 ;}

Page 37: Route

Socket multicast : reception// kwds=s e t s o c k o p tvoid r e c e p t i o n ( i n t sock ){ char b f r [ 1024 ] ;

i n t nb ;s t ruc t i p m r e q rm ;s t ruc t s o c k a d d r i n adr ;memset ( & adr , 0 , s i z eo f ( s t ruc t s o c k a d d r i n ) ) ;adr . s i n f a m i l y = AF INET ;adr . s i n a d d r . s a d d r = h t o n l ( INADDR ANY ) ;adr . s i n p o r t = h t o n s (PORT) ;

i f ( b i n d ( sock , ( s t ruc t s o c k a d d r ∗) & adr , l e n ) < 0 )p e r r e u r ("bind" ) ;

memset ( & rm , 0 , s i z eo f ( s t ruc t i p m r e q ) ) ;rm . i m r m u l t i a d d r . s a d d r = ADDRMULTICAST ;rm . i m r i n t e r f a c e . s a d d r = h t o n l (INADDR ANY ) ;i f ( s e t s o c k o p t ( sock , IPPROTO IP , IP ADD MEMBERSHIP , & rm , s i z eo f ( s t ruc t i p m r e q ) ) < 0 )

p e r r e u r ("opt" ) ;whi le ( 1 ) {

nb = r e c v ( sock , b f r , 1024 , 0 ) ;i f ( nb > 0 ) p r i n t f ("%s" , b f r ) ;e l s e p r i n t f ("*" ) ;f f l u s h ( s t d o u t ) ;

}}

Page 38: Route

Socket multicast : emission

// kwds=s e t s o c k o p tvoid e m i s s i o n ( i n t sock ){ char b f r [ 1024 ]="\nhello !" ;

i n t nb ;s t ruc t s o c k a d d r i n adr ;memset ( & adr , 0 , s i z eo f ( s t ruc t s o c k a d d r i n ) ) ;adr . s i n f a m i l y = AF INET ;adr . s i n a d d r . s a d d r = ADDRMULTICAST ;adr . s i n p o r t = h t o n s (PORT) ;s e t s o c k o p t ( sock , IPPROTO IP , IP MULTICAST TTL , &TTL , s i z eo f (TTL ) ) ;whi le ( SEND−− ) {

nb = s e n d t o ( sock , b f r , 1024 , 0 , ( s t ruc t s o c k a d d r ∗)& adr , l e n ) ;i f ( nb <= 0 ) {

i f ( nb ) p e r r o r ("send" ) ;break ;

}s l e e p ( 1 ) ;

}}

Page 39: Route

tcpdump -n igmp or dst 225.0.0.31

listening on eth0, link-type EN10MB (Ethernet), capture size 96 bytes16:49:31.014253 IP 192.168.0.1 > 224.0.0.1: igmp query v2# ./igmp.exe -rIP 10.2.73.86 > 224.0.0.251: igmp v2 report 224.0.0.251IP 10.2.73.86 > 225.0.0.31: igmp v2 report 225.0.0.31IP 10.2.73.86 > 225.0.0.31: igmp v2 report 225.0.0.31IP 10.2.73.86 > 225.0.0.31: igmp v2 report 225.0.0.31# ./igmp.exe -s3 -t1IP 10.2.73.86.32809 > 225.0.0.31.31415: UDP, length 1024IP 10.2.73.86.32809 > 225.0.0.31.31415: UDP, length 1024IP 10.2.73.86.32809 > 225.0.0.31.31415: UDP, length 1024# killall igmp.exeIP 10.2.73.86 > 224.0.0.2: igmp leave 225.0.0.31IP 10.2.75.5 > 225.0.0.31: igmp query v2 [gaddr 225.0.0.31]IP 10.2.75.5 > 225.0.0.31: igmp query v2 [max resp time 10] [gaddr 225.0.0.31]IP 10.2.75.5 > 225.0.0.31: igmp query v2 [max resp time 10] [gaddr 225.0.0.31]IP 10.2.75.5 > 224.0.0.1: igmp query v2IP 10.2.73.86 > 224.0.0.251: igmp v2 report 224.0.0.251

Page 40: Route

Evolution du nombre d’hotes

Page 41: Route

chaines de routage

routage routage

processus

ENTREE SORTIE

POSTROUTAGEPREROUTAGE

TRANSFERT

I modification des adresses : 5 zones critiques.

I iptable

Page 42: Route

iptables -L

Chain INPUT (policy ACCEPT)target prot opt source destinationACCEPT all -- anywhere anywhere

state RELATED,ESTABLISHEDACCEPT icmp -- anywhere anywhereACCEPT all -- anywhere anywhereACCEPT tcp -- anywhere anywhere

state NEW tcp dpt:sshREJECT all -- anywhere anywhere

reject-with icmp-host-prohibitedChain FORWARD (policy ACCEPT)REJECT all -- anywhere anywhere

reject-with icmp-host-prohibitedChain OUTPUT (policy ACCEPT)target prot opt source destination

Page 43: Route

Translation de ports

5001 : 10.1.65.2.2450

5002 : 10.1.65.5.1789

5000 : 10.1.65.1.5778

195.12.127.15.5000

193.12.15.1.53

10.1.65.0

10.1.65.1

10.1.65.254

195.12.127.15

10.1.65.1.5778

193.12.15.1.53

I iptables -t nat -A POSTROUTING -s 10.1.65.0/24 -oeth0 -j MASQ

Page 44: Route

Table de routage

I Un routeur decide de la destination (passerelle, gateway) d’unpaquet par consultation de la table de routage et de l’adresseIP du datagramme.

I La maintenance des tables de routage est une operationfondamentale. Elle peut etre manuelle, statique oudynamique.

Page 45: Route

Algorithme de la patate chaude

route vers 193.10.1.0

193.10.2.0193.10.1.0

I La notion de route par defaut permet la connexion d’unreseau local a un reseau global.

I route add default gw ip