Standalone Neutron: How we integrated it with Abiquo
This is a talk I gave at the OpenStack BCN 7th birthday meetup.
In it I explain how we integrated a standalone Neutron with Abiquo to implement an SDN solution w/o a full OpenStack.
birthday meetup 2 Abiquo had a basic self-service networking model for KVM based on VLANs. We wanted to add support for: • Firewalls • Load Balancers • Floa:ng Ips • Other networking technologies (not a priority)
4 OpenStack already had what we needed, but we only needed some parts of the relevant compute stack: • Keystone – For access control and mul:- tenancy • Neutron – To provide the SDN features • Nova – We already had our own hypervisor agent and wanted to integrate it with Neutron
5 Our hypervisor agent already managed VLANs and Linux bridges, so we started using: • VLANs for user defined networks • The Linux bridges plugin • Iptables for security groups • The LBaaS API with HAProxy for load balancers
meetup 7 The controller node keeps the logical networking model. We directly manage it using the Neutron API to: • Create networks and subnets • Manage security groups • Create and configure ports • Manage floa:ng IPs • Manage load balancers
meetup 11 We will rely on the Linux bridges agent to create all stuff What needs to be done to let the agent know that the infrastructure is ready? How do we make the ports ACTIVE?
July 2017 OpenStack BCN 7th birthday meetup 22 Interfaces in the compute node [root@nacx-kvm ~]# ip link 1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN mode DEFAULT qlen 1 link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00 2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP mode DEFAULT qlen 1000 link/ether 52:54:00:1e:11:76 brd ff:ff:ff:ff:ff:ff 3: eth1: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP mode DEFAULT qlen 1000 link/ether 52:54:00:0c:55:0f brd ff:ff:ff:ff:ff:ff 4: virbr0: <NO-CARRIER,BROADCAST,MULTICAST,UP> mtu 1500 qdisc noqueue state DOWN mode DEFAULT qlen 1000 link/ether 52:54:00:92:05:b4 brd ff:ff:ff:ff:ff:ff 5: virbr0-nic: <BROADCAST,MULTICAST> mtu 1500 qdisc pfifo_fast master virbr0 state DOWN mode DEFAULT qlen 1000 link/ether 52:54:00:92:05:b4 brd ff:ff:ff:ff:ff:ff Interfaces are managed by the compute agent (Nova), our custom hypervisor agent in this case Our agent needs to create the right one
27 • Even though OpenStack is very modular, there are (hidden) hardcoded things that are important for integra:ons • Open source is key when approaching new technology – Access to a community knowledge base of similar issues, use cases and experiences – Access to the source code is o-en the best way to understand technology