Welcome to my first blog post! Some of you might know me as community leader for IT-Talks or presenter at community events. With this blog I hope to share some of my knowledge and experiances on a regular basis with the world. This blog site will be a mix of many technologies with great need to knows and nice to knows.
One of my great pasions is certainly wireshark so I thought this would be a great way to start this blog.
Scenario:
A while back we added an extra router to our remote office. After adding the router we tested connectivity using ping wich worked great, however when we tested dameware, the remote controle tool we use on our support desk we were unable to get connected. There was no firewalling implemented on the network or on the clients so the situation seemed very puzzeling.
On the left side you have the computer in the remote office (A = 172.16.14.1) on the right side you see the computer system in our main office used by our service desk user (B = 192.168.22.217).
After double checking ping we ran a telnet server on the client on the A client and to our surprise telnet was working fine, so what was going on? Wireshark to the rescue!
The analysis:
We started up wireshark on the client A and initiated a connection from B, below is the result we got befor the application timed out. So what is this telling us:

-
1. first 3 packets => connection establishment
The three way handshake was establishing perfectly, so clearly there was no firewall blocking the connection.
2. First 2 data packets

As you can see here the first 2 data packets where running perfectly and A was talking to B and B was replying back
3. The next data packets

Starting with packet 6 you can see things start to go wrong, packet 6->8 are all from A to B but we can’t see any reply’s comming back from B to A. After X time you can see A start to panick as B is not replying back so A starts to send retransmissoins. Why are they not going through?
The problem:
I can tell the problem started with packet 6 because packet 9 and on is retransmitting that seq number.
The answer is in the last column I added for the conveniance of this post. As you can see packets 1 down to 5 are all small packets and go great but once the packet start getting bigger we start to see the retransmits. You should know that the normal MTU of a packet is 1500 bytes – 20 bytes IP header – 20 bytes TCP header leaving 1460 bytes for data. (At the bottom of this post i’ll illustrate the differnet LEN value’s wireshark shows us.)
Our packet was 1434 in size below the 1460 max size so this should work fine except it wasn’t. We used the ping command using –l parameter to determin the maximum packt that was traversing the network and this turned out to be 1360 bytes. So where was this discrepency comming from? The issue is the VPN overhead on the network and the lack of auto MTU scaling as you will read later. Depending on the vpn technology you use there is extra ip overhead on the network. In our case we lose 100 bytes leaving us with a 1360 MTU.
When sending packets greater than the MTU there are two possible mechanisems to sovle the issue:
1. Fragment packets => this would cause our oversized packet to be chopped up in smaller packets, however as you can see here the don’t fragment flag is set so this option be used.
2. Destination host unreachable packet => a device receiving packets greater than the MTU should send a packet back to the client instructing it to send smaller packets but we are clearly not getting any other packets.
The Answer:
To solve the issue you could do 2 things:
- instruct the clients to use smaller MTU’, this was not feasable as we had no ensurance we could manage all clients.
|
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Network\{4D36E972-E325-11CE-BFC1-08002BE10318}\<ID for Adapter>\Connection
Key: Tcpip\Parameters\Interfaces\ID for Adapter\MTU Value Type: REG_DWORD Number
|
- instruct the newly installed routers to use smaller MTYU’s, we automated our remote switch configuration and reset the MTU’s on all switches.
I hope you have enjoyed this first post on my blog and stay tuned for more tech posts.
Tom
For more tech info checkout our community site on www.it-talks.be
-----------------------------------
-----------------------------------
The packet size shown by wireshark
1. packet list
In the packet view you see LEN=1380, this means the DATA portion of this packet is 1380 bytes in size. This does not take into account the size of the headers in the packet
2. packet detail view
in my last custom column and in the data view portion of the the packet you see LEN=1434. This is the actual amount of data put on the wire meaing DATA bytes + header bytes, where do the bytes come from?
Where does the descrepency come from?
1380 + 20 + 20 = 1420 => so where do the extra 14 bytes come from? OSI layer 2 Datalink.
As you can see in this screenshot the Layer 2 data counts exactly back to the missing 14 bytes
Note how i click on the ethernet line in the packet detail view wireshark automatically slectes the corresponding data bytes in the data windows, and feel free to could the amount of hex numbers, it should be 14.