Weekend Challenge - Suggerimento

1 DICEMBRE 2009 da Chris Lascia un commento »

Wow, il suono dei grilli è assordante. Sicuramente qualcuno ha le competenze per ottenere attraverso questo dilemma? ;)

OK, alcuni consigli per ottenere attraverso la sfida. Cominciamo con la soluzione di questo come un indirizzo IPv4 e poi lavoreremo nostra strada verso IPv6. Assumere l'intervallo di indirizzi che vogliamo catturare è 192.168.1.10 - 192.168.1.20. Il grosso problema è la IP non sono su un confine ancora byte. Potremmo fare qualcosa di simile:

src net 192.168.1.0/27

ma che ci darebbe indirizzi ,0-0,31, più indirizzi IP di quello che effettivamente volevamo vedere. Per risolvere questo problema abbiamo bisogno di utilizzare alcuni operatori e primitive. Una possibilità è:

(Ip [12] = 192 e ip [13] = 168 e ip [14] = 1 e (ip [15]> = 10 e ip [15] <= 20))

A partire dalla parentesi più interna, la dichiarazione di cui sopra si legge "byte 15 deve essere maggiore o uguale a 10, ma anche deve essere inferiore o uguale a 20. Se questa affermazione è vera, assicurarsi byte 12 è pari a 192, byte 13 è pari a 168 byte e 14 è uguale a 1. "

Possiamo ridurre questa espressione? Assolutamente! Prima di tutto dobbiamo convertirlo in Hex comunque. Perché Hex? Se scrivo una frase come "ip [00:02] =" tcpdump si assume che il risultato sarà un numero a 16 bit, non due numeri a 8 bit. È per questo che si può scrivere qualcosa del tipo "tcp [2:2] = 12345" e farli funzionare. tcpdump converte i due byte in un valore a 16 bit e lo confronta con il valore specificato. Con la conversione in esadecimale abbiamo evitare questo problema. Così:

192.168.1.10 = 0xC0A8010A

192.168.1.20 = 0xC0A80120

Ora dobbiamo semplicemente scrivere la nostra espressione:

ip [12:04]> = 0xC0A8010A e ip [12:04] <= 0xC0A80120

Questo è tutto quello che c'è da fare.

Mentre IPv4 utilizza 4 byte indirizzi, IPv6 utilizza 16 byte. Perché gli indirizzi sono così lunghi, che scriveremo in esadecimale per risparmiare spazio. Così gli indirizzi che ti ho dato nella sfida sono stati:

2001:0 db8: 0000:0000:0000:0000:0000:0010

2001:0 db8: 0000:0000:0000:0000:0000:0020

Si noti che inizialmente non li scrivono in quel modo. Ci sono alcune convenzioni è possibile utilizzare per risparmiare spazio quando si scrive un indirizzo IPv6. In primo luogo, siamo in grado di troncare zeri iniziali. Così:

2001:0 db8: 0000:0000:0000:0000:0000:0010

diventa:

2001: db8: 0000:0000:0000:0000:0000:10

Ora, vedere tutti quei zeri in mezzo? Possiamo tagliare troppo. Quando si vede "::" che vuol dire riempire quello spazio con zeri a sufficienza per espandere l'indirizzo di nuovo fuori a 16 byte. Quindi, aggiungere in questo trucco, come bene e otteniamo:

2001: DB8:: 10

Molto più facile da scrivere. L'avvertenza è che si può rimuovere solo un gruppo di zeri con il trucco di due punti. Si consideri il seguente indirizzo:

2001:: 1234:: 10

Non abbiamo idea di dove posizionare la sequenza di byte "1234" nell'indirizzo. Avviarlo dovunque da byte da 6 a 12 byte.

Quando si lavora con IPv4, tcpdump e windump utilizzare la parola chiave protocollo "ip", come mostrato negli esempi precedenti. Il complimento IPv6 che è "ip6". Dov'è il campo dell'indirizzo di origine nell'intestazione IPv6? Beh io non posso darti tutto quello che c'è risposte o non è più una "sfida" :)

Related posts:

  1. Weekend sfida
  2. Weekend Challenge - Risposte
  3. ICMPv6 Challenge - Suggerimenti
  4. ICMPv6 sfida
  5. ICMPv6 Challenge - Risposte

Pubblicità
  1. Elizabeth Greene dice:

    L'IPv6 rfc http://www.faqs.org/rfcs/rfc2460.html ha l'indirizzo di origine nell'intestazione tra 8 e 23 byte *.

    * (Decimale)

Lascia un commento