标签:category2

发表于
什么是SR-IOV呢? 简单的说,SR-IOV是一种虚拟化方案,用来使一个PCIe的物理设备,能虚拟出多个设备,这些虚拟出来的设备看起来就像是多个真实的物理设备一样,并获得能够与本机性能媲美的 I/O 性能。 SR-IOV现在最多是用在网卡上,kvm虚拟机的网卡功能一般会下降到实体机的30-50%,如果改用SR-IOV会大大提高网卡性能。 SR-IOV 有2种功能: 物理功能 (Physical Function, PF) 就是标准的PCIe的功能了 虚拟功能 (Virtual Function, VF) 与物理功能关联的一种功能。VF 是一种轻量级 PCIe 功能,可以与物理功能以及与同一物理功能关联的其他 VF 共享一个或多个物理资源。VF 仅允许拥有用于其自身行为的配置资源。 好的,如何在生产环境中使用它呢? 场景如下: 如上: 机房分为两类交换机: switch-1用来连接各机器的eth0口 switch-2用来连接各机器的eth1口 switch-1和switch-2互联 这是一种机房的标准连法,eth0和eth1做bonding,做线路冗余 server-2是一台Dell R730的服务器,eth0连switch-1,eth1连switch-2,上面跑了三个虚机:...
发表于
运行ovs后,Linux系统中会多出一块状态是down掉的网卡ovs-system: ifconfig -a ... ovs-system Link encap:Ethernet HWaddr FA:4F:0D:E4:DA:11 BROADCAST MULTICAST MTU:1500 Metric:1 RX packets:0 errors:0 dropped:0 overruns:0 frame:0 TX packets:6 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:0 RX bytes:0...
发表于
环境如上: 两边一个是ubuntu,一个是centos,都是双网卡绑定。 步骤: 两台机器都建立网桥: ovs-vsctl add-br remibr0 可以增加一个vlan tag=101的管理网桥挂到remibr0上去 ovs-vsctl add-br mgmt0 remibr0 101 更进一步,两个网卡bonding,注意,这里需要硬件交换机配置802.3ad才能支持balance-tcp: ovs-vsctl add-bond remibr0 bond0 em49 em50 bond_mode=balance-tcp lacp=active other_config:lacp-time=fast 在ubuntu机器上执行: ovs-vsctl add-br remibr0 ovs-vsctl add-port remibr0 vxlan0 -- set Interface vxlan0 type=...
发表于
转自:http://tekyhost.com/configure-start-up-scripts-for-ovs-on-centos-and-red-hat/ The RPM packages for Open vSwitch provide some integration with Red Hat's network scripts. Using this integration is optional. To use the integration for a Open vSwitch bridge or interface named <name>, create or edit /etc/sysconfig/network-scripts/ifcfg-<name>. This...
发表于
一般OpenFlow controller有很多种了,有软件实现的,也有硬件实现的,大部分人是用floodlight来做control path的部分。我们这里用Pox来实现,Pox是基于python的。 Openvswitch安装就不说了。 增加一个tun设备(tap2层|tun3层) yum -y install tunctl tunctl –t tap0 –u root 增加网桥、添加端口tap0 # ovs-vsctl add-br ovsbr0 # ovs-vsctl add-port ovsbr0 tap0 # ovs-vsctl add-port ovsbr0 em1 # ifconfig tap0 promisc up # ifconfig em1 promisc up 用qemu-kvm来安装虚机 # /usr/bin/qemu-kvm -smp 2,cores=2...
发表于
TUN与TAP是操作系统内核中的虚拟网络设备。 无论用哪个,直接后果都会在系统中多出一块虚拟的网卡来。 TAP等同于一个以太网设备,它操作第二层数据包如以太网数据帧。 TUN模拟了网络层设备,操作第三层数据包比如IP数据封包。 简单说TAP二层TUN三层。...
发表于
Open vSwitch如果利用vlan将kvm或者docker-lxc虚机连接起来的话,设备多的话,就无法承受,尤其是openstack这种海量大规模虚机的环境。 所以,用vxlan来连接比较好,毕竟vxlan是可以支持到16百万虚拟2层网络的。 场景:两台实体机,都跑ovs,用vxlan互联,上面的交换机可以通联。 实体机1:host1 eth0: 123.123.123.1 实体机2:host2 eth0: 123.123.123.2 首先在host1和host2上分别建立网桥 ovs-vsctl add-br ovsbr0 接下来用virt-install安装kvm的时候就可以指定ovs参数来安装: virt-install ... -w bridge=ovsbr0,virtualport_type=openvswitch 如果是用克隆或者机器来生产虚机的话,网络部分的xml应该如下: <interface type='bridge'> < source bridge='ovsbr0'/...
发表于
vSwitches 虚拟交换机本质上来讲还是一种简单的2层设备,并假装3层的ip并不存在,来简化其功能。 但是在实际应用的时候,比如大规模的openstack集群中,VLAN的数量超出4094的话,vlan的802.1q帧格式中vid最大支持4096(2^12)个vlan,就会带来麻烦。这种情况下,Cisco(Nexus 1000V)和Nicira(Open vSwitch)就开始研究 MAC-over-IP 的封装技术 两种技术:(VXLAN-over-UDP 或者 GRE) VXLAN的技术本质是什么呢? 1)首先它和SDN的思想一样通过重新自定义帧格式,采用基于2.5层UDP的socket走3层将这种自定义的2层帧跨数据中心传过去再解析出来。 2)在这种自定义帧中可以加入原有的VLAN和tenant的概念来隔离网络,这个vlan的大小可以轻易突破0-4094的限制。 VXLAN实际是强依赖网络的IP multicast多播,来发现 MAC-to-VTEP的对应关系,也就是说如果网络没有多播,vxlan不存在。 VXLAN的帧封装技术叫做VXLAN Tunnel Endpoint (VTEP),一个VTEP有两个逻辑interface:一个uplink和一个downlink. VTEP是直接与EndSystem连接的设备,负责原始以太报文的VXLAN封装和解封装,形态可以是虚拟交换机,...
发表于
Graphite的安装其实是比较复杂的,我们只是使用者,所以用最简单的方法来安装它,把焦点关注在如何配置和使用好它上。 Docker大法: docker run \ --name graphite\ --restart=always\ -p 80:80\ -p 2003-2004:2003-2004\ -p 2023-2024:2023-2024\ -p 8125:8125/udp\ -p 8126:8126\ -d hopsoft/graphite-statsd 注意上面端口: 80是nginx 2003是carbon 2004是carbon aggregator 2023是carbon pickle 2024是carbon aggregator pickle 8125是statsd 8126是statsd admin 集大成版啊,不愧是在github上有400多颗星的软件啊,自带了statsd,收集软件都有了。 缺省用户: username: root...
发表于
其实抛开Open vSwitch,Linux自己也是可以做ipip和gre隧道的。 场景: 有两个网段 两台Linux机器分别充当GW host1(内网网段10.42.1.0/24,外网ip:240.101.83.2,内网IP:10.42.1.1) host2(内网网段10.42.2.0/24,外网ip:251.4.92.217,内网Ip:10.42.2.1) 一、IPIP 在两边的机器同时加载ipip模块 [root@host]# modprobe ipip 在host1上操作: [root@host1]# ip tunnel...
发表于
lxc类型的容器如何使用Open vSwitch做网络底层呢? 假设底层是ovs, 网桥是ovsbr0,容器已经启动,docker的底层是lxc 查看容器: ps axww --forest 找到-f 后面的配置文件: /var/lib/docker/containers/19ab1b6edd1635159095f3a59f4dab0c1e71f6512282156620fd532ca6446db8/config.lxc 编辑修改网络部分: # vi /var/lib/docker/containers/ae5bfe8ac3567d545c9a0dc64c30cbbdd5ae67466be0b44bd462a4815fbee11d lxc.network.type = veth lxc.network.flags = up lxc.network.link = lxcbr0 并增加以下三行,注意ovs port name: lxc.network.script.up = /etc/network/if-up.d/...
发表于
PPTP PPTP(Point-to-Point Tunneling Protocol,点对点隧道协议)是由微软为了在拨号网络方面创建VPN而成立的一个团队开发而生,因此长期以来一直都是其企业内部的VPN标准协议。它也是一个通过搭配各种认证方法(通常是MS-CHAP v2)以提供安全性的VPN协议。因为PPTP协议作为一个在几乎所有有VPN能力的平台和设备上都可以无需安装额外软件而使用的标准,它至今仍然是企业和VPN供应商们的热门选择。同时,它有着低计算开销即可实现的优势(通俗地说就是运行速度很快)。 几乎所有平台都内置好了PPTP协议的VPN客户端 非常易于搭建 不够安全(弱势的MSCHAPv2依旧被广泛使用) 绝对妥协于NSA L2TP 以及 L2TP/IPsec L2TP(Layer 2 Tunnel Protocol,第二层隧道协议)是一种协议本身不对通过的流量进行加密或实施保密措施的VPN协议。也正是因为这个原因,L2TP通常会结合IPsec加密套件(如下所述,类似于一种密码)来实现,以此提供安全性和隐私性。 L2TP/IPsec已经被内置于所有现代化操作系统以及具有VPN功能的设置,同时它也如PPTP一般,操作简单、可快速搭建(实际上它与PPTP使用的设备通常也是相同的)。 L2tp/IPsec会进行两次数据封装,这似乎会让速度慢下来。不过首先,它的加密解密行为发生在内核之中,...
发表于
首先,声明一下,https://getcarina.com ,是无法运行ikev2类型的的容器的,因为权限不够,无法拿到建立vpn所需的权限。 这篇文章只能在自己的vps上搭。 步骤如下: 1、拉回来镜像,ikev2-vpn-server docker pull gaomd/ikev2-vpn-server 2、启动服务端,注意--privileged参数,这个是必须的 docker run -d --name ikev2-vpn-server --privileged -p 500:500/udp -p 4500:4500/udp gaomd/ikev2-vpn-server 搞定,只需要四步即可完成相对比较难搞的ikev2的安装, 如果你要使用ikev2,只需要再往docker 容器里面传入相对应的参数,比如我想制作ios8的配置文件,给iPhone 用户使用,哪么我只需要传入 3、生成iphone客户端配置文件 docker run...
发表于
背景:链路聚合(Link Aggregation Control Protocol, or LACP) Linux下可以多端口Bongding,那么Open vSwitch也是没问题的。 假设我们用得是Dell R730机器,4个网口,捆成一个,dell的网卡名是em1,而不是eth0。 首先要装好ovs,添加个网桥 ovs-vsctl add-br ovsbr0 ovs加bonding的命令: ovs-vsctl add-bond <bridge name> <bond name> <list of interfaces> So ovs-vsctl add-bond ovsbr0 bond0 em1 em2 em3 em4 lacp=active other_...
发表于
如果我们用直接定义Open-vlan的方法不能正确启动kvm,如下图的配置: <interface type='network'> <mac address='11:22:33:44:55:66'/> <source network='ovs-network' portgroup='vlan-02'/> </interface> 这种情况有可能发生在libvirt与ovs的兼容性问题上。 那么就得使用另外一种方式了,ovs的Fake Bridge,最早的文章说过,做Docker平台的时候,容器连接到linux系统的br0网桥,然后br0网桥再连接到ovs的网桥ovsbr0,这么串联起来用。ovs的Fake Bridge也是这么个意思,在ovs的网桥ovsbr0上面再串一个带vlan信息的Fake Bridge。 用法: ovs-vsctl add-br <fake bridge> <parent bridge&...
发表于
前几篇文章,讲述了如何用Open vSwitch配置vlan,那么更进一步,如何手动给ovs配置vlan trunk呢?方法其实很简单。 首先什么事vlan trunk呢? VLAN的中继端口叫做trunk。trunk技术用在交换机之间互连,使不同VLAN通过共享链路与其它交换机中的相同VLAN通信。交换机之间互连的端口就称为trunk端口。 简单说vlan trunk就是承载了多个vlan信息的端口。 给出场景,ovs和kvm已经都配好了,无vlan的信息。 首先找出要配vlan的port,ifconfig看一下,这里kvm对应的interface是vnet0 ovs-vsctl list interface vnet0 定义trunks ovs-vsctl set port vnet0 trunks=20,30,40 查看: ovs-vsctl list port vnet0 如果这个端口既能收到带vlan tag的流量,又能收到不带vlan tag的流量(native VLAN),需要这么设置: ovs-vsctl set port vnet0...
发表于
前面有一篇: http://www.rendoumi.com/open-vswitchshe-zhi-vlande-ce-shi/ 我们描述了ovs与kvm使用vlan的文章,在kvm里是手动配置的。下面是比较进阶的过程: 一、在kvm里非手动配置vlan网卡: 假设我们kvm的网卡是eth0,基本配置是: # vi /etc/sysconfig/network-scripts/ifcfg-eth0 DEVICE=eth0 TYPE=Ethernet BOOTPROTO=none ONBOOT=yes 我们来配一个vlan id是192: # vi /etc/sysconfig/network-scripts/ifcfg-eth0.192 DEVICE=eth0.192 BOOTPROTO=none ONBOOT=yes IPADDR=192.168.1.1 PREFIX=24 NETWORK=192....
发表于
如果我们有两条上网线路可以使用,那么策略路由就是个好的选择了。 基本概念: 策略路由表(Policy routing tables): Linux 缺省有3个表, local (不能改也不能删), main, 和 default。添加路由的时候如果不指定,缺省是添加到main路由表里的。 策略路由规则(Policy routing rules): Linux 缺省也有三套路由规则,对应三个缺省路由表。 查看一下就可以看到三个表: # ip rule list 0: from all lookup local 32766: from all lookup main 32767: from all lookup default 查local表的路由规则: # ip route list table local local 10....
发表于
容器内如何运行GUI的程序呢? 一般情况下会安装tiger-vncserver和xterm,但是这个界面太简陋了。窗口也有很大问题,无标题。那么,如何在容器内运行一个完整的firefox呢? 首先安装x-windows: yum install -y tigervnc-server \ xorg-x11-server-utils \ xorg-x11-server-Xvfb \ xorg-x11-fonts-Type1 \ xorg-x11-fonts-misc \ xorg-x11-fonts-75dpi \ xorg-x11-fonts-100dpi \ xterm \ gnome-session 再安装: firefox yum install -y firefox spice-xpi 重新生成dbus uuid,这一步是必须的: /bin/dbus-uuidgen --ensure 生成密码,注意,我们这里是以root身份为例: vpncpasswd 编辑xstartup文件: # vi /root/.vnc/xstartup #!/bin/sh [ -r /etc/sysconfig/i18n ] &&...
发表于
转自:http://140.120.15.179/Presentation/20150120/index.html Virtual networking: TUN/TAP, MacVLAN, and MacVTap Purpose Macvtap is a new device driver meant to simplify virtualized bridged networking. It replaces the combination of the tun/tap and bridge drivers with a single module based on the macvlan device...