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:


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