23 Şubat 2018 Cuma

Paket, Tipi,Mtu , ADJUST-MSS



Version (4 bits) · Always set to 6
Traffic Class (8 bits) · A DSCP value for QoS
Flow Label (20 bits) · Identifies unique flows (optional)
Payload Length (16 bits) · Length of the payload in bytes
Next Header (8 bits) · Header or protocol which follows
Hop Limit (8 bits) · Similar to IPv4’s time to live field
Source Address (32 bits)
Destination Address (32 bits)

Different types of MTU

 MTU Header Sizes


  • 1460 bytes of payload for TCP.
  • 20 bytes for the TCP header.
  • 20 bytes for the IP header.
  • 14 bytes for the Ethernet header.
1460 (PAYLOAD) + 20 (TCP)  + 20 (IP) = 1500 bytes + 14 (ETHERNET) = 1514 bytes in total.+4 FCS check biti.=1518





Router

Management plane: is concerned with the management of the device. For example, an administrator connecting to a router through a Secure Shell (SSH) connection through one of the router’s VTY lines would be a management plane operation

CONTROL PLANE
Rıb : Routing Information Base : Butun yolları bilir ancak Fib en kısa yolu bilir. is concerned with making packet-forwarding decisions. For example, routing protocol operation would be a control plane function. (the brain of the network)

DATA/FORWARDING PLANE
Fıb: Forwarding information base asıl routing yapıldığı ve sadece en kısa yolu tutar sadece. is concerned with the forwarding of data through a router (ASIC). For example, end-user traffic traveling from a user’s PC to a web server on a different network would go across the data plane. (means the hardware itself)


All these different tasks are separated by different planes. There are three planes:
  • control plane
  • data plane
  • management plane
Let’s take a look at the difference between these three planes…

Control Plane

The control plane is responsible for exchanging routing information, building the ARP table, etc. Here are some tasks that are performed by the control plane:
  • Learning MAC addresses to build a switch MAC address table.
  • Running STP to create a loop-free topology.
  • Building ARP tables.
  • Running routing protocols like OSPF, EIGRP, and BGP and building the routing table.

Data Plane

The data plane is responsible for forwarding traffic. It relies on the information that the control plane supplies. Here are some tasks that the data plane takes care of:
  • Encapsulate and de-encapsulate packets.
  • Adding or removing headers like the 802.1Q header.
  • Matching MAC addresses for forwarding.
  • Matching IP destinations in the routing table.
  • Change source and destination addresses when using NAT.
  • Dropping traffic because of access-lists.
The tasks of the data plane have to be performed as fast as possible which is why the forwarding of traffic is performed by specialized hardware like ASICs and TCAM tables.

Management Plane

The management plane is used for access and management of our network devices. For example, accessing our device through telnet, SSH or the console port.
When discussing SDN, the control and data plane are the most important to keep in mind. Here’s an illustration of the control and data plane to help you visualize the different planes:
Control vs Data Plane
Above you can see the control plane where we use routing protocols like OSPF and EIGRP and some static routing. The best routes are installed in the routing table. Another table that the router has to build is the ARP table.
Information from the routing and ARP table is then used to build the forwarding table. When the router receives an IP packet, it will be able to forward it quickly since the forwarding table has already been built.


-----

Mtu ethernet standartı 1500 byte artı 18 byte 1518 byte'tır.

R2#show interfaces fastEthernet 0/0 | include MTU
  MTU 1500 bytes, BW 100000 Kbit/sec, DLY 100 usec, 
 
 R2#show ip interface fastEthernet 0/0 | include MTU
  MTU is 1500 bytes
 
The first MTU value is the interface MTU, it’s 1500 bytes by default for Ethernet. The second one is the IP MTU which is also 1500 bytes. Once you get above 1500 bytes your router will start fragmenting the IP packets.

Is this limit of 1500 bytes really working? There’s an easy way to find out. Let’s do a ping with the DF-bit (Don’t Fragment) between the routers:

R2#ping
Protocol [ip]:   
Target IP address: 192.168.12.1
Repeat count [5]: 1
Datagram size [100]: 
Timeout in seconds [2]: 
Extended commands [n]: y
Source address or interface: 
Type of service [0]: 
Set DF bit in IP header? [no]: y
Validate reply data? [no]: 
Data pattern [0xABCD]: 
Loose, Strict, Record, Timestamp, Verbose[none]: v
Loose, Strict, Record, Timestamp, Verbose[V]: 
Sweep range of sizes [n]: y
Sweep min size [36]: 1495
Sweep max size [18024]: 1505
Sweep interval [1]: 
Type escape sequence to abort.
Sending 11, [1495..1505]-byte ICMP Echos to 192.168.12.1, timeout is 2 seconds:
Packet sent with the DF bit set
Reply to request 0 (1 ms) (size 1495)
Reply to request 1 (4 ms) (size 1496)
Reply to request 2 (1 ms) (size 1497)
Reply to request 3 (4 ms) (size 1498)
Reply to request 4 (1 ms) (size 1499)
Reply to request 5 (4 ms) (size 1500)
Request 6 timed out (size 1501)
Request 7 timed out (size 1502)
Request 8 timed out (size 1503)
Request 9 timed out (size 1504)
Request 10 timed out (size 1505)
Success rate is 54 percent (6/11), round-trip min/avg/max = 1/2/4 ms

MTU Nedir ?


Kısaca Layer 2 bilgisinden sonra geriye kalan kısım MTU dur.


Layer 2 deyince aklımıza kaç tane HEADER çeşidi gelir ?


HDLC
PPP
FRAME RELAY
ETHERNET II
802.3

falan...


Bunların hepsi ayrı bir ENCAPSULATION yöntemidir.

Neticede hepside bir HEADER dır.


Bu Header ların her birinin içinde bilgiler vardır.


ÖRnek Olarak ETHERNET II yi ele alalım
( Digerleride aynı mantıgı kullanır. Degerler internette mevcut )

Bu Header 14 Byte + 4 Byte şeklindedir.

Son 4 Byte FSC kısmıdır. İçinde CRC degeri vardır ( çakma MD5 )

Kısaca 18 Byte.

Geriye kalan kısım 1500 Byte olabilir denilmiştir.

Buna MTU Degeri denilir.

Kısaca Ethernet Ortamından 1518 lik bir bilgi salabilirsiniz kabloya...

Aynı şekilde 1518 bytelık bilgi alabilirsiniz.

Mesela 1618 bytelık bir data aldınız.

INTERFACE inizin MTU degeri 1500 !

Önce şaşırırsınız.

INterface inizi bir delik olarak düşünün.

Bu delikten 1518 Bytelık bir bilgi alabilirsiniz.

Ama gelen 1618 !

Ne yapacaksınız ? Tabiki Fragmentation. ( Böl, Parçala )

BU iyi bişi degildir.

Kişisel olarak ben çok gıcık oluyorum.

Bİr sürü iş çıkar başımıza.

Bunları böl, her birine bişi ekle, karşı taraf ayrı uğraşsın.
Alıcı ayrı bir sıkıntı yaşasın.
Hatta bu olay OSPF için KABUS dur.
VPN için ayrı ölümdür.



Hangi ortamlarda MTU degeri ile oynanmalıdır?

Mesela gönderdiğiniz data nın kesinlikle FRAGMENT edilmesini
istemiyorsunuz. ( bunun bir sürü sebebi olabilir, ospf in var mesela :) )

İyi de Source ile Destiantaion arasında bi sürü cihaz var.
Her birinin MTU bilgisi farklıdır.
Nerden bilecem en düşük MTU nedir diye ?

Onun için İşletim sistemi tarafında bazı yazılımlar ile ögrenebilirsiniz.
Aranızdaki en düşük MTU su olan kişiyi ögrenebilirsiniz.

Cisco cihazlarda ise

ROUTER üzerinde DATA gönderirken

DONT FRAGMENT denilen BIT i enable edebilirsiinz.

ping 1.1.1.1 size 1600 df-bit

böylece bu bilgiyi alan birisinin MTU degeri düşükse size ICMP mesaj gönderir.

ICMP Type 3 Code 4 .

Yani " hem kocaman data gönderiyorsun, hemde bölme diyorsun " der.

Ve size ayrıca kendi MTU sunu söyler ( Sniff programlarıyla görülür )

Böylece sizde en düşük MTU ögrenmiş olursunuz.

Buna PATH MTU Discovery denir.



Ne durumlarda bunu göz önüne almamız gerekir ?


Mesela GRE bir tunnel ınız var.
GRE header olarak 24 byte ekler.
Dolayısıyla sorun çıkabilir.

( Bakın burda bişi önemlidir . MTU Potensiyel bir problem vardır.
İllaki bir problem olacak demek degildir,
bu cümleyi bi kaç okuyun etrafınızdakilere söyleyin )

Gerçi,

GRE bunu düşünmüştür.

TUnnel interface e bakarsanız 1476 ya çeker MTU otomatik olarak.


Sizin örnek de ://

PPPOE : Ethernet üzerinden PPP nin güzel özelliklerini kullanmak demektir.

Onun için 1518 üzerine

6 bytelık PPPOE HEader bir de 2 Bytelık PPP ID ekler.

Dolayısıyla 8 bytelık ek bir bilgi olacak.

1518 + 6 byte = sorun OLABİLİR demektir. ( ! )

Peki nedir çözüm ? :)

MTU degerini 8 byte küçüklmek. 1492 yaparsak olası sorun engellenri.

MTU yada MSS degeri karşılıklı Negotiate olacak diye bişi yoktur.

( Gerçi OSPF MTU degerini önemser, o başka )


MTU degerinin hangi ortamdan ne kadar oldugu ,

hangi teknolojinin ne kadar header eklediği gibi bilgileri

google ile bulabiliriz...

VPN bunlardan bir tanesidir...



MTU degeri genelimizin duydugu

ve arada bir degiştirmek zorunda oldugu bir degerdir.


bilmemiz gereken şey şudur :

HİÇ BİRİMİZ FRAGMENTATION sevmiyoruz.

Kahrolsun FRAGMENTATION ...


***


MSS ise farklıdır.



Teorik olarak ne oldugunu biliyorum.

Ama bunu kim nasıl kullanır bilmiyorum.


MSS sadece TCP bağlantılaır için geçerlidir.

MSS Bir SEGMENT in alabileceği en büyük degerdir.

TCP nin MTU su dersek daha akılda kalır :)



Mesela Siz Client oalrak bir Server a
TCP bağlantı kuracapınız zaman İlk TCP mesajında
( ki bu SYN mesajıdır ) option kısmında
MSS = X yazarsınız.

Bana göndereceğin Bir SEGMENT in en büyük boyutu X oalbilir demektir.

Bir de Windows Size vardır.

Bu ise BANA GÖNDEREBİLECEĞİN TCP BİLGİSİ İçiN şu kadar TAMPON ayırdım.

Bu kadar yolla ve bekle, ben sana ACK göndericem ondan sonra göndermeye devam et demektir.

( BUna FLOW CONTROL denir )

UNutmayın MSS bir anda gönderilecek SEGMENT boyutudur.

Windows Size ise ( aslında Recevie Size desek yeridir )
bana şu kadar TCP bilgisi gönder ve benden ACK gelene kadar
bişi gönderme demektir.



Neyse MSS e devam edelim.

MSS = x demek


Bana göndericen MSS degeri X den büyük olmasın demekti.

Bu degerin Misrosoft /Linux gibi işletim sistemlerinde

neye göre belirlendiğini bilmiyorum.

hangi durumlarda niye değiştirilir hiç bilgim yok.



AMa Cisco Router lar için şöyledir.



Bir TCP bilgisi CİSCO cihazlarından GEÇİP Gİdebilir.

(Yani Router umuz Client ile Server arasndadır )

YADA Cisco Cihazları kendileri TCP bilgisini alıp gönderebilirler.

(Yani Cisco cihazı TCP Client yada SERVER oalbilir.)



Cisco cihazları kendi üzerinden geçen

TCP SYN içindeki MSS degerlerini degiştirirler.

BU degeri ya 536 yada 1460 yaparlar.

Buna biz müdahale edebiliriz.


CONF T
INT XX
IP TCP ADJUST-MSS İle yeni bir deger verebiliriz...



Birde Cisco Rotuer ların kendilerinin TCP CLietn yada Server
oldukları bir durum vardır ( Mesela TELNET SERVER olsun router )

Bu durumda kendine ait MSS degeri olacaktır.

Bunuda degiştirebileriz.


CONF T

IP TCP MSS 666


ile değiştirebiliriz...



 windows

ping 192.168.37.10 -l 1272 -f

-tPings the specified host until stopped.
To see statistics and continue - Type Control-Break;
To stop - press Ctrl+C.
-aResolve addresses to hostnames.
-nCount number of echo requests to send.
-l sizeSend a buffer size.
-fSet a don't fragment flag in the packet (IPv4-only).
-iTTL time to live.
-vTOS type of service (IPv4-only. This setting is deprecated and has no effect on the type of service field in the IP header).
-r countRecord route for count hops (IPv4-only).
-s countTimestamp for count hops (IPv4-only).
-j host-listLoose source route along the host-list (IPv4-only).
-k host-listStrict source route along the host-list (IPv4-only).
-w timeoutTimeout in milliseconds to wait for each reply.
-RUse routing header to test reverse route also (IPv6-only).
Per RFC 5095 the use of this routing header is deprecated. Some systems may drop echo requests if  this header is used.
-S srcaddrSource address to use.
-4Force using IPv4.
-6Force using IPv6.

Hiç yorum yok:

Yorum Gönder