网络虚拟化技术2
一、交换机
1、VLAN
VLAN(Virtual Local Area Network)的中文名为"虚拟局域网"。
虚拟局域网(VLAN)是一组逻辑上的设备和用户,这些设备和用户并不受物理位置的限制,可以根据功能、部门及应用等因素将它们组织起来,相互之间的通信就好像它们在同一个网段中一样,由此得
名虚拟局域网。
VLAN是一种比较新的技术,工作在OSI参考模型的第2层和第3层,一个VLAN就是一个广播域,VLAN之间的通信是通过第3层的路由器来完成的。与传统的局域网技术相比较,VLAN技术更加灵活,它具有以下优点:
网络设备的移动、添加和修改的管理开销减少;可以控制广播活动;可提高网络的安全性。
在计算机网络中,一个二层网络可以被划分为多个不同的广播域,一个广播域对应了一个特定的用户组,默认情况下这些不同的广播域是相互隔离的。不同的广播域之间想要通信,需要通过一个或多个路由器。这样的一个广播域就称为VLAN。
什么是VLAN?
Virtual LAN; LAN即为广播帧能够到的节点范围,也即能够直接通信的范围;
VLAN划分的方式:
基于MAC地址
基于交换机Port实现
基于IP地址实现
基于用户实现
交换机接口的类型:
访问链接:access link
汇聚链接:trunc link
VLAN的汇聚方式:
IEEE 802.1q
ISL: Inter Switch Link
VXLAN(扩展的vlan):能划分更多的vlan
使linu支持vlan:
|
1
2
3
4
5
6
7
8
9
10
11
12
13
|
[root@BAIYU_173 ~]# [root@BAIYU_173 ~]# modinfo 8021qfilename: /lib/modules/2.6.32-573.el6.x86_64/kernel/net/8021q/8021q.koversion: 1.8license: GPLalias: rtnl-link-vlansrcversion: 24CA9E14200E9B54D970303depends: garpvermagic: 2.6.32-573.el6.x86_64 SMP mod_unload modversions [root@BAIYU_173 ~]# modprobe 8021q[root@BAIYU_173 ~]# ls /proc/net/vlanconfig |
VLAN间路由:
路由器:
访问链接:router为每个VLAN提供一个接口
汇聚链接:router只向交换提供一个接口 #单臂路由
三层交换机:
构建复杂的虚拟化网络的两个要件:
netns
OpenVSwitch
二、OpenVSwitch
OpenvSwitch,简称OVS,是一个虚拟交换软件,主要用于虚拟机VM环境,作为一个虚拟交换机,支持Xen/XenServer, KVM, and VirtualBox多种虚拟化技术。
虚拟交换机(vswitch)主要有两个作用:传递虚拟机VM之间的流量,以及实现VM和外界网络的通信。
OVS:基于C语言研发;
1、特性
802.1q协议, trunk, access
NIC bonding(网卡版定)
NetFlow(数据流), sFlow
QoS配置及策略
GRE(通用路由封装技术), VxLAN,
OpenFlow
2、OVS的组成部分
ovs-vswitchd: OVS daemon, 实现数据报文交换功能,和Linux内核兼容模块一同实现了基于流的交换技术;
ovsdb-server:轻量级的数据库服务,主要保存了整个OVS的配置信息,例如接口、交换和VLAN等等;ovs-vswitchd的交换功能基于此库实现;
ovs-dpctl 一个工具,用来配置交换机内核模块,可以控制转发规则
ovs-vsctl:用于获取或更改ovs-vswitchd的配置信息,其修改操作会保存至ovsdb-server中;
ovs-appctl:主要是向OVS守护进程发送命令的,一般用不上。
ovsdbmonitor:GUI工具来显示ovsdb-server中数据信息。
ovs-controller:一个简单的OpenFlow控制器
ovs-ofctl:用来控制OVS作为OpenFlow交换机工作时候的流表内容。
ovs-pki
3、OVS安装和使用
1)安装OVS
|
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
|
[root@BAIYU_173 ~]# yum install openvswitch-1.10.0-1.el6.x86_64.rpm[root@BAIYU_173 ~]# rpm -ql openvswitch/etc/logrotate.d/openvswitch/etc/openvswitch/etc/rc.d/init.d/openvswitch/etc/sysconfig/network-scripts/ifdown-ovs/etc/sysconfig/network-scripts/ifup-ovs/etc/sysconfig/openvswitch/usr/bin/ovs-appctl/usr/bin/ovs-benchmark/usr/bin/ovs-dpctl/usr/bin/ovs-ofctl/usr/bin/ovs-parse-backtrace/usr/bin/ovs-parse-leaks/usr/bin/ovs-pcap/usr/bin/ovs-pki/usr/bin/ovs-tcpundump/usr/bin/ovs-vsctl/usr/bin/ovsdb-client/usr/bin/ovsdb-tool/usr/sbin/ovs-bugtool/usr/sbin/ovs-vswitchd/usr/sbin/ovsdb-server/usr/share/doc/openvswitch-1.10.0/usr/share/openvswitch/usr/share/openvswitch/scripts/var/lib/openvswitch/var/lib/openvswitch/pki[root@BAIYU_173 ~]# service openvswitch startCreating empty database /etc/openvswitch/conf.db [ OK ]Starting ovsdb-server [ OK ]Configuring Open vSwitch system IDs [ OK ]Inserting openvswitch module [ OK ]Starting ovs-vswitchd [ OK ]Enabling remote OVSDB managers [ OK ] |
2)ovs-vsctl命令的使用
|
1
2
3
4
5
6
7
8
|
[root@BAIYU_173 ~]# ovsovs-appctl ovsdb-server ovs-parse-backtrace ovs-tcpundumpovs-benchmark ovsdb-tool ovs-parse-leaks ovs-vsctlovs-bugtool ovs-dpctl ovs-pcap ovs-vswitchdovsdb-client ovs-ofctl ovs-pki [root@BAIYU_173 ~]# ovs-vsctl --helpovs-vsctl: ovs-vswitchd management utilityusage: ovs-vsctl [OPTIONS] COMMAND [ARG...] |
ovs-vsctl [OPTIONS] COMMAND [ARG...]
|
1
2
3
4
5
6
7
8
|
[root@BAIYU_173 ~]# ovs-vsctl add-br br-in[root@BAIYU_173 ~]# ovs-vsctl showe62fa42f-1f90-48ff-956d-02c5005515a2 Bridge br-in #虚拟交换机 Port br-in #虚拟交换机上端口 Interface br-in #端口上的配置 type: internal #类型:内部类型 ovs_version: "1.10.0" |
ovs-vsctl常用命令:
show: ovsdb配置内容查看
add-br NAME:添加桥设备;
list-br: 显示所有已定义BRIDGE
del-br BRIDGE: 删除桥
add-port BRIDGE PORT: 将PORT添加至指定的BRIDGE
list-ports BRIDGE: 显示指定BRIDGE上已经添加的所有PORT
del-port [BRIDGE] PORT: 从指定BRIDGE移除指定的PORT
/etc/if-up脚本:
|
1
2
3
4
5
6
7
8
9
10
11
12
|
#!/bin/bash#bridge=br-inif [ -n "$1" ]; then ip link set $1 up sleep 1 ovs-vsctl add-port $bridge $1 [ $? -eq 0 ] && exit 0 || exit 1else echo "Error: no port specified." exit 2fi |
/etc/if-down脚本:
|
1
2
3
4
5
6
7
8
9
10
11
12
|
#!/bin/bash#bridge=br-inif [ -n "$1" ]; then ip link set $1 down sleep 1 ovs-vsctl del-port $bridge $1 [ $? -eq 0 ] && exit 0 || exit 1else echo "Error: no port specified." exit 2fi |
三、GRE:
GRE:Generic Routing Encapsulation
通用路由封装;是一种隧道技术;
将常见的网络协议基于Ip包封装起来,

浙公网安备 33010602011771号