Hi Ray, MSS rewriting has been well known and broadly applied for a long time now, but only applies to TCP. The subject of MSS rewriting comes up all the time in the IETF wg discussions, but has failed to reach consensus as a long-term alternative.
Plus, MSS rewriting does no good for tunnels-within-tunnels. If the innermost tunnel rewrites MSS to a value that *it* thinks is safe there is no guarantee that the packets will fit within any outer tunnels that occur further down the line. What I want to get to is an indefinite tunnel MTU; i.e., admit any packet into the tunnel regardless of its size then make any necessary adaptations from within the tunnel. That is exactly what SEAL does: https://datatracker.ietf.org/doc/draft-templin-intarea-seal/ Thanks - Fred fred.l.temp...@boeing.com > -----Original Message----- > From: Ray Soucy [mailto:r...@maine.edu] > Sent: Monday, October 29, 2012 7:55 AM > To: Templin, Fred L > Cc: Dobbins, Roland; NANOG list > Subject: Re: IP tunnel MTU > > The core issue here is TCP MSS. PMTUD is a dynamic process for > adjusting MSS, but requires that ICMP be permitted to negotiate the > connection. The realistic alternative, in a world that filters all > ICMP traffic, is to manually rewrite the MSS. In IOS this can be > achieved via "ip tcp adjust-mss" and on Linux-based systems, netfilter > can be used to adjust MSS for example. > > Keep in mind that the MSS will be smaller than your MTU. > Consider the following example: > > ip mtu 1480 > ip tcp adjust-mss 1440 > tunnel mode ipip > > IP packets have 20 bytes of overhead, leaving 1480 bytes for data. So > for an IP-in-IP tunnel, you'd set your MTU of your tunnel interface to > 1480. Subtract another 20 bytes for the tunneled IP header and 20 > bytes (typical) for your TCP header and you're left with 1440 bytes > for data in a TCP connection. So in this case we write the MSS as > 1440. > > I use IP-in-IP as an example because it's simple. GRE tunnels can be > a little more complex. While the GRE header is typically 4 bytes, it > can grow up to 16 bytes depending on options used. > > So for a typical GRE tunnel (4 byte header), you would subtract 20 > bytes for the IP header and 4 bytes for the GRE header from your base > MTU of 1500. This would mean an MTU of 1476, and a TCP MMS of 1436. > > Keep in mind that a TCP header can be up to 60 bytes in length, so you > may want to go higher than the typical 20 bytes for your MSS if you're > seeing problems. > > > > > On Tue, Oct 23, 2012 at 10:07 AM, Templin, Fred L > <fred.l.temp...@boeing.com> wrote: > > Hi Roland, > > > >> -----Original Message----- > >> From: Dobbins, Roland [mailto:rdobb...@arbor.net] > >> Sent: Monday, October 22, 2012 6:49 PM > >> To: NANOG list > >> Subject: Re: IP tunnel MTU > >> > >> > >> On Oct 23, 2012, at 5:24 AM, Templin, Fred L wrote: > >> > >> > Since tunnels always reduce the effective MTU seen by data packets > due > >> to the encapsulation overhead, the only two ways to accommodate > >> > the tunnel MTU is either through the use of path MTU discovery or > >> through fragmentation and reassembly. > >> > >> Actually, you can set your tunnel MTU manually. > >> > >> For example, the typical MTU folks set for a GRE tunnel is 1476. > > > > Yes; I was aware of this. But, what I want to get to is > > setting the tunnel MTU to infinity. > > > >> This isn't a new issue; it's been around ever since tunneling > technologies > >> have been around, and tons have been written on this topic. Look at > your > >> various router/switch vendor Web sites, archives of this list and > others, > >> etc. > > > > Sure. I've written a fair amount about it too over the span > > of the last ten years. What is new is that there is now a > > solution near at hand. > > > >> So, it's been known about, dealt with, and documented for a long time. > In > >> terms of doing something about it, the answer there is a) to allow the > >> requisite ICMP for PMTU-D to work to/through any networks within your > span > >> of administrative control and b) > > > > That does you no good if there is some other network further > > beyond your span of administrative control that does not allow > > the ICMP PTBs through. And, studies have shown this to be the > > case in a non-trivial number of instances. > > > >> b) adjusting your own tunnel MTUs to > >> appropriate values based upon experimentation. > > > > Adjust it down to what? 1280? Then, if your tunnel with the > > adjusted MTU enters another tunnel with its own adjusted MTU > > there is an MTU underflow that might not get reported if the > > ICMP PTB messages are lost. An alternative is to use IP > > fragmentation, but recent studies have shown that more and > > more operators are unconditionally dropping IPv6 fragments > > and IPv4 fragmentation is not an option due to wrapping IDs > > at high data rates. > > > > Nested tunnels-within-tunnels occur in operational scenarios > > more and more, and adjusting the MTU for only one tunnel in > > the nesting does you no good if there are other tunnels that > > adjust their own MTUs. > > > >> Enterprise endpoint networks are notorious for blocking *all* ICMP (as > >> well as TCP/53 DNS) at their edges due to 'security' misinformation > >> propagated by Confused Information Systems Security Professionals and > >> their ilk. Be sure that your own network policies aren't part of the > >> problem affecting your userbase, as well as anyone else with a need to > >> communicate with properties on your network via tunnels. > > > > Again, all an operator can control is that which is within their > > own administrative domain. That does no good for ICMPs that are > > lost beyond their administrative domain. > > > > Thanks - Fred > > fred.l.temp...@boeing.com > > > >> ----------------------------------------------------------------------- > >> Roland Dobbins <rdobb...@arbor.net> // <http://www.arbornetworks.com> > >> > >> Luck is the residue of opportunity and design. > >> > >> -- John Milton > >> > > > > > > > > -- > Ray Patrick Soucy > Network Engineer > University of Maine System > > T: 207-561-3526 > F: 207-561-3531 > > MaineREN, Maine's Research and Education Network > www.maineren.net