OVH Cloud OVH Cloud

Ping en broadcast

22 réponses
Avatar
Angelot
Bonjour,

Voci les hypothèses : 4 machines par exemple sur le sous-réseau 192.164.
65.0 (défini par un masque classique à 24 bits - 255.255.255.0)

Je réalise depuis l'une des machines un ping à l'adresse de broadcast 19
2.164.65.255.

Eh bien... je récolte un seul résultat, celui... de la machine sur laque
lle j'ai réalisé le ping. Mes esprits en prennent un coup !

Ceci a été fait sur NT4, mais il semble d'après l'un de mes interlocuteu
rs que le résultat est identique avec XP. Quid de Linux ?

Ou se situerait la faille ? Je n'ai pas pensé à regarder le cache ARP po
ur savoir si les résolutions ont été faites. Et pour le moment je n'ai p
as de réseau en main.

Vos avis, SVP ?
Cordialement,
Angelot

=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
Article poste via Voila News - http://www.news.voila.fr
Le : Thu Sep 18 17:33:04 2003 depuis l'IP : avelizy-115-1-5-51.w81-53.abo.wanadoo.fr [VIP 234496906613]

10 réponses

1 2 3
Avatar
PYT
Je réalise depuis l'une des machines un ping à l'adresse de broadcast 19
2.164.65.255.
Essai fait fair sur un réseau 172.30.18.0/23, avec une machine W98.

Quand je ping 172.30.19.255 (à partir de la console DOS), le programme
envoie 4 demandes, et affiche 4 réponses:
Envoi d'une requête 'ping' sur 172.30.19.255 avec 32 octets de données :

Réponse de 172.30.19.255 : octets2 temps<10 ms TTLd
Réponse de 172.30.19.255 : octets2 temps<10 ms TTLd
Réponse de 172.30.19.255 : octets2 temps<10 ms TTLd
Réponse de 172.30.19.255 : octets2 temps<10 ms TTLd

En fait, un petit coup d'Ethereal me montre que mon ping est bien diffusé en
brodcast Ethernet, que des machines font des ARP pour obtenir mon adresse
MAC, et finalement répondent. Je vois 31 réponses, toujours les mêmes

Bien moins que le nombre de machines présentes sur le réseau (et dans le
voisinage réseau de window), et que je peux pinguer individuellement.
Là je nage un peu! Pourquoi ceux-là et pas d'autres? Si ce sont toujours les
mêmes, ce n'est probablement pas un problème de collisions ethernert. A
moins que ce soit un problème de capacité du switch?

Ceci a été fait sur NT4, mais il semble d'après l'un de mes
interlocuteurs que le résultat est identique avec XP.


Peut-être des OS qui prennent des libertés par rapport aux RFC, sous
prétexte de sécurité?

Avatar
djodj
je ne sais pas de quele RFC tu parles mais j'en suis preneur..

Peut-être des OS qui prennent des libertés par rapport aux RFC, sous
prétexte de sécurité?


il semble en fait que la logique soit celle d'une demande de service.. (et
non pas celle d'un outil de test)
je m'explique ;
je demande le service d'echo (ping donc) des que je recoit une reponse mon
service est rendu et donc je passe au service suivant.. toutes les trames
arrivant par la suite et correspondant a la demande de service précédante
sont alors jetées a la poubelle car la demande de service est close

c'est vrai que cette logique ne correspond pas a celle d'un outil systeme..
je serais curieux de voir command Linux traite le probleme..

Avatar
Roland MATTEOLI
Le Thu, 18 Sep 2003 20:11:06 +0200, djodj a tapote :

c'est vrai que cette logique ne correspond pas a celle d'un outil systeme..
je serais curieux de voir command Linux traite le probleme..


Sous linux mandrake 9.0:

ping -b -c 3 192.168.0.255 (-b pour pinguer le broadcast)
WARNING: pinging broadcast address
PING 192.168.0.255 (192.168.0.255) from 192.168.0.2 : 56(84) bytes of data.
64 bytes from 192.168.0.2: icmp_seq=1 ttld time=0.084 ms
64 bytes from 192.168.0.2: icmp_seq=2 ttld time=0.074 ms
64 bytes from 192.168.0.2: icmp_seq=3 ttld time=0.066 ms
--- 192.168.0.255 ping statistics ---
3 packets transmitted, 3 received, 0% loss, time 2028ms
rtt min/avg/max/mdev = 0.066/0.074/0.084/0.012 ms

avec dans ethereal pour chaque pings,
un echo request de 192.168.0.2 vers 255
et un echo request de 255 vers 2

--
Roland MATTEOLI

Avatar
kim
Roland MATTEOLI wrote:
Le Thu, 18 Sep 2003 20:11:06 +0200, djodj a tapote :

c'est vrai que cette logique ne correspond pas a celle d'un outil systeme..
je serais curieux de voir command Linux traite le probleme..



Sous linux mandrake 9.0:

ping -b -c 3 192.168.0.255 (-b pour pinguer le broadcast)
WARNING: pinging broadcast address
PING 192.168.0.255 (192.168.0.255) from 192.168.0.2 : 56(84) bytes of data.
64 bytes from 192.168.0.2: icmp_seq=1 ttld time=0.084 ms
64 bytes from 192.168.0.2: icmp_seq=2 ttld time=0.074 ms
64 bytes from 192.168.0.2: icmp_seq=3 ttld time=0.066 ms
--- 192.168.0.255 ping statistics ---
3 packets transmitted, 3 received, 0% loss, time 2028ms
rtt min/avg/max/mdev = 0.066/0.074/0.084/0.012 ms

avec dans ethereal pour chaque pings,
un echo request de 192.168.0.2 vers 255
et un echo request de 255 vers 2

tant qu'on en est aux prises d'empreintes :

sous gentoo, kernel2.4.20 :

$ ping -b 192.168.0.255
WARNING: pinging broadcast address
PING 192.168.0.255 (192.168.0.255) 56(84) bytes of data.
64 bytes from 192.168.0.2: icmp_seq=1 ttld time=0.095 ms
64 bytes from 192.168.0.2: icmp_seq=2 ttld time=0.080 ms
64 bytes from 192.168.0.2: icmp_seq=3 ttld time=0.082 ms
...

# tcpdump -i eth0 -t icmp
tcpdump: listening on eth0
192.168.0.2 > 192.168.0.255: icmp: echo request (DF)
192.168.0.2 > 192.168.0.255: icmp: echo request (DF)
192.168.0.2 > 192.168.0.255: icmp: echo request (DF)


aucune autre requête que icmp bien sûr.
On peut bien sûr reproduire le ping à l'infini. Par contre, aucune trace
de l'autre ordinateur sur le réseau, un windows2K.

ethereal, toujours sur le pingeur, nous donne bien évidemment que les
requetes de ping, pas les réponses.


Si je teste un ping localhost, je vérifie que le ping ne passe bien sûr
pas par l'eth0, mais le ping sur broadcast si, et possède un temps de
latence plus long de quelques millisecondes. En revanche, pas de réponse
de la windows (qui répond aux pings normaux).

Je suis un peu perdu ... le ping broadcast va bien répondre par le
localhost, puisque je n'ai pas d'icmp rentrant, mais il envoie quand
meme une requete sur le réseau ... elle devient quoi celle là ?

(je regarderai ca demain sur plusieurs machines sous linux je pense)


kim, qu'il faut arrêter si il se trompe hein !


Avatar
Raphael Bouaziz
Le Thu, 18 Sep 2003 21:37:06 +0200, Yann Ronel a écrit
dans le message :
C'est normal. Les windows ne répondent pas à un ping sur leur adresse de
broadcast ni de sous réseau d'ailleurs.

Ceci a été fait sur NT4, mais il semble d'après l'un de mes interlocuteu
rs que le résultat est identique avec XP. Quid de Linux ?


Ca dépend ;)

Sur de l'Unix proprio, ça répond, c'est clair.


Cela dépend vraiment des piles IP, les résultats sont très variables
en fonction de l'OS des hôtes.

11:24 [raphit:pts/0] morena ~% ping -b -c 3 62.4.17.127
WARNING: pinging broadcast address
PING 62.4.17.127 (62.4.17.127) from 62.4.17.112 : 56(84) bytes of data.
64 bytes from 62.4.17.112: icmp_seq=1 ttld time=0.107 ms
64 bytes from 62.4.17.55: icmp_seq=1 ttld time=0.203 ms (DUP!)
64 bytes from 62.4.17.97: icmp_seq=1 ttld time=0.209 ms (DUP!)
64 bytes from 62.4.17.47: icmp_seq=1 ttld time=0.252 ms (DUP!)
64 bytes from 62.4.17.43: icmp_seq=1 ttl%5 time=0.456 ms (DUP!)
64 bytes from 62.4.17.109: icmp_seq=1 ttld time=0.491 ms (DUP!)
64 bytes from 62.4.17.1: icmp_seq=1 ttl%5 time=0.662 ms (DUP!)
64 bytes from 62.4.17.126: icmp_seq=1 ttl%5 time=1.02 ms (DUP!)
64 bytes from 62.4.17.112: icmp_seq=2 ttld time=0.047 ms
64 bytes from 62.4.17.97: icmp_seq=2 ttld time=0.148 ms (DUP!)
64 bytes from 62.4.17.55: icmp_seq=2 ttld time=0.152 ms (DUP!)
64 bytes from 62.4.17.47: icmp_seq=2 ttld time=0.310 ms (DUP!)
64 bytes from 62.4.17.109: icmp_seq=2 ttld time=0.451 ms (DUP!)
64 bytes from 62.4.17.43: icmp_seq=2 ttl%5 time=0.634 ms (DUP!)
64 bytes from 62.4.17.1: icmp_seq=2 ttl%5 time=0.687 ms (DUP!)
64 bytes from 62.4.17.126: icmp_seq=2 ttl%5 time=1.16 ms (DUP!)
64 bytes from 62.4.17.112: icmp_seq=3 ttld time=0.045 ms

--- 62.4.17.127 ping statistics ---
3 packets transmitted, 3 received, +14 duplicates, 0% loss, time 2016ms
rtt min/avg/max/mdev = 0.045/0.414/1.167/0.322 ms

62.4.17.112 est la machine depuis laquelle est fait le ping (Linux 2.4.22) ;
62.4.17.55 est sous Linux 2.4.20 ;
62.4.17.97 est sous Linux 2.4.20 ;
62.4.17.47 est sous Linux 2.4.20 ;
62.4.17.43 est sous SunOS 5.8 ;
62.4.17.109 est sous Linux 2.0.37 ;
62.4.17.1 est sous IOS 12.1(13)EA1c ;
62.4.17.126 est sous IOS 12.3(1a).

Aucune machine sous *BSD (ce sont les plus nombreuses dans ce LAN)
n'a répondu, et la machine Windows 2000 n'a pas répondu non plus.

A noter que lors du troisième ping, on ne voit que la réponse de
la machine elle-même, les autres sont bien entendu arrivées, mais
ont été ignorées, et non affichées dans le résultat.

Egalement, quelque chose que je viens de remarquer, spécificité
de la commande 'ping' distribuée avec Linux :

11:29 [raphit:pts/0] morena ~% ping -c 5 62.4.17.127
Do you want to ping broadcast? Then -b

Je ne vois pas trop l'utilité, mais bon ...

Enfin, un 'ping -c 5 62.4.17.127' depuis une des machines sous *BSD
sus-citées ne donne aucune réponse.

--
Raphael Bouaziz.


Avatar
T0t0
"Angelot" wrote in message
news:bkcj7g$lmi$
Voci les hypothèses : 4 machines par exemple sur le sous-réseau 192.164.
65.0 (défini par un masque classique à 24 bits - 255.255.255.0)
Je réalise depuis l'une des machines un ping à l'adresse de broadcast 19
2.164.65.255.
Eh bien... je récolte un seul résultat, celui... de la machine sur laque
lle j'ai réalisé le ping. Mes esprits en prennent un coup !


Pourquoi ? C'est un risque sécurité important de répondre à un ping
d'une adresse de broadcast. Il est normal que les OS ne répondent pas.

Les $soft ne le font plus depuis un moment, c'est d'ailleurs peut être
paramétrable. Sous linux, ca dépend de
/proc/sys/net/ipv4/icmp_echo_ignore_broadcast ou un truc comme ca.
De toute façon, il faut désactiver cette possibilité si certains
systèmes y répondent. Ca permet à quelqu'un qui spoof l'adresse
d'envoi de flooder facilement(tout est relatif) une cible.


--
Posted via Mailgate.ORG Server - http://www.Mailgate.ORG

Avatar
Pierre LALET
Pourquoi ? C'est un risque sécurité important de répondre à un ping
d'une adresse de broadcast. Il est normal que les OS ne répondent pas.


Je dirais plutôt que ce qui est idiot, c'est de laisser rentrer un
paquet provenant de l'extérieur du réseau et ayant comme adresse cible
une adresse de broadcast.

De toute façon, il faut désactiver cette possibilité si certains
systèmes y répondent. Ca permet à quelqu'un qui spoof l'adresse
d'envoi de flooder facilement(tout est relatif) une cible.


Sauf si on se protège en amont. Le ping broadcast peut être utile, et ne
pose aucun problème sur un réseau de confiance. Il faut éviter de dire
"il faut" ;-) parce qu'il n'existe pas de vérité absolue en matière de
sécurité.

pierre

--
Pierre LALET
-- http://www.enseirb.fr/~lalet
Clé publique PGP : http://www.enseirb.fr/~lalet/pierre_lalet.asc
Empreinte de la clé : B6B8 0F89 2220 DF8B 0F3B C0C0 773E 15E6 A878 FC7E

Avatar
Pierre LALET
Quand je lis ca, je suis a priori tout à fait d'accord. Sauf que:
J'imagine que ce filtrage est fait par le firewall où est connecté le monde
extérieur. Mais les adresses ne sont de broadcast qu'en comparaison d'un
masque de réseau. Pour les filtrer, il faudrait donc que le FW connaisse
toute la topologie et les configurations des routeurs à l'aval? Cela me
parait difficilement maintenable en exploitation.


Je parle d'une config <LAN>---<Routeur>---<Monde> : c'est le routeur
juste avant le LAN qui fait le filtrage, et il connait un (ou un nombre
peu élevé) LAN _juste_ derrière lui.

S'il relie d'autres LAN par l'intermédiaire d'autres routeurs, c'est à
ceux-ci de faire ce travail.

pierre

--
Pierre LALET
-- http://www.enseirb.fr/~lalet
Clé publique PGP : http://www.enseirb.fr/~lalet/pierre_lalet.asc
Empreinte de la clé : B6B8 0F89 2220 DF8B 0F3B C0C0 773E 15E6 A878 FC7E

Avatar
PYT
"Pierre LALET" a écrit dans le message news:
bketn0$rhi$
Je dirais plutôt que ce qui est idiot, c'est de laisser rentrer un
paquet provenant de l'extérieur du réseau et ayant comme adresse cible
une adresse de broadcast.
Quand je lis ca, je suis a priori tout à fait d'accord. Sauf que:

J'imagine que ce filtrage est fait par le firewall où est connecté le monde
extérieur. Mais les adresses ne sont de broadcast qu'en comparaison d'un
masque de réseau. Pour les filtrer, il faudrait donc que le FW connaisse
toute la topologie et les configurations des routeurs à l'aval? Cela me
parait difficilement maintenable en exploitation.

Avatar
Cedric Blancher
Dans sa prose, PYT nous ecrivait :
"Pierre LALET" a écrit dans le message news:
Quand je lis ca, je suis a priori tout à fait d'accord. Sauf que:
J'imagine que ce filtrage est fait par le firewall où est connecté le
monde extérieur. Mais les adresses ne sont de broadcast qu'en comparaison
d'un masque de réseau. Pour les filtrer, il faudrait donc que le FW
connaisse toute la topologie et les configurations des routeurs à l'aval?
Cela me parait difficilement maintenable en exploitation.


De toute manière, router les adresses de broadcast, ce n'est pas
RFC-compliant. Rien que si les routeurs sont bien configurés, i.e. que
les réseaux attachés sont bien déclarés et les routes aussi, le paquet
à destination d'une adresse de broadcast finira sa vie prématurément.

Ce n'est donc pas un problème de filtrage, mais un problème de routage.

Enfin, pour qu'un firewall connaisse toute la topologie en aval, ce n'est
pas dur. Il suffit de mettre en place un protocole de routage dynamique
genre RIP ou OSPF, et il aura toutes les routes du réseau.

--
On ne compile pas sur une machine de prod. D'ailleurs on installe même
pas les compilateurs.
on ecrit ses binaries avec cat, ca bouffe moins de ressources.

-+- Manuel in Guide du Fmblien Assassin : "amenez-moi la pince à tiercé !" -+-

1 2 3