Re: [BEHAVE] [NAT64] Hairpinning loop

"Dan Wing" <dwing@cisco.com> Mon, 23 November 2009 17:04 UTC

Return-Path: <dwing@cisco.com>
X-Original-To: behave@core3.amsl.com
Delivered-To: behave@core3.amsl.com
Received: from localhost (localhost [127.0.0.1]) by core3.amsl.com (Postfix) with ESMTP id E3C823A6995 for <behave@core3.amsl.com>; Mon, 23 Nov 2009 09:04:19 -0800 (PST)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -4.91
X-Spam-Level:
X-Spam-Status: No, score=-4.91 tagged_above=-999 required=5 tests=[AWL=-0.761, BAYES_00=-2.599, MIME_CHARSET_FARAWAY=2.45, RCVD_IN_DNSWL_MED=-4]
Received: from mail.ietf.org ([64.170.98.32]) by localhost (core3.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id 2q2Ph12WuxyW for <behave@core3.amsl.com>; Mon, 23 Nov 2009 09:04:18 -0800 (PST)
Received: from sj-iport-3.cisco.com (sj-iport-3.cisco.com [171.71.176.72]) by core3.amsl.com (Postfix) with ESMTP id 87A723A698D for <behave@ietf.org>; Mon, 23 Nov 2009 09:04:18 -0800 (PST)
Authentication-Results: sj-iport-3.cisco.com; dkim=neutral (message not signed) header.i=none
X-IronPort-Anti-Spam-Filtered: true
X-IronPort-Anti-Spam-Result: ApwEAE9PCkurRN+J/2dsb2JhbACERIVutXyHCAiPaYEsgjhYBIFw
X-IronPort-AV: E=Sophos;i="4.47,273,1257120000"; d="scan'208";a="203608202"
Received: from sj-core-3.cisco.com ([171.68.223.137]) by sj-iport-3.cisco.com with ESMTP; 23 Nov 2009 17:04:14 +0000
Received: from dwingwxp01 ([10.32.240.194]) by sj-core-3.cisco.com (8.13.8/8.14.3) with ESMTP id nANH4EYA023657; Mon, 23 Nov 2009 17:04:14 GMT
From: Dan Wing <dwing@cisco.com>
To: 'marcelo bagnulo braun' <marcelo@it.uc3m.es>
References: <4AF34349.40503@viagenie.ca> <087601ca5e77$f24381b0$c6f0200a@cisco.com> <4AF49505.4070805@gmail.com><4AF56E69.9010401@viagenie.ca> <4AF5FE43.5020500@gmail.com><4AF600C3.9070202@gmail.com> <4B066721.7000002@it.uc3m.es> <025f01ca6a02$e2493d90$c2f0200a@cisco.com> <4B06CC79.9030500@viagenie.ca><027e01ca6a05$a5e501b0$c2f0200a@cisco.com><4B078C5F.709@cernet.edu.cn> <026101ca6afc$e2af90e0$376d6b80@cisco.com><000001ca6b16$0cfb0370$c2f0200a@cisco.com><4B08F23B.70707@it.uc3m.es><009001ca6bb3$803eae70$c2f0200a@cisco.com> <4B09B52C.1070405@it.uc3m.es>
Date: Mon, 23 Nov 2009 09:04:11 -0800
Message-ID: <02a201ca6c5e$faa2a850$c2f0200a@cisco.com>
MIME-Version: 1.0
Content-Type: text/plain; charset="gb2312"
Content-Transfer-Encoding: quoted-printable
X-Mailer: Microsoft Office Outlook 11
Thread-Index: Acprv6hM1L8fmfloTeiIG6Og8+U7XgAnwOHQ
In-Reply-To: <4B09B52C.1070405@it.uc3m.es>
X-MimeOLE: Produced By Microsoft MimeOLE V6.00.2900.3350
Cc: 'Behave WG' <behave@ietf.org>, draft-ietf-behave-address-format@tools.ietf.org, 'Xing Li' <xing@cernet.edu.cn>
Subject: Re: [BEHAVE] [NAT64] Hairpinning loop
X-BeenThere: behave@ietf.org
X-Mailman-Version: 2.1.9
Precedence: list
List-Id: mailing list of BEHAVE IETF WG <behave.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/listinfo/behave>, <mailto:behave-request@ietf.org?subject=unsubscribe>
List-Archive: <http://www.ietf.org/mail-archive/web/behave>
List-Post: <mailto:behave@ietf.org>
List-Help: <mailto:behave-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/behave>, <mailto:behave-request@ietf.org?subject=subscribe>
X-List-Received-Date: Mon, 23 Nov 2009 17:04:20 -0000

 

> -----Original Message-----
> From: behave-bounces@ietf.org 
> [mailto:behave-bounces@ietf.org] On Behalf Of marcelo bagnulo braun
> Sent: Sunday, November 22, 2009 2:03 PM
> To: Dan Wing
> Cc: 'Xing Li'; 
> draft-ietf-behave-address-format@tools.ietf.org; 'Behave WG'
> Subject: Re: [BEHAVE] [NAT64] Hairpinning loop
> 
> Dan Wing escribió:
> >  
> >
> >   
> >> -----Original Message-----
> >> From: behave-bounces@ietf.org 
> >> [mailto:behave-bounces@ietf.org] On Behalf Of marcelo bagnulo braun
> >> Sent: Sunday, November 22, 2009 12:12 AM
> >> To: Dan Wing
> >> Cc: 'Behave WG'; 
> >> draft-ietf-behave-address-format@tools.ietf.org; 'Xing Li'
> >> Subject: Re: [BEHAVE] [NAT64] Hairpinning loop
> >>
> >> Dan Wing escribió:
> >>     
> >>>> -----Original Message-----
> >>>> From: behave-bounces@ietf.org 
> >>>> [mailto:behave-bounces@ietf.org] On Behalf Of Dan Wing
> >>>> Sent: Saturday, November 21, 2009 2:49 PM
> >>>> To: 'Xing Li'
> >>>> Cc: draft-ietf-behave-address-format@tools.ietf.org; 'Behave WG'
> >>>> Subject: Re: [BEHAVE] [NAT64] Hairpinning loop
> >>>>
> >>>>
> >>>>  
> >>>>
> >>>>     
> >>>>         
> >>>>> -----Original Message-----
> >>>>> From: behave-bounces@ietf.org 
> >>>>> [mailto:behave-bounces@ietf.org] On Behalf Of Xing Li
> >>>>> Sent: Friday, November 20, 2009 10:45 PM
> >>>>> To: Dan Wing
> >>>>> Cc: draft-ietf-behave-address-format@tools.ietf.org; 'Behave WG'
> >>>>> Subject: Re: [BEHAVE] [NAT64] Hairpinning loop
> >>>>>
> >>>>> Dan Wing 写道:
> >>>>>       
> >>>>>           
> >>>>>>> -----Original Message-----
> >>>>>>> From: Simon Perreault [mailto:simon.perreault@viagenie.ca] 
> >>>>>>> Sent: Friday, November 20, 2009 9:06 AM
> >>>>>>> To: Dan Wing
> >>>>>>> Cc: 'marcelo bagnulo braun'; 'Brian E Carpenter'; 'Behave 
> >>>>>>> WG'; draft-ietf-behave-address-format@tools.ietf.org
> >>>>>>> Subject: Re: [BEHAVE] [NAT64] Hairpinning loop
> >>>>>>>
> >>>>>>> Dan Wing wrote, on 2009-11-20 11:59:
> >>>>>>>     
> >>>>>>>           
> >>>>>>>               
> >>>>>>>>> mmm, afaiu, if we filter incoming packet containing 
> >>>>>>>>>         
> >>>>>>>>>               
> >>>>>>>>>                   
> >>>>>>> Pref64::/n in the 
> >>>>>>>     
> >>>>>>>           
> >>>>>>>               
> >>>>>>>>> source address, then we don't have a loop problem.
> >>>>>>>>>         
> >>>>>>>>>               
> >>>>>>>>>                   
> >>>>>>>> I guess you're thinking 'loop problem' is avoidable 
> by dropping
> >>>>>>>> packets?  My worry is that if we drop packets like 
> >>>>>>>>             
> >>>>>>>>                 
> >>>> that, we could
> >>>>     
> >>>>         
> >>>>>>>> break an application that has no other means to contact 
> >>>>>>>>             
> >>>>>>>>                 
> >>>>> its intended
> >>>>>       
> >>>>>           
> >>>>>>>> peer.  For example, an application that only knows one IP 
> >>>>>>>>       
> >>>>>>>>             
> >>>>>>>>                 
> >>>>>>> address for
> >>>>>>>     
> >>>>>>>           
> >>>>>>>               
> >>>>>>>> its peer, and that IP address is on the 'far' side 
> of the same
> >>>>>>>> translator that both of them are using.
> >>>>>>>>       
> >>>>>>>>             
> >>>>>>>>                 
> >>>>>>> I don't understand what you're saying. We drop packets using 
> >>>>>>> Pref64::/n as source.
> >>>>>>>     
> >>>>>>>           
> >>>>>>>               
> >>>>>> For stateful, yes, that makes sense.
> >>>>>>
> >>>>>> For stateless, I had understood the prefix of the translator
> >>>>>> and the prefix of the hosts is the same, per the last 
> sentence I
> >>>>>> am quoting from
> >>>>>>
> >>>>>>         
> >>>>>>             
> >>>>> http://tools.ietf.org/html/draft-ietf-behave-address-format-01
> >>>>> #section-3.3
> >>>>>       
> >>>>>           
> >>>>>>    Organizations deploying stateless translation SHOULD 
> >>>>>>         
> >>>>>>             
> >>>>> assign a Network
> >>>>>       
> >>>>>           
> >>>>>>    Specific Prefix to their translation service.  Both "IPv4
> >>>>>>    translatable" and "IPv4 Embedded" MUST be constructed as 
> >>>>>>         
> >>>>>>             
> >>>>> specified in
> >>>>>       
> >>>>>           
> >>>>>>    section 2.  "IPv4 translatable" addresses MUST use 
> >>>>>>             
> >> the selected
> >>     
> >>>>>>    Network Specific Prefix.  Both types of addresses SHOULD 
> >>>>>>         
> >>>>>>             
> >>>>> use the same
> >>>>>       
> >>>>>           
> >>>>>>    prefix. 
> >>>>>>
> >>>>>>   
> >>>>>>         
> >>>>>>             
> >>>>> Yes. If both types of addresses (IPv4-translatable and 
> >>>>> IPv4-converted) 
> >>>>> use the same prefix, then the hairpin function is NOT required.
> >>>>>       
> >>>>>           
> >>>> I disagree.
> >>>>
> >>>> The peer's IPv6 address could have been originally communicated
> >>>> in SIP, XMPP, or whatever, but could have been discarded by an
> >>>> IPv4-only SIP proxy, IPv4-only SBC, IPv4-only SIP endpoint, 
> >>>> IPv4-only XMPP endpoint, or whatever.  And when the IPv6-only
> >>>> endpoint finally receives the referral, it contains only an
> >>>> IPv4 address.
> >>>>
> >>>> Thus, the IPv6 host will only know its peer's IPv4 address -- 
> >>>> and does not know its IPv4 address.  Because it doesn't know
> >>>> of the IPv6 host's address, the packet has to be sent to the
> >>>> translator, and the translator needs to hairpin the packet.
> >>>>
> >>>> If we constrain the problem by declaring something like "IPv4
> >>>> applications should not be discard IPv6 addresses", then I 
> >>>> agree we don't need hairpinning in the translator.
> >>>>     
> >>>>         
> >>> Or is it, maybe, that when the peer's IPv6 prefix and the 
> >>>       
> >> translator's IPv6
> >>     
> >>> prefix are the same, the peer's IPv4 representation is the 
> >>>       
> >> same as the
> >>     
> >>> translator's.  I think that must be the situation.  This 
> >>>       
> >> should be better
> >>     
> >>> described in the address-format document; instead of just a 
> >>>       
> >> SHOULD, describe
> >>     
> >>> that it causes normal IPv6 packet routing to allow two 
> IPv6 hosts to
> >>> communicate directly without going through the translator, 
> >>>       
> >> because each IPv6
> >>     
> >>> host (behind the translator) are effectively doing the same 
> >>>       
> >> function as the
> >>     
> >>> translator
> >>>       
> >> but wouldn't this require some mechanism in the IPv6 host 
> to do this?
> >>     
> >
> > If using DNS, and having a DNS-based referral, the DNS64 will give 
> > it such an address -- thus, no change in the application.  
> >   
> but if they are using dns64, the host will not have to create the
> address itself, so i am not sure how this relates to the hairpinning
> case we were mentioning before. I mean, afiau, the hairpinning case
> happens when the host is epxosed to the address directly.
> Whent he host receives the fqdn, this is just another normal
> communication where no need of hairpinning... am i missing something?

I see what you're saying now.  Yes, if the host has an AAAA record we would
not expect the administrator to point that AAAA record at the translator's
IPv6 address, but rather the administrator should point the AAAA at the host's
actual address.  With an AAAA record, the DNS64 function would return the AAAA
record (without synthesizing the response) so the communication -- when DNS64
was involved -- would be direct and not go through the translator.

> > If not using DNS64 (as described in 
> draft-wing-v6ops-v6app-v4server),
> > the application (or the underlying OS) needs to build its own IPv6
> > destination address.  For that to work, the application (or the 
> > underlying OS) needs to know the 6/4 translator's prefix in order
> > to build its own IPv6 destination address.
> >
> >   
> 
> right, this is what i had in mind.

Ok.

-d

> Regards, marcelo
> 
> > -d
> >
> >
> >
> >   
> >> Regards, marcelo
> >>
> >>
> >>     
> >>>  (namely, putting the translator's IPv6 prefix [which is also the
> >>> IPv4 peer's IPv6 prefix] in front of the IPv4 address [using
> >>> wing-behave-learn-prefix and a translator-aware 
> >>>       
> >> application, or using DNS64]).
> >>     
> >>> -d
> >>>
> >>>
> >>>   
> >>>       
> >>>> -d
> >>>>
> >>>>
> >>>>     
> >>>>         
> >>>>> xing
> >>>>>
> >>>>>
> >>>>>       
> >>>>>           
> >>>>>> -d
> >>>>>>
> >>>>>>   
> >>>>>>         
> >>>>>>             
> >>>>>>> The IP address on the far side will be an IPv4 
> >>>>>>> address, which one can
> >>>>>>> express using an IPv6 address in Pref64::/n, but that will be 
> >>>>>>> the destination,
> >>>>>>> not the source.
> >>>>>>>
> >>>>>>> Simon
> >>>>>>> -- 
> >>>>>>> DNS64 open-source   --> http://ecdysis.viagenie.ca
> >>>>>>> STUN/TURN server    --> http://numb.viagenie.ca
> >>>>>>> vCard 4.0           --> http://www.vcarddav.org
> >>>>>>>     
> >>>>>>>           
> >>>>>>>               
> >>>>>> _______________________________________________
> >>>>>> Behave mailing list
> >>>>>> Behave@ietf.org
> >>>>>> https://www.ietf.org/mailman/listinfo/behave
> >>>>>>
> >>>>>>
> >>>>>>   
> >>>>>>         
> >>>>>>             
> >>>>> _______________________________________________
> >>>>> Behave mailing list
> >>>>> Behave@ietf.org
> >>>>> https://www.ietf.org/mailman/listinfo/behave
> >>>>>
> >>>>>       
> >>>>>           
> >>>> _______________________________________________
> >>>> Behave mailing list
> >>>> Behave@ietf.org
> >>>> https://www.ietf.org/mailman/listinfo/behave
> >>>>     
> >>>>         
> >>> _______________________________________________
> >>> Behave mailing list
> >>> Behave@ietf.org
> >>> https://www.ietf.org/mailman/listinfo/behave
> >>>
> >>>   
> >>>       
> >> _______________________________________________
> >> Behave mailing list
> >> Behave@ietf.org
> >> https://www.ietf.org/mailman/listinfo/behave
> >>
> >>     
> >
> >
> >   
> 
> _______________________________________________
> Behave mailing list
> Behave@ietf.org
> https://www.ietf.org/mailman/listinfo/behave
>