问答题
阅读以下服务器负载均衡的技术说明,根据要求回答问题1~问题7。
{{B}}[说明]{{/B}}
某企业内部网(网络域名为test.com)由3台Linux服务器提供服务,其中DNS、FTP、SMTP和POP3这4种服务由一台服务器共同承担,Web服务由两台Linux服务器采用负载均衡技术承担。
如图3-8所示的是基于硬件的负载均衡方案,其中WSD Pro被称为导向器,通过导向器的调度,实现服务的负载均衡。主机VofirWl.test.com、www2.test.com、ns.test.com和WSDPro都配置了双网卡,各网卡IP地址配置见图3-8。
问答题
采用循环DNS配置可以实现简单的具有负载均衡功能的Web服务。请用300字以内的文字简要说明采用循环DNS实现均衡负载的工作原理及其具有哪些优缺点?
【正确答案】
【答案解析】工作原理:对于站点www.test.com,在DNS服务器中同时拥有两个不同的IP地址。这些IP地址分别代表着集群中不同的机器,并在逻辑上映射到同一个站点名。例如,当第1个请求到达DNS服务器时,返回的是第1台Web服务器的IP地址192.168.1.1;当第2个请求到达时,返回的是第2台Web服务器的IP地址192.168.1.2;当第3个请求到达时,第1台Web服务器的IP地址将被再次返回,循环调用 优点:①易于实现;②成本低廉等 缺点:①不能区分服务器的差异,不能反映服务器当前运行状态(负载量的大小);或者不能根据负载情况实现动态调度;②如果一个服务器发生故障不可访问,会造成混乱,一些人能访问www服务,另一些人则不能访问 [要点解析] 网络工程师经常会面对服务器性能不足的问题,尤其是网络系统中的核心资源服务器,其数据流量和计算强度之大,使得单一计算机无法承担。可以部署多台Linux服务器组成服务器集群,采用负载均衡技术提供服务。Web应用服务器集群系统,是由一群同时运行同一个Web应用的服务器组成的集群系统。为了均衡集群服务器的负载,达到优化系统性能的目的,集群服务器将众多的访问请求,分散到系统中的不同节点进行处理。从而实现了更高的有效性和稳定性。 在现有众多的均衡服务器负载的方法中,广泛研究并使用的主要方法有循环DNS技术和负载均衡器技术。其中,采用循环DNS(Round-Robin Domain Name System,RR-DNS)配置可以实现简单的具有负载均衡功能的Web服务,即为了利用DNS均衡服务器的负载,对于站点www.test.com,在DNS服务器中同时拥有了两个不同的IP地址。这些IP地址分别代表着集群中不同的机器,并在逻辑上映射到同一个站点名。例如,当第1个请求到达DNS服务器时,返回的是第1台Web服务器的IP地址192.168.1.10;当第2个请求到达时,返回的是第2台Web服务器的IP地址192.168.1.20;当第3个请求到达时,第1台Web服务器的IP地址将被再次返回,循环调用。 利用循环DNS技术,对于某一个站点的所有请求将被平均分配到集群中的服务器上。因此在这种技术中,集群中的所有的节点对于网络来说都是可见的。另外,为了支持循环DNS机制,系统管理员只需要在DNS服务器上做一些改动,而且在许多新版本的DNS服务器上已增加了该功能。而对于Web应用来说,不需要对代码做任何的修改。因此循环DNS技术的最大的优点在于易于实现和代价低廉。但这种基于软件的负载均衡方法主要存在两点不足:不实时支持服务器间的关联和不具有高可靠性。 ①不支持服务器间的关联(一致性):服务器一致性是负载均衡系统所应具备的一种能力,通过它,系统可以根据会话信息判别是属于服务器端的,还是属于底层数据库级别的,继而将用户的请求导向相应的服务器。而循环DNS机制则不具备这种智能化的特性。它是通过诸如Cookie、隐藏域、重写URL等方法进行判断的。当用户通过上述基于文本标志的方法与服务器建立连接之后,其所有的后续访问均是连接到同一个服务器上的。而问题在于,服务器的IP是被浏览器暂时存放在缓存中的,一旦记录过期,则需要重新建立连接,那么同一个用户的请求很可能被不同的服务器进行处理,则先前的所有会话信息将会丢失。另外,循环DNS机制不能实际反映服务器的CPU、内存和网络负荷等情况,其作用是有限的。 ②不具有高可靠性:在本案例中,假设其中一台Web服务器停机或损坏了,而DNS依然使用循环解析将该Web服务器的IP地址提供给客户,则会导致客户无法正常访问该Web站点的现象。解决该问题的一种方法是,采用比较先进的路由器,通过每隔一定的时间间隔对每个节点进行检查,如果有异常情况的节点,则将其从列表中删除。由于在Internet上,ISPs将众多的DNS存放在缓存中,以节省访问时间,因此,DNS的更新就会变得非常缓慢,以至于有的用户可能会访问一些已经不存在的站点,或者一些新的站点得不到访问。所以,尽管循环DNS技术在一定程度上解决了负载均衡问题,但这种状况的改变并不是十分乐观和有效的。 由以上分析可知,对于本案例采用循环DNS实现均衡负载存在的主要问题在于:不能区分服务器的差异,不能反映服务器当前运行状态(负载量的大小),即不能根据负载情况实现动态调度;如果一个服务器发生故障不可访问,会造成混乱,一些人能访问WWW服务,另一些人则不能访问。
问答题
图3-8基于WSDPro导向器的负载均衡方案具有哪些优缺点?
【正确答案】
【答案解析】优点:①对外服务的一致性;②通过故障恢复机制获得高可靠性;③可统计流量等 缺点:①费用较高;②结构及原理较复杂;③存在单点故障等 [要点解析] 负载均衡器(WSD Pro,也称为导向器)通过虚拟IP地址方法,解决了循环DNS技术所面临的许多问题。使用了负载均衡器集群系统,对于应用用户来说,就像是具有一个IP地址的单一服务器的效果。该IP地址是虚拟的,它映射了集群中的每一台机器的地址。 当用户请求到达负载均衡器时,它会重写该请求的头文件,并将其指定到集群中的机器上。如果某台服务器从集群中移除了,请求将不会再发往这台已不存在的服务器。因为所有的服务器对于应用用户来说都是同一个IP地址,即使集群中的某个节点被移除了,该地址也不会发生变化。对于Internet上缓存的 DNS条目问题,当返回一个应答时,客户端看到的只是从负载均衡器上所返回的结果。也就是说,客户端操作的对象是负载均衡器,对于其更后端的操作,对客户端来讲,是完全透明的。 负载均衡器(WSD Pro)具有以下优点。 ①对外服务的一致性:负载均衡器读取客户端发出的每一个请求中所包含的Cookies或URL解释。基于所读出的这些信息,负载均衡器就可以重写报头并将请求发往集群中合适的节点上,该节点维护着相应客户端请求的会话信息。在HTTP通信中,负载均衡器可以提供服务器一致性,但并不是通过一个安全的途径(例如:HTTPS)来提供这种服务。当消息被加密后(SSL),负载均衡器就不能读出隐藏在其中的会话信息了。 ②通过故障恢复机制可获得高可靠性:故障恢复发生在当集群中某个节点不能处理请求,需将请求重新导向到其他节点时,主要有以下两种故障恢复技术。 ● 请求级故障恢复:当集群中的一个节点不能处理请求时(通常是由于死机),请求被发送到其他节点。当然,在导向到其他节点的同时,保存在原节点上的会话信息将会丢失。 ● 透明会话故障恢复:当一个引用失败后,负载均衡器会将其发送到集群中其他的节点上,以完成操作,这一点对用户来说是透明的。由于透明会话故障恢复需要节点具备相应的操作信息,因此 为了实现该功能,集群中的所有节点必须具有公共存储区域或通用数据库,存储会话信息数据,以提供每个节点在进行单独进程会话故障恢复时所需要的操作信息。 ③可统计流量:既然所有的Web应用请求都必须经过负载均衡系统,那么系统就可以确定活动会话的数量,在任何实例访问中的活动会话的数目、应答的次数、高峰负载次数,以及在高峰期和低谷期的会话的数目,还有其他更多的。所有的这些统计信息都可以被很好地用来调整整个系统的性能。 负载均衡器的缺点在于费用较高、结构及原理较复杂、存在单点故障等。由于所有的请求均是通过一个单一的硬件负载均衡器来传递的,因此,负载均衡器上的任何故障都将导致整个站点崩溃。
问答题
Linux操作系统安装后,其默认的主机名是localhost。若要将提供DNS、FTP、SMTP和POP3这4种服务的Linux服务器主机名修改为ns.test.com,则需要进行以下3个操作步骤。
①使用“hostnamens.test.com”命令修改当前主机名。
②修改/etc/sysconfig/network配置文件中的HOSTNAME的值,该文件修改后的相关项信息如下:
NETWORKING={{U}} (1) {{/U}}
HOSTNAME=ns.test.com
③修改本机的域名解析文件/etc/hosts。修改后的/etc/hosts文件如下:
127.0.0.1 localhost.localdomain localhost
127.0.0.1 ns.test.com.localdomain {{U}} (2) {{/U}}
【正确答案】
【答案解析】(1)yes或1 (2)ns.test.com [要点解析] Linux操作系统安装后,其默认的主机名是localhost。若要将提供DNS、FTP、SMTP和POP34种服务的Linux服务器主机名修改为ns.test.com,则需要以下3个步骤。 ①使用“hostname new-hostname”命令修改当前主机名,即在该Linux服务器中输入“hostname ns.test.com”。 ②修改/etc/sysconfig/network配置文件中的HOSTNAME的值,以便下次重启时使用新的主机名。 HOSTNAME项的格式为“HOSTNAME=new-hostname.domainname”。换言之,打开该Linux服务器的/etc/sysconfig/network文件,修改“HOSTNAME=ns.test.com”。修改后的/etc/sysconfig/network文件相关项信息如下: NETWORKING=yes HOSTNAME=ns.test.com ③修改本机的域名解析文件/etc/hosts,使得本机的应用程序能够解析新的主机名。修改后的/etc/hosts文件如下: 127.0.0.1 localhost.localdomain localhost 127.0.0.1 ns.test.com.localdomain ns.test.com 其中,环回地址127.0.0.1也可用本机的网络地址替换。
问答题
图3-8中的各个服务器必须进行恰当的配置。主机ns.test.com的/etc/sysconfig/network文件部分配置如下:
FORWARD_IPV4={{U}} (3) {{/U}}
HOSTNAME=ns.test.com
DOMAINNAME={{U}} (4) {{/U}}
GATEWAY={{U}} (5) {{/U}}
GATEWAYDEV=eth0
将以上文件(3)~(5)空缺处的内容填写完整,完成相关文件的配置。
【正确答案】
【答案解析】(3)false(0或no) (4)test.com (5)192.168.1.10 [要点解析] Linux内核默认内置了IP伪装功能,它通过装载一些相应模块,并设置数据包过滤规则来完成相应的 IP转发功能。本案例中,无须启用IP转发功能,因此需将/etc/sysconfig/network文件中的FORWARD IPv4值设置为no(或false、0)。 由题干关键信息“某企业内部网(网络域名为test.com)……”、HOSTNAME项的格式及“HOSTNAME=ns.test.com”可知,该Linux服务器的域名是“test.com”,即(4)空缺处所填写的内容是“test.com”。 由于主机ns.test.com的“GATEWAYDEV=eth0”,结合图3-8的拓扑结构可知,主机ns.test.com的网关地址是导向器(WSD Pro)内网端口的IP地址,即(5)空缺处所填写的网关地址是“192.168.1.10”。
问答题
请将主机ns.test.com的/etc/sysconfig/network-scripts/ifcfg-eth0文件的(6)~(7)空缺处的配置内容填写完整,请回答相关问题:
DEVICE=eth0
IPADDR={{U}} (6) {{/U}}
NETMASK=255.255.255.0
NETWORK={{U}} (7) {{/U}}
BROADCAST=255.255.255.255
ONBOOT=yes
若将“BROADCAST=255.255.255.255”语句修改为“BROADCAST=192.168.1.255”,则对网络有什么影响? (请简要说明理由)
【正确答案】
【答案解析】(6)192.168.1.3 (7)192.168.1.0 采用直接广播地址的广播分组可能会被路由器转发,外部网络用户可截获该广播分组,降低了网络的安全性 [要点解析] 在图3-8中主机ns.test.com一个完整的/etc/sysconfig/network-scripts/ifcfg-eth0文件清单如下: DEVICE=eth0 /*指明网卡的名称*/ IPADDR=192.168.1.3 /*指明分配给网卡的IP地址*/ NETMASK=255.255.255.0 /*指明子网掩码,该子网有254个可用的IP地址*/ NETWORK=192.168.1.0 /*指明网络地址*/ BROADCAST=255.255.255.255 /*指明直接广播地址*/ ONBOOT=yes /*指明在系统启动时是否激活网卡*/ BOOTPROTO=none /*指明是否使用bootp协议*/ TCP/IP协议规定,将IP地址中表达主机部分的各位全部设置为“1”的IP地址称为该主机的直接广播地址。对于本试题IP地址192.168.1.3/24的直接广播地址的二进制数形式为11000000.10101000. 00000001.11111111,其相应的十进制数形式为192.168.1.255。由此可见,直接广播地址包含一个有效的网络号和主机号,可在两个子网之间的任何一个节点向其他任何网络进行直接广播,但其有两个缺点:一个是需要知道信宿网络的网络号;另一个是采用直接广播地址的广播分组可能会被路由器转发,即外部网络的用户将会截取到这种广播分组,从而降低了网络的安全性。 如果只需在本子网内部进行信息广播,但又不知道本子网的网络号时,则可利用将整个IP地址二进制比特位全部设置为“1”的本地广播地址,即255.255.255.255。本地广播地址用于本子网发送广播信息,即本地网络地址相同的主机均能收到其所在子网的广播包,其相应的广播分组不会被路由器转发。 一旦配置完Linux网关计算机的网络配置文件,应该使用/etc/rc.d/init.d/network restart命令来重新启动网络,以使其修改生效。
问答题
假定提供Web服务的两台Linux服务器IP地址分别为192.168.1.10和192.168.1.20。为了使用DNS循环机制,由主机名www.test.com对外提供一致的服务,需要在DNS服务器的test.com区域文件中增加下列内容:
www1 IN {{U}}(8) {{/U}}192.168.1.10
www2 IN {{U}}(8) {{/U}}192.168.1.20
www IN {{U}}(9) {{/U}}www1
www IN {{U}}(9) {{/U}} www2
通过DNS的循环机制,客户访问主机www.test.com时,会依次访问IP地址为192.168.1.10和 192.168.1.20的WWW主机。请将以上文件(8)~(9)空缺处的内容填写完整,完成对test.com文件的配置。
【正确答案】
【答案解析】(8)A (9)CNAME [要点解析] DNS数据库包括DNS服务器所使用的一个或多个区域文件,而每个区域都拥有一组结构化的资源记录。主机地址(A)资源记录用于将某个DNS域名映射到其所对应的IP地址。别名(CNAME)资源记录也称之为规范名资源记录,该资源记录允许将多个域名映射到同一台服务器上。 由于提供Web服务的两台Linux服务器IP地址分别为192.168.1.10和192.168.1.20,为了使用DNS循环机制,并且由主机名www.test.com对外提供一致的服务,则需要在DNS服务器的test.com区域文件中增加如下内容: www1 IN A 192.168.1.10 www2 IN A 192.168.1.20 www IN CNAME www1 www IN CNAME www2 通过DNS的循环机制,客户访问主机www.test.com时,将会依次访问IP地址为192.168.1.10和 192.168.1.20的WWW主机。
问答题
在图3-8中,采用两台WWW服务器进行负载均衡,将涉及到一个数据同步的问题。为避免数据分发和同步占用了Web服务器的带宽,图3-8中采取了哪些措施?该措施对图3-8网络的安全有什么影响?
【正确答案】
【答案解析】图3-8中左边的交换机组成192.168.2.0NFS专用局域网 该配置将使NFS文件系统对外界不可用,从而增强了服务器的安全性 [要点解析] 网络文件系统(Network File System,NFS)是一种将网络中某台计算机中的分区(或目录)经网络挂载到本地系统的一种机制。通过对网络文件系统的支持,用户可以在本地系统上像操作本地分区(或目录)一样来对远程主机的共享分区(目录)进行操作。安装Linux操作系统的计算机既可以是NFS服务器也可以是NFS客户,这意味着它可以把文件系统导出给其他系统,也可以挂载从其他机器上导入的文件系统。 在图3-8中,采用两台WWW服务器进行负载均衡,将涉及到一个数据同步的问题。例如,用户在第1次访问该企业Web站点时,访问的是wwwl.test.com服务器,此时用户注册了一个会员。假设当该用户第2次访问该企业Web站点时,因为负载均衡器的作用,访问的是www2.test.com服务器。此时,该用户则需重新注册会员信息。 在图3-8中NFS系统的作用是存储两台Web服务器的公用或共享数据和服务脚本,而两台Web服务器只负责数据处理的功能,调用诸如会员信息等共享数据时都发生在NFS系统上,从而保证Web服务器的数据同步(或一致性),即保证不管访问哪台Web服务器,都调用相同的用户数据,使得用户感觉不到系统中存在多台Web服务器。 NFS服务器需要向两台Web服务器(www1和www2)分发数据文件。为避免分发和同步占用了Web服务器的带宽,图3-8中左边的交换机组成192.168.2.0 NFS专用局域网,为实现服务器群集功能提供专用的网络通道,即提供3台服务器之间相互交换数据的专用线路,避免占用外网用户访问各台服务器的宝贵带宽,从而保证Web的服务质量。同时,这种配置将使NFS文件系统对外界不可用,从而增强了服务器的安全性。