Weekend Challenge - Hint

1 december 2009 door Chris Verlaat een antwoord »

Wow, is het geluid van krekels oorverdovend. Zeker iemand die over de vaardigheden om ons door dit dilemma? ;)

OK, tot op zekere tips krijg je door de uitdaging. Laten we beginnen met het oplossen van dit als een IPv4-adres en dan zullen we onze weg werk in IPv6. Stel dat de adresbereik we willen vastleggen is 192.168.1.10 - 192.168.1.20. Het grote probleem is de IP-adressen zijn niet op een nog byte grens. We kunnen iets doen, zoals:

src net 192.168.1.0/27

maar dat zou ons adressen 0,0 tot 0,31, meer IP's dan we eigenlijk wilden zien. Als oplossing voor dit probleem dat we je nodig hebt om sommige exploitanten en primitieven te gebruiken. Een mogelijkheid is:

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

Te beginnen met de binnenste haakjes, de bovenstaande verklaring luidt "byte 15 moet groter zijn dan of gelijk aan 10, maar ook moet kleiner zijn dan of gelijk aan 20. Als deze uitspraak waar is, zorg er dan byte 12 is gelijk aan 192, 13 byte is gelijk aan 168 en 14 byte is gelijk aan 1. "

Kunnen we verkorten deze uitdrukking? Absoluut! Eerst moeten we het echter converteren naar Hex. Waarom Hex? Als ik een verklaring, zoals schrijven "ip [12:02] =" tcpdump ervan uit dat het resultaat zal een 16-bits getal, niet twee 8-bits getallen. Dit is de reden waarom u iets als "tcp [02:02] = 12345" schrijven en het werkt. tcpdump zet de twee bytes in een 16-bits waarde en past het tegen de waarde die u hebt opgegeven. Door het omzetten naar Hex we dit probleem te vermijden. Dus:

192.168.1.10 = 0xC0A8010A

192.168.1.20 = 0xC0A80120

Nu gaan we gewoon schrijven onze uitdrukking:

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

Dat is alles wat er is.

Terwijl IPv4 gebruikt 4 bytes adressen, IPv6 maakt gebruik van 16 bytes. Omdat de adressen zijn zo lang, we schrijven ze in Hex om wat ruimte te besparen. Dus de adressen ik je gaf in de uitdaging waren:

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

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

Let op, ik heb in eerste instantie niet schrijf ze op die manier. Er is een aantal conventies die u kunt gebruiken om ruimte te besparen bij het schrijven van een IPv6-adres. Ten eerste kunnen we afkappen nullen. Dus:

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

wordt:

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

Nu, ziet al die nullen in het midden? We kunnen hak ze ook. Als je ziet "::" Dat betekent in die ruimte te vullen met genoeg nullen naar het adres terug te breiden naar 16 bytes. Zo toe te voegen in deze truc zo goed en krijgen we:

2001: db8:: 10

Veel gemakkelijker om te schrijven. De valkuil is dat je kunt alleen een groep van nullen te verwijderen met de dubbele punten truc. Overweeg het volgende adres:

2001:: 1234:: 10

We hebben geen idee waar de byte volgorde plaats "1234" in het adres. Het begint overal van byte 6 tot en met 12 byte.

Bij het werken met IPv4, tcpdump en WinDUMP gebruik van het protocol trefwoord "ip", zoals weergegeven in de bovenstaande voorbeelden. De IPv6 compliment aan die "ip6". Waar is de bron adres in de IPv6-header? Nou ik kan niet geven u alles antwoorden of het is niet langer een "uitdaging" :)

Gerelateerde berichten:

  1. Weekend Challenge
  2. Weekend Challenge - Antwoorden
  3. ICMPv6 Challenge - Hints
  4. ICMPv6 Challenge
  5. ICMPv6 Challenge - Antwoorden

Advertentie
  1. Elizabeth Greene zegt:

    De IPv6-rfc http://www.faqs.org/rfcs/rfc2460.html heeft de bron adres in de header tussen de bytes 8 en 23 *.

    * (Decimaal)

Laat een reactie achter