SlideShare a Scribd company logo
1 of 27
Download to read offline
RED HAT ENTERPISE LINUX1
Understanding Open Vswitch
Open Stack
YONG-KI, KIM
ykim@redhat.com
Red Hat Korea
RED HAT ENTERPISE LINUX2
Session Objective
Open Vswitch
1. role of OVS in Open Stack
2. Working process of OVS
3. Various IP Interfaces – TAP, TUN, veth-Pair
RED HAT ENTERPISE LINUX3
Base Network Knowledge
TCP/IP Model
Layer 1
Layer 2
Layer 3
Layer 4
Layer 5
Layer 6
Layer 7
RED HAT ENTERPISE LINUX4
TCP/IP
Switch covers TCP/IP but Bridge works on only L2
L2: Mac based communication
- bridge, L2 Switch
L3: IP based communication
- router, L3 Switch
L4: TCP Port based communication
- L4 Switch, Load Balancer
RED HAT ENTERPISE LINUX5
Network Diagram – host alone
Basic Network topology
eth0
External
Internal
eth1
VM1
eth0
OVS
VM2
eth0
br-int vtap1
vtap2
IP stack
(192.168.0.1/24)
br-int/internal
vtap1
vtap2
Host1
172.16.0.1
RED HAT ENTERPISE LINUX6
Network Diagram - tunneling
Basic Network topology
eth0
External
Internal
eth1
VM1
eth0
OVS
VM2
eth0
br-int vtap1
vtap2
IP stack
(192.168.0.1/24)
br-int/internal
vtap1
vtap2
Host1
eth0
eth1
VM3
eth0
OVS
VM4
eth0
br-int vtap1
vtap2
IP stack
(192.168.0.2/24)
br-int/internal
vtap1
vtap2
Host2
172.16.0.1 172.16.0.2
RED HAT ENTERPISE LINUX7
Network Diagram – complete picture
Basic Network topology
eth0
External
Internal
eth1
VM1
eth0
OVS
VM2
eth0
br-int vtap1
vtap2
IP stack
(192.168.0.1/24)
br-int/internal
vtap1
vtap2
Host1
eth0
eth1
VM3
eth0
OVS
VM4
eth0
br-int vtap1
vtap2
IP stack
(192.168.0.2/24)
br-int/internal
vtap1
vtap2
Host2
br-tun
veth1 veth0
172.16.0.1
br-tun
/internal eth1
br-tun
veth1
eth1
veth0
172.16.0.2
br-tun
/internal
RED HAT ENTERPISE LINUX8
OVS how to – OVS Service
1. OVS start
eth0
eth1
OVS
IP stack
(192.168.0.1/24)
Host1
host1#systemctl stop firewalld; setenforce 0
host1#service openvswitch start
[root@yhost2 ~]# ovs-vsctl show
da8683f3-e1c1-4c9a-9587-2e3e860f9f82
ovs_version: "2.3.2"
172.16.0.1
RED HAT ENTERPISE LINUX9
OVS how to - br
2. Create Bridge
eth0
eth1
OVS
br-int
IP stack
(192.168.0.1/24)
br-int/internal
Host1
host1#ovs-vsctl add-br br-int
host1#ip link set dev br-int up
[root@yhost2 ~]# ovs-vsctl show
da8683f3-e1c1-4c9a-9587-2e3e860f9f82
Bridge br-int
Port br-int
Interface br-int
type: internal
ovs_version: "2.3.2"
172.16.0.1
RED HAT ENTERPISE LINUX10
OVS how to – br-internal
3. assign IP addr to br-int
eth0
eth1
OVS
br-int
IP stack
(192.168.0.1/24)
br-int/internal
Host1
host1#ip addr add 192.168.0.100/24 dev br-int
[root@yhost2 ~]# ovs-vsctl show
da8683f3-e1c1-4c9a-9587-2e3e860f9f82
Bridge br-int
Port br-int
Interface br-int
type: internal
ovs_version: "2.3.2"
172.16.0.1
RED HAT ENTERPISE LINUX11
OVS how to
4. Create tap device – vtap1, vtap2
eth0
eth1
OVS
br-int
IP stack
(192.168.0.1/24)
br-int/internal
vtap1
vtap2
Host1
host1#ip tuntap add mode tap vtap{1,2}
host1#ovs-vsctl add-port br-int vtap1 –- add-port br-int vtap2
host1#ip link set dev vtap{1,2} up
[root@yhost2 ~]# ovs-vsctl show
da8683f3-e1c1-4c9a-9587-2e3e860f9f82
Bridge br-int
Port “vtap1”
Interface “vtap1”
Port “vtap2”
Interface “vtap2”
Port br-int
Interface br-int
type: internal
ovs_version: "2.3.2"
vtap1
vtap2
172.16.0.1
RED HAT ENTERPISE LINUX12
OVS how to – Config for VM with TAP
5. create VM and configure to use manual TAP device
virt-manager는 기본 mactap 제공하나 자율성이 떨어지기 때문에 manual tap 사용
1. vi /etc/libvirt/qemu/host1.xml
2. vi /etc/libvirt/qemu.conf (&& selinux disable)
3. service libvirtd restart
<?xml version="1.0" encoding="UTF-8"
standalone="no"?>
<interface type='ethernet'>
<mac address='26:c7:a9:96:a7:7a'/>
<target dev=vtap1'/>
<model type='virtio'/>
<script path='no'/>
<address type='pci'
domain='0x0000' bus='0x00' slot='0x03'
function='0x0'/>
</interface>
/etc/libvirt/qemu/host1.xml /etc/libvirt/qemu.conf
a) clear_emulator_capabilities = 0
b) user = "root"
c) group = "root"
d) cgroup_device_acl = [ "/dev/null",
"/dev/full", "/dev/zero", "/dev/random",
"/dev/urandom", "/dev/ptmx", "/dev/kvm",
"/dev/kqemu", "/dev/rtc", "/dev/hpet",
"/dev/net/tun", ]
RED HAT ENTERPISE LINUX13
OVS how to – VM IP
4. allocate IP addr to VM's eth0
eth0
eth1
OVS
br-int
IP stack
(192.168.0.1/24)
br-int/internal
vtap1
vtap2
Host1
vm1@host1#ip addr add 192.168.0.101/24 dev eth0
vm2@host1#ip addr add 192.168.0.102/24 dev eth0
VM1#ping 192.168.0.1
[success]
VM2#ping 192.168.0.1
[success]
vtap1
vtap2
VM1
eth0
VM2
eth0
192.168.0.101
192.168.0.102
172.16.0.1
RED HAT ENTERPISE LINUX14
OVS how to - Monitor
5. monitor ovs status
eth0
eth1
OVS
br-int
IP stack
(192.168.0.1/24)
br-int/internal
vtap1
vtap2
Host1
host1#ovs-vsctl show
host1#ovs-ofctl show br-int
host1#ovs-appctl fdb/show br-int
host1#ovs-ofctl show br-int
1(eth1): addr:00:1a:4a:36:66:10
config: 0
state: 0
speed: 0 Mbps now, 0 Mbps max
2(vtap1): addr:96:34:e5:61:0a:ca
config: PORT_DOWN
state: LINK_DOWN
current: 10MB-FD COPPER
speed: 10 Mbps now, 0 Mbps max
3(vtap2): addr:f2:18:36:6c:d6:62
config: PORT_DOWN
state: LINK_DOWN
current: 10MB-FD COPPER
speed: 10 Mbps now, 0 Mbps max
LOCAL(br-int): addr:00:1a:4a:36:66:10
config: PORT_DOWN
state: LINK_DOWN
speed: 0 Mbps now, 0 Mbps max
OFPT_GET_CONFIG_REPLY (xid=0x4): frags=normal
miss_send_len=0
vtap1
vtap2
VM1
eth0
VM2
eth0
192.168.0.101
192.168.0.102
172.16.0.1
RED HAT ENTERPISE LINUX15
OVS how to – Test Connection
6. ping test between vm1 on host1 and vm2 host2
eth0
eth1
OVS
br-int
IP stack
(192.168.0.1/24)
br-int/internal
vtap1
vtap2
Host1
VM1# ping 192.168.0.102 [success]
VM1#ping 192.168.0.103 [failed]
vtap1
vtap2
VM1
eth0
VM2
eth0
192.168.0.101
192.168.0.102
eth0
eth1
OVS
br-int
IP stack
(192.168.0.2/24)
br-int/internal
vtap1
vtap2
Host1
vtap1
vtap2
VM3
eth0
VM4
eth0
192.168.0.103
192.168.0.104
172.16.0.1 172.16.0.2
RED HAT ENTERPISE LINUX16
OVS how to – Tun(VXLAN)
7. create vxlan TUN for connection between VM1 and MV3
eth0
eth1
OVS
br-int
IP stack
(192.168.0.1/24)
br-int/internal
vtap1
vtap2
Host1
host1# ovs-vsctl add-port br-int vxlan0 -- set interface vxlan0
type=vxlan options:key=100 options:remote_ip=172.16.0.2]
host2#ovs-vsctl add-port br-int vxlan0 -- set interface vxlan0
type=vxlan options:key=100 options:remote_ip=172.16.0.1
vtap1
vtap2
VM1
eth0
VM2
eth0
192.168.0.101
192.168.0.102
eth0
eth1
OVS
br-int
IP stack
(192.168.0.2/24)
br-int/internal
vtap1
vtap2
Host1
vtap1
vtap2
VM3
eth0
VM4
eth0
192.168.0.103
192.168.0.104
172.16.0.1 172.16.0.2
vxlan1
VNI=100
vxlan1
VNI=100
RED HAT ENTERPISE LINUX17
OVS how to - Monitor
8. current ovs status
host1#ovs-vsctl show
host1#ovs-ofctl ip a
[root@yhost1 ~]# ovs-vsctl show
84c282c9-b992-4673-a715-2d2e46f0c175
Bridge br-int
Port br-int
Interface br-int
type: internal
Port "vtap1"
Interface "vtap1"
Port "vtap2"
Interface "vtap2"
Port "vxlan0"
Interface "vxlan0"
type: vxlan
options: {key="100",
remote_ip="172.16.0.2"}
ovs_version: "2.3.2"
eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500
link/ether 00:1a:4a:36:66:0d brd
ff:ff:ff:ff:ff:ff
inet 10.64.168.146/24
eth1: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500
link/ether 00:1a:4a:36:66:0e brd
ff:ff:ff:ff:ff:ff
inet 172.16.0.1/24
vtap1: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu
1500
link/ether 16:07:a0:03:15:ac brd
ff:ff:ff:ff:ff:ff
vtap2: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu
1500
link/ether e2:05:f1:38:5d:21 brd
ff:ff:ff:ff:ff:ff
br-int: <BROADCAST,MULTICAST> mtu 1500
link/ether 46:8c:72:ee:f0:4b brd
ff:ff:ff:ff:ff:ff
inet 192.168.0.1/24 scope global br-int
RED HAT ENTERPISE LINUX18
OVS how to – veth pair
9. connection between bridges.
host1#ip link add veth0 type veth peer name veth1
host1# ovs-vsctl add-br br-tun
host1#ovs-vsctl add-port br-int veth0
host1#ovs-vsctl add-port br-tun veth1
host1#ovs-vsctl add-port eth1
host1#ip link set dev veth{0,1} up
RED HAT ENTERPISE LINUX19
OVS how to – veth pair
10. connection between bridges.
host1#ovs-vsctl show
host1# ip addr
[root@yhost1 ~]# ovs-vsctl show
84c282c9-b992-4673-a715-2d2e46f0c175
Bridge br-int
Port "veth0"
Interface "veth0"
Port br-int
Interface br-int
type: internal
Port "vtap1"
Interface "vtap1"
Port "vtap2"
Interface "vtap2"
Port "vxlan0"
Interface "vxlan0"
type: vxlan
options: {key="100", remote_ip="172.16.0.2"}
Bridge br-tun
Port br-tun
Interface br-tun
type: internal
Port "veth1"
Interface "veth1"
Port "eth1"
Interface "eth1"
ovs_version: "2.3.2"
RED HAT ENTERPISE LINUX20
Network Diagram
Basic Network topology
eth0
External
Internal
eth1
VM1
eth0
OVS
VM2
eth0
br-int vtap1
vtap2
IP stack
(192.168.0.1/24)
br-int/internal
vtap1
vtap2
Host1
eth0
eth1
VM3
eth0
OVS
VM4
eth0
br-int vtap1
vtap2
IP stack
(192.168.0.2/24)
br-int/internal
vtap1
vtap2
Host2
br-tun
veth1 veth0
172.16.0.1
br-tun
/internal eth1
br-tun
veth1
eth1
veth0
172.16.0.2
br-tun
/internal
RED HAT ENTERPISE LINUX21
ref: http://docs.ocselected.org/openstack-manuals/kilo/networking-guide/content/under_the_hood_openvswitch.html
Open Stack Neutron Architecture
RED HAT ENTERPISE LINUX22
ref: http://www.joinc.co.kr/modules/moniwiki/wiki.php/man/12/OpenVSwitch/VXLAN
Docker Network w/ Open Vswitch
RED HAT ENTERPISE LINUX23
Ref - articles
reference articles
1. open stack neutron:
http://docs.ocselected.org/openstack-manuals/kilo/networking-
guide/content/under_the_hood_openvswitch.html
2. open vswitch tutorial video:
https://www.youtube.com/watch?v=rYW7kQRyUvA
3. docker on open vswitch (한글):
http://www.joinc.co.kr/modules/moniwiki/wiki.php/man/12/OpenVSwitch/VXLAN
4. ovs script
- refer to below slides
RED HAT ENTERPISE LINUX24
Ref – ovs-host1.sh
KimYongKis-MacBook-Pro:20151013-Internal-OVS-training ykim$ cat ovs-host1.sh
#!/bin/sh
#define
vnet="192.168.0.1/24"
target_host="172.16.0.2"
tun_net="172.16.0.1/24"
#help
if [ -z "$1" ] || [ $1 == "help" ];then
echo "Help: $0 clear|init|br-int|vtap|vxlan|br-tun|veth-pair|en-br-tun"
echo ""
echo "How to use this scripts"
echo ""
echo "1st: clear"
echo "2nd: init, clear iptables and change selinux mode to permissive"
echo "3rd: br-int, create br-int bridge"
echo "4th: vtap, create vtap and start VMs"
echo "5th: vxlan, create vxlan tunnel"
echo "6th: br-tun, optional, create br-tun bridge"
echo "7th: veth-pair, optional, create veth-pair to connect between bridges(br-int and br-tun)"
echo "8th: en-br-tun, optional, insert eth1 to br-tun and assign ip address to br-tun"
echo ""
exit 1
fi
## clear
if [ $1 == "clear" ];then
echo "$1"
iptables -F
ip addr flush dev eth1
ovs-vsctl del-port br-int vtap1
ovs-vsctl del-port br-int vtap2
ovs-vsctl del-port br-int vxlan0
ovs-vsctl del-br br-int
ovs-vsctl del-br br-tun
virsh destroy cirros1
virsh destroy cirros2
ip tuntap del mode tap vtap1
ip tuntap del mode tap vtap2
ip link del veth0 type veth peer name veth1
ip link del virbr0
ip link del virbr0-nic
ovs-vsctl show
RED HAT ENTERPISE LINUX25
Ref – ovs-host1.sh (cont.)
## br-int
elif [ $1 == "br-int" ];then
echo $1
ovs-vsctl add-br br-int
ip addr add $vnet dev br-int
ip link set dev br-int up
ovs-vsctl show
## vtap
elif [ $1 == "vtap" ];then
echo $1
echo "vm 1 and vm2 starting"
ip tuntap add mode tap vtap1
ip tuntap add mode tap vtap2
virsh start cirros1
virsh start cirros2
sleep 5
ip link set dev vtap1 up
ip link set dev vtap2 up
ovs-vsctl add-port br-int vtap1
ovs-vsctl add-port br-int vtap2
ovs-vsctl show
## vxlan
elif [ $1 == "vxlan" ];then
echo $1
ovs-vsctl add-port br-int vxlan0 -- set interface vxlan0 type=vxlan options:key=100 options:remote_ip=$target_host
ovs-vsctl show
## br-tun
elif [ $1 == "br-tun" ];then
echo $1
ovs-vsctl add-br br-tun
ip link set dev br-tun up
ovs-vsctl show
## veth pair
elif [ $1 == "veth-pair" ];then
echo $1
ip link add veth0 type veth peer name veth1
ovs-vsctl add-port br-int veth0
ovs-vsctl add-port br-tun veth1
ip link set veth0 up
ip link set veth1 up
ovs-vsctl show
RED HAT ENTERPISE LINUX26
Ref – ovs-host1.sh (cont.)
## veth pair
elif [ $1 == "veth-pair" ];then
echo $1
ip link add veth0 type veth peer name veth1
ovs-vsctl add-port br-int veth0
ovs-vsctl add-port br-tun veth1
ip link set veth0 up
ip link set veth1 up
ovs-vsctl show
## en-br-tun
elif [ $1 == "en-br-tun" ];then
echo $1
ip addr flush dev eth1
ovs-vsctl add-port br-tun eth1
ip addr add $tun_net dev br-tun
ip link set br-tun up
ovs-vsctl show
## init
elif [ $1 == "init" ];then
echo $1
iptables -F
setenforce 0
ip addr add $tun_net dev eth1
ip link set eth1 up
else
echo "$0 clear|init|br-int|vtap|vxlan|br-tun|veth-pair|en-br-tun"
fi
RED HAT ENTERPISE LINUX27
End of Document

More Related Content

What's hot

The Basic Introduction of Open vSwitch
The Basic Introduction of Open vSwitchThe Basic Introduction of Open vSwitch
The Basic Introduction of Open vSwitchTe-Yen Liu
 
debugging openstack neutron /w openvswitch
debugging openstack neutron /w openvswitchdebugging openstack neutron /w openvswitch
debugging openstack neutron /w openvswitch어형 이
 
DevConf 2014 Kernel Networking Walkthrough
DevConf 2014   Kernel Networking WalkthroughDevConf 2014   Kernel Networking Walkthrough
DevConf 2014 Kernel Networking WalkthroughThomas Graf
 
Open vSwitchソースコードの全体像
Open vSwitchソースコードの全体像 Open vSwitchソースコードの全体像
Open vSwitchソースコードの全体像 Sho Shimizu
 
2014 OpenStack Summit - Neutron OVS to LinuxBridge Migration
2014 OpenStack Summit - Neutron OVS to LinuxBridge Migration2014 OpenStack Summit - Neutron OVS to LinuxBridge Migration
2014 OpenStack Summit - Neutron OVS to LinuxBridge MigrationJames Denton
 
OpenStack概要 ~仮想ネットワーク~
OpenStack概要 ~仮想ネットワーク~OpenStack概要 ~仮想ネットワーク~
OpenStack概要 ~仮想ネットワーク~Masaya Aoyama
 
오픈스택 멀티노드 설치 후기
오픈스택 멀티노드 설치 후기오픈스택 멀티노드 설치 후기
오픈스택 멀티노드 설치 후기영우 김
 
EBPF and Linux Networking
EBPF and Linux NetworkingEBPF and Linux Networking
EBPF and Linux NetworkingPLUMgrid
 
Vxlan deep dive session rev0.5 final
Vxlan deep dive session rev0.5   finalVxlan deep dive session rev0.5   final
Vxlan deep dive session rev0.5 finalKwonSun Bae
 
OpenStack Neutron IPv6 Lessons
OpenStack Neutron IPv6 LessonsOpenStack Neutron IPv6 Lessons
OpenStack Neutron IPv6 LessonsAkihiro Motoki
 
OpenStack networking
OpenStack networkingOpenStack networking
OpenStack networkingSim Janghoon
 
netfilter and iptables
netfilter and iptablesnetfilter and iptables
netfilter and iptablesKernel TLV
 
LinuxCon 2015 Linux Kernel Networking Walkthrough
LinuxCon 2015 Linux Kernel Networking WalkthroughLinuxCon 2015 Linux Kernel Networking Walkthrough
LinuxCon 2015 Linux Kernel Networking WalkthroughThomas Graf
 
Open vSwitch Offload: Conntrack and the Upstream Kernel
Open vSwitch Offload: Conntrack and the Upstream KernelOpen vSwitch Offload: Conntrack and the Upstream Kernel
Open vSwitch Offload: Conntrack and the Upstream KernelNetronome
 
VXLAN BGP EVPN: Technology Building Blocks
VXLAN BGP EVPN: Technology Building BlocksVXLAN BGP EVPN: Technology Building Blocks
VXLAN BGP EVPN: Technology Building BlocksAPNIC
 
Using eBPF for High-Performance Networking in Cilium
Using eBPF for High-Performance Networking in CiliumUsing eBPF for High-Performance Networking in Cilium
Using eBPF for High-Performance Networking in CiliumScyllaDB
 

What's hot (20)

The Basic Introduction of Open vSwitch
The Basic Introduction of Open vSwitchThe Basic Introduction of Open vSwitch
The Basic Introduction of Open vSwitch
 
debugging openstack neutron /w openvswitch
debugging openstack neutron /w openvswitchdebugging openstack neutron /w openvswitch
debugging openstack neutron /w openvswitch
 
DevConf 2014 Kernel Networking Walkthrough
DevConf 2014   Kernel Networking WalkthroughDevConf 2014   Kernel Networking Walkthrough
DevConf 2014 Kernel Networking Walkthrough
 
Open vSwitchソースコードの全体像
Open vSwitchソースコードの全体像 Open vSwitchソースコードの全体像
Open vSwitchソースコードの全体像
 
2014 OpenStack Summit - Neutron OVS to LinuxBridge Migration
2014 OpenStack Summit - Neutron OVS to LinuxBridge Migration2014 OpenStack Summit - Neutron OVS to LinuxBridge Migration
2014 OpenStack Summit - Neutron OVS to LinuxBridge Migration
 
OpenStack概要 ~仮想ネットワーク~
OpenStack概要 ~仮想ネットワーク~OpenStack概要 ~仮想ネットワーク~
OpenStack概要 ~仮想ネットワーク~
 
SRv6 study
SRv6 studySRv6 study
SRv6 study
 
오픈스택 멀티노드 설치 후기
오픈스택 멀티노드 설치 후기오픈스택 멀티노드 설치 후기
오픈스택 멀티노드 설치 후기
 
Demystfying container-networking
Demystfying container-networkingDemystfying container-networking
Demystfying container-networking
 
EBPF and Linux Networking
EBPF and Linux NetworkingEBPF and Linux Networking
EBPF and Linux Networking
 
Vxlan deep dive session rev0.5 final
Vxlan deep dive session rev0.5   finalVxlan deep dive session rev0.5   final
Vxlan deep dive session rev0.5 final
 
OpenStack Neutron IPv6 Lessons
OpenStack Neutron IPv6 LessonsOpenStack Neutron IPv6 Lessons
OpenStack Neutron IPv6 Lessons
 
OpenStack networking
OpenStack networkingOpenStack networking
OpenStack networking
 
netfilter and iptables
netfilter and iptablesnetfilter and iptables
netfilter and iptables
 
LinuxCon 2015 Linux Kernel Networking Walkthrough
LinuxCon 2015 Linux Kernel Networking WalkthroughLinuxCon 2015 Linux Kernel Networking Walkthrough
LinuxCon 2015 Linux Kernel Networking Walkthrough
 
Dpdk performance
Dpdk performanceDpdk performance
Dpdk performance
 
Open vSwitch Offload: Conntrack and the Upstream Kernel
Open vSwitch Offload: Conntrack and the Upstream KernelOpen vSwitch Offload: Conntrack and the Upstream Kernel
Open vSwitch Offload: Conntrack and the Upstream Kernel
 
Neutron packet logging framework
Neutron packet logging frameworkNeutron packet logging framework
Neutron packet logging framework
 
VXLAN BGP EVPN: Technology Building Blocks
VXLAN BGP EVPN: Technology Building BlocksVXLAN BGP EVPN: Technology Building Blocks
VXLAN BGP EVPN: Technology Building Blocks
 
Using eBPF for High-Performance Networking in Cilium
Using eBPF for High-Performance Networking in CiliumUsing eBPF for High-Performance Networking in Cilium
Using eBPF for High-Performance Networking in Cilium
 

Viewers also liked

Open VSwitch .. Use it for your day to day needs
Open VSwitch .. Use it for your day to day needsOpen VSwitch .. Use it for your day to day needs
Open VSwitch .. Use it for your day to day needsrranjithrajaram
 
Virtualized network with openvswitch
Virtualized network with openvswitchVirtualized network with openvswitch
Virtualized network with openvswitchSim Janghoon
 
Under the Hood: Open vSwitch & OpenFlow in XCP & XenServer
Under the Hood: Open vSwitch & OpenFlow in XCP & XenServerUnder the Hood: Open vSwitch & OpenFlow in XCP & XenServer
Under the Hood: Open vSwitch & OpenFlow in XCP & XenServerThe Linux Foundation
 
Sdnds tw-meetup-2
Sdnds tw-meetup-2Sdnds tw-meetup-2
Sdnds tw-meetup-2Fei Ji Siao
 
Tech Talk by Ben Pfaff: Open vSwitch - Part 2
Tech Talk by Ben Pfaff: Open vSwitch - Part 2Tech Talk by Ben Pfaff: Open vSwitch - Part 2
Tech Talk by Ben Pfaff: Open vSwitch - Part 2nvirters
 
Open stack networking vlan, gre
Open stack networking   vlan, greOpen stack networking   vlan, gre
Open stack networking vlan, greSim Janghoon
 
Openstack Networking Internals - first part
Openstack Networking Internals - first partOpenstack Networking Internals - first part
Openstack Networking Internals - first partlilliput12
 
Open vSwitch의 Vendor Extension 구현
Open vSwitch의 Vendor Extension 구현Open vSwitch의 Vendor Extension 구현
Open vSwitch의 Vendor Extension 구현Seung-Hoon Baek
 
Accelerating Neutron with Intel DPDK
Accelerating Neutron with Intel DPDKAccelerating Neutron with Intel DPDK
Accelerating Neutron with Intel DPDKAlexander Shalimov
 
Aura Framework Overview
Aura Framework OverviewAura Framework Overview
Aura Framework Overviewrajdeep
 
Open daylight and Openstack
Open daylight and OpenstackOpen daylight and Openstack
Open daylight and OpenstackDave Neary
 
SDN Training - Open daylight installation + example with mininet
SDN Training - Open daylight installation + example with mininetSDN Training - Open daylight installation + example with mininet
SDN Training - Open daylight installation + example with mininetSAMeh Zaghloul
 
Neutron Network Namespaces and IPtables--A Technical Deep Dive
Neutron Network Namespaces and IPtables--A Technical Deep DiveNeutron Network Namespaces and IPtables--A Technical Deep Dive
Neutron Network Namespaces and IPtables--A Technical Deep DiveMirantis
 
OVS VXLAN Network Accelaration on OpenStack (VXLAN offload and DPDK) - OpenSt...
OVS VXLAN Network Accelaration on OpenStack (VXLAN offload and DPDK) - OpenSt...OVS VXLAN Network Accelaration on OpenStack (VXLAN offload and DPDK) - OpenSt...
OVS VXLAN Network Accelaration on OpenStack (VXLAN offload and DPDK) - OpenSt...VirtualTech Japan Inc.
 
Intel DPDK Step by Step instructions
Intel DPDK Step by Step instructionsIntel DPDK Step by Step instructions
Intel DPDK Step by Step instructionsHisaki Ohara
 
DEVNET-1006 Getting Started with OpenDayLight
DEVNET-1006	Getting Started with OpenDayLightDEVNET-1006	Getting Started with OpenDayLight
DEVNET-1006 Getting Started with OpenDayLightCisco DevNet
 
Open vSwitch와 Mininet을 이용한 가상 네트워크 생성과 OpenDaylight를 사용한 네트워크 제어실험
Open vSwitch와 Mininet을 이용한 가상 네트워크 생성과 OpenDaylight를 사용한 네트워크 제어실험Open vSwitch와 Mininet을 이용한 가상 네트워크 생성과 OpenDaylight를 사용한 네트워크 제어실험
Open vSwitch와 Mininet을 이용한 가상 네트워크 생성과 OpenDaylight를 사용한 네트워크 제어실험Seung-Hoon Baek
 

Viewers also liked (20)

Open VSwitch .. Use it for your day to day needs
Open VSwitch .. Use it for your day to day needsOpen VSwitch .. Use it for your day to day needs
Open VSwitch .. Use it for your day to day needs
 
Virtualized network with openvswitch
Virtualized network with openvswitchVirtualized network with openvswitch
Virtualized network with openvswitch
 
Demystifying openvswitch
Demystifying openvswitchDemystifying openvswitch
Demystifying openvswitch
 
Under the Hood: Open vSwitch & OpenFlow in XCP & XenServer
Under the Hood: Open vSwitch & OpenFlow in XCP & XenServerUnder the Hood: Open vSwitch & OpenFlow in XCP & XenServer
Under the Hood: Open vSwitch & OpenFlow in XCP & XenServer
 
Sdnds tw-meetup-2
Sdnds tw-meetup-2Sdnds tw-meetup-2
Sdnds tw-meetup-2
 
Tech Talk by Ben Pfaff: Open vSwitch - Part 2
Tech Talk by Ben Pfaff: Open vSwitch - Part 2Tech Talk by Ben Pfaff: Open vSwitch - Part 2
Tech Talk by Ben Pfaff: Open vSwitch - Part 2
 
Open stack networking vlan, gre
Open stack networking   vlan, greOpen stack networking   vlan, gre
Open stack networking vlan, gre
 
CRIU on RHEL7
CRIU on RHEL7CRIU on RHEL7
CRIU on RHEL7
 
Openstack Networking Internals - first part
Openstack Networking Internals - first partOpenstack Networking Internals - first part
Openstack Networking Internals - first part
 
Open vSwitch의 Vendor Extension 구현
Open vSwitch의 Vendor Extension 구현Open vSwitch의 Vendor Extension 구현
Open vSwitch의 Vendor Extension 구현
 
Accelerating Neutron with Intel DPDK
Accelerating Neutron with Intel DPDKAccelerating Neutron with Intel DPDK
Accelerating Neutron with Intel DPDK
 
Aura Framework Overview
Aura Framework OverviewAura Framework Overview
Aura Framework Overview
 
Open daylight and Openstack
Open daylight and OpenstackOpen daylight and Openstack
Open daylight and Openstack
 
SDN Training - Open daylight installation + example with mininet
SDN Training - Open daylight installation + example with mininetSDN Training - Open daylight installation + example with mininet
SDN Training - Open daylight installation + example with mininet
 
Neutron Network Namespaces and IPtables--A Technical Deep Dive
Neutron Network Namespaces and IPtables--A Technical Deep DiveNeutron Network Namespaces and IPtables--A Technical Deep Dive
Neutron Network Namespaces and IPtables--A Technical Deep Dive
 
OVS VXLAN Network Accelaration on OpenStack (VXLAN offload and DPDK) - OpenSt...
OVS VXLAN Network Accelaration on OpenStack (VXLAN offload and DPDK) - OpenSt...OVS VXLAN Network Accelaration on OpenStack (VXLAN offload and DPDK) - OpenSt...
OVS VXLAN Network Accelaration on OpenStack (VXLAN offload and DPDK) - OpenSt...
 
Intel DPDK Step by Step instructions
Intel DPDK Step by Step instructionsIntel DPDK Step by Step instructions
Intel DPDK Step by Step instructions
 
DEVNET-1006 Getting Started with OpenDayLight
DEVNET-1006	Getting Started with OpenDayLightDEVNET-1006	Getting Started with OpenDayLight
DEVNET-1006 Getting Started with OpenDayLight
 
Open vSwitch와 Mininet을 이용한 가상 네트워크 생성과 OpenDaylight를 사용한 네트워크 제어실험
Open vSwitch와 Mininet을 이용한 가상 네트워크 생성과 OpenDaylight를 사용한 네트워크 제어실험Open vSwitch와 Mininet을 이용한 가상 네트워크 생성과 OpenDaylight를 사용한 네트워크 제어실험
Open vSwitch와 Mininet을 이용한 가상 네트워크 생성과 OpenDaylight를 사용한 네트워크 제어실험
 
Docker Container
Docker ContainerDocker Container
Docker Container
 

Similar to Understanding Open Vswitch and its Role in OpenStack

SR-IOV, KVM and Emulex OneConnect 10Gbps cards on Debian/Stable
SR-IOV, KVM and Emulex OneConnect 10Gbps cards on Debian/StableSR-IOV, KVM and Emulex OneConnect 10Gbps cards on Debian/Stable
SR-IOV, KVM and Emulex OneConnect 10Gbps cards on Debian/Stablejuet-y
 
SR-IOV+KVM on Debian/Stable
SR-IOV+KVM on Debian/StableSR-IOV+KVM on Debian/Stable
SR-IOV+KVM on Debian/Stablejuet-y
 
SDNDS.TW Mininet
SDNDS.TW MininetSDNDS.TW Mininet
SDNDS.TW MininetNCTU
 
Open stack advanced_part
Open stack advanced_partOpen stack advanced_part
Open stack advanced_partlilliput12
 
Harmonia open iris_basic_v0.1
Harmonia open iris_basic_v0.1Harmonia open iris_basic_v0.1
Harmonia open iris_basic_v0.1Yongyoon Shin
 
SR-IOV, KVM and Intel X520 10Gbps cards on Debian/Stable
SR-IOV, KVM and Intel X520 10Gbps cards on Debian/StableSR-IOV, KVM and Intel X520 10Gbps cards on Debian/Stable
SR-IOV, KVM and Intel X520 10Gbps cards on Debian/Stablejuet-y
 
Cisco data center support
Cisco data center supportCisco data center support
Cisco data center supportKrunal Shah
 
OpenStack networking juno l3 h-a, dvr
OpenStack networking   juno l3 h-a, dvrOpenStack networking   juno l3 h-a, dvr
OpenStack networking juno l3 h-a, dvrSim Janghoon
 
Kubernetes networking
Kubernetes networkingKubernetes networking
Kubernetes networkingSim Janghoon
 
“Automation Testing for Embedded Systems”
“Automation Testing for Embedded Systems” “Automation Testing for Embedded Systems”
“Automation Testing for Embedded Systems” GlobalLogic Ukraine
 
[오픈소스컨설팅] Linux Network Troubleshooting
[오픈소스컨설팅] Linux Network Troubleshooting[오픈소스컨설팅] Linux Network Troubleshooting
[오픈소스컨설팅] Linux Network TroubleshootingOpen Source Consulting
 
[OpenStack 하반기 스터디] HA using DVR
[OpenStack 하반기 스터디] HA using DVR[OpenStack 하반기 스터디] HA using DVR
[OpenStack 하반기 스터디] HA using DVROpenStack Korea Community
 
Make container without_docker_6-overlay-network_1
Make container without_docker_6-overlay-network_1 Make container without_docker_6-overlay-network_1
Make container without_docker_6-overlay-network_1 Sam Kim
 
SAS (Secure Active Switch)
SAS (Secure Active Switch)SAS (Secure Active Switch)
SAS (Secure Active Switch)Security Date
 
Network Automation Tools
Network Automation ToolsNetwork Automation Tools
Network Automation ToolsEdwin Beekman
 

Similar to Understanding Open Vswitch and its Role in OpenStack (20)

SR-IOV, KVM and Emulex OneConnect 10Gbps cards on Debian/Stable
SR-IOV, KVM and Emulex OneConnect 10Gbps cards on Debian/StableSR-IOV, KVM and Emulex OneConnect 10Gbps cards on Debian/Stable
SR-IOV, KVM and Emulex OneConnect 10Gbps cards on Debian/Stable
 
SR-IOV+KVM on Debian/Stable
SR-IOV+KVM on Debian/StableSR-IOV+KVM on Debian/Stable
SR-IOV+KVM on Debian/Stable
 
Linux router
Linux routerLinux router
Linux router
 
SDNDS.TW Mininet
SDNDS.TW MininetSDNDS.TW Mininet
SDNDS.TW Mininet
 
Open stack advanced_part
Open stack advanced_partOpen stack advanced_part
Open stack advanced_part
 
Harmonia open iris_basic_v0.1
Harmonia open iris_basic_v0.1Harmonia open iris_basic_v0.1
Harmonia open iris_basic_v0.1
 
SR-IOV, KVM and Intel X520 10Gbps cards on Debian/Stable
SR-IOV, KVM and Intel X520 10Gbps cards on Debian/StableSR-IOV, KVM and Intel X520 10Gbps cards on Debian/Stable
SR-IOV, KVM and Intel X520 10Gbps cards on Debian/Stable
 
Cisco data center support
Cisco data center supportCisco data center support
Cisco data center support
 
Alcatel vm
Alcatel vmAlcatel vm
Alcatel vm
 
OpenStack networking juno l3 h-a, dvr
OpenStack networking   juno l3 h-a, dvrOpenStack networking   juno l3 h-a, dvr
OpenStack networking juno l3 h-a, dvr
 
Kubernetes networking
Kubernetes networkingKubernetes networking
Kubernetes networking
 
Session 2
Session 2Session 2
Session 2
 
Vyos clustering ipsec
Vyos clustering ipsecVyos clustering ipsec
Vyos clustering ipsec
 
“Automation Testing for Embedded Systems”
“Automation Testing for Embedded Systems” “Automation Testing for Embedded Systems”
“Automation Testing for Embedded Systems”
 
[오픈소스컨설팅] Linux Network Troubleshooting
[오픈소스컨설팅] Linux Network Troubleshooting[오픈소스컨설팅] Linux Network Troubleshooting
[오픈소스컨설팅] Linux Network Troubleshooting
 
Otv notes
Otv notesOtv notes
Otv notes
 
[OpenStack 하반기 스터디] HA using DVR
[OpenStack 하반기 스터디] HA using DVR[OpenStack 하반기 스터디] HA using DVR
[OpenStack 하반기 스터디] HA using DVR
 
Make container without_docker_6-overlay-network_1
Make container without_docker_6-overlay-network_1 Make container without_docker_6-overlay-network_1
Make container without_docker_6-overlay-network_1
 
SAS (Secure Active Switch)
SAS (Secure Active Switch)SAS (Secure Active Switch)
SAS (Secure Active Switch)
 
Network Automation Tools
Network Automation ToolsNetwork Automation Tools
Network Automation Tools
 

Recently uploaded

DevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platformsDevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platformsSergiu Bodiu
 
Install Stable Diffusion in windows machine
Install Stable Diffusion in windows machineInstall Stable Diffusion in windows machine
Install Stable Diffusion in windows machinePadma Pradeep
 
"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr Bagan"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr BaganFwdays
 
Advanced Test Driven-Development @ php[tek] 2024
Advanced Test Driven-Development @ php[tek] 2024Advanced Test Driven-Development @ php[tek] 2024
Advanced Test Driven-Development @ php[tek] 2024Scott Keck-Warren
 
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek SchlawackFwdays
 
Streamlining Python Development: A Guide to a Modern Project Setup
Streamlining Python Development: A Guide to a Modern Project SetupStreamlining Python Development: A Guide to a Modern Project Setup
Streamlining Python Development: A Guide to a Modern Project SetupFlorian Wilhelm
 
"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii Soldatenko"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii SoldatenkoFwdays
 
Dev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio WebDev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio WebUiPathCommunity
 
What's New in Teams Calling, Meetings and Devices March 2024
What's New in Teams Calling, Meetings and Devices March 2024What's New in Teams Calling, Meetings and Devices March 2024
What's New in Teams Calling, Meetings and Devices March 2024Stephanie Beckett
 
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024BookNet Canada
 
Vertex AI Gemini Prompt Engineering Tips
Vertex AI Gemini Prompt Engineering TipsVertex AI Gemini Prompt Engineering Tips
Vertex AI Gemini Prompt Engineering TipsMiki Katsuragi
 
Are Multi-Cloud and Serverless Good or Bad?
Are Multi-Cloud and Serverless Good or Bad?Are Multi-Cloud and Serverless Good or Bad?
Are Multi-Cloud and Serverless Good or Bad?Mattias Andersson
 
Vector Databases 101 - An introduction to the world of Vector Databases
Vector Databases 101 - An introduction to the world of Vector DatabasesVector Databases 101 - An introduction to the world of Vector Databases
Vector Databases 101 - An introduction to the world of Vector DatabasesZilliz
 
Unraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdfUnraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdfAlex Barbosa Coqueiro
 
Human Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR SystemsHuman Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR SystemsMark Billinghurst
 
Artificial intelligence in cctv survelliance.pptx
Artificial intelligence in cctv survelliance.pptxArtificial intelligence in cctv survelliance.pptx
Artificial intelligence in cctv survelliance.pptxhariprasad279825
 
Beyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
Beyond Boundaries: Leveraging No-Code Solutions for Industry InnovationBeyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
Beyond Boundaries: Leveraging No-Code Solutions for Industry InnovationSafe Software
 
Designing IA for AI - Information Architecture Conference 2024
Designing IA for AI - Information Architecture Conference 2024Designing IA for AI - Information Architecture Conference 2024
Designing IA for AI - Information Architecture Conference 2024Enterprise Knowledge
 
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks..."LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...Fwdays
 

Recently uploaded (20)

DevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platformsDevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platforms
 
Install Stable Diffusion in windows machine
Install Stable Diffusion in windows machineInstall Stable Diffusion in windows machine
Install Stable Diffusion in windows machine
 
"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr Bagan"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr Bagan
 
Advanced Test Driven-Development @ php[tek] 2024
Advanced Test Driven-Development @ php[tek] 2024Advanced Test Driven-Development @ php[tek] 2024
Advanced Test Driven-Development @ php[tek] 2024
 
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
 
Streamlining Python Development: A Guide to a Modern Project Setup
Streamlining Python Development: A Guide to a Modern Project SetupStreamlining Python Development: A Guide to a Modern Project Setup
Streamlining Python Development: A Guide to a Modern Project Setup
 
"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii Soldatenko"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii Soldatenko
 
Dev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio WebDev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio Web
 
What's New in Teams Calling, Meetings and Devices March 2024
What's New in Teams Calling, Meetings and Devices March 2024What's New in Teams Calling, Meetings and Devices March 2024
What's New in Teams Calling, Meetings and Devices March 2024
 
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
 
Vertex AI Gemini Prompt Engineering Tips
Vertex AI Gemini Prompt Engineering TipsVertex AI Gemini Prompt Engineering Tips
Vertex AI Gemini Prompt Engineering Tips
 
Are Multi-Cloud and Serverless Good or Bad?
Are Multi-Cloud and Serverless Good or Bad?Are Multi-Cloud and Serverless Good or Bad?
Are Multi-Cloud and Serverless Good or Bad?
 
Vector Databases 101 - An introduction to the world of Vector Databases
Vector Databases 101 - An introduction to the world of Vector DatabasesVector Databases 101 - An introduction to the world of Vector Databases
Vector Databases 101 - An introduction to the world of Vector Databases
 
Unraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdfUnraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdf
 
Human Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR SystemsHuman Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR Systems
 
Artificial intelligence in cctv survelliance.pptx
Artificial intelligence in cctv survelliance.pptxArtificial intelligence in cctv survelliance.pptx
Artificial intelligence in cctv survelliance.pptx
 
Beyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
Beyond Boundaries: Leveraging No-Code Solutions for Industry InnovationBeyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
Beyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
 
Designing IA for AI - Information Architecture Conference 2024
Designing IA for AI - Information Architecture Conference 2024Designing IA for AI - Information Architecture Conference 2024
Designing IA for AI - Information Architecture Conference 2024
 
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks..."LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
 
E-Vehicle_Hacking_by_Parul Sharma_null_owasp.pptx
E-Vehicle_Hacking_by_Parul Sharma_null_owasp.pptxE-Vehicle_Hacking_by_Parul Sharma_null_owasp.pptx
E-Vehicle_Hacking_by_Parul Sharma_null_owasp.pptx
 

Understanding Open Vswitch and its Role in OpenStack

  • 1. RED HAT ENTERPISE LINUX1 Understanding Open Vswitch Open Stack YONG-KI, KIM ykim@redhat.com Red Hat Korea
  • 2. RED HAT ENTERPISE LINUX2 Session Objective Open Vswitch 1. role of OVS in Open Stack 2. Working process of OVS 3. Various IP Interfaces – TAP, TUN, veth-Pair
  • 3. RED HAT ENTERPISE LINUX3 Base Network Knowledge TCP/IP Model Layer 1 Layer 2 Layer 3 Layer 4 Layer 5 Layer 6 Layer 7
  • 4. RED HAT ENTERPISE LINUX4 TCP/IP Switch covers TCP/IP but Bridge works on only L2 L2: Mac based communication - bridge, L2 Switch L3: IP based communication - router, L3 Switch L4: TCP Port based communication - L4 Switch, Load Balancer
  • 5. RED HAT ENTERPISE LINUX5 Network Diagram – host alone Basic Network topology eth0 External Internal eth1 VM1 eth0 OVS VM2 eth0 br-int vtap1 vtap2 IP stack (192.168.0.1/24) br-int/internal vtap1 vtap2 Host1 172.16.0.1
  • 6. RED HAT ENTERPISE LINUX6 Network Diagram - tunneling Basic Network topology eth0 External Internal eth1 VM1 eth0 OVS VM2 eth0 br-int vtap1 vtap2 IP stack (192.168.0.1/24) br-int/internal vtap1 vtap2 Host1 eth0 eth1 VM3 eth0 OVS VM4 eth0 br-int vtap1 vtap2 IP stack (192.168.0.2/24) br-int/internal vtap1 vtap2 Host2 172.16.0.1 172.16.0.2
  • 7. RED HAT ENTERPISE LINUX7 Network Diagram – complete picture Basic Network topology eth0 External Internal eth1 VM1 eth0 OVS VM2 eth0 br-int vtap1 vtap2 IP stack (192.168.0.1/24) br-int/internal vtap1 vtap2 Host1 eth0 eth1 VM3 eth0 OVS VM4 eth0 br-int vtap1 vtap2 IP stack (192.168.0.2/24) br-int/internal vtap1 vtap2 Host2 br-tun veth1 veth0 172.16.0.1 br-tun /internal eth1 br-tun veth1 eth1 veth0 172.16.0.2 br-tun /internal
  • 8. RED HAT ENTERPISE LINUX8 OVS how to – OVS Service 1. OVS start eth0 eth1 OVS IP stack (192.168.0.1/24) Host1 host1#systemctl stop firewalld; setenforce 0 host1#service openvswitch start [root@yhost2 ~]# ovs-vsctl show da8683f3-e1c1-4c9a-9587-2e3e860f9f82 ovs_version: "2.3.2" 172.16.0.1
  • 9. RED HAT ENTERPISE LINUX9 OVS how to - br 2. Create Bridge eth0 eth1 OVS br-int IP stack (192.168.0.1/24) br-int/internal Host1 host1#ovs-vsctl add-br br-int host1#ip link set dev br-int up [root@yhost2 ~]# ovs-vsctl show da8683f3-e1c1-4c9a-9587-2e3e860f9f82 Bridge br-int Port br-int Interface br-int type: internal ovs_version: "2.3.2" 172.16.0.1
  • 10. RED HAT ENTERPISE LINUX10 OVS how to – br-internal 3. assign IP addr to br-int eth0 eth1 OVS br-int IP stack (192.168.0.1/24) br-int/internal Host1 host1#ip addr add 192.168.0.100/24 dev br-int [root@yhost2 ~]# ovs-vsctl show da8683f3-e1c1-4c9a-9587-2e3e860f9f82 Bridge br-int Port br-int Interface br-int type: internal ovs_version: "2.3.2" 172.16.0.1
  • 11. RED HAT ENTERPISE LINUX11 OVS how to 4. Create tap device – vtap1, vtap2 eth0 eth1 OVS br-int IP stack (192.168.0.1/24) br-int/internal vtap1 vtap2 Host1 host1#ip tuntap add mode tap vtap{1,2} host1#ovs-vsctl add-port br-int vtap1 –- add-port br-int vtap2 host1#ip link set dev vtap{1,2} up [root@yhost2 ~]# ovs-vsctl show da8683f3-e1c1-4c9a-9587-2e3e860f9f82 Bridge br-int Port “vtap1” Interface “vtap1” Port “vtap2” Interface “vtap2” Port br-int Interface br-int type: internal ovs_version: "2.3.2" vtap1 vtap2 172.16.0.1
  • 12. RED HAT ENTERPISE LINUX12 OVS how to – Config for VM with TAP 5. create VM and configure to use manual TAP device virt-manager는 기본 mactap 제공하나 자율성이 떨어지기 때문에 manual tap 사용 1. vi /etc/libvirt/qemu/host1.xml 2. vi /etc/libvirt/qemu.conf (&& selinux disable) 3. service libvirtd restart <?xml version="1.0" encoding="UTF-8" standalone="no"?> <interface type='ethernet'> <mac address='26:c7:a9:96:a7:7a'/> <target dev=vtap1'/> <model type='virtio'/> <script path='no'/> <address type='pci' domain='0x0000' bus='0x00' slot='0x03' function='0x0'/> </interface> /etc/libvirt/qemu/host1.xml /etc/libvirt/qemu.conf a) clear_emulator_capabilities = 0 b) user = "root" c) group = "root" d) cgroup_device_acl = [ "/dev/null", "/dev/full", "/dev/zero", "/dev/random", "/dev/urandom", "/dev/ptmx", "/dev/kvm", "/dev/kqemu", "/dev/rtc", "/dev/hpet", "/dev/net/tun", ]
  • 13. RED HAT ENTERPISE LINUX13 OVS how to – VM IP 4. allocate IP addr to VM's eth0 eth0 eth1 OVS br-int IP stack (192.168.0.1/24) br-int/internal vtap1 vtap2 Host1 vm1@host1#ip addr add 192.168.0.101/24 dev eth0 vm2@host1#ip addr add 192.168.0.102/24 dev eth0 VM1#ping 192.168.0.1 [success] VM2#ping 192.168.0.1 [success] vtap1 vtap2 VM1 eth0 VM2 eth0 192.168.0.101 192.168.0.102 172.16.0.1
  • 14. RED HAT ENTERPISE LINUX14 OVS how to - Monitor 5. monitor ovs status eth0 eth1 OVS br-int IP stack (192.168.0.1/24) br-int/internal vtap1 vtap2 Host1 host1#ovs-vsctl show host1#ovs-ofctl show br-int host1#ovs-appctl fdb/show br-int host1#ovs-ofctl show br-int 1(eth1): addr:00:1a:4a:36:66:10 config: 0 state: 0 speed: 0 Mbps now, 0 Mbps max 2(vtap1): addr:96:34:e5:61:0a:ca config: PORT_DOWN state: LINK_DOWN current: 10MB-FD COPPER speed: 10 Mbps now, 0 Mbps max 3(vtap2): addr:f2:18:36:6c:d6:62 config: PORT_DOWN state: LINK_DOWN current: 10MB-FD COPPER speed: 10 Mbps now, 0 Mbps max LOCAL(br-int): addr:00:1a:4a:36:66:10 config: PORT_DOWN state: LINK_DOWN speed: 0 Mbps now, 0 Mbps max OFPT_GET_CONFIG_REPLY (xid=0x4): frags=normal miss_send_len=0 vtap1 vtap2 VM1 eth0 VM2 eth0 192.168.0.101 192.168.0.102 172.16.0.1
  • 15. RED HAT ENTERPISE LINUX15 OVS how to – Test Connection 6. ping test between vm1 on host1 and vm2 host2 eth0 eth1 OVS br-int IP stack (192.168.0.1/24) br-int/internal vtap1 vtap2 Host1 VM1# ping 192.168.0.102 [success] VM1#ping 192.168.0.103 [failed] vtap1 vtap2 VM1 eth0 VM2 eth0 192.168.0.101 192.168.0.102 eth0 eth1 OVS br-int IP stack (192.168.0.2/24) br-int/internal vtap1 vtap2 Host1 vtap1 vtap2 VM3 eth0 VM4 eth0 192.168.0.103 192.168.0.104 172.16.0.1 172.16.0.2
  • 16. RED HAT ENTERPISE LINUX16 OVS how to – Tun(VXLAN) 7. create vxlan TUN for connection between VM1 and MV3 eth0 eth1 OVS br-int IP stack (192.168.0.1/24) br-int/internal vtap1 vtap2 Host1 host1# ovs-vsctl add-port br-int vxlan0 -- set interface vxlan0 type=vxlan options:key=100 options:remote_ip=172.16.0.2] host2#ovs-vsctl add-port br-int vxlan0 -- set interface vxlan0 type=vxlan options:key=100 options:remote_ip=172.16.0.1 vtap1 vtap2 VM1 eth0 VM2 eth0 192.168.0.101 192.168.0.102 eth0 eth1 OVS br-int IP stack (192.168.0.2/24) br-int/internal vtap1 vtap2 Host1 vtap1 vtap2 VM3 eth0 VM4 eth0 192.168.0.103 192.168.0.104 172.16.0.1 172.16.0.2 vxlan1 VNI=100 vxlan1 VNI=100
  • 17. RED HAT ENTERPISE LINUX17 OVS how to - Monitor 8. current ovs status host1#ovs-vsctl show host1#ovs-ofctl ip a [root@yhost1 ~]# ovs-vsctl show 84c282c9-b992-4673-a715-2d2e46f0c175 Bridge br-int Port br-int Interface br-int type: internal Port "vtap1" Interface "vtap1" Port "vtap2" Interface "vtap2" Port "vxlan0" Interface "vxlan0" type: vxlan options: {key="100", remote_ip="172.16.0.2"} ovs_version: "2.3.2" eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 link/ether 00:1a:4a:36:66:0d brd ff:ff:ff:ff:ff:ff inet 10.64.168.146/24 eth1: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 link/ether 00:1a:4a:36:66:0e brd ff:ff:ff:ff:ff:ff inet 172.16.0.1/24 vtap1: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 link/ether 16:07:a0:03:15:ac brd ff:ff:ff:ff:ff:ff vtap2: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 link/ether e2:05:f1:38:5d:21 brd ff:ff:ff:ff:ff:ff br-int: <BROADCAST,MULTICAST> mtu 1500 link/ether 46:8c:72:ee:f0:4b brd ff:ff:ff:ff:ff:ff inet 192.168.0.1/24 scope global br-int
  • 18. RED HAT ENTERPISE LINUX18 OVS how to – veth pair 9. connection between bridges. host1#ip link add veth0 type veth peer name veth1 host1# ovs-vsctl add-br br-tun host1#ovs-vsctl add-port br-int veth0 host1#ovs-vsctl add-port br-tun veth1 host1#ovs-vsctl add-port eth1 host1#ip link set dev veth{0,1} up
  • 19. RED HAT ENTERPISE LINUX19 OVS how to – veth pair 10. connection between bridges. host1#ovs-vsctl show host1# ip addr [root@yhost1 ~]# ovs-vsctl show 84c282c9-b992-4673-a715-2d2e46f0c175 Bridge br-int Port "veth0" Interface "veth0" Port br-int Interface br-int type: internal Port "vtap1" Interface "vtap1" Port "vtap2" Interface "vtap2" Port "vxlan0" Interface "vxlan0" type: vxlan options: {key="100", remote_ip="172.16.0.2"} Bridge br-tun Port br-tun Interface br-tun type: internal Port "veth1" Interface "veth1" Port "eth1" Interface "eth1" ovs_version: "2.3.2"
  • 20. RED HAT ENTERPISE LINUX20 Network Diagram Basic Network topology eth0 External Internal eth1 VM1 eth0 OVS VM2 eth0 br-int vtap1 vtap2 IP stack (192.168.0.1/24) br-int/internal vtap1 vtap2 Host1 eth0 eth1 VM3 eth0 OVS VM4 eth0 br-int vtap1 vtap2 IP stack (192.168.0.2/24) br-int/internal vtap1 vtap2 Host2 br-tun veth1 veth0 172.16.0.1 br-tun /internal eth1 br-tun veth1 eth1 veth0 172.16.0.2 br-tun /internal
  • 21. RED HAT ENTERPISE LINUX21 ref: http://docs.ocselected.org/openstack-manuals/kilo/networking-guide/content/under_the_hood_openvswitch.html Open Stack Neutron Architecture
  • 22. RED HAT ENTERPISE LINUX22 ref: http://www.joinc.co.kr/modules/moniwiki/wiki.php/man/12/OpenVSwitch/VXLAN Docker Network w/ Open Vswitch
  • 23. RED HAT ENTERPISE LINUX23 Ref - articles reference articles 1. open stack neutron: http://docs.ocselected.org/openstack-manuals/kilo/networking- guide/content/under_the_hood_openvswitch.html 2. open vswitch tutorial video: https://www.youtube.com/watch?v=rYW7kQRyUvA 3. docker on open vswitch (한글): http://www.joinc.co.kr/modules/moniwiki/wiki.php/man/12/OpenVSwitch/VXLAN 4. ovs script - refer to below slides
  • 24. RED HAT ENTERPISE LINUX24 Ref – ovs-host1.sh KimYongKis-MacBook-Pro:20151013-Internal-OVS-training ykim$ cat ovs-host1.sh #!/bin/sh #define vnet="192.168.0.1/24" target_host="172.16.0.2" tun_net="172.16.0.1/24" #help if [ -z "$1" ] || [ $1 == "help" ];then echo "Help: $0 clear|init|br-int|vtap|vxlan|br-tun|veth-pair|en-br-tun" echo "" echo "How to use this scripts" echo "" echo "1st: clear" echo "2nd: init, clear iptables and change selinux mode to permissive" echo "3rd: br-int, create br-int bridge" echo "4th: vtap, create vtap and start VMs" echo "5th: vxlan, create vxlan tunnel" echo "6th: br-tun, optional, create br-tun bridge" echo "7th: veth-pair, optional, create veth-pair to connect between bridges(br-int and br-tun)" echo "8th: en-br-tun, optional, insert eth1 to br-tun and assign ip address to br-tun" echo "" exit 1 fi ## clear if [ $1 == "clear" ];then echo "$1" iptables -F ip addr flush dev eth1 ovs-vsctl del-port br-int vtap1 ovs-vsctl del-port br-int vtap2 ovs-vsctl del-port br-int vxlan0 ovs-vsctl del-br br-int ovs-vsctl del-br br-tun virsh destroy cirros1 virsh destroy cirros2 ip tuntap del mode tap vtap1 ip tuntap del mode tap vtap2 ip link del veth0 type veth peer name veth1 ip link del virbr0 ip link del virbr0-nic ovs-vsctl show
  • 25. RED HAT ENTERPISE LINUX25 Ref – ovs-host1.sh (cont.) ## br-int elif [ $1 == "br-int" ];then echo $1 ovs-vsctl add-br br-int ip addr add $vnet dev br-int ip link set dev br-int up ovs-vsctl show ## vtap elif [ $1 == "vtap" ];then echo $1 echo "vm 1 and vm2 starting" ip tuntap add mode tap vtap1 ip tuntap add mode tap vtap2 virsh start cirros1 virsh start cirros2 sleep 5 ip link set dev vtap1 up ip link set dev vtap2 up ovs-vsctl add-port br-int vtap1 ovs-vsctl add-port br-int vtap2 ovs-vsctl show ## vxlan elif [ $1 == "vxlan" ];then echo $1 ovs-vsctl add-port br-int vxlan0 -- set interface vxlan0 type=vxlan options:key=100 options:remote_ip=$target_host ovs-vsctl show ## br-tun elif [ $1 == "br-tun" ];then echo $1 ovs-vsctl add-br br-tun ip link set dev br-tun up ovs-vsctl show ## veth pair elif [ $1 == "veth-pair" ];then echo $1 ip link add veth0 type veth peer name veth1 ovs-vsctl add-port br-int veth0 ovs-vsctl add-port br-tun veth1 ip link set veth0 up ip link set veth1 up ovs-vsctl show
  • 26. RED HAT ENTERPISE LINUX26 Ref – ovs-host1.sh (cont.) ## veth pair elif [ $1 == "veth-pair" ];then echo $1 ip link add veth0 type veth peer name veth1 ovs-vsctl add-port br-int veth0 ovs-vsctl add-port br-tun veth1 ip link set veth0 up ip link set veth1 up ovs-vsctl show ## en-br-tun elif [ $1 == "en-br-tun" ];then echo $1 ip addr flush dev eth1 ovs-vsctl add-port br-tun eth1 ip addr add $tun_net dev br-tun ip link set br-tun up ovs-vsctl show ## init elif [ $1 == "init" ];then echo $1 iptables -F setenforce 0 ip addr add $tun_net dev eth1 ip link set eth1 up else echo "$0 clear|init|br-int|vtap|vxlan|br-tun|veth-pair|en-br-tun" fi
  • 27. RED HAT ENTERPISE LINUX27 End of Document