OpenVswitch Bridge

เป้าหมาย คือต้องการที่จะใช้งาน virt-manager ให้สามารถใช้งานในรูปแบบของ Bridge mode และใช้งานร่วมกับ openvswitch (virtual switch) เพื่อให้ virtual machine ที่สร้างขึ้นสามารถมี Bride network บน Fedora 20 ได้ อะไรคือ openvswitch openvswitch คือ virtual switch รองรับการทำงาน openflow protocol เป็นมาตรฐานหลักของ SDN (Software Define networking) โดยที่ Openvswitch จะทำให้ vm ที่สร้างขึ้นสามารถที่ติดต่อกัน ทั้งที่อยู่บน Host เดียวกัน หรือต่าง Host กัน

openvswitch

  • รองรับ VLAN tagging และ 802.1q trunk
  • รองรับ standard spanning tree protocal 802.1D
  • LACP
  • Port mirroring (SPAN/RSPAN)
  • Flow export (sflow, netflow, ipfix)
  • tunneling (GRE, VXLAN, IPSEC)
  • QoS control

Install Openvswitch

sudo su -
# dnf install openvswitch python-openvswitch openvswitch-devel
# systemctl start openvswitch
# systemctl enable openvswitch
# lsmod | grep openv

(result)
openvswitch           102400  0
libcrc32c              16384  1 openvswitch
nf_defrag_ipv6         36864  2 openvswitch,nf_conntrack_ipv6
nf_nat_ipv6            16384  2 openvswitch,ip6table_nat
nf_nat_ipv4            16384  2 openvswitch,iptable_nat
nf_nat                 24576  4 openvswitch,nf_nat_ipv4,nf_nat_ipv6,nf_nat_masquerade_ipv4
nf_conntrack          106496  8 openvswitch,nf_nat,nf_nat_ipv4,nf_nat_ipv6,xt_conntrack,nf_nat_masquerade_ipv4,nf_conntrack_ipv4,nf_conntrack_ipv6

ให้เก็บค่า inteface name ,ip ,mac ,route ด้วยคำสั่ง

ip a
ip r

create bridge

    # ovs-vsctl add-br ovsbr0
    # ovs-vsctl show
(result)
    e3aa10d9-ca5d-47e4-8eea-5f754cfae0fe
    Bridge "ovsbr0"
    Port "ovsbr0"
        Interface "ovsbr0"
            type: internal
    ovs_version: "2.5.0"

นำ interface enp3s0 มาเชื่อมกับ ovsbr0

# ovs-vsctl add-port ovsbr0 enp3s0
# ovs-vsctl show
(result)
e3aa10d9-ca5d-47e4-8eea-5f754cfae0fe
        Bridge "ovsbr0"
            Port "ovsbr0"
                Interface "ovsbr0"
                    type: internal
            Port "enp3s0"
                Interface "enp3s0"
        ovs_version: "2.5.0"
_images/ovs002.png

หลังจากนั้นให้ แก้ config

cd /etc/sysconfig/network-scripts
cp ifcfg-enp3s0  /root
cp ifcfg-enp3s0  ifcfg-ovsbr0

edit network config

    cd /etc/sysconfig/network-scripts
vim ifcfg-enp3s0

    DEVICE=enp3s0
NAME=enp3s0
    HWADDR=54:ee:75:8a:86:09
    ONBOOT=yes
    DEVICETYPE=ovs
    TYPE=OVSPort
    OVS_BRIDGE=ovsbr0

Note

ให้แทนค่า

  • enp3s0 ด้วยชื่อของ interface ของตัวเอง
  • HWADDR=54:ee:75:8a:86:09 ด้วย mac ของตัวเอง
# vim ifcfg-ovsbr0

DEVICE=ovsbr0
NAME=ovsbr0
DEVICETYPE=ovs
TYPE=OVSBridge
BOOTPROTO=static
DEFROUTE=yes
ONBOOT=yes
IPADDR=192.168.1.100
PREFIX=24
GATEWAY=192.168.1.1
DNS1=8.8.8.8
DNS2=8.8.4.4
HOTPLUG=no
DELAY=0
IPV6INIT=no

Note

ให้แทนค่า

  • 192.168.1.100 ด้วย ip เดิม ของ enp3s0
  • 192.168.1.100 ด้วย gateway เดิม

ยกเลิกการทำงาน NetworkManager

rm -rf /etc/resolv.conf
    systemctl stop NetworkManager
    systemctl disable NetworkManager

    systemctl start network
    systemctl enable network

    reboot