Re: [Anima] Is this how BRSKI/IPIP works?
Toerless Eckert <tte@cs.fau.de> Thu, 06 July 2017 03:37 UTC
Return-Path: <eckert@i4.informatik.uni-erlangen.de>
X-Original-To: anima@ietfa.amsl.com
Delivered-To: anima@ietfa.amsl.com
Received: from localhost (localhost [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id 9FE5212EC4D for <anima@ietfa.amsl.com>; Wed, 5 Jul 2017 20:37:26 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -4.2
X-Spam-Level:
X-Spam-Status: No, score=-4.2 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, HEADER_FROM_DIFFERENT_DOMAINS=0.001, RCVD_IN_DNSWL_MED=-2.3, RP_MATCHES_RCVD=-0.001] autolearn=ham autolearn_force=no
Received: from mail.ietf.org ([4.31.198.44]) by localhost (ietfa.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id sLdZmO0yCFPy for <anima@ietfa.amsl.com>; Wed, 5 Jul 2017 20:37:24 -0700 (PDT)
Received: from faui40.informatik.uni-erlangen.de (faui40.informatik.uni-erlangen.de [131.188.34.40]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id 0AB2812EAFF for <anima@ietf.org>; Wed, 5 Jul 2017 20:37:23 -0700 (PDT)
Received: from faui40p.informatik.uni-erlangen.de (faui40p.informatik.uni-erlangen.de [IPv6:2001:638:a000:4134::ffff:77]) by faui40.informatik.uni-erlangen.de (Postfix) with ESMTP id 5021E58C4C5; Thu, 6 Jul 2017 05:37:19 +0200 (CEST)
Received: by faui40p.informatik.uni-erlangen.de (Postfix, from userid 10463) id 38BBCB0C4CF; Thu, 6 Jul 2017 05:37:19 +0200 (CEST)
Date: Thu, 06 Jul 2017 05:37:19 +0200
From: Toerless Eckert <tte@cs.fau.de>
To: Brian E Carpenter <brian.e.carpenter@gmail.com>
Cc: Anima WG <anima@ietf.org>
Message-ID: <20170706033719.GF14122@faui40p.informatik.uni-erlangen.de>
References: <467b3a9b-6fe0-c01f-6165-18e6e290a28c@gmail.com>
MIME-Version: 1.0
Content-Type: text/plain; charset="us-ascii"
Content-Disposition: inline
In-Reply-To: <467b3a9b-6fe0-c01f-6165-18e6e290a28c@gmail.com>
User-Agent: Mutt/1.5.21 (2010-09-15)
Archived-At: <https://mailarchive.ietf.org/arch/msg/anima/9_qa6avMqcWDueVPn4qPOedcHFA>
Subject: Re: [Anima] Is this how BRSKI/IPIP works?
X-BeenThere: anima@ietf.org
X-Mailman-Version: 2.1.22
Precedence: list
List-Id: Autonomic Networking Integrated Model and Approach <anima.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/anima>, <mailto:anima-request@ietf.org?subject=unsubscribe>
List-Archive: <https://mailarchive.ietf.org/arch/browse/anima/>
List-Post: <mailto:anima@ietf.org>
List-Help: <mailto:anima-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/anima>, <mailto:anima-request@ietf.org?subject=subscribe>
X-List-Received-Date: Thu, 06 Jul 2017 03:37:26 -0000
On Thu, Jul 06, 2017 at 02:19:23PM +1200, Brian E Carpenter wrote: > Hi BRSKI authors, Can i still answer ? Inline. I only have an ACP author, WG chair and general bloviator hat though... > Is the following correct? > > Topology (ASCII art): > ___________ > | REGISTRAR | > |___________| > |Ar > | > ........... > ( ACP ) > ( routing ) > ( cloud ) > ........... > | > |Ax > _____|_____ > | PROXY | > |___________| > |Lx1 |Lx2 > | | > | | > -------LAN1--------- -------LAN2---------- > | | > |Lp |Lp > ____|____ ___|_____ > | PLEDGE1 | | PLEDGE2 | > |_________| |_________| > > Assumptions: > > Pledges have link-local address Lp. By chance, they are equal. (Nothing in > the standards prevents them from being equal. Even pseudo-random numbers can > be equal, so this case must work.) > > Proxy has link-local addresses Lx1, Lx2 and ACP address Ax. We can require > that Lx1 != Lx2. No, i think we can not. AFAIK, it is common practice to put your MAC address as the host part into link-local addresses and only high-margin network equipment vendors afford ranges of in my experience at most up to 8 MAC addresses to a single device. And you do not want to make a protocol that changes any current possible and likely practices. I have not found evidence of being able to have multiple link-local addresses on an interface. But even if that was architecturally permitted, it too would likely not something you could easily do through a non-privileged app via UDP socket API (i fear). This concern may be bogus because the registrar would already need to deal with IPinIP, which is no fun for a non-privileged app without OS support. > Registrar has ACP address Ar. > > Packets for a UDP example: > > (somewhat simplified IPv6 packets!) > > Pledge sends to proxy [Lp, Lx1, 17, UDP-PAYLOAD1] > > Proxy sends to Registrar [Ax, Ar, 41, [Lp, Lx1, 17, UDP-PAYLOAD1]] > > Registrar replies to proxy [Ar, Ax, 41, [Lx1, Lp, 17, UDP-PAYLOAD2]] > > Proxy replies to pledge [Lx1, Lp, 17, UDP-PAYLOAD2] > > Note that the registrar echoes back the addresses Lp and Lx but they mean > nothing to it. The registrar simply borrows the proxy's LL address Lx > for the purpose of replying. Not quite "means nothing to it". The registar will have to build connection state and the connection key is [ Remote_vIP=(Lp, Lxi, Ax), Local_IP=(Ar), Proto=17, RemotePort, LocalPort ] Given how my claim is that multiple Lxi may be the same AND that as you already said, Lp may be the same, we need another field to distinguish those connections. C.1 of BRSKI suggests to allocate more addresses, eg: multiple Axi. But given how ACP addresses are backed by certificate, its not as easy to get more ACP addresses as it would be in less secured transport substrates. Solutions: I would change the encap from IPinIP to some UDP header variation: I want to be able to implement pledge, proxy and registar as simple apps using just UDP sockets. Thats something i can implement anywhere i want. Unless someone comes up with some pre-existing encap that makes life easy, i would just make the proxy insert a link-local pseudo header between the UDP header and the original pledges UDP payload. pseudo header would need to contain (Lp). Then in addition, the proxy would need to open a separate UDP socket for each local interface it has. That would make all UDP packet from proxy use a separate RemotPort on the registrar. The benefit of this approach is that i could start separate ASA, one for each interface, and if one interfaces proxy is attacked by pledges, it will not have an impact on other interfaces. And i minimize unnecessary headers. Relevant connection key is then: [ Remote_vIP=(Lp, Ax), Local_IP=(Ar), Proto=17, RemotePort, LocalPort ] Aka: Lxi is irrelevant and can be ignored by registrar. Given how this is not a throughput relevant proxy function i do not care avbout the fact that i must recalculate UDP checksums over the packet (something that has bothered UDP tunneling solutions in the IETF for years now). Cheers Toerless > Note that even the 2uple {Ax, Lp} might not uniquely identify the pledge. > Since the proxy will have at least two interfaces, the address Lp might > exist on multiple LANs. However, the proxy will have different link-local > addresses on the two LANs, so the 3uples {Ax, Lp, Lx1} {Ax, Lp, Lx2} > will be unique. Hence the registrar can distinguish the transactions. > > So, what the registrar needs to tell the proxy is: I accept IP in IP on address Ar. > Nothing else - no port number, no link-local address. > > What the proxy needs to tell the pledge is: I accept BRSKI/TCP > or BRSKI/UDP on address Lx. And if it chooses to use IPIP to contact > the registrar, it simply forwards the packets as-is in both directions, > encapsulating and decapsulating accordingly. The pledge knows nothing about > IPIP. > > Regards > Brian > > _______________________________________________ > Anima mailing list > Anima@ietf.org > https://www.ietf.org/mailman/listinfo/anima -- --- tte@cs.fau.de
- [Anima] Is this how BRSKI/IPIP works? Brian E Carpenter
- Re: [Anima] Is this how BRSKI/IPIP works? Toerless Eckert
- Re: [Anima] Is this how BRSKI/IPIP works? Brian E Carpenter
- Re: [Anima] Is this how BRSKI/IPIP works? Toerless Eckert
- Re: [Anima] Is this how BRSKI/IPIP works? Brian E Carpenter
- Re: [Anima] Is this how BRSKI/IPIP works? Toerless Eckert
- Re: [Anima] Is this how BRSKI/IPIP works? Brian E Carpenter
- Re: [Anima] Is this how BRSKI/IPIP works? Toerless Eckert
- Re: [Anima] Is this how BRSKI/IPIP works? Michael Richardson
- Re: [Anima] Is this how BRSKI/IPIP works? Brian E Carpenter
- Re: [Anima] Is this how BRSKI/IPIP works? Michael Richardson
- Re: [Anima] Is this how BRSKI/IPIP works? Brian E Carpenter
- Re: [Anima] Is this how BRSKI/IPIP works? Michael Richardson
- Re: [Anima] Is this how BRSKI/IPIP works? Brian E Carpenter
- Re: [Anima] Is this how BRSKI/IPIP works? Eliot Lear
- Re: [Anima] Is this how BRSKI/IPIP works? Brian E Carpenter
- Re: [Anima] Is this how BRSKI/IPIP works? Eliot Lear
- Re: [Anima] Is this how BRSKI/IPIP works? Michael Richardson
- Re: [Anima] Is this how BRSKI/IPIP works? Brian E Carpenter
- Re: [Anima] Is this how BRSKI/IPIP works? Michael Richardson
- Re: [Anima] Is this how BRSKI/IPIP works? Michael Richardson
- Re: [Anima] Is this how BRSKI/IPIP works? Brian E Carpenter
- Re: [Anima] Is this how BRSKI/IPIP works? Toerless Eckert
- Re: [Anima] Is this how BRSKI/IPIP works? Eliot Lear
- Re: [Anima] Is this how BRSKI/IPIP works? Toerless Eckert
- Re: [Anima] Is this how BRSKI/IPIP works? Michael Richardson
- Re: [Anima] Is this how BRSKI/IPIP works? Eliot Lear
- Re: [Anima] Is this how BRSKI/IPIP works? Brian E Carpenter
- Re: [Anima] Is this how BRSKI/IPIP works? Toerless Eckert
- Re: [Anima] Is this how BRSKI/IPIP works? Eliot Lear (elear)
- Re: [Anima] Is this how BRSKI/IPIP works? Toerless Eckert
- Re: [Anima] Is this how BRSKI/IPIP works? Michael Richardson
- Re: [Anima] Is this how BRSKI/IPIP works? Toerless Eckert
- Re: [Anima] Is this how BRSKI/IPIP works? Max Pritikin (pritikin)