Chinaunix首页 | 论坛 | 博客
  • 博客访问: 9258687
  • 博文数量: 1669
  • 博客积分: 16831
  • 博客等级: 上将
  • 技术积分: 12594
  • 用 户 组: 普通用户
  • 注册时间: 2011-02-25 07:23
个人简介

柔中带刚,刚中带柔,淫荡中富含柔和,刚猛中荡漾风骚,无坚不摧,无孔不入!

文章分类

全部博文(1669)

文章存档

2023年(4)

2022年(1)

2021年(10)

2020年(24)

2019年(4)

2018年(19)

2017年(66)

2016年(60)

2015年(49)

2014年(201)

2013年(221)

2012年(638)

2011年(372)

分类: 云计算

2017-02-14 14:45:22

深入系统虚拟机之 vRouter


1   vRouter(虚拟路由器)简述

CloudStack作为一个虚拟化平台,提供了计算资源、网络资源和存储资源的虚拟化管理和使用。在网络虚拟化上,vRouter起到了至关紧要的作用。几乎所有虚拟网络功能,都是vRouter来实现的,比如:IPAM (DHCP)、DNS、NAT、Source NAT、防火墙、端口转发、负载均衡、VPN等等。也有些功能可以借助外部设备来实现。

每个来宾网络(客户网络)对应至少一个vRouter,当启动某个网络的第一台客户虚拟机时,vRouter会自动创建出来,若一个客户网络长时间不存在启动的虚拟机,该网络的vRouter会自动关闭。


2   操作系统

CloudStack的vRouter虚拟机使用了Debian 6.0操作系统 2.6.32内核,为了节省开销,仅安装系统所需的程序包,如:xen、vmware和kvm工具,haproxy、iptables、ipsec等网络包,使用最新版本jre保证安全和速度。默认情况下,只打开了3922端口,且只能通过hypervisor服务器ssh上去。


3   vRouter网卡介绍

vRouter有三个网络,分别是外网,来宾网络(客户网络)和链路本地网络。

外网的作用是提供一个外网访问CloudStack内部环境的门户;来宾网络保证外部访问通过vRouter中转后能够到达内部的虚拟机,也为客户虚拟机提供了DHCP和DNS功能;链路本地网络用于内部的一些通信。


4   vRouter提供的主要功能介绍:

CloudStack提供了丰富的网络功能,配置起来却极其容易,只需要从UI简单点击就可以完成,这些功能都是通过vRouter实现的。

点击【网络】,选择网络,然后点击【IP地址】,选择外网IP。然后就可以进行这些网络功能的配置了。


  • 防火墙

默认情况下,vRouter拒绝外网的一切访问,所以启动任何网络功能,都需要先配置防火墙。点击【防火墙】,可以添加外部访问权限。比如下面配置:

源CIDR:  0.0.0.0/24

协议:  TCP

起始端口:  500

结束端口:  800

意思是允许所有公网IP,通过TCP协议访问vRouter该IP下的500-800端口。

该功能是通过Linux iptables实现,UI配置后,vRouter内部加入相应的ip包过滤规则,使得这些访问得到允许。


  • 端口转发

端口转发功能,可以让外网直接连接到内网某个虚拟机的指定端口。比如:

点击【端口转发】,添加新的规则:

专用端口:  22

公用端口:  622

协议:  TCP

指定虚机:  i-2-188-VM

则可以通过ssh该公网IP的622端口,直接ssh连接到内部环境虚拟机i-2-188-VM上。

该功能也是通过iptables实现。前面提过vRouter可以同时连接外网和客户网络,从UI上添加一条端口转发规则,vRouter的iptables同时添加该转发规则,从而实现了端口转发功能。


  • 负载均衡

负载均衡功能,可以把外网的访问,分布到多台装有相同服务的内网虚拟机上,扩展服务器的带宽、增加吞吐量、加强网络数据处理能力、提高网络的灵活性和可用性。比如:

点击【负载均衡】,添加如下规则:

名称:  测试1

公用端口:  522

专用端口:  22

算法:  轮询算法

然后添加2台虚拟机(linux可以ssh访问22端口)进去,这样,通过ssh访问该IP地址的522端口,可以轮询访问到2台虚拟机。

负载均衡功能是通过haproxy实现,UI上添加规则的同时,会修改vRouter内部haproxy的配置文件。


  • VPN

CloudStack提供了虚拟专用网络(Virtual Private Network)功能,可以帮助远程用户、公司分支机构、商业伙伴及供应商同公司的内部网建立可信的安全连接,并保证数据的安全传输。

点击【网络】,选择网络,然后点击【IP地址】,选择外网IP;

点击启动VPN按键;确认点击“是”;

这样该外网IP的VPN就启动了,可以看到,除了详细信息、配置,多出来一个VPN标签,里面记录了IP地址、共享密钥等信息。然后添加该连接的用户,就可以通过这个VPN连接访问内网的虚机了。

CloudStack的VPN功能使用了IPSec技术,当启动VPN服务后,管理服务器会去启动vRouter内的IPSec服务,并进行相关的配置,上文所提到的外网IP实际就是vRouter的IP地址,所有VPN连接都是以vRouter为中转连到内部环境虚拟机的。


  • DNS DHCP

客户虚拟机的DNS DHCP Server,都是vRouter内部的Dnsmasq工具实现的。当vRouter创建、启动或者有新虚拟机创建时,系统会动态从数据库加载Dnsmasq配置信息。


5   vRouter相关的全局配置

router.check.interval 报告冗余路由器状态的间隔时间(秒)
router.cpu.mhz 虚拟路由器的缺省CPU速度(MHz)
router.extra.public.nics 为虚拟路由器指定额外的公用网卡(最高5)
router.stats.interval 报告路由器统计间隔时间(秒)
router.template.id 模板的缺省ID
    分享到:
This entry was posted in  and tagged , , . Bookmark the .

11 Responses to 深入系统虚拟机之 vRouter

  1. 宋祁 says:

    不知博主有没兴趣放个配置(视频)教程上来,对于高级网络设置看他们的英文文档还是有些晦涩

    •  says:

      I want to send you an award for most helpful inertent writer.

  2. 李学辉 says:

    近期正在准备下个月18号的技术沙龙,视频近期无法准备了.但高级网络部署的这部分内容将会在技术沙龙上介绍.

    •  says:

      Thinking like that is ralely impressive

    •  says:

      Thinking like that is really ipmrsesive

  3. carlcarl says:

    推荐這篇文章,之前在設定vRouter的port forwarding不知道要先把防火牆的port先開起來,卡超久才知道要先做這個步驟orz。

    •  says:

      You’ve impersesd us all with that posting!

    •  says:

      I’m not easily impressed but you’ve done it with that ptiosng.

  4. wei.wang says:

    楼主:
    我遇到一个问题,我有两台kvm主机,host1和host2,vrouter创建在了host1上,但是我在host2上创建的虚拟机无法从vrouter获得来宾ip地址,只是得到了一个169.254.x.x的地址,我的vrouter的ip地址是192.168.1.1,按道理应该获得192.168.x.x的ip。在Host1上创建的虚拟机就没有问题,vrouter的外部ip的防火墙也设置了tcp 1~65535, udp 1-65535,icpm -1 -1, 0.0.0.0/0的规则,请帮个忙啊,谢谢

    • cloudstack爱好者 says:

      我也有很多其他问题。

      • cloudstack爱好者 says:

        同样的问题

阅读(3437) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~