每个桉树网络模式都有其自己的一套基础设施的需求、配置参数和注意事项,这些在下面的章节中会详细描述。
9.6.1SYSTEM模式
桉树使用SYSTEM模式的时需要做的配置非常少,大多是在虚拟网络方面的方式上。
需求
• 与CC通信的节点的以太网设备必须是通过网桥的。
• 必须有一个已配置好切处于运行中的dhcp服务。
限制
• 没有 Elastic IPs
• 没有 Security Groups
• 实例间没有network isolation
配置
eucalyptus.conf中的选项必须正确地配置在SYSTEM模式下,具体配置如下:
在前端节点中配置:
VNET_MODE="SYSTEM"
在每个桉树节点控制器上eucalyptus.conf文件必须确保VNET_BRIDGE参数被设置为连接到你的本地网络的网桥的名称。
VNET_BRIDGE="xenbr0"
注意,你的前端机器并不需要任何桥[D1]
配置示例
对于SYSTEM模式,我们使用8.1中的配置,在本例中,节点有一个名为xenbr0的桥。
一下为eucalyptus.conf中的参数配置:
前端机器配置:
VNET_MODE="SYSTEM"
节点机器配置:
VNET_BRIDGE="xenbr0"VNET_MODE="SYSTEM"
9.6..2. STATIC模式
STATIC模式下,桉树管理虚拟机的IP地址分配通过每个虚拟机一个静态条目来维护其自身的DHCP server。[D2]
需求
• 与CC通信的节点的以太网设备必须是桥接的。
• 桉树使用的ip地址范围必须可用。
• 在子网络上没有预先存在的DHCP服务器(或者,现有的DHCP服务器必须配置成非服务器实例)
• 前端必须安装与ISCDHCPDaemon 3.0版本兼容DHCPserver(但不能配置或运行)。
限制
• 没有 Elastic IPs
• 没有 SecurityGroups
• 没有实体间的网络隔离
配置
在'eucalyptus.conf'必须正确的配置STATIC 模式,具体配置如下所示:
在前端(以#注释掉的选项可能不取决于您的安装需求,详细见如下)
VNET_MODE="STATIC" VNET_PRIVINTERFACE VNET_DHCPDAEMON
#VNET_DHCPUSER VNET_SUBNETVNET_NETMASK VNET_BROADCAST VNET_ROUTER VNET_DNS VNET_MACMAP
在每个节点上
VNET_MODE="STATIC"VNET_BRIDGE
桉树管理员必须正确配置前端机器的“eucalyptus.conf”文件中的网络设备,该网络设备做为桉树节点连接到相同物理网络的网络设备。[D3]
VNET_PRIVINTERFACE="eth0"
关于桉树配置DHCP服务,详见8.1.4章节:关于DHCP服务器。
同样有必要去指示集群控制器CC和节点控制器NC正在使用的桉树。要做到这一点,你必须配置VNET_SUBNET等参数,如8.1.3章节:关于VNET_选项中描述的那样。(注意,STATIC模式下不能使用VNET_ADDRESSPERNET配置)。此外,你必须指定你的子网路由(VNET_ROUTER),你必须提供一个静态MAC地址/IP地址的列表(VNET_MACMAP),具体为如下配置例子所示:
配置示例
对于STATIC模式例子,参见图8.1.对于SYSTEM模式,节点有一个名为xenbr0的桥。下面的173.205.188.133-173.205.188.135段的ip地址对于桉树节点中的实例可用。
前端机器配置
VNET_DHCPDAEMON="/usr/sbin/dhcpd"
VNET_PRIVINTERFACE="eth0"VNET_MODE="STATIC"
VNET_SUBNET="173.205.188.0"VNET_NETMASK="255.255.255.0"
VNET_BROADCAST="173.205.188.255" VNET_ROUTER="173.205.188.1"
VNET_DNS="173.205.188.129"VNET_MACMAP="AA:DD:11:CE:FF:ED=173.205.188.133
AA:DD:11:CE:FF:EE=173.205.188.134AA:DD:11:CE:FF:EF=173.205.188.135"
节点机器配置:
VNET_BRIDGE="xenbr0"
VNET_MODE="STATIC"
9.6.3. MANAGED模式
在MANAGED模式下,桉树管理虚拟机实例的本地网络,提供所有桉树当前支持的网络特征,包括虚拟机的网络隔离,security groups, and elastic IPs。注意,在MANAGED模式,每个安全组需要一个桉树控制和维护的单独的VLAN。
需求
• 有一个可用的私有子网络,该网络是完全没有使用的(192.168...,10....., 其他)
• 网络必须“VLAN clean”,意味着桉树组件连接的所有交换机端口允许接收和转发VLAN标签的数据包。
• 你的前端集群控制器CC没有运行防火墙或者您的防火墙兼容桉树执行安全组工作时的动态变化(注意:桉树会在启动时刷新 'filter' and 'nat'表)。
• 桉树必须有一个可用的公网ip范围。
• 前端必须已经安装与ISCDHCP DAEMON版本3.0.x兼容的DHCPserver daemon版本
限制
• 无
测试VLAN-clean
管理员必须校验本地网络中运行的桉树节点之间是VLAN clean的(允许接收和转发VLAN标签数据包)执行如下测试进行校验:
首先,从你计划使用桉树的私有子网络中选择两个ip地址,(在下面的例子中,这两个ip地址为:192.168.1.1和192.168.1.2)。接下来,在前端机器上,选择本地网络接口(做为eucalyptus.conf中配置的VNET_PRIVINTERFACE)并运行:
[root@clc]#vconfigadd <interface> 10
[root@clc]#ifconfig<interface>.10192.168.1.1 up
接下来,在节点机器上,选择本地网络接口(在eucalyptus.conf 中配置的VNET_PRIVINTERFACE)并运行。
[root@node1]#vconfigadd <interface> 10 [root@node1]# ifconfig<interface>.10 192.168.1.2up
执行ping命令来验证接口的配置是否正确
在前端机器执行:
[root@clc]#ping192.168.1.2
在节点机器上执行:
[root@node1]#ping192.168.1.1
如果VLAN clean测试失败,那么你的交换机需要配置为转发VLAN标签的数据包(如果是一个受管的交换机,请参考交换机文档来具体操作)。
配置
在eucalyptus.conf文件中必须正确的配置MANAGED模式,具体配置如下:
在前端(以#注释掉的选项可能不取决于您的安装需求,详细见如下:)
VNET_MODE="MANAGED"VNET_PUBINTERFACE VNET_PRIVINTERFACE VNET_DHCPDAEMON
#VNET_DHCPUSER VNET_SUBNETVNET_NETMASK VNET_DNS VNET_ADDRSPERNET VNET_PUBLICIPS
#VNET_CLOUDIP
#VNET_LOCALIP
在每个具体节点上:
VNET_MODE="MANAGED"VNET_PUBINTERFACE VNET_PRIVINTERFACE
桉树管理员必须在前端机器的eucalyptus.conf文件中配置合适的网络设备,具体配置如下:
NET_PUBINTERFACE="eth0"
接下来,你需要指定在网络上被其它节点共享的网络设备。该设备可能是eth0,或eth1,具体配置如下:
VNET_PRIVINTERFACE="eth1"
节点必须正确配置VNET_PUBINTERFACE选项。例如,与当前的Xen版本(当你的节点的Xenbridge为eth0),该参数通常是:
VNET_PUBINTERFACE="eth0"
关于桉树配置DHCPserver,参照8.1.4章节:关于DHCPserver
同样需要去告诉桉树未使用的私有网络配置,要做到这点,你需要配置
VNET_SUBNET,VNET_ADDRESSPERNET等,具体参见8.1.3章节:关于VNET_属性。
注意事项
在MANAGED模式下,桉树刷新前端机器的IP的'filter'和 'nat'表规则。接下来,它会设置默认的策略从'FORWARD'改为'DROP'。[D4] 在运行阶段,前端会从FORWARD链中添加和删除规则,为用户从激活的安全组中添加删除ress规则[D5] 。此外,nat表中将配置规则允许虚拟机使用伪装的ip来访问外部网络,并允许在nat表中动态添加/删除规则为用户在启动或运行时给虚拟机实例分配/取消公网ip。如果管理员想定义一些规则应用到前端机器上,他们必须在桉树启动前或桉树没运行的时候[D6] 执行如下程序
警告!如果管理员选择执行此操作去定义特定的IP表规则,当桉树启动时会加载该规则,有时候可能在无意中会导致桉树虚拟机联网失败。建议当你想这样做的时候,必须确保它不会干预到桉树的操作。
[root@clc]#iptables-save \
>$EUCALYPTUS/var/run/eucalyptus/net/iptables-preload
配置示例
对于我们的MANAGED模式的例子,我们使用图8.2中的网络配置来配置此模式,我们需要为我们的实例选择一个未被使用的私有网络,由于10.0.1.0/24子网正在使用,我们指定一个备用的子网192.168.0.0/16。
以下ip地址可供桉树实例使用:173.205.188.131-173.205.188.150[D7]
在前端机器上配置:
VNET_DHCPDAEMON="/usr/sbin/dhcpd"VNET_PUBINTERFACE="eth0" VNET_PRIVINTERFACE="eth1" VNET_MODE="MANAGED"VNET_SUBNET="192.168.0.0" VNET_NETMASK="255.255.0.0"VNET_DNS="173.205.188.129"VNET_ADDRSPERNET="32" VNET_PUBLICIPS="173.205.188.131-173.205.188.150"
在节点机器上配置:
VNET_MODE="MANAGED"
VNET_PUBINTERFACE="eth0"
请注意,在我们的例子中有65536个可用地址(192.168.0.0/16)。如果我们按照每个网络的地址数量来划分(设置32个以下),我们会计算出任意时间下同时使用的最大数量的网络数(65536/32=2048)。这直接关联到桉树中可能存在的安全组的最大数量。在这个例子中,同一安全组的最大数量的实例数为29(少于网络地址数32,广播地址和路由地址)。
9.6.4. MANAGED-NOVLAN模式
这种模式下,桉树将全面管理本地虚拟机实例的网络,并提供桉树目前支持的所有网络功能,包括安全组,elastic IP等,但它不提供虚拟机的网络隔离功能。
需求
• 有一个可用的私有子网络,该网络是完全没有使用的(192.168...,10....., 其他)
• 你的前端集群控制器CC没有运行防火墙或者您的防火墙兼容桉树执行安全组工作时的动态变化(注意:桉树会在启动时刷新 'filter' and 'nat'表)。
• 桉树必须有一个可用的公网ip范围。
• 前端必须已经安装与ISCDHCP DAEMON版本3.0.x兼容的DHCPserver daemon版本
限制
• 没有虚拟机的网络隔离
配置
在eucalyptus.conf文件中必须正确的配置MANAGED-NOVLAN模式,具体配置如下:
对于前端机器的配置,请参见MANAGED模式中前端机器的配置,MANAGED模式和MANAGED-NOVLAN模式的前端配置是相同的。
在每个节点:
VNET_MODE="MANAGED-NOVLAN"VNETBRIDGE
节点必须正确配置VNET_BRIDGE属性
VNET_BRIDGE="xenbr0"
注意事项
参照8.2.3章节中MANAGED模式中注意事项章节
配置示例
在这个例子中,我们使用的网络配置如之前图8.2所示,本例中,节点的桥名称为xenbr0。
前端机器配置:
VNET_DHCPDAEMON="/usr/sbin/dhcpd"
VNET_PUBINTERFACE="eth0"
VNET_PRIVINTERFACE="eth1" VNET_MODE="MANAGED-NOVLAN"
VNET_SUBNET="192.168.0.0"
VNET_NETMASK="255.255.0.0" VNET_DNS="173.205.188.129"
VNET_ADDRSPERNET="32"VNET_PUBLICIPS="173.205.188.131-173.205.188.150"
每个节点配置:
VNET_MODE="MANAGED-NOVLAN"
VNET_BRIDGE="xenbr0"
9.6.5 多集群网络
桉树企业版支持在一个单一桉树云上配置多个集群。本节主要介绍桉树如何管理网络方面的多集群设置。首先,对于SYSTEM模式和STATIC模式,桉树并不执行任何一个多集群搭建的特殊配置。在MANAGED模式和MANAGED-NOVLAN模式下,桉树会在你的集群中建立两个通道层,使虚拟机在同一个安全组,但分布在集群中(可能每个机器都有自己的广播域),相互之间可以通信。我们使用vtun包来处理在集群间的两个隧道的所有层。[D8]
大多数情况下,如果每个集群控制器都已安装vtun包,集群控制器会自动处理多集群隧道。
注意事项
根据网络模式和网络拓扑结构的不同,桉树的配置也有不同的注意事项:
MANAGED模式–在正常操作过程中,你会发现许多隧道接口被创建和销毁由于虚拟的网络创建和销毁。
MANAGED-NOVLAN模式-你的集群控制器需要配置一个桥来作为其主要的公共接口(VNET_PUBINTERFACE)以便vtun隧道可以在该模式下运行。
MANAGED 和 MANAGED-NOVLAN模式-集群控制器试图在启动时去自动发现本地ip地址的列表,但是如果用于注册到集群控制器的ip不是本地ip,你可以在eucalyptus.conf中设置'VNET_LOCALIP变量来覆盖集群控制器的self的概念。
MANAGED 和 MANAGED-NOVLAN 模式-不要在同一广播域隧道中运行两个CC,这有可能导致广播风暴,因为隧道开始在本地网络上循环的转发数据包。
如果你想禁用隧道,可以在eucalyptus.conf中设置'VNET_LOCALIP=0.0.0.0'。
9.6.6. 不同机器上的网络配置组件
如果你的集群控制器CC和云控制器CLC是在不同的机器上运行,需要在CC的配置文件中设置如下值:
VNET_CLOUDIP="<ip-of-cloud-controller>"
如果你正在运行多集群,你可以明确指定用于注册CLC的CC的ip地址。你可以在每个CC的配置文件中设置VNET_LOCALIP变量的值。
VNET_LOCALIP="<ip-of-cluster-controller>"
如果VNET_LOCALIP值没有设置,CC会尝试为其自动分配一个。