14 Eylül 2017 Perşembe

IPV6 Header

Giriş
Şöyledir.
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|Version| Traffic Class |           Flow Label                  |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|         Payload Length        |  Next Header  |   Hop Limit   |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|                                                               |
+                                                               +
|                                                               |
+                         Source Address                        +
|                                                               |
+                                                               +
|                                                               |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|                                                               |
+                                                               +
|                                                               |
+                      Destination Address                      +
|                                                               |
+                                                               +
|                                                               |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
Linux'ta şu satırı dahil ederiz.
#include <netinet/in.h>
#include <netinet/ip6.h>
Kod olarak şöyle. Traffic Class ve Priority aynı anlama gelir.

struct ipv6header {
  unsigned char priority:4, version:4;
  unsigned char flow[3];
  unsigned short int length;
  unsigned char nexthdr;
  unsigned char hoplimit;

  unsigned int saddr[4];
  unsigned int daddr[4];
};
IPv6 şöyle düşünülebilir. 8 byte kontrol bilgisi + 32 byte adres bilgisi. Yani toplam 40 byte. Kontrol bilgisi uzunluğu IPV4'e göre bayağı kısaltılmış durumda. IPv6 ile NAT gerekmiyor. Bir arayüze birden fazla IPv6 adresi atanabilir. Dahili kullanım için olan - yani Internete baglanmayan - adreslere Unique Local Address (ULA) deniliyor. ULA adres bloğunu ilk yarısı rezerve edilmiş durumda. Diğer yarısı ise isteyen herkes tarafından kullanılabilir. ULA prefix'inden sonra gelen 40 bit rastgele seçilir ve bir adres yaratılır.

IV4 ve IPV6 Farkı

1. Version
Şöyle yaparız.
ip->version = 6;

2. Traffic Class
Açıklaması şöyle
8-bits, the most significant 6 bits are Type of Service and the remaining 2 are used for Explicit Congestion Notification (ECN).
Şöyle yaparız.
ip->priority = 0;
3. Flow Label
Açıklaması şöyle
Used to maintain the sequential flow of the packets belonging to a communication. The source labels the sequence to help the router identify that a particular packet belongs to a specific flow of information. This field helps avoid re-ordering of data packets. It is designed for streaming/real-time media.
Şöyle yaparız.
(ip->flow)[0] = 0;
(ip->flow)[1] = 0;
(ip->flow)[2] = 0;
4. Payload Length
Açıklaması şöyle
Payload is composed of Extension Headers and Upper Layer data.
ICMPv6 gönderdiğimizi varsayarsak şöyle yaparız.

ip->length = ((unsigned short int) sizeof(struct icmpv6header));
5. Next Header
Açıklaması şöyle
Indicates either the type of Extension Header, or if the Extension Header is not present then it indicates the Upper Layer.
Açıklaması şöyle
You can check the IPv4 "Protocol" field, or the IPv6 "Next Header" field to determine the payload of the IP packets.
ICMPv6 gönderdiğimizi varsayarsak şöyle yaparız.
ip->nexthdr = 58;
6.  Hop Limit: 
Açıklaması şöyle
This is the same as TTL on IPv4.
Açıklaması şöyle
Hop Limit
8-bit unsigned integer. Decremented by 1 by each node that forwards the packet. The packet is discarded if Hop Limit is decremented to zero.
Açıklaması şöyle
8.2 Maximum Packet Lifetime
Unlike IPv4, IPv6 nodes are not required to enforce maximum packet lifetime. That is the reason the IPv4 "Time to Live" field was renamed "Hop Limit" in IPv6. In practice, very few, if any, IPv4 implementations conform to the requirement that they limit packet lifetime, so this is not a change in practice. Any upper-layer protocol that relies on the internet layer (whether IPv4 or IPv6) to limit packet lifetime ought to be upgraded to provide its own mechanisms for detecting and discarding obsolete packets.
Şöyle yaparız.
ip->hoplimit = 255;
7. Source Address (128-bits)
Açıklaması şöyle
Private IPv6 addresses allow you to design your network in such a way that some entirely local services simply can't communicate with the outside world.
IPv6 ile bir ağ arayüzüne birden fazla adres atanabiliyor. IPv4 ile bu yapılamıyordu. Şöyledir.
interface te 0/1/0/10
 ipv6 enable
 ipv6 address 24**:x:x:x:0:x:x:x/127
 ipv6 address 24**:x:x:x:1:x:x:x/127
end
IPV6 Adresleri şöyle sınıflanır1. Documentation
Açıklaması şöyle. Bu adres aralığı yönlendirilebilir (routable) ve erişilebilir değil!
The IPv6 documentation prefix (2001:db8:::/32) must be used ONLY for documentation purposes. It means written examples, diagrams, PPT presentations, Textbook explanations, etc.
This range shouldn't be used in practical networks.
2. Private
Açıklaması şöyle
There is a "private IP range" of fc00::/7 which should be used for device testing, demos, courses, etc. as per RFC4193

8. Destination Address (128-bits)
Açıklama yaz

Hiç yorum yok:

Yorum Gönder