22:03:36 #startmeeting OpenStack Networking (VPN) 22:03:37 Meeting started Thu May 16 22:03:36 2013 UTC. The chair is nati_ueno. Information about MeetBot at http://wiki.debian.org/MeetBot. 22:03:38 Useful Commands: #action #agreed #help #info #idea #link #topic #startvote. 22:03:40 The meeting name has been set to 'openstack_networking__vpn_' 22:04:38 This is today's agenda https://docs.google.com/presentation/d/1J7k1eI13-3pQVwp5XgZDWPfzUvuSqczRdK0lEZKQOKk/edit#slide=id.gc2779960_400 22:05:16 it looks like Satin is not yet 22:05:37 so let's start reviewing from Driver archtecture https://docs.google.com/presentation/d/1uoYMl2fAEHTpogAe27xtGpPcbhm7Y3tlHIw_G1Dy5aQ/edit 22:05:45 ok 22:05:48 #topic ipsec driver archtecture 22:06:31 So do you have comment's for this bp? 22:06:41 hi folks sorry running a few min late 22:07:25 nachi: I don't see any issues with your design, I think it follows the existing LBaaS model 22:07:44 sthakkar: noop :) we are discussing Driver archtecture https://docs.google.com/presentation/d/1uoYMl2fAEHTpogAe27xtGpPcbhm7Y3tlHIw_G1Dy5aQ/edit 22:07:55 markmcclain: do you have comments on this? 22:08:07 sthakkar: This is today's agenda This is today's agenda https://docs.google.com/presentation/d/1J7k1eI13-3pQVwp5XgZDWPfzUvuSqczRdK0lEZKQOKk/edit#slide=id.gc2779960_400 22:08:20 sorry this is first time I've had a chance to look at it 22:08:33 I'll a bit of time to digest it :) 22:08:40 markmcclain: gotcha 22:08:47 nati_ueno: just some Qs (to give Mark tiem to look :) 22:08:55 pcm__: OK please 22:09:09 on the create, the driver gets the host that the router is running on. 22:09:17 pcm__: yes 22:09:43 pcm__: https://docs.google.com/presentation/d/1uoYMl2fAEHTpogAe27xtGpPcbhm7Y3tlHIw_G1Dy5aQ/edit#slide=id.gc2bc6c2e_024 22:09:48 Then checks the port is created. Is this the port on the network side of the router, vs VM side? 22:10:12 pcm__: router side 22:10:29 if not created, what happens? 22:10:57 pcm__: set status of the VPNService error state 22:11:04 ok. 22:12:15 nachi: In your slide 3 you mentioned that create vpn service calls the IPsecVPNDriver, in my opinion, only if there is a connection associated with the VPNService we need to call the Driver, otherwise we don't need to call the driver. 22:12:54 Swami: ah no. We will call agent when connection associated 22:14:15 OK anyway i'll start implementation on next week or next next week. 22:14:21 Nachi: In your slide 3 there are two drivers one "IPSecVPNDriver" before the agent and another driver "StrongSwan Driver". - why do we need two drivers. 22:14:23 so please give me your feedbacks 22:14:35 yeah.. I was going to ask the same time 22:14:37 *thing 22:14:53 Swami: IPSecVPNDriver is server side driver 22:14:54 the StrongSwan driver should be subclass of IPSecDriver 22:15:18 StrongSwan Driver is agent side driver 22:15:26 so API is different 22:15:31 On the dwg on page 2, both drivers are in the agent block? 22:16:04 pcm__: page2 is wrong. sorry I updated it 22:16:46 so may be in future IPSecDriver will call another implementation of agent side driver 22:16:49 just trying to understand the mapping of the block diagram to the items in the ladder diagram (and where the RPC boundary is - sorry not yet familiar with LBaaS and others) 22:16:59 Instead of calling it as IPseDriver just name it as IPsecCallback functions 22:17:49 Swami: We will add another VPN's driver here. SSLDriver, MPLSDriver. so "driver" illustrates what's we wanna do 22:18:08 Swami: callback sound 22:18:15 's not plugablle 22:18:29 ok 22:19:17 May be I should call StrongSwanDriver as StrongSwanDeviceDriver 22:19:49 that works 22:19:53 yeah I think that seems reasonable 22:19:55 gotcha 22:20:36 OK anyway i'll start implementation on next week or next next week, so please keep review it :) 22:20:56 I wanna also have quick discussion of https://docs.google.com/presentation/d/1e85n2IE38XoYwlsqNvqhKFLox6O01SbguZXq7SnSSGo/edit#slide=id.p 22:21:02 so how we create agent 22:21:07 vpn-agent 22:21:19 I believe current proposal is https://docs.google.com/presentation/d/1e85n2IE38XoYwlsqNvqhKFLox6O01SbguZXq7SnSSGo/edit#slide=id.gc2c671fc_035 22:21:30 However https://docs.google.com/presentation/d/1e85n2IE38XoYwlsqNvqhKFLox6O01SbguZXq7SnSSGo/edit#slide=id.gc2c671fc_089 looks more good for me 22:21:34 do we need a separate agent or should this service be colocated with the l3 namespace? 22:21:55 the service should be colocated with the l3 namespace 22:22:02 for first implementation 22:22:17 right.. so it's a subclass of the l3_agent? 22:23:08 markmcclain: it is under the discussion. May be two different process will manage one namespace such as Option3 in the google doc 22:23:43 having two processes manage the namespace will introduce different race conditions 22:23:54 markmcclain: yes. I agree 22:24:07 so I prefer Option2-2 in the google doc 22:25:04 Are other services following the same model 22:25:17 Swami: no 22:25:28 Swami: yes. let's keep discussion on the mailing list about this service agent one 22:25:29 FWaaS will be implemented in L3 agent 22:25:40 do we need to align with other services 22:25:59 yes.. but that alignment will happen in H2 22:26:23 that's why think we should go option 1 for now 22:26:27 I'm start discussion with Sumit also 22:26:35 FWaaS looks https://docs.google.com/presentation/d/1e85n2IE38XoYwlsqNvqhKFLox6O01SbguZXq7SnSSGo/edit#slide=id.gc2c671fc_022 22:26:49 nati_ueno: it's actually more than just a discussion with Sumit 22:27:01 markmcclain: ah discussion means in the mailing list 22:27:31 yeah.. but I don't want to bog either team down discussing option2 yet 22:27:54 because it introduces complexities that can really hamper progress 22:28:02 remember we need to start simple and get things working end to end 22:28:24 if we do thing right we can move the logic in option to support services in option 2 later 22:28:38 markmcclain: I got your point. so we start implement directory in the l3-agent? 22:28:51 that's my preference 22:29:01 gives us a chance to validate api and driver interface 22:29:08 Ok so how about implement vpn also in the l3-agent? 22:29:24 If vpn-agent will touch the router namespace, we should do it in the l3-agent 22:29:38 yeah.. a subclass of the l3 agent should work to start out 22:29:49 we can clean things up later in the cycle 22:29:55 markmcclain: +1 22:29:56 that makes sense 22:30:55 OK next topic is 22:30:58 markmcclain: You mentions FWaaS doing option 1? How far are they (as in, is there something I can look at)? 22:30:59 #topic local_subnet vs local_cidr 22:31:25 pcm__: They just started, so IMO there is no code yet 22:31:47 pcm__: they're not too far in yet 22:31:50 nati_ueno: Is LBaaS there? 22:32:00 pcm__: not yet 22:32:04 LBaaS uses a 1 arm model 22:32:04 (just looking for reference material) 22:32:09 so it's not routed yet 22:32:47 OK let's continue discussion of local_subnet vs local_cidr 22:33:01 In previous meeting, we discussed local_subnet vs local_cidr 22:33:17 also we should use "cidr" value or "Subnet ID" 22:33:25 so I've been thinking about this :) 22:33:42 markmcclain: Thanks. so do you have update? 22:33:44 so basically do we integrate with the ipam system or use explicit values 22:33:52 sthakkar: exactly 22:34:01 what would happen if we support both? 22:34:10 sthakkar: That's one option 22:34:12 sthakkar: it's messy 22:34:18 true 22:34:30 but im worried if we integrate with ipam we lose a few folks in the shuffle 22:34:48 we should stick on to the cidr for now 22:34:50 sthakkar: we don't necessarily have to integrate with IPAM 22:34:56 so we need to satisfy Usecase1 sub-area of cidr Usecase2 aggregation 22:35:06 but the cidrs on the local end should be defined in one place 22:35:19 nati_ueno: the problem with say using a /27 of /24 22:35:25 is how is traffic routed? 22:35:46 in the remote side 22:36:09 so let's say 10.0.0.0/27 is routed to the OpenStack side 22:36:09 not the remote side 22:36:12 on the local side 22:36:42 This is local subnets which is sent to the remote side. 22:36:50 so it is not used in the local side 22:37:15 right but that introduces routing issues 22:37:46 markmcclain: which kind of routing issue? 22:38:27 so if declare a smaller subnet on the local end 22:38:49 there will be instances where a guest will think the address is local 22:38:56 so won't forward the packet the gateway 22:39:35 you mean remote side? 22:40:18 I thought the local cidrs could be smaller than the local subnet 22:42:03 I wrote diagram https://docs.google.com/presentation/d/1J7k1eI13-3pQVwp5XgZDWPfzUvuSqczRdK0lEZKQOKk/edit#slide=id.gc2779960_410 22:42:12 let's use this slide as whiteboard 22:44:22 what slide #? 22:44:28 page 3 22:45:02 This is what is in my mental model 22:45:27 And I suppose it works 22:45:47 This should work 22:46:56 I not sure I under why you'd export a /30 to the remote end 22:47:33 how does the remote talk to something that within the /24 22:47:54 what happens if the there's a guest that has an address that shares the net address of the /30? 22:47:56 remote can talk only within /30 22:48:20 this is intent of the usecase 22:49:00 but that use case is different from VPC 22:49:00 so tenant may want to provide VPN only for some clients? 22:49:10 or even if you're following say a vyatta instance locally 22:49:55 pcm__: yes 22:50:12 I added application on the VM 22:50:28 it seems if someone wants to provide VPN only they can create a subnet special for the client 22:50:54 markmcclain: Does VPC just do whole subnet? 22:51:06 yes 22:51:18 VPC does not provide an option for the local side but it only requests prefixes for the remote side 22:51:43 Swami: so which local side subnet will be advatized? 22:51:59 Swami: ah this is not bgp, so we need manual configuration for remote side? 22:52:05 Yes 22:52:32 so why we need local_cidr for first implementation if it has no bgp 22:52:51 ? 22:53:57 Swami: any thought? 22:54:51 sthakkar or pcm__ too? 22:54:54 I thought we can just live it as it is for now. 22:55:20 markmcclain: got nothing here :) 22:55:45 if we drop the field right now we won't have to write validation code 22:55:54 markmcclain: I agree 22:56:01 if we need it later on.. migrations are fairly easy to implement 22:56:02 I think looking through most systems 22:56:07 its the full subnet 22:56:31 so in this case we will fetch the full subnet from the subnet id and just drop the local_cidr field 22:56:47 +1 for first step 22:56:58 +1 agreed 22:57:06 And let's keep discussion for this until we start implement bgp mode 22:57:29 however we should agree on peer_cidr or peer_subnet 22:57:37 +1 for first step 22:57:44 peer_cidr 22:57:50 so subnet on peer is out of management of quantum ipam 22:57:55 the subnet term is too overload within Quantum 22:58:04 ok I should say 22:58:11 so cidr on peer is out of management of quantum ipam 22:58:27 so we should use cidr value for peer_cidr 22:58:38 +1 for peer_cidr 22:58:39 yeah.. otherwise we'd have to add the notion of remote networks and subnets to Quantum 22:58:58 i think qin's comparison was primarily for standardization with other devices as _subnets or _networks 22:58:58 +1 for peer_cidr 22:58:59 that is another discussion for another time :) 22:59:12 but we could potentially go for _ipsubnets as well 22:59:27 im okay whichever way for this name, users will figure it out 23:00:03 ok lets leave it as cidrs then for now 23:00:14 ok so let's keep peer_cidr 23:00:37 +1 23:00:40 remember the first version is somewhat experiment 23:00:49 and can be > 1? 23:00:53 if the feedback comes back that we need remote_subnets we can change it 23:01:05 ok 23:01:12 so it looks 1 hour goes 23:01:25 When we discuss next time? 23:01:46 we should move over the other discussion in next time or mailing list. 23:02:03 Next monday 5PM (PST) ? 23:02:20 OK for me. 23:02:21 lets start discussing over the mailer 23:02:30 im fine for 5pm monday 23:02:33 works for me. 23:02:37 if we need another session 23:02:40 yeah.. I good for 5pm 23:02:57 we do have a good direction, so it might make sense to skip a week and let some work be done 23:03:07 OK so next time is 5/21 5pm PST 23:03:13 the dev process might raise some ?s that we can kick around 23:03:23 yea im fine with that too 23:03:28 You mentioned Monday - it is 5/20 23:03:29 markmcclain: I'm start feeling too 23:03:30 go mailer only for the next 7-10 days 23:03:38 and if there are a ton of open questions during dev 23:03:42 we schedule a follow up 23:03:53 OK so let's continue discussion on the Swami's review requirement or mine 23:04:18 I feel We are making good progress :) 23:04:26 nachi: Our next meeting is on Monday or tuesday 23:04:26 #endmeeting