linux-l: icmp address mask request

Steffen Dettmer steffen at dett.de
Sa Apr 14 21:50:22 CEST 2001


* JSC wrote on Sat, Apr 14, 2001 at 18:36 +0200:
> 1.) wenn der kernel per tftp beosrgt und gebootet wurde, setzt der 
>     knallkopp die netzmaske klassenspezifisch. bei mir: 10.0.1.4
>     netmaske gesetzt. kennt jemand was cleveres ?

Nee, höchstens ne Alias-Addresse mit der A-Netzmaske.

> hab mir jetzt einen daemon gebaut (aus hacktools rausgebastelt), der 
> irgendwie nicht funktioniert. der daemon bekommt das packet und
> schickt auch die antwort raus. leider zeigt ethereal das antwortpacket
> nicht.

tcpdump? Snort? Vielleicht hat das Packet ja ne Macke. Ist ja
auch sehr fummelig, selbst ein Packet zu bauen. Vielleicht hast
Du ja was vergessen oder so. 

>       /* read icmp */
>       { 
>          len = recvfrom(sock,buf_rcv,sizeof(buf_rcv),0,&origen,&addrlen);
>       }
>       /* write icmp */
>       if( buf_rcv[20] == 17 /* address mask request */ ){

Ein besseres Raten, oder? Müßte man da nicht mehr prüfen?! Kann
man den buf nicht auf die richitige struct casten? Wäre lesbarer.

>          iph->ip_hl  = 20 >> 2;          /* 20 bytes header [x * 32 bit] */

ip_hl ist auch WORD genau, ja?

>          iph->ip_len = htons(20 + icmp_msg_len); /* total length */

Hier plötzlich Byte genau? (Ich hab jetzt nicht nachgeschaut)

>          iph->ip_sum = 0;             /* checksum: linux kernel fills autom. */

Nettes feature, wußte ich gar nicht. (Du bist Dir sicher, ja :)?)

>          /* icmp message */
>          buf_snd[20] = 18;           /* address mask reply */
>          buf_snd[21] = 0;            /* code: 0 */
>          (short)buf_snd[22] = 0;     /* checksum */

im payload ne nicht gesetzte Chechsum?! Ich verstehe den code
aber eh nicht, sorry :)

Ein dump wäre wirklich mal interessant...

oki,

Steffen

-- 
Dieses Schreiben wurde maschinell erstellt,
es trägt daher weder Unterschrift noch Siegel.



Mehr Informationen über die Mailingliste linux-l