Skip site navigation (1)Skip section navigation (2)
Date:      Sun, 19 Jun 2005 16:16:01 +0400
From:      Gleb Smirnoff <glebius@FreeBSD.org>
To:        net@FreeBSD.org
Subject:   bug in libalias?
Message-ID:  <20050619121601.GA13370@cell.sick.ru>

next in thread | raw e-mail | index | archive | help
  While working on ng_nat + libalias in kernel, I've found that
sometimes in very rare conditions libalias produces completely
broken packets. Fortunately they also have incorrect TCP checksum,
and thus are discarded and being restransmitted. Fortunately
retransmits are not broken. This is not related to any protocol
aliasing, it is a bug in alias.c. I have two cases which are 100%
reproducible.

The first case is an ssh session to my mailbox, I can't give
reproduce recipe, sorry :)

The second case is the following: you must be behind a box
running natd(8) and have MTU of 1500, router running natd should
have 1500 MTU on both interfaces.

Now, you should run

# tcpdump -w qqq -s 1600 -vvnpi fxp0 host www.rambler.ru &
# fetch -vvv http:/www.rambler.ru
# fg
# ^C
# tcpdump -s 1600 -vXXnpr qqq | less

Look into incoming TCP segment with offset 2921:4381(1460). The first packet
is broken one. Search again for 2921:4381(1460). Now I've found the
retransmitted packet.

-- 
Totus tuus, Glebius.
GLEBIUS-RIPN GLEB-RIPE



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?20050619121601.GA13370>