一、交换机
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:
[root@BAIYU_173 ~]# [root@BAIYU_173 ~]# modinfo 8021q filename: /lib/modules/2.6.32-573.el6.x86_64/kernel/net/8021q/8021q.ko version: 1.8 license: GPL alias: rtnl-link-vlan srcversion: 24CA9E14200E9B54D970303 depends: garp vermagic: 2.6.32-573.el6.x86_64 SMP mod_unload modversions [root@BAIYU_173 ~]# modprobe 8021q [root@BAIYU_173 ~]# ls /proc/net/vlan config
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
[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 start Creating 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命令的使用
[root@BAIYU_173 ~]# ovs ovs-appctl ovsdb-server ovs-parse-backtrace ovs-tcpundump ovs-benchmark ovsdb-tool ovs-parse-leaks ovs-vsctl ovs-bugtool ovs-dpctl ovs-pcap ovs-vswitchd ovsdb-client ovs-ofctl ovs-pki [root@BAIYU_173 ~]# ovs-vsctl --help ovs-vsctl: ovs-vswitchd management utility usage: ovs-vsctl [OPTIONS] COMMAND [ARG...]
ovs-vsctl [OPTIONS] COMMAND [ARG...]
[root@BAIYU_173 ~]# ovs-vsctl add-br br-in [root@BAIYU_173 ~]# ovs-vsctl show e62fa42f-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脚本:
#!/bin/bash # bridge=br-in if [ -n "$1" ]; then ip link set $1 up sleep 1 ovs-vsctl add-port $bridge $1 [ $? -eq 0 ] && exit 0 || exit 1 else echo "Error: no port specified." exit 2 fi
/etc/if-down脚本:
#!/bin/bash # bridge=br-in if [ -n "$1" ]; then ip link set $1 down sleep 1 ovs-vsctl del-port $bridge $1 [ $? -eq 0 ] && exit 0 || exit 1 else echo "Error: no port specified." exit 2 fi
三、GRE:
GRE:Generic Routing Encapsulation
通用路由封装;是一种隧道技术;
将常见的网络协议基于Ip包封装起来,