更多>>Linux Blog

Linux服务器LVS Nat模式负载均衡配置

本文主要是在虚拟机的环境下,关于Linux服务器负载均衡技术之一LVS Nat模式的配置方式。


一、环境


真实机:Win7/64位操作系统

虚拟机:VMware虚拟机10.0

虚拟机安装Linux系统:CentOS6.5


二、基本配置


1、实验规划

directorserver 8.8.8.8  192.168.10.1   对应 lvs-server

realserver1 192.168.10.2    对应 web-server-1

realserver2 192.168.10.3    对应 web-server-2


2、虚拟机安装完毕后,更改名字,作为LVS服务器

“虚拟机”-“设置”-“选项”,在虚拟机名称一栏,更改为:lvs-server,点击“确定”。


3、在关闭LVS服务器的情况下,克隆出2台机器,作为WEB服务器

“虚拟机”-“管理”-“克隆”-“下一步”-“下一步”-“下一步”,在虚拟机名称一栏里输入:web-server-1,在位置一栏选择合适的位置,“完成”-“关闭”


再次回到lvs-server界面,同上,再克隆出一台机器,只是在虚拟机名称一栏里输入:web-server-2


4、在lvs-server界面中,开启虚拟机,检测是否安装了ipvsadm

(1)检测:# ipvsadm -h

(2)安装:# yum -y install ipvsadm

(3)关闭虚拟机


5、lvs-server再添加一块网卡

在lvs-server界面,点击“网络适配器,在弹出的窗口中,点击底部的“添加”,在弹出的窗口中,选中“网络适配器”,点击“下一步”,点击“完成”,点击“确定”


6、对三台机器更改网卡的网络连接方式

(1)在lvs-server界面,选中“网络适配器”,选中“自定义(U):特定虚拟网络”,选择“VMnet1(仅主机模式)”,点击“确定”

接着选中“网络适配器 2”,选中“自定义(U):特定虚拟网络”,选择“VMnet2”,点击“确定”

(2)在web-server-1界面,选中“自定义(U):特定虚拟网络”,选择“VMnet2”,点击“确定”

(3)在web-server-2界面,选中“自定义(U):特定虚拟网络”,选择“VMnet2”,点击“确定”


7、将三台机器开启,分别检测防火墙和selinux状态

开启终端,桌面右键-“open in terminal”

(1)检测防火墙状态:# service iptables status

(2)关闭防火墙:# service iptables stop

(3)检测selinux状态:# sestatus

(4)关闭selinux:

# vi /etc/selinux/config 在打开的配置文件中

将 SELINUX=enforcing 修改为 SELINUX=disabled 保存后退出(重启生效)

(5)将三台机器分别重启,以使selinux更改生效

(6)重启后,再次检测防火墙和selinux状态


三、配置IP


1、真实机IP的配置


打开网络和共享中心,选中“VMware Network Adapter VMnet1”-“属性”-“TCP/IPv4”-“属性”,在弹出的窗口中,配置如下:

IP地址:8.8.8.1

子网掩码:255.255.255.0

“确定”-“关闭”-“关闭”


2、lvs-server IP的配置


(1)先通过 # ifconfig 查看有几块网卡

记住网卡的名称、MAC地址(HWaddr)等基本信息

接着查看网卡有没有对应的配置文件:

# cd /etc/sysconfig/network-scripts/

# ls

如果2块网卡名称分别为:eth0、eth1,如果配置文件中有ifcfg-eth0,没有ifcfg-eth1,则把ifcfg-eth0复制一份,并命名为ifcfg-eth1

# cp ifcfg-eth0 ifcfg-eth1

# ls


(2)打开第一块网卡的配置文件:

# vi /etc/sysconfig/network-scripts/ifcfg-eth0

修改:

将 BOOTPROTO="dhcp" 修改为 BOOTPROTO="none"


新增:

IPADDR=8.8.8.8

NETMASK=255.255.255.0

保存后退出


(3)接着打开第二块网卡的配置文件:

# vi /etc/sysconfig/network-scripts/ifcfg-eth1


由于 ifcfg-eth1 是由 ifcfg-eth0 复制过来的,所以做如下修改:


修改:

将 DEVICE="eth0" 修改为 DEVICE="eth1"

将 BOOTPROTO="dhcp" 修改为 BOOTPROTO="none"

将 HWADDR="00:0C:29:50:B3:F8" 修改为 HWADDR="00:0C:29:50:B3:02"


删除:

删除 UUID 所在的一行


新增:

IPADDR=192.168.10.1

NETMASK=255.255.255.0

保存后退出


(4)然后重启网卡:

# service network restart


(5)可再次通过 # ifconfig 查看配置结果


3、web-server-1 IP的配置


(1)先通过 # ifconfig 查看网卡

记住网卡的名称、MAC地址(HWaddr)等基本信息

接着查看网卡有没有对应的配置文件:

# cd /etc/sysconfig/network-scripts/

# ls

如果网卡名称为:eth1,如果配置文件中有ifcfg-eth0,没有ifcfg-eth1,则把ifcfg-eth0复制一份,并命名为ifcfg-eth1

# cp ifcfg-eth0 ifcfg-eth1

# ls


(2)接着打开第二块网卡的配置文件:

# vi /etc/sysconfig/network-scripts/ifcfg-eth1


由于 ifcfg-eth1 是由 ifcfg-eth0 复制过来的,所以做如下修改:


修改:

将 DEVICE="eth0" 修改为 DEVICE="eth1"

将 BOOTPROTO="dhcp" 修改为 BOOTPROTO="none"

将 HWADDR="00:0C:29:50:B3:F8" 修改为 HWADDR="00:0C:29:E9:2A:33"


删除:

删除 UUID 所在的一行


新增:

IPADDR=192.168.10.2    //IP

NETMASK=255.255.255.0    //子网掩码

GATEWAY=192.168.10.1    //网关

保存后退出


(3)然后重启网卡:

# service network restart


(4)可再次通过 # ifconfig  # route 查看配置结果


4、web-server-2 IP的配置


(1)先通过 # ifconfig 查看网卡

记住网卡的名称、MAC地址(HWaddr)等基本信息

接着查看网卡有没有对应的配置文件:

# cd /etc/sysconfig/network-scripts/

# ls

如果网卡名称为:eth1,如果配置文件中有ifcfg-eth0,没有ifcfg-eth1,则把ifcfg-eth0复制一份,并命名为ifcfg-eth1

# cp ifcfg-eth0 ifcfg-eth1

# ls


(2)接着打开第二块网卡的配置文件:

# vi /etc/sysconfig/network-scripts/ifcfg-eth1


由于 ifcfg-eth1 是由 ifcfg-eth0 复制过来的,所以做如下修改:


修改:HWaddr 00:0C:29:4F:C4:69 

将 DEVICE="eth0" 修改为 DEVICE="eth1"

将 BOOTPROTO="dhcp" 修改为 BOOTPROTO="none"

将 HWADDR="00:0C:29:50:B3:F8" 修改为 HWADDR="00:0C:29:4F:C4:69"


删除:

删除 UUID 所在的一行


新增:

IPADDR=192.168.10.3    //IP

NETMASK=255.255.255.0    //子网掩码

GATEWAY=192.168.10.1    //网关

保存后退出


(3)然后重启网卡:

# service network restart


(4)可再次通过 # ifconfig  # route 查看配置结果


四、脚本编写 针对 lvs-server


1、开启路由管道

检测是否开启: 

# cat /proc/sys/net/ipv4/ip_forward    //0关闭,1开启

开启:

# echo 1 > /proc/sys/net/ipv4/ip_forward


2、编写执行脚本


# cd

# vi ipvs.sh  //编辑内容如下:


#!/bin/bash

#lvs.sh


ipvsadm -C

ipvsadm -At 8.8.8.8:80 -s rr

ipvsadm -at 8.8.8.8:80 -r 192.168.10.2:80 -m

ipvsadm -at 8.8.8.8:80 -r 192.168.10.3:80 -m

ipvsadm -L -n


内容结束,保存后退出


说明:

-C 把以前的转换表清除

-A 增加一个带有调度算法的转换表 t 表示TCP通信

-s 表示算法

rr 表示轮叫

-r 真实服务器

-m 表示nat地址转换


为脚本执行添加权限: # chmod a+x ipvs.sh


执行脚本: # ./ipvs.sh


五、测试


1、开启httpd服务

在web-server-1、web-server-2这两台web服务器上,分别开启httpd服务

# service httpd restart


2、建立测试文件

在web-server-1、web-server-2这两台web服务器上,分别建立文件


web-server-1:

# cd /var/www/html/

# ls

# vi index.html

输入如下内容:

<h1>192.168.10.2</h1>


web-server-2:

# cd /var/www/html/

# ls

# vi index.html

输入如下内容:

<h1>192.168.10.3</h1>


输入的内容不一样,以方便区分


3、在自己的真实机上,测试

打开浏览器,地址栏中输入: http://8.8.8.8  按F5键刷新查看页面的变化(如果无输出 Ctrl+F5 强制刷新 或 检查防火墙是否开启)

如果在不断的刷新中 192.168.10.2 和 192.168.10.3 交替出现变换出现,则说明实验成功。


评论列表

暂时没有相关记录

发表评论

用来接收审核回复提醒,请认真填写

  换一张?
captcha
看不清?点击图片换一张