Martijn Lievaart <m...@rtij.nl.invlalid> wrote:
> Ugh. I assume you are talking about HP/UX?
No. HP-UX :) And Solaris 2 and at least one version of MacOS (9?) -
anything based on Mentat's TCP/IP stack.
> This behavior caused lots of troubles for us. The least being that
> ping was blocked everywhere in our network, so it did not work at
> all. Sadly I cannot remember what other troubles it caused, but it
> made a lot of architects against PMTUD where there was no real
> problem with it, but a huge problem without it.
> Although I still think the HP/UX implementation was moronic, the
Difference of opinion on "moronic" - while I think what Mentat tried
was ultimately il-advised, it was a clever way to see if PathMTU
discovery could "work" to the destination. If there were no ICMP's
coming in response to those ICMP Echo Requests with the DF bit set in
the IP header, the "real" traffic would continue to flow with DF
cleared, without having to rely on some sort of timeout-based PMTU
black hole detection.
> response by architects and admins to the PMTU troubles in said
> network was even more moronic. All token ring interfaces had their
> MTU set to 1500. I did predict that the first tunnel would cause no
> end of trouble, which it did.
You had Ethernet and TokenRing networks joined just at Layer2?
> In the end, as we were responsible for said tunnel, we just forcibly
> stripped of the DF bit as it was impossible to convince the network
> owners of the correct solutions.
adde parvum parvo magnus acervus erit :)
Arbitrarily clearing the DF bit - might as well have set
ip_pmtu_strategy to 0 on the HP-UX systems and disabled PathMTU
discovery at the root. Or, if things were otherwise OK apart from
what you described below, there was always the value of 1 which set DF
always without any of the ICMP Echo Requests being sent (which was
value 2)
> In our part of the network PMTUD did work as designed, except for
> one stupid firewall that neither allowed fragmentation-needed errors
> by default in an intelligent way, in general, or even could be made
> to allow them at all without allowing all ICMP. This was high-end,
> expensive stuff...
rick
An excerpt from my old "annotated_ndd.txt"
ip_pmtu_strategy:
Set the Path MTU Discovery strategy: 0 disables Path MTU
Discovery; 1 enables Strategy 1; 2 enables Strategy 2.
Because of problems encountered with some firewalls, hosts, and
low-end routers, IP provides for selection of either of two
discovery strategies, or for completely disabling the
algorithm. The tunable parameter ip_pmtu_strategy controls the
selection.
Strategy 1: All outbound datagrams have the "Don't Fragment" bit
set. This should result in notification from any intervening
gateway that needs to forward a datagram down a path that would
require additional fragmentation. When the ICMP "Fragmentation
Needed" message is received, IP updates its MTU for the remote
host. If the responding gateway implements the recommendations for
gateways in RFC 1191, then the next hop MTU will be included in
the "Fragmentation Needed" message, and IP will use it. If the
gateway does not provide next hop information, then IP will reduce
the MTU to the next lower value taken from a table of "popular"
media MTUs.
Strategy 2: When a new routing table entry is created for a
destination on a locally connected subnet, the "Don't Fragment"
bit is never turned on. When a new routing table entry for a
non-local destination is created, the "Don't Fragment" bit is not
immediately turned on. Instead,
o An ICMP "Echo Request" of full MTU size is generated and
sent out with the "Don't Fragment" bit on.
o The datagram that initiated creation of the routing table
entry is sent out immediately, without the "Don't Fragment"
bit. Traffic is not held up waiting for a response to the "Echo
Request".
o If no response to the "Echo Request" is received, the
"Don't Fragment" bit is never turned on for that route; IP
won't time-out or retry the ping. If an ICMP "Fragmentation
Needed" message is received in response to the "Echo Request",
the Path MTU is reduced accordingly, and a new "Echo Request"
is sent out using the updated Path MTU. This step repeats as
needed.
o If a response to the "Echo Request" is received, the
"Don't Fragment" bit is turned on for all further packets for
the destination, and Path MTU discovery proceeds as for
Strategy 1.
Assuming that all routers properly implement Path MTU Discovery,
Strategy 1 is generally better - there is no extra overhead for
the ICMP "Echo Request" and response. Strategy 2 is available only
because some routers, or firewalls, or end hosts have been
observed simply to drop packets that have the DF bit on without
issuing the "Fragmentation Needed" message. Strategy 2 is more
conservative in that IP will never fail to communicate when using
it. [0,2] Default: Strategy 2
Since ip_pmtu_strategy was created, it has been determined that having
ip_pmtu_strategy set to a value of two can allow malicious people to
use the system as part of a Denial of Service attack on other
systems. For this reason, an HP Security Advisory was issued that
suggests the value be either one or zero. In fact, using a value of
two is considered "bad" enough that the option is removed from the 11i
version of ndd and the default changed to 1, though the ndd -h text
may not have been updated in time for the release of 11i (11.11)...
Setting the value to one will mean that IP datagrams will always have
the DF bit set. This is generally fine, but there are still some
broken setups out there that will filter-out ICMP "Fragmentation
Needed" messages. Trying to send IP datagrams with the DF bit set
through such setups will create a "black hole" beyond which systems
are unreachable.
Setting the value to zero will mean that TCP will have to fall-back on
other strategies to ensure that its segments are not fragmented along
the path to the destination. This could result in TCP using a Maximum
Segment Size (MSS) smaller than the maximum possible along that
path. This can lead to decreased performance.
In the HP-UX 11 patch stream, it is possible to set a value of "3" for
the ip_pmtu_strategy. This value will result in the DF bit in the IP
header being cleared, but will still have TCP select an MSS based on
the link-local MTU. In effect, it is a way for the network
administrator to tell the transport that all (sub)nets are local or
that the network administrator is not at all concerned if traffic from
this host happens to become fragmented along the way.
--
Wisdom Teeth are impacted, people are affected by the effects of events.