05-15-2006 02:15 AM - edited 03-03-2019 12:41 PM
Hi all,
what is the size of a GRE Keepalive Packet?
Thans
Rgds
Gianluca
05-15-2006 04:58 AM
The entire IP packet is 48 bytes. (20 bytes IP header + 4 bytes GRE header + 20 bytes IP header + 4 bytes GRE header).
Frame 10 (62 bytes on wire, 62 bytes captured)
Arrival Time: May 15, 2006 08:44:53.966971000
Time delta from previous packet: 0.420042000 seconds
Time since reference or first frame: 13.029461000 seconds
Frame Number: 10
Packet Length: 62 bytes
Capture Length: 62 bytes
Ethernet II, Src: aa:bb:cc:00:02:00, Dst: aa:bb:cc:00:01:00
Destination: aa:bb:cc:00:01:00 (aa:bb:cc:00:01:00)
Source: aa:bb:cc:00:02:00 (aa:bb:cc:00:02:00)
Type: IP (0x0800)
Internet Protocol, Src Addr: 2.2.2.2 (2.2.2.2), Dst Addr: 1.1.1.1 (1.1.1.1)
Version: 4
Header length: 20 bytes
Differentiated Services Field: 0xc0 (DSCP 0x30: Class Selector 6; ECN: 0x00)
1100 00.. = Differentiated Services Codepoint: Class Selector 6 (0x30)
.... ..0. = ECN-Capable Transport (ECT): 0
.... ...0 = ECN-CE: 0
Total Length: 48
Identification: 0x0007 (7)
Flags: 0x00
.0.. = Don't fragment: Not set
..0. = More fragments: Not set
Fragment offset: 0
Time to live: 255
Protocol: GRE (0x2f)
Header checksum: 0xb4d2 (correct)
Source: 2.2.2.2 (2.2.2.2)
Destination: 1.1.1.1 (1.1.1.1)
Generic Routing Encapsulation (IP)
Flags and version: 0000
0... .... .... .... = No checksum
.0.. .... .... .... = No routing
..0. .... .... .... = No key
...0 .... .... .... = No sequence number
.... 0... .... .... = No strict source route
.... .000 .... .... = Recursion control: 0
.... .... 0000 0... = Flags: 0
.... .... .... .000 = Version: 0
Protocol Type: IP (0x0800)
Internet Protocol, Src Addr: 1.1.1.1 (1.1.1.1), Dst Addr: 2.2.2.2 (2.2.2.2)
Version: 4
Header length: 20 bytes
Differentiated Services Field: 0xc0 (DSCP 0x30: Class Selector 6; ECN: 0x00)
1100 00.. = Differentiated Services Codepoint: Class Selector 6 (0x30)
.... ..0. = ECN-Capable Transport (ECT): 0
.... ...0 = ECN-CE: 0
Total Length: 24
Identification: 0x0006 (6)
Flags: 0x00
.0.. = Don't fragment: Not set
..0. = More fragments: Not set
Fragment offset: 0
Time to live: 255
Protocol: GRE (0x2f)
Header checksum: 0xb4eb (correct)
Source: 1.1.1.1 (1.1.1.1)
Destination: 2.2.2.2 (2.2.2.2)
Generic Routing Encapsulation (0x0000 - unknown)
Flags and version: 0000
0... .... .... .... = No checksum
.0.. .... .... .... = No routing
..0. .... .... .... = No key
...0 .... .... .... = No sequence number
.... 0... .... .... = No strict source route
.... .000 .... .... = Recursion control: 0
.... .... 0000 0... = Flags: 0
.... .... .... .000 = Version: 0
Protocol Type: Unknown (0x0000)
Hope this helps,
05-15-2006 05:23 AM
Thanks a lot for your answer.
So if I need to calcualte bandwidth consumption due to GRE keepalive, I have to calculate:
48B * 2 (answer too) = 96 Bytes,
for each keepalive sent.
Is it correct?
Rgds
Gianluca
05-15-2006 10:53 AM
Actually, if you look at the information I provided, you can see that each hello contains its own response (a GRE message in a GRE message).
If I send a keepalive from 1.1.1.1 to 2.2.2.2 the internal GRE message is from 2.2.2.2 to 1.1.1.1, which is king of a bidirectional link testing. Once the entire packet is reach by the peer, the external IP and GRE headers are removed and the internal IP and GRE are forwarded back to the sender. This allows for the keepalive to be supported from one side only if required.
In this case the keepalive is 48 bytes and the response is 24 bytes.
Bear in mind that keepalives might be sent from both peers.
Hope this helps,
Find answers to your questions by entering keywords or phrases in the Search bar above. New here? Use these resources to familiarize yourself with the community: