[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

RE: End System PMTUD behavior question



Mark,

Fair enough, it appears the short answer to which implementation you know of is BIND (I assume 9.x). With respect to IPV6_USE_MIN_MTU, I thought the value for this was 1280. If so, this simply circumvents PMTUD and uses the IPv6 minimum MTU.

Best Regards, 
  
Jeffrey Dunn 
Info Systems Eng., Lead 
MITRE Corporation.
(301) 448-6965 (mobile)


-----Original Message-----
From: Mark_Andrews@isc.org [mailto:Mark_Andrews@isc.org] 
Sent: Thursday, January 22, 2009 11:37 PM
To: Dunn, Jeffrey H.
Cc: Peter.Hunt@nokia.com; shemant@cisco.com; Huang, Frank; Sherman, Kurt T.; ipv6@ietf.org; Liou, Chern; steve_eiserman@uscourts.gov; ipv6-bounces@ietf.org; v6ops@ops.ietf.org; Grayeli, Parisa
Subject: Re: End System PMTUD behavior question 


In message <3C6F21684E7C954193E6C7C4573B762701D3DD7186@IMCMBX1.MITRE.ORG>, "Dun
n, Jeffrey H." writes:
> Mark,
> 
> Could you elaborate on what you mean by "DNS servers just tell the kernel t=
> o fragment at network mtu for UDP/IPv6 and ensure that DF is off for UDP/IP=
> v4."  What is the "network MTU?" Also, to which implementations of DNS serv=
> er are you referring?

	Cut-and-pasted from BIND's bsd socket implementation.

	Mark

#ifdef IPV6_USE_MIN_MTU        /* RFC 3542, not too common yet*/
                /* use minimum MTU */
                if (sock->pf == AF_INET6) {
                        (void)setsockopt(sock->fd, IPPROTO_IPV6,
                                         IPV6_USE_MIN_MTU,
                                         (void *)&on, sizeof(on));
                }
#endif

#if defined(IP_MTU_DISCOVER) && defined(IP_PMTUDISC_DONT)
                /*
                 * Turn off Path MTU discovery on IPv4/UDP sockets.
                 */
                if (sock->pf == AF_INET) {
                        int action = IP_PMTUDISC_DONT;
                        (void)setsockopt(sock->fd, IPPROTO_IP, IP_MTU_DISCOVER,
                                         &action, sizeof(action));
                }
#endif
#if defined(IP_DONTFRAG)
                /*
                 * Turn off Path MTU discovery on IPv4/UDP sockets.
                 */
                if (sock->pf == AF_INET) {
                        int off = 0;
                        (void)setsockopt(sock->fd, IPPROTO_IP, IP_DONTFRAG,
                                         &off, sizeof(off));
                }
#endif

 
> Best Regards,=20
> =A0=20
> Jeffrey Dunn=20
> Info Systems Eng., Lead=20
> MITRE Corporation.
> (301) 448-6965 (mobile)
-- 
Mark Andrews, ISC
1 Seymour St., Dundas Valley, NSW 2117, Australia
PHONE: +61 2 9871 4742                 INTERNET: Mark_Andrews@isc.org