SlideShare a Scribd company logo
OPENSTACK SUMMIT VANCOUVER | DAVE NEARY1
OpenDaylight and OpenStack:
A match made in heaven
Dave Neary
SDN/NFV Community Strategy
Red Hat
dneary@redhat.com
@nearyd
OPENSTACK SUMMIT VANCOUVER | DAVE NEARY2
What is OpenDaylight?
● An SDN Controller
● Platform for network engineering
● Network virtualization – disaggregation of physical
and virtual network topology
http://www.opendaylight.org
OPENSTACK SUMMIT VANCOUVER | DAVE NEARY3
What is an SDN controller?
● Manages edge devices (switches, routers)
● Define network policy, topology centrally
● Push rules for implementation to the edge
● Manage multiple interfaces Southbound (OpenFlow,
OVSDB, NETCONF, vendor plug-ins)
OPENSTACK SUMMIT VANCOUVER | DAVE NEARY4
Sample SDN applications
● WAN optimization
● Traffic engineering for Network QoS
● Network virtualization
● Software based network applications – IDM, DDoS
protection, VPN
OPENSTACK SUMMIT VANCOUVER | DAVE NEARY5
OpenDaylight projects
OPENSTACK SUMMIT VANCOUVER | DAVE NEARY6
OpenDaylight as OpenStack network overlay
OPENSTACK SUMMIT VANCOUVER | DAVE NEARY7
Core OpenDaylight use-cases
● OpenDaylight board focus:
● OpenStack network virtualization
● Service Function Chaining/NFV
● Work ongoing to document and improve OpenStack
integration
● Focus on NFV use-cases: SFC, network policy
OPENSTACK SUMMIT VANCOUVER | DAVE NEARY8
OpenDaylight and OpenStack
OPENSTACK SUMMIT VANCOUVER | DAVE NEARY9
A brief overview of OpenStack networking
(with Open vSwitch ML2 plug-in)
OPENSTACK SUMMIT VANCOUVER | DAVE NEARY10
ML2 Architecture Diagram
Neutron Server
ML2 Plugin
Type Manager Mechanism Manager
API Extensions
GRE
TypeDriver
Arista
VLAN
TypeDriver
VXLAN
TypeDriver
CiscoNexus
Hyper-V
L2Population
Linuxbridge
OpenvSwitch
Tail-FNCS
Credit: Bob Kukura
http://bit.ly/1L4Am3k
OPENSTACK SUMMIT VANCOUVER | DAVE NEARY11
Neutron architecture
neutron-server
Database
Message
queue
L2 AgentL2 AgentL2 AgentL2 AgentL2 Agent
L3 AgentL3 AgentL3 Agent
DHCP agentDHCP agentDHCP agent
Credit: Mark McLain
OPENSTACK SUMMIT VANCOUVER | DAVE NEARY12
How OpenStack traffic flows (with OVS)
Credit: Lars Kellogg-Stedman
https://www.rdoproject.org/Networking_in_too_much_detail
OPENSTACK SUMMIT VANCOUVER | DAVE NEARY13
Instance to qbr...
● Virtual NIC eth0
mapped to tap device
in host (eg.
tap7c7ae61e-05)
● tap device attached to
Linux Bridge
qbr7c7ae61e (1 bridge
per instance)
● Security rules applied
here
OPENSTACK SUMMIT VANCOUVER | DAVE NEARY14
Security rules
$ iptables -S | grep tap7c7ae61e-05
-A quantum-openvswi-FORWARD -m physdev 
--physdev-out tap7c7ae61e-05 
--physdev-is-bridged -j quantum-openvswi-sg-chain
-A quantum-openvswi-FORWARD -m physdev 
--physdev-in tap7c7ae61e-05 
--physdev-is-bridged -j quantum-openvswi-sg-chain
-A quantum-openvswi-INPUT -m physdev 
--physdev-in tap7c7ae61e-05 
--physdev-is-bridged -j quantum-openvswi-o7c7ae61e-0
-A quantum-openvswi-sg-chain -m physdev 
--physdev-out tap7c7ae61e-05 
--physdev-is-bridged -j quantum-openvswi-i7c7ae61e-0
-A quantum-openvswi-sg-chain -m physdev 
--physdev-in tap7c7ae61e-05 
--physdev-is-bridged -j quantum-openvswi-o7c7ae61e-0
OPENSTACK SUMMIT VANCOUVER | DAVE NEARY15
qbr... to br-int
● Interface qvb...
attaches to qbr... at C
● Interface qvo...
attaches to br-int at D
● VLAN tagging applied
at br-int
OPENSTACK SUMMIT VANCOUVER | DAVE NEARY16
OVS config
$ ovs-vsctl show
Bridge br-int
Port "qvo7c7ae61e-05"
tag: 1
Interface "qvo7c7ae61e-05"
Port patch-tun
Interface patch-tun
type: patch
options: {peer=patch-int}
Port br-int
Interface br-int
type: internal
OPENSTACK SUMMIT VANCOUVER | DAVE NEARY17
br-tun (Compute node)
● patch-tun (E) connects
to patch-int (F),
connected to br-tun
● Traffic is sent to the
physical NIC (G), with
encapsulation
(VXLAN, GRE)
OPENSTACK SUMMIT VANCOUVER | DAVE NEARY18
br-tun (Control node)
● Traffic on host (H) is
converted from GRE
to VLAN
● Traffic sent with
appropriate VLAN tag
on to br-int (I)
OPENSTACK SUMMIT VANCOUVER | DAVE NEARY19
Send multicast traffic from GRE tunnel 2 to VLAN
1, port 1
# ovs-ofctl dump-flows br-tun
NXST_FLOW reply (xid=0x4):
cookie=0x0, duration=422.158s, table=0, n_packets=2, 
n_bytes=120, idle_age=55, priority=3,
tun_id=0x2,dl_dst=01:00:00:00:00:00/01:00:00:00:00:00 
actions=mod_vlan_vid:1,output:1
cookie=0x0, duration=421.948s, table=0, n_packets=64, 
n_bytes=8337, idle_age=31, 
priority=3,tun_id=0x2,dl_dst=fa:16:3e:dd:c1:62 
actions=mod_vlan_vid:1,NORMAL
cookie=0x0, duration=422.357s, table=0, n_packets=82, 
n_bytes=10443, idle_age=31, priority=4,in_port=1,dl_vlan=1 
actions=set_tunnel:0x2,NORMAL
cookie=0x0, duration=1502.657s, table=0, n_packets=8,
n_bytes=596, idle_age=423, priority=1 actions=drop
OPENSTACK SUMMIT VANCOUVER | DAVE NEARY20
Tag traffic on GRE tunnel 2 for instance with
VLAN tag 1
# ovs-ofctl dump-flows br-tun
NXST_FLOW reply (xid=0x4):
cookie=0x0, duration=422.158s, table=0, n_packets=2, 
n_bytes=120, idle_age=55, priority=3,
tun_id=0x2,dl_dst=01:00:00:00:00:00/01:00:00:00:00:00 
actions=mod_vlan_vid:1,output:1
cookie=0x0, duration=421.948s, table=0, n_packets=64, 
n_bytes=8337, idle_age=31, 
priority=3,tun_id=0x2,dl_dst=fa:16:3e:dd:c1:62 
actions=mod_vlan_vid:1,NORMAL
cookie=0x0, duration=422.357s, table=0, n_packets=82, 
n_bytes=10443, idle_age=31, priority=4,in_port=1,dl_vlan=1 
actions=set_tunnel:0x2,NORMAL
cookie=0x0, duration=1502.657s, table=0, n_packets=8,
n_bytes=596, idle_age=423, priority=1 actions=drop
OPENSTACK SUMMIT VANCOUVER | DAVE NEARY21
Tag traffic from port 1 with VLAN tag 1 with GRE
tunnel 2
# ovs-ofctl dump-flows br-tun
NXST_FLOW reply (xid=0x4):
cookie=0x0, duration=422.158s, table=0, n_packets=2, 
n_bytes=120, idle_age=55, priority=3,
tun_id=0x2,dl_dst=01:00:00:00:00:00/01:00:00:00:00:00 
actions=mod_vlan_vid:1,output:1
cookie=0x0, duration=421.948s, table=0, n_packets=64, 
n_bytes=8337, idle_age=31, 
priority=3,tun_id=0x2,dl_dst=fa:16:3e:dd:c1:62 
actions=mod_vlan_vid:1,NORMAL
cookie=0x0, duration=422.357s, table=0, n_packets=82, 
n_bytes=10443, idle_age=31, priority=4,in_port=1,dl_vlan=1 
actions=set_tunnel:0x2,NORMAL
cookie=0x0, duration=1502.657s, table=0, n_packets=8,
n_bytes=596, idle_age=423, priority=1 actions=drop
OPENSTACK SUMMIT VANCOUVER | DAVE NEARY22
Control-node br-int
● GRE to VLAN conversion in br-tun
● br-int bridges to Neutron agents
OPENSTACK SUMMIT VANCOUVER | DAVE NEARY23
Control-node br-int
# ovs-vsctl show
Bridge br-int
Port patch-tun
Interface patch-tun
type: patch
options: {peer=patch-int}
Port "tapf14c598d-98"
tag: 1
Interface "tapf14c598d-98"
Port br-int
Interface br-int
type: internal
Port "tapc2d7dd02-56"
tag: 1
Interface "tapc2d7dd02-56"
OPENSTACK SUMMIT VANCOUVER | DAVE NEARY24
Network namespaces
● Each network with DHCP has its own network
namespace
● Each router has its own namespace too
# ip netns
qdhcp-88b1609c-68e0-49ca-a658-f1edff54a264
qrouter-2d214fde-293c-4d64-8062-797f80ae2d8f
OPENSTACK SUMMIT VANCOUVER | DAVE NEARY25
Digging into the namespaces
# ip netns exec qdhcp-88b1609c-68e0-49ca-a658-f1edff54a264 ip addr
71: ns-f14c598d-98: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500
qdisc pfifo_fast state UP qlen 1000
link/ether fa:16:3e:10:2f:03 brd ff:ff:ff:ff:ff:ff
inet 10.1.0.3/24 brd 10.1.0.255 scope global ns-f14c598d-98
inet6 fe80::f816:3eff:fe10:2f03/64 scope link
valid_lft forever preferred_lft forever
● Interface corresponds to port “tapf14c598d-98” and
interface tapf14c598d-98 on br-int
● dnsmasq process listens on this interface, with
namespace from before
OPENSTACK SUMMIT VANCOUVER | DAVE NEARY26
Routing to the internet
● qrouter namespace contains interfaces K, N
● qg... interface corresponds to gateway set on router
(neutron-set-gateway)
● Routing tables for router defined with iptables in
qrouter namespace
● NAT to host address happens on br-ex
OPENSTACK SUMMIT VANCOUVER | DAVE NEARY27
Router connections
# ip netns exec qrouter-2d214fde-293c-4d64-8062-797f80ae2d8f ip addr
66: qg-d48b49e0-aa: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500
qdisc pfifo_fast state UP qlen 1000
link/ether fa:16:3e:5c:a2:ac brd ff:ff:ff:ff:ff:ff
inet 172.24.4.227/28 brd 172.24.4.239 scope global qg-d48b49e0-aa
inet 172.24.4.228/32 brd 172.24.4.228 scope global qg-d48b49e0-aa
inet6 fe80::f816:3eff:fe5c:a2ac/64 scope link
valid_lft forever preferred_lft forever
68: qr-c2d7dd02-56: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500
qdisc pfifo_fast state UP qlen 1000
link/ether fa:16:3e:ea:64:6e brd ff:ff:ff:ff:ff:ff
inet 10.1.0.1/24 brd 10.1.0.255 scope global qr-c2d7dd02-56
inet6 fe80::f816:3eff:feea:646e/64 scope link
valid_lft forever preferred_lft forever
# ovs-vsctl show
Bridge br-int
<snip>
Port "tapc2d7dd02-56"
tag: 1
Interface "tapc2d7dd02-56"
OPENSTACK SUMMIT VANCOUVER | DAVE NEARY28
OpenStack with OpenDaylight
OPENSTACK SUMMIT VANCOUVER | DAVE NEARY29
OpenDaylight
Neutron Service
OpenStack Neutron
OVSDB
Provider
Neutron ML2
MechanismDriver
OpenDaylight APIs (REST)
Neutron and OpenDaylight
● OpenDaylight exposes a single
common OpenStack Service
Northbound
● API exposed matches Neutron
API precisely
● Multiple back-ends in
OpenDaylight
● OpenDaylight OpenStack
Neutron Plugin simply passes
through
● Simplifies OpenStack plugin
● Pushes complexity to
OpenDaylight
Compute A
OVSDB-server
ovs-bridge
Compute B
OVSDB-server
ovs-bridge
OpenFlow
OPENSTACK SUMMIT VANCOUVER | DAVE NEARY30
Configuring OpenDaylight with OpenStack
https://wiki.opendaylight.org/view/OpenStack_and_OpenDaylight
1. Install OpenStack, clean Neutron config
2. Install OpenDaylight
3. Clean OVSDB configuration on all hosts
4. Set ODL as manager for Open vSwitch for each
host
5. Set ODL as ML2 provider for OpenStack
OPENSTACK SUMMIT VANCOUVER | DAVE NEARY31
Step 1: Neutron config
● No migration path to ODL, unfortunately
● Delete subnets, networks, routers, ports
● Stop Neutron service
OPENSTACK SUMMIT VANCOUVER | DAVE NEARY32
Step 2: Installing OpenDaylight (Helium)
● Required features:
● odl-base-all – Basic services
● odl-aaa-authn – Authentication and authorization
● odl-restconf – Northbound RESTful API framework
● odl-nsf-all
● odl-adsal-northbound
● odl-mdsal-apidocs
● odl-ovsdb-openstack
● odl-ovsdb-northbound
● odl-dlux-core
OPENSTACK SUMMIT VANCOUVER | DAVE NEARY33
After step 2: dlux
OPENSTACK SUMMIT VANCOUVER | DAVE NEARY34
Step 3, 4: Clean out OVSDB, connect switches
● For each host:
● Stop and disable neutron-openvswitch-agent
● Stop Open vSwitch service, delete local database
● Restart Open vSwitch service
● ovs-vsctl set-manager
tcp:172.16.21.56:6640
● setenforce 0 may be necessary
OPENSTACK SUMMIT VANCOUVER | DAVE NEARY35
After step 4: ovs-vsctl
# ovs-vsctl show
39745b5b-2ff9-416b-ab3e-f1b81fd29fd7
Manager "tcp:192.168.50.20:6640"
is_connected: true
Bridge br-int
Controller "tcp:192.168.50.20:6633"
is_connected: true
fail_mode: secure
Port br-int
Interface br-int
type: internal
ovs_version: "2.3.0"
OPENSTACK SUMMIT VANCOUVER | DAVE NEARY36
After step 4: ovs-ofctl
# ovs-ofctl -O OpenFlow13 dump-flows br-int
OFPST_FLOW reply (OF1.3) (xid=0x2):
cookie=0x0, duration=8558.311s, table=0, n_packets=0,
n_bytes=0, priority=0 actions=goto_table:20
cookie=0x0, duration=8559.262s, table=0, n_packets=0,
n_bytes=0, dl_type=0x88cc actions=CONTROLLER:65535
cookie=0x0, duration=8557.816s, table=20, n_packets=0,
n_bytes=0, priority=0 actions=goto_table:30
<snip>
cookie=0x0, duration=8553.238s, table=110, n_packets=0,
n_bytes=0, priority=0 actions=drop
OPENSTACK SUMMIT VANCOUVER | DAVE NEARY37
Step 5: Configure Neutron
● In /etc/neutron/plugins/ml2/ml2_conf.ini:
● mechanism_drivers = opendaylight
● tenant_network_types = vxlan
● Add ml2_odl section with url =
http://odl_control:8080/controller/nb/v2/neutron
● Reset Neutron's ML2 database
● Restart Neutron server
OPENSTACK SUMMIT VANCOUVER | DAVE NEARY38
How OpenStack traffic flows (with OpenDaylight)
test0 test1
br-int br-int
dhcp-agentl3-agentbr-ex
OPENSTACK SUMMIT VANCOUVER | DAVE NEARY39
vSwitch with some instances
# ovs-vsctl show
a31569c6-314f-41dd-972d-a75806b4ee3f
Manager "tcp:192.168.50.20:6640"
is_connected: true
Bridge br-int
Controller "tcp:192.168.50.20:6633"
is_connected: true
fail_mode: secure
Port "vxlan-192.168.50.20"
Interface "vxlan-192.168.50.20"
type: vxlan
options: {key=flow, local_ip="192.168.50.21",
remote_ip="192.168.50.20"}
Port "tapb58febde-6f"
Interface "tapb58febde-6f"
Port br-int
Interface br-int
Port "tap2a008646-41"
Interface "tap2a008646-41"
ovs_version: "2.3.0"
Credit: Flavio Fernandes
OPENSTACK SUMMIT VANCOUVER | DAVE NEARY40
vSwitch with some instances
# ovs-vsctl show
a31569c6-314f-41dd-972d-a75806b4ee3f
Manager "tcp:192.168.50.20:6640"
is_connected: true
Bridge br-int
Controller "tcp:192.168.50.20:6633"
is_connected: true
fail_mode: secure
Port "vxlan-192.168.50.20"
Interface "vxlan-192.168.50.20"
type: vxlan
options: {key=flow, local_ip="192.168.50.21",
remote_ip="192.168.50.20"}
Port "tapb58febde-6f"
Interface "tapb58febde-6f"
Port br-int
Interface br-int
Port "tap2a008646-41"
Interface "tap2a008646-41"
ovs_version: "2.3.0"
Credit: Flavio Fernandes
OPENSTACK SUMMIT VANCOUVER | DAVE NEARY41
Interfaces with some instances
#ovs-vsctl list Interface | 
grep -E '^name|^ofport |^mac_in_use|^external_id'
external_ids : {attached-mac="fa:16:3e:94:75:95",
iface-id="2a008646-4110-4095-ae68-0d3c70c913fb",
iface-status=active,
vm-id="0b6d8e31-fa26-4315-ac44-7c87efc44aa7"}
mac_in_use : "fe:16:3e:94:75:95"
name : "tap2a008646-41"
ofport : 3
<snip>
Credit: Flavio Fernandes
OPENSTACK SUMMIT VANCOUVER | DAVE NEARY42
Flows with some instances
Credit: Flavio Fernandes
# ovs-ofctl -O OpenFlow13 dump-flows br-int (extract 1)
cookie=0x0, duration=9652.448s, table=0, n_packets=110,
n_bytes=12962, in_port=3,dl_src=fa:16:3e:94:75:95
actions=set_field:0x3ea->tun_id,load:0x1->NXM_NX_REG0[],
goto_table:20
cookie=0x0, duration=9679.385s, table=70, n_packets=137,
n_bytes=13146, priority=1024,ip,tun_id=0x3ea,nw_dst=2.0.0.3
actions=set_field:fa:16:3e:94:75:95->eth_dst,goto_table:80
cookie=0x0, duration=9651.435s, table=110, n_packets=137,
n_bytes=13146, tun_id=0x3ea,dl_dst=fa:16:3e:94:75:95
actions=output:3
Port <-> IP address <-> MAC address
OPENSTACK SUMMIT VANCOUVER | DAVE NEARY43
Flows with some instances
Credit: Flavio Fernandes
# ovs-ofctl -O OpenFlow13 dump-flows br-int (extract 2)
cookie=0x0, duration=9673.749s, table=110, n_packets=2,
n_bytes=658, priority=16384,reg0=0x1,tun_id=0x3e9,
dl_dst=01:00:00:00:00:00/01:00:00:00:00:00
actions=output:2,output:1
cookie=0x0, duration=9674.253s, table=110, n_packets=2,
n_bytes=658, priority=16384,reg0=0x2,tun_id=0x3e9,
dl_dst=01:00:00:00:00:00/01:00:00:00:00:00 actions=output:2
Broadcast rules
OPENSTACK SUMMIT VANCOUVER | DAVE NEARY44
Flows with some instances
Credit: Flavio Fernandes
# ovs-ofctl -O OpenFlow13 dump-flows br-int (extract 3)
cookie=0x0, duration=9658.033s, table=110, n_packets=2,
n_bytes=196, tun_id=0x3ea,dl_dst=fa:16:3e:41:56:ec
actions=output:1
cookie=0x0, duration=9718.289s, table=110, n_packets=13,
n_bytes=1196, tun_id=0x3ea,dl_dst=fa:16:3e:a8:c2:66
actions=output:1
ARP within VXLAN
OPENSTACK SUMMIT VANCOUVER | DAVE NEARY45
Distributed ARP
OPENSTACK SUMMIT VANCOUVER | DAVE NEARY46
Coming in Lithium
● Migration of OVSDB south-bound plug-in from AD-
SAL to MD-SAL
● Neutron feature parity incl. LBaaS
● Native DVR (North-South and East-West)
● Neutron northbound interface split out from
OpenDaylight controller
OPENSTACK SUMMIT VANCOUVER | DAVE NEARY47
Thank you!
Questions?
Dave Neary
dneary@redhat.com
@nearyd

More Related Content

PDF
OpenDaylight: an open source SDN for your OpenStack cloud
PDF
Red Hat demo of OpenStack and ODL at ODL summit 2016
ODP
Networking in OpenStack for non-networking people: Neutron, Open vSwitch and ...
PDF
Inside Architecture of Neutron
PPTX
Neutron behind the scenes
PDF
OVN: Scaleable Virtual Networking for Open vSwitch
PDF
Open stack networking_101_update_2014
PDF
Open Source Backends for OpenStack Neutron
OpenDaylight: an open source SDN for your OpenStack cloud
Red Hat demo of OpenStack and ODL at ODL summit 2016
Networking in OpenStack for non-networking people: Neutron, Open vSwitch and ...
Inside Architecture of Neutron
Neutron behind the scenes
OVN: Scaleable Virtual Networking for Open vSwitch
Open stack networking_101_update_2014
Open Source Backends for OpenStack Neutron

What's hot (20)

PDF
Neutron high availability open stack architecture openstack israel event 2015
PPTX
OpenStack Networking and Automation
PPTX
OpenStack Neutron behind the Scenes
PDF
Openstack Neutron and SDN
PPT
OpenStack Meetup - SDN
PPTX
OpenStack Neutron's Distributed Virtual Router
PDF
Linux Tag 2014 OpenStack Networking
PDF
Quantum - Virtual networks for Openstack
PPTX
Quantum (OpenStack Meetup Feb 9th, 2012)
PDF
Ovn vancouver
PDF
Introduction to Software Defined Networking and OpenStack Neutron
PPTX
OpenStack and OpenDaylight Workshop: ONUG Spring 2014
PDF
ONUG Tutorial: Bridges and Tunnels Drive Through OpenStack Networking
PDF
OpenStack Neutron Tutorial
PDF
OpenStack and OpenDaylight: An Integrated IaaS for SDN/NFV
PPTX
Training open stack networking -neutron
PDF
Open stack networking_101_part-2_tech_deep_dive
PPTX
2014 OpenStack Summit - Neutron OVS to LinuxBridge Migration
PPTX
Scaling OpenStack Networking Beyond 4000 Nodes with Dragonflow - Eshed Gal-Or...
PDF
OpenStack networking - Neutron deep dive with PLUMgrid
Neutron high availability open stack architecture openstack israel event 2015
OpenStack Networking and Automation
OpenStack Neutron behind the Scenes
Openstack Neutron and SDN
OpenStack Meetup - SDN
OpenStack Neutron's Distributed Virtual Router
Linux Tag 2014 OpenStack Networking
Quantum - Virtual networks for Openstack
Quantum (OpenStack Meetup Feb 9th, 2012)
Ovn vancouver
Introduction to Software Defined Networking and OpenStack Neutron
OpenStack and OpenDaylight Workshop: ONUG Spring 2014
ONUG Tutorial: Bridges and Tunnels Drive Through OpenStack Networking
OpenStack Neutron Tutorial
OpenStack and OpenDaylight: An Integrated IaaS for SDN/NFV
Training open stack networking -neutron
Open stack networking_101_part-2_tech_deep_dive
2014 OpenStack Summit - Neutron OVS to LinuxBridge Migration
Scaling OpenStack Networking Beyond 4000 Nodes with Dragonflow - Eshed Gal-Or...
OpenStack networking - Neutron deep dive with PLUMgrid
Ad

Viewers also liked (20)

PPT
OpenDaylight Integration with OpenStack Neutron: A Tutorial
PPTX
Opendaylight SDN Controller
PPTX
NETCONF YANG tutorial
ODP
Nfv primer v2
DOCX
SDN Training - Open daylight installation + example with mininet
PPTX
DEVNET-1006 Getting Started with OpenDayLight
PPTX
OpenvSwitch Deep Dive
PDF
Understanding Open vSwitch
PPTX
Barak Perlman, ConteXtream - SFC (Service Function Chaining) Using Openstack ...
ODP
Personas
PDF
Making the Army of Awesome more Awesome (Mozilla Summit ignite)
ODP
Community Impacts of Legal Decisions
PDF
The Ecclesiastes principle: Learning lessons of the past
ODP
Growing the next generation of Open Source developers
PDF
Metrics gone bad
PDF
Using Personas to Target Users
ODP
Growing next generation
PDF
OPNFV Service Function Chaining
PDF
DPDK Summit - 08 Sept 2014 - 6WIND - High Perf Networking Leveraging the DPDK...
PDF
Fuel Plugins
OpenDaylight Integration with OpenStack Neutron: A Tutorial
Opendaylight SDN Controller
NETCONF YANG tutorial
Nfv primer v2
SDN Training - Open daylight installation + example with mininet
DEVNET-1006 Getting Started with OpenDayLight
OpenvSwitch Deep Dive
Understanding Open vSwitch
Barak Perlman, ConteXtream - SFC (Service Function Chaining) Using Openstack ...
Personas
Making the Army of Awesome more Awesome (Mozilla Summit ignite)
Community Impacts of Legal Decisions
The Ecclesiastes principle: Learning lessons of the past
Growing the next generation of Open Source developers
Metrics gone bad
Using Personas to Target Users
Growing next generation
OPNFV Service Function Chaining
DPDK Summit - 08 Sept 2014 - 6WIND - High Perf Networking Leveraging the DPDK...
Fuel Plugins
Ad

Similar to Open daylight and Openstack (20)

PDF
OpenStack networking
PDF
Open stack networking vlan, gre
PDF
Service Function Chaining in Openstack Neutron
PDF
Open stack advanced_part
DOCX
Ipv6 test plan for opnfv poc v2.2 spirent-vctlab
PDF
Multihomed Linux router
PDF
Open stack pike-devstack-tutorial
PDF
KVM Security Groups Under the Hood - Wido den Hollander - Your.Online
PDF
Multipath
PDF
Anatomy of neutron from the eagle eyes of troubelshoorters
PDF
XDP in Practice: DDoS Mitigation @Cloudflare
PPTX
Neutron DVR
PPTX
Couch to OpenStack: Neutron (Quantum) - August 13, 2013 Featuring Sean Winn
PDF
PFIセミナー資料 H27.10.22
PDF
2015 FOSDEM - OVS Stateful Services
PDF
slides-frnog34.pdf
PDF
Linux Networking Explained
DOCX
Triển khai vpn client to site qua router gpon
PDF
DPDK in Containers Hands-on Lab
PPT
[OpenStack 하반기 스터디] HA using DVR
OpenStack networking
Open stack networking vlan, gre
Service Function Chaining in Openstack Neutron
Open stack advanced_part
Ipv6 test plan for opnfv poc v2.2 spirent-vctlab
Multihomed Linux router
Open stack pike-devstack-tutorial
KVM Security Groups Under the Hood - Wido den Hollander - Your.Online
Multipath
Anatomy of neutron from the eagle eyes of troubelshoorters
XDP in Practice: DDoS Mitigation @Cloudflare
Neutron DVR
Couch to OpenStack: Neutron (Quantum) - August 13, 2013 Featuring Sean Winn
PFIセミナー資料 H27.10.22
2015 FOSDEM - OVS Stateful Services
slides-frnog34.pdf
Linux Networking Explained
Triển khai vpn client to site qua router gpon
DPDK in Containers Hands-on Lab
[OpenStack 하반기 스터디] HA using DVR

More from Dave Neary (20)

PPTX
Crafting an Open Source Product Strategy
PPTX
Community dynamics
PDF
Community catalysts value of open source
PDF
Crafting an open source product strategy
ODP
Open source business models
PDF
Community antipatterns
PDF
Is there a big bang going on?
PDF
Swimming upstream
PDF
NFV for beginners
PDF
A complete Open Source cloud: Storage, Virt, IaaS, PaaS
PDF
OpenShift on OpenStack
ODP
Foundations 101
ODP
oVirt and OpenStack
PDF
Jeudis du libre_git
PDF
Community antipatterns
ODP
Gnome census
PDF
Maemo Council
PDF
Présenter les Logiciels Libres
PDF
Giving Great Presentations
PDF
Maemo Documentation Co Creation
Crafting an Open Source Product Strategy
Community dynamics
Community catalysts value of open source
Crafting an open source product strategy
Open source business models
Community antipatterns
Is there a big bang going on?
Swimming upstream
NFV for beginners
A complete Open Source cloud: Storage, Virt, IaaS, PaaS
OpenShift on OpenStack
Foundations 101
oVirt and OpenStack
Jeudis du libre_git
Community antipatterns
Gnome census
Maemo Council
Présenter les Logiciels Libres
Giving Great Presentations
Maemo Documentation Co Creation

Recently uploaded (20)

PDF
Review of recent advances in non-invasive hemoglobin estimation
PDF
The Rise and Fall of 3GPP – Time for a Sabbatical?
PDF
Mobile App Security Testing_ A Comprehensive Guide.pdf
PDF
cuic standard and advanced reporting.pdf
PPTX
VMware vSphere Foundation How to Sell Presentation-Ver1.4-2-14-2024.pptx
PDF
Advanced methodologies resolving dimensionality complications for autism neur...
PDF
Approach and Philosophy of On baking technology
PDF
Network Security Unit 5.pdf for BCA BBA.
PPTX
Cloud computing and distributed systems.
PDF
CIFDAQ's Market Insight: SEC Turns Pro Crypto
PDF
Spectral efficient network and resource selection model in 5G networks
PPT
“AI and Expert System Decision Support & Business Intelligence Systems”
PDF
Build a system with the filesystem maintained by OSTree @ COSCUP 2025
PDF
Diabetes mellitus diagnosis method based random forest with bat algorithm
PDF
Shreyas Phanse Resume: Experienced Backend Engineer | Java • Spring Boot • Ka...
PDF
Electronic commerce courselecture one. Pdf
PPTX
Big Data Technologies - Introduction.pptx
PDF
Reach Out and Touch Someone: Haptics and Empathic Computing
PPTX
20250228 LYD VKU AI Blended-Learning.pptx
PPTX
Digital-Transformation-Roadmap-for-Companies.pptx
Review of recent advances in non-invasive hemoglobin estimation
The Rise and Fall of 3GPP – Time for a Sabbatical?
Mobile App Security Testing_ A Comprehensive Guide.pdf
cuic standard and advanced reporting.pdf
VMware vSphere Foundation How to Sell Presentation-Ver1.4-2-14-2024.pptx
Advanced methodologies resolving dimensionality complications for autism neur...
Approach and Philosophy of On baking technology
Network Security Unit 5.pdf for BCA BBA.
Cloud computing and distributed systems.
CIFDAQ's Market Insight: SEC Turns Pro Crypto
Spectral efficient network and resource selection model in 5G networks
“AI and Expert System Decision Support & Business Intelligence Systems”
Build a system with the filesystem maintained by OSTree @ COSCUP 2025
Diabetes mellitus diagnosis method based random forest with bat algorithm
Shreyas Phanse Resume: Experienced Backend Engineer | Java • Spring Boot • Ka...
Electronic commerce courselecture one. Pdf
Big Data Technologies - Introduction.pptx
Reach Out and Touch Someone: Haptics and Empathic Computing
20250228 LYD VKU AI Blended-Learning.pptx
Digital-Transformation-Roadmap-for-Companies.pptx

Open daylight and Openstack

  • 1. OPENSTACK SUMMIT VANCOUVER | DAVE NEARY1 OpenDaylight and OpenStack: A match made in heaven Dave Neary SDN/NFV Community Strategy Red Hat dneary@redhat.com @nearyd
  • 2. OPENSTACK SUMMIT VANCOUVER | DAVE NEARY2 What is OpenDaylight? ● An SDN Controller ● Platform for network engineering ● Network virtualization – disaggregation of physical and virtual network topology http://www.opendaylight.org
  • 3. OPENSTACK SUMMIT VANCOUVER | DAVE NEARY3 What is an SDN controller? ● Manages edge devices (switches, routers) ● Define network policy, topology centrally ● Push rules for implementation to the edge ● Manage multiple interfaces Southbound (OpenFlow, OVSDB, NETCONF, vendor plug-ins)
  • 4. OPENSTACK SUMMIT VANCOUVER | DAVE NEARY4 Sample SDN applications ● WAN optimization ● Traffic engineering for Network QoS ● Network virtualization ● Software based network applications – IDM, DDoS protection, VPN
  • 5. OPENSTACK SUMMIT VANCOUVER | DAVE NEARY5 OpenDaylight projects
  • 6. OPENSTACK SUMMIT VANCOUVER | DAVE NEARY6 OpenDaylight as OpenStack network overlay
  • 7. OPENSTACK SUMMIT VANCOUVER | DAVE NEARY7 Core OpenDaylight use-cases ● OpenDaylight board focus: ● OpenStack network virtualization ● Service Function Chaining/NFV ● Work ongoing to document and improve OpenStack integration ● Focus on NFV use-cases: SFC, network policy
  • 8. OPENSTACK SUMMIT VANCOUVER | DAVE NEARY8 OpenDaylight and OpenStack
  • 9. OPENSTACK SUMMIT VANCOUVER | DAVE NEARY9 A brief overview of OpenStack networking (with Open vSwitch ML2 plug-in)
  • 10. OPENSTACK SUMMIT VANCOUVER | DAVE NEARY10 ML2 Architecture Diagram Neutron Server ML2 Plugin Type Manager Mechanism Manager API Extensions GRE TypeDriver Arista VLAN TypeDriver VXLAN TypeDriver CiscoNexus Hyper-V L2Population Linuxbridge OpenvSwitch Tail-FNCS Credit: Bob Kukura http://bit.ly/1L4Am3k
  • 11. OPENSTACK SUMMIT VANCOUVER | DAVE NEARY11 Neutron architecture neutron-server Database Message queue L2 AgentL2 AgentL2 AgentL2 AgentL2 Agent L3 AgentL3 AgentL3 Agent DHCP agentDHCP agentDHCP agent Credit: Mark McLain
  • 12. OPENSTACK SUMMIT VANCOUVER | DAVE NEARY12 How OpenStack traffic flows (with OVS) Credit: Lars Kellogg-Stedman https://www.rdoproject.org/Networking_in_too_much_detail
  • 13. OPENSTACK SUMMIT VANCOUVER | DAVE NEARY13 Instance to qbr... ● Virtual NIC eth0 mapped to tap device in host (eg. tap7c7ae61e-05) ● tap device attached to Linux Bridge qbr7c7ae61e (1 bridge per instance) ● Security rules applied here
  • 14. OPENSTACK SUMMIT VANCOUVER | DAVE NEARY14 Security rules $ iptables -S | grep tap7c7ae61e-05 -A quantum-openvswi-FORWARD -m physdev --physdev-out tap7c7ae61e-05 --physdev-is-bridged -j quantum-openvswi-sg-chain -A quantum-openvswi-FORWARD -m physdev --physdev-in tap7c7ae61e-05 --physdev-is-bridged -j quantum-openvswi-sg-chain -A quantum-openvswi-INPUT -m physdev --physdev-in tap7c7ae61e-05 --physdev-is-bridged -j quantum-openvswi-o7c7ae61e-0 -A quantum-openvswi-sg-chain -m physdev --physdev-out tap7c7ae61e-05 --physdev-is-bridged -j quantum-openvswi-i7c7ae61e-0 -A quantum-openvswi-sg-chain -m physdev --physdev-in tap7c7ae61e-05 --physdev-is-bridged -j quantum-openvswi-o7c7ae61e-0
  • 15. OPENSTACK SUMMIT VANCOUVER | DAVE NEARY15 qbr... to br-int ● Interface qvb... attaches to qbr... at C ● Interface qvo... attaches to br-int at D ● VLAN tagging applied at br-int
  • 16. OPENSTACK SUMMIT VANCOUVER | DAVE NEARY16 OVS config $ ovs-vsctl show Bridge br-int Port "qvo7c7ae61e-05" tag: 1 Interface "qvo7c7ae61e-05" Port patch-tun Interface patch-tun type: patch options: {peer=patch-int} Port br-int Interface br-int type: internal
  • 17. OPENSTACK SUMMIT VANCOUVER | DAVE NEARY17 br-tun (Compute node) ● patch-tun (E) connects to patch-int (F), connected to br-tun ● Traffic is sent to the physical NIC (G), with encapsulation (VXLAN, GRE)
  • 18. OPENSTACK SUMMIT VANCOUVER | DAVE NEARY18 br-tun (Control node) ● Traffic on host (H) is converted from GRE to VLAN ● Traffic sent with appropriate VLAN tag on to br-int (I)
  • 19. OPENSTACK SUMMIT VANCOUVER | DAVE NEARY19 Send multicast traffic from GRE tunnel 2 to VLAN 1, port 1 # ovs-ofctl dump-flows br-tun NXST_FLOW reply (xid=0x4): cookie=0x0, duration=422.158s, table=0, n_packets=2, n_bytes=120, idle_age=55, priority=3, tun_id=0x2,dl_dst=01:00:00:00:00:00/01:00:00:00:00:00 actions=mod_vlan_vid:1,output:1 cookie=0x0, duration=421.948s, table=0, n_packets=64, n_bytes=8337, idle_age=31, priority=3,tun_id=0x2,dl_dst=fa:16:3e:dd:c1:62 actions=mod_vlan_vid:1,NORMAL cookie=0x0, duration=422.357s, table=0, n_packets=82, n_bytes=10443, idle_age=31, priority=4,in_port=1,dl_vlan=1 actions=set_tunnel:0x2,NORMAL cookie=0x0, duration=1502.657s, table=0, n_packets=8, n_bytes=596, idle_age=423, priority=1 actions=drop
  • 20. OPENSTACK SUMMIT VANCOUVER | DAVE NEARY20 Tag traffic on GRE tunnel 2 for instance with VLAN tag 1 # ovs-ofctl dump-flows br-tun NXST_FLOW reply (xid=0x4): cookie=0x0, duration=422.158s, table=0, n_packets=2, n_bytes=120, idle_age=55, priority=3, tun_id=0x2,dl_dst=01:00:00:00:00:00/01:00:00:00:00:00 actions=mod_vlan_vid:1,output:1 cookie=0x0, duration=421.948s, table=0, n_packets=64, n_bytes=8337, idle_age=31, priority=3,tun_id=0x2,dl_dst=fa:16:3e:dd:c1:62 actions=mod_vlan_vid:1,NORMAL cookie=0x0, duration=422.357s, table=0, n_packets=82, n_bytes=10443, idle_age=31, priority=4,in_port=1,dl_vlan=1 actions=set_tunnel:0x2,NORMAL cookie=0x0, duration=1502.657s, table=0, n_packets=8, n_bytes=596, idle_age=423, priority=1 actions=drop
  • 21. OPENSTACK SUMMIT VANCOUVER | DAVE NEARY21 Tag traffic from port 1 with VLAN tag 1 with GRE tunnel 2 # ovs-ofctl dump-flows br-tun NXST_FLOW reply (xid=0x4): cookie=0x0, duration=422.158s, table=0, n_packets=2, n_bytes=120, idle_age=55, priority=3, tun_id=0x2,dl_dst=01:00:00:00:00:00/01:00:00:00:00:00 actions=mod_vlan_vid:1,output:1 cookie=0x0, duration=421.948s, table=0, n_packets=64, n_bytes=8337, idle_age=31, priority=3,tun_id=0x2,dl_dst=fa:16:3e:dd:c1:62 actions=mod_vlan_vid:1,NORMAL cookie=0x0, duration=422.357s, table=0, n_packets=82, n_bytes=10443, idle_age=31, priority=4,in_port=1,dl_vlan=1 actions=set_tunnel:0x2,NORMAL cookie=0x0, duration=1502.657s, table=0, n_packets=8, n_bytes=596, idle_age=423, priority=1 actions=drop
  • 22. OPENSTACK SUMMIT VANCOUVER | DAVE NEARY22 Control-node br-int ● GRE to VLAN conversion in br-tun ● br-int bridges to Neutron agents
  • 23. OPENSTACK SUMMIT VANCOUVER | DAVE NEARY23 Control-node br-int # ovs-vsctl show Bridge br-int Port patch-tun Interface patch-tun type: patch options: {peer=patch-int} Port "tapf14c598d-98" tag: 1 Interface "tapf14c598d-98" Port br-int Interface br-int type: internal Port "tapc2d7dd02-56" tag: 1 Interface "tapc2d7dd02-56"
  • 24. OPENSTACK SUMMIT VANCOUVER | DAVE NEARY24 Network namespaces ● Each network with DHCP has its own network namespace ● Each router has its own namespace too # ip netns qdhcp-88b1609c-68e0-49ca-a658-f1edff54a264 qrouter-2d214fde-293c-4d64-8062-797f80ae2d8f
  • 25. OPENSTACK SUMMIT VANCOUVER | DAVE NEARY25 Digging into the namespaces # ip netns exec qdhcp-88b1609c-68e0-49ca-a658-f1edff54a264 ip addr 71: ns-f14c598d-98: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP qlen 1000 link/ether fa:16:3e:10:2f:03 brd ff:ff:ff:ff:ff:ff inet 10.1.0.3/24 brd 10.1.0.255 scope global ns-f14c598d-98 inet6 fe80::f816:3eff:fe10:2f03/64 scope link valid_lft forever preferred_lft forever ● Interface corresponds to port “tapf14c598d-98” and interface tapf14c598d-98 on br-int ● dnsmasq process listens on this interface, with namespace from before
  • 26. OPENSTACK SUMMIT VANCOUVER | DAVE NEARY26 Routing to the internet ● qrouter namespace contains interfaces K, N ● qg... interface corresponds to gateway set on router (neutron-set-gateway) ● Routing tables for router defined with iptables in qrouter namespace ● NAT to host address happens on br-ex
  • 27. OPENSTACK SUMMIT VANCOUVER | DAVE NEARY27 Router connections # ip netns exec qrouter-2d214fde-293c-4d64-8062-797f80ae2d8f ip addr 66: qg-d48b49e0-aa: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP qlen 1000 link/ether fa:16:3e:5c:a2:ac brd ff:ff:ff:ff:ff:ff inet 172.24.4.227/28 brd 172.24.4.239 scope global qg-d48b49e0-aa inet 172.24.4.228/32 brd 172.24.4.228 scope global qg-d48b49e0-aa inet6 fe80::f816:3eff:fe5c:a2ac/64 scope link valid_lft forever preferred_lft forever 68: qr-c2d7dd02-56: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP qlen 1000 link/ether fa:16:3e:ea:64:6e brd ff:ff:ff:ff:ff:ff inet 10.1.0.1/24 brd 10.1.0.255 scope global qr-c2d7dd02-56 inet6 fe80::f816:3eff:feea:646e/64 scope link valid_lft forever preferred_lft forever # ovs-vsctl show Bridge br-int <snip> Port "tapc2d7dd02-56" tag: 1 Interface "tapc2d7dd02-56"
  • 28. OPENSTACK SUMMIT VANCOUVER | DAVE NEARY28 OpenStack with OpenDaylight
  • 29. OPENSTACK SUMMIT VANCOUVER | DAVE NEARY29 OpenDaylight Neutron Service OpenStack Neutron OVSDB Provider Neutron ML2 MechanismDriver OpenDaylight APIs (REST) Neutron and OpenDaylight ● OpenDaylight exposes a single common OpenStack Service Northbound ● API exposed matches Neutron API precisely ● Multiple back-ends in OpenDaylight ● OpenDaylight OpenStack Neutron Plugin simply passes through ● Simplifies OpenStack plugin ● Pushes complexity to OpenDaylight Compute A OVSDB-server ovs-bridge Compute B OVSDB-server ovs-bridge OpenFlow
  • 30. OPENSTACK SUMMIT VANCOUVER | DAVE NEARY30 Configuring OpenDaylight with OpenStack https://wiki.opendaylight.org/view/OpenStack_and_OpenDaylight 1. Install OpenStack, clean Neutron config 2. Install OpenDaylight 3. Clean OVSDB configuration on all hosts 4. Set ODL as manager for Open vSwitch for each host 5. Set ODL as ML2 provider for OpenStack
  • 31. OPENSTACK SUMMIT VANCOUVER | DAVE NEARY31 Step 1: Neutron config ● No migration path to ODL, unfortunately ● Delete subnets, networks, routers, ports ● Stop Neutron service
  • 32. OPENSTACK SUMMIT VANCOUVER | DAVE NEARY32 Step 2: Installing OpenDaylight (Helium) ● Required features: ● odl-base-all – Basic services ● odl-aaa-authn – Authentication and authorization ● odl-restconf – Northbound RESTful API framework ● odl-nsf-all ● odl-adsal-northbound ● odl-mdsal-apidocs ● odl-ovsdb-openstack ● odl-ovsdb-northbound ● odl-dlux-core
  • 33. OPENSTACK SUMMIT VANCOUVER | DAVE NEARY33 After step 2: dlux
  • 34. OPENSTACK SUMMIT VANCOUVER | DAVE NEARY34 Step 3, 4: Clean out OVSDB, connect switches ● For each host: ● Stop and disable neutron-openvswitch-agent ● Stop Open vSwitch service, delete local database ● Restart Open vSwitch service ● ovs-vsctl set-manager tcp:172.16.21.56:6640 ● setenforce 0 may be necessary
  • 35. OPENSTACK SUMMIT VANCOUVER | DAVE NEARY35 After step 4: ovs-vsctl # ovs-vsctl show 39745b5b-2ff9-416b-ab3e-f1b81fd29fd7 Manager "tcp:192.168.50.20:6640" is_connected: true Bridge br-int Controller "tcp:192.168.50.20:6633" is_connected: true fail_mode: secure Port br-int Interface br-int type: internal ovs_version: "2.3.0"
  • 36. OPENSTACK SUMMIT VANCOUVER | DAVE NEARY36 After step 4: ovs-ofctl # ovs-ofctl -O OpenFlow13 dump-flows br-int OFPST_FLOW reply (OF1.3) (xid=0x2): cookie=0x0, duration=8558.311s, table=0, n_packets=0, n_bytes=0, priority=0 actions=goto_table:20 cookie=0x0, duration=8559.262s, table=0, n_packets=0, n_bytes=0, dl_type=0x88cc actions=CONTROLLER:65535 cookie=0x0, duration=8557.816s, table=20, n_packets=0, n_bytes=0, priority=0 actions=goto_table:30 <snip> cookie=0x0, duration=8553.238s, table=110, n_packets=0, n_bytes=0, priority=0 actions=drop
  • 37. OPENSTACK SUMMIT VANCOUVER | DAVE NEARY37 Step 5: Configure Neutron ● In /etc/neutron/plugins/ml2/ml2_conf.ini: ● mechanism_drivers = opendaylight ● tenant_network_types = vxlan ● Add ml2_odl section with url = http://odl_control:8080/controller/nb/v2/neutron ● Reset Neutron's ML2 database ● Restart Neutron server
  • 38. OPENSTACK SUMMIT VANCOUVER | DAVE NEARY38 How OpenStack traffic flows (with OpenDaylight) test0 test1 br-int br-int dhcp-agentl3-agentbr-ex
  • 39. OPENSTACK SUMMIT VANCOUVER | DAVE NEARY39 vSwitch with some instances # ovs-vsctl show a31569c6-314f-41dd-972d-a75806b4ee3f Manager "tcp:192.168.50.20:6640" is_connected: true Bridge br-int Controller "tcp:192.168.50.20:6633" is_connected: true fail_mode: secure Port "vxlan-192.168.50.20" Interface "vxlan-192.168.50.20" type: vxlan options: {key=flow, local_ip="192.168.50.21", remote_ip="192.168.50.20"} Port "tapb58febde-6f" Interface "tapb58febde-6f" Port br-int Interface br-int Port "tap2a008646-41" Interface "tap2a008646-41" ovs_version: "2.3.0" Credit: Flavio Fernandes
  • 40. OPENSTACK SUMMIT VANCOUVER | DAVE NEARY40 vSwitch with some instances # ovs-vsctl show a31569c6-314f-41dd-972d-a75806b4ee3f Manager "tcp:192.168.50.20:6640" is_connected: true Bridge br-int Controller "tcp:192.168.50.20:6633" is_connected: true fail_mode: secure Port "vxlan-192.168.50.20" Interface "vxlan-192.168.50.20" type: vxlan options: {key=flow, local_ip="192.168.50.21", remote_ip="192.168.50.20"} Port "tapb58febde-6f" Interface "tapb58febde-6f" Port br-int Interface br-int Port "tap2a008646-41" Interface "tap2a008646-41" ovs_version: "2.3.0" Credit: Flavio Fernandes
  • 41. OPENSTACK SUMMIT VANCOUVER | DAVE NEARY41 Interfaces with some instances #ovs-vsctl list Interface | grep -E '^name|^ofport |^mac_in_use|^external_id' external_ids : {attached-mac="fa:16:3e:94:75:95", iface-id="2a008646-4110-4095-ae68-0d3c70c913fb", iface-status=active, vm-id="0b6d8e31-fa26-4315-ac44-7c87efc44aa7"} mac_in_use : "fe:16:3e:94:75:95" name : "tap2a008646-41" ofport : 3 <snip> Credit: Flavio Fernandes
  • 42. OPENSTACK SUMMIT VANCOUVER | DAVE NEARY42 Flows with some instances Credit: Flavio Fernandes # ovs-ofctl -O OpenFlow13 dump-flows br-int (extract 1) cookie=0x0, duration=9652.448s, table=0, n_packets=110, n_bytes=12962, in_port=3,dl_src=fa:16:3e:94:75:95 actions=set_field:0x3ea->tun_id,load:0x1->NXM_NX_REG0[], goto_table:20 cookie=0x0, duration=9679.385s, table=70, n_packets=137, n_bytes=13146, priority=1024,ip,tun_id=0x3ea,nw_dst=2.0.0.3 actions=set_field:fa:16:3e:94:75:95->eth_dst,goto_table:80 cookie=0x0, duration=9651.435s, table=110, n_packets=137, n_bytes=13146, tun_id=0x3ea,dl_dst=fa:16:3e:94:75:95 actions=output:3 Port <-> IP address <-> MAC address
  • 43. OPENSTACK SUMMIT VANCOUVER | DAVE NEARY43 Flows with some instances Credit: Flavio Fernandes # ovs-ofctl -O OpenFlow13 dump-flows br-int (extract 2) cookie=0x0, duration=9673.749s, table=110, n_packets=2, n_bytes=658, priority=16384,reg0=0x1,tun_id=0x3e9, dl_dst=01:00:00:00:00:00/01:00:00:00:00:00 actions=output:2,output:1 cookie=0x0, duration=9674.253s, table=110, n_packets=2, n_bytes=658, priority=16384,reg0=0x2,tun_id=0x3e9, dl_dst=01:00:00:00:00:00/01:00:00:00:00:00 actions=output:2 Broadcast rules
  • 44. OPENSTACK SUMMIT VANCOUVER | DAVE NEARY44 Flows with some instances Credit: Flavio Fernandes # ovs-ofctl -O OpenFlow13 dump-flows br-int (extract 3) cookie=0x0, duration=9658.033s, table=110, n_packets=2, n_bytes=196, tun_id=0x3ea,dl_dst=fa:16:3e:41:56:ec actions=output:1 cookie=0x0, duration=9718.289s, table=110, n_packets=13, n_bytes=1196, tun_id=0x3ea,dl_dst=fa:16:3e:a8:c2:66 actions=output:1 ARP within VXLAN
  • 45. OPENSTACK SUMMIT VANCOUVER | DAVE NEARY45 Distributed ARP
  • 46. OPENSTACK SUMMIT VANCOUVER | DAVE NEARY46 Coming in Lithium ● Migration of OVSDB south-bound plug-in from AD- SAL to MD-SAL ● Neutron feature parity incl. LBaaS ● Native DVR (North-South and East-West) ● Neutron northbound interface split out from OpenDaylight controller
  • 47. OPENSTACK SUMMIT VANCOUVER | DAVE NEARY47 Thank you! Questions? Dave Neary dneary@redhat.com @nearyd