首页 > Linux系统管理 > Openvswitch部署
2015
07-31

Openvswitch部署

 
一、搭建编译环境
 安装编译环境
 
yum install gcc make python-devel openssl-devel kernel-devel \
 
graphviz kernel-debug-devel autoconf automake \
 
rpm-build redhat-rpm-config libtool
 
  编译rpm建议使用普通用户
 
  下载创建编译目录脚本
 
wget ftp://ftp.owlriver.com/pub/local/COLUG//RPM-build-tree.txt
 
执行脚本
 
sh RPM-build-tree.txt
 
将会在当前用户家目录创建如下目录
 
rpmbuild
 
├── BUILD
 
├── BUILDROOT
 
├── RPMS
 
├── SOURCES
 
├── SPECS
 
└── SRPMS
 
 
二、编译 openvswitch rpm包
切换至家目录,下载openvswitch源码包
 
cd ~
 
wget http://openvswitch.org/releases/openvswitch-2.3.1.tar.gz
 
cp openvswitch-2.3.1.tar.gz rpmbuild/SOURCES/
 
tar xvf openvswitch-2.3.1.tar.gz
 
cd openvswitch-2.3.1
 
编译内核
 
cp rhel/openvswitch-kmod.files ~/rpmbuild/SOURCES/
 
 
 
rpmbuild -bb rhel/openvswitch-kmod-rhel6.spec
 
编译openvswitch rpm
 
rpmbuild -bb rhel/openvswitch.spec
 
编译完成后rpm包位于
 
ll ~/rpmbuild/RPMS/x86_64/
 
total 11440
 
-rw-rw-r–. 1 firxiao firxiao 1223288 Dec 17 05:50 kmod-openvswitch-2.3.1-1.el6.x86_64.rpm
 
-rw-rw-r–. 1 firxiao firxiao 2640440 Dec 17 06:01 openvswitch-2.3.1-1.x86_64.rpm
 
-rw-rw-r–. 1 firxiao firxiao 7846548 Dec 17 06:01 openvswitch-debuginfo-2.3.1-1.x86_64.rpm
 
 
 
将如下rpm包上传至vm1、vm2服务器上:
 
openvswitch-2.3.1-1.x86_64.rpm
 
kmod-openvswitch-2.3.1-1.el6.x86_64.rpm
 
 
 
使用yum安装:
 
yum install openvswitch-2.3.1-1.x86_64.rpm  kmod-openvswitch-2.3.1-1.el6.x86_64.rpm
 
 
 
启动虚拟交换机
 
/etc/init.d/openvswitch restart
 
三、配置及使用
vm1                   vm2       vm1 and vm2 创建桥接网卡ovsbridge0 
 
—-                  —-      基于ovsbridge0创建vlan100网卡。
 
eth0                  ech0
 
————–        ————-
 
ovsbridge0            ovsbridge0   
 
172.16.0.20/24        172.16.0.21/24
 
————–        ————–
 
vlan100               vlan100
 
192.168.100.2/24      192.168.100.3/24 
 
—————-      —————-
 
 
 
将配置文件放于/etc/sysconfig/network-scripts
 
vm1网卡配置信息
cat ifcfg-eth0
 
DEVICE=eth0
 
ONBOOT=yes
 
DEVICETYPE=ovs
 
TYPE=OVSPort
 
OVS_BRIDGE=ovsbridge0
 
BOOTPROTO=none
 
HOTPLUG=no
 
 
 
cat ifcfg-ovsbridge0
 
DEVICE=ovsbridge0
 
ONBOOT=yes
 
DEVICETYPE=ovs
 
TYPE=OVSBridge
 
BOOTPROTO=static
 
IPADDR=172.16.0.20
 
NETMASK=255.255.255.0
 
HOTPLUG=no
 
 
 
cat ifcfg-vlan100
 
DEVICE=vlan100
 
ONBOOT=yes
 
DEVICETYPE=ovs
 
TYPE=OVSIntPort
 
BOOTPROTO=static
 
IPADDR=192.168.100.2
 
NETMASK=255.255.255.0
 
OVS_BRIDGE=ovsbridge0
 
OVS_OPTIONS="tag=100"
 
OVS_EXTRA="set Interface $DEVICE external-ids:iface-id=$(hostname -s)-$DEVICE-vif"
 
HOTPLUG=no
 
 
 
ovs-vsctl show
 
fedbda2f-2516-4aff-b89f-ca221873eb9c
 
    Bridge "ovsbridge0"
 
        Port "vlan100"
 
            tag: 100
 
            Interface "vlan100"
 
                type: internal
 
        Port "eth0"
 
            Interface "eth0"
 
        Port "ovsbridge0"
 
            Interface "ovsbridge0"
 
                type: internal
 
    ovs_version: "2.3.1"
 
 
 
vm2网卡配置信息
cat ifcfg-eth0 
 
DEVICE=eth0
 
ONBOOT=yes
 
DEVICETYPE=ovs
 
TYPE=OVSPort
 
OVS_BRIDGE=ovsbridge0
 
BOOTPROTO=none
 
HOTPLUG=no
 
 
 
cat ifcfg-ovsbridge0 
 
DEVICE=ovsbridge0
 
ONBOOT=yes
 
DEVICETYPE=ovs
 
TYPE=OVSBridge
 
BOOTPROTO=static
 
IPADDR=172.16.0.21
 
NETMASK=255.255.255.0
 
HOTPLUG=no
 
 
 
cat ifcfg-vlan100    
 
DEVICE=vlan100
 
ONBOOT=yes
 
DEVICETYPE=ovs
 
TYPE=OVSIntPort
 
BOOTPROTO=static
 
IPADDR=192.168.100.3
 
NETMASK=255.255.255.0
 
OVS_BRIDGE=ovsbridge0
 
OVS_OPTIONS="tag=100"
 
OVS_EXTRA="set Interface $DEVICE external-ids:iface-id=$(hostname -s)-$DEVICE-vif"
 
HOTPLUG=no
 
 
 
ovs-vsctl show
 
646f5f0f-6a6b-4b01-9c3c-f7684aa64ecc
 
    Bridge "ovsbridge0"
 
        Port "eth0"
 
            Interface "eth0"
 
        Port "ovsbridge0"
 
            Interface "ovsbridge0"
 
                type: internal
 
        Port "vlan100"
 
            tag: 100
 
            Interface "vlan100"
 
                type: internal
 
    ovs_version: "2.3.1"
 
 
 
配置好网卡后
 
service network restart
 
四、测试配置
在vm1 上 vm2 上使用 172.16.0.0/24可以互相通信
 
使用vlan100 192.168.100.0/24也可进行通信 两个网络互相隔离
 
 
 
编译rpm参考: openvswitch-2.3.1/INSTALL.RHEL
最后编辑:
作者:saunix
大型互联网公司linux系统运维攻城狮,专门担当消防员

留下一个回复