一、使用Nat模式的LVS的构建
1.配置分发器。
#配置网卡
ifconfig eth0 10.1.1.250
ifconfig eth1 192.168.10.250
#打开网卡转发
#echo '1' > /proc/sys/net/ipv4/ip_forward //临时启用网卡转发
#编辑/etc/sysctl.conf文件可以永久启用网卡转发
#vim /etc/sysctl.conf
net.ipv4.ip_forward=1
sysctl -p
#安装ipvsadm软件包并增加新的ipvsadm服务
#安转ipvsadm软件包
mount /dev/cdrom /media
cd /media/Cluster
rpm -Uvh ipvsadm-1.24-12.el5.i386.rpm
#增加一个新的服务
ipvsadm -A -t 10.1.1.250:80 -s rr
#-A 添加新的服务
#-t 指定服务所使用的虚拟ip地址:端口
#-s 指定服务使用的算法(rr算法是将数据包依次分发给服务中的主机)
#把服务和服务池(server pool)进行关联
ipvsadm -a -t 10.1.1.250:80 -r 192.168.10.1 -m
ipvsadm -a -t 10.1.1.250:80 -r 192.168.10.2 -m
#-a 添加real server
#-r 指定real server的ip
#-m 指定使用nat模式
#查看建立的服务
ipvsadm -ln
##结果如下
IP Virtual Server version 1.2.1 (size=4096)
Prot LocalAddress:Port Scheduler Flags
-> RemoteAddress:Port Forward Weight ActiveConn InActConn
TCP 10.1.1.250:80 rr
-> 192.168.10.1:80 Masq 1 0 0
-> 192.168.10.2:80 Masq 1 0 0
2.配置server pool下的真实主机(real server)
#配置服务器ip
ifconfig eth0 192.168.10.1
#配置服务器的默认网关
route add default gw 192.168.10.250
#安装apache服务
yum install httpd
#ifconfig eth0 > /var/www/html/index.html //生成一个页面用于测试
#启动apache服务
/etc/init.d/httpd restart
3.同理配置其他真实主机
4.使用客户端访问测试服务器
在这个过程中,首先,用户向分发器发送请求,该请求的目的IP地址为分发器的对外IP(10.1.1.250)、源IP为用户IP(10.1.1.1);当数据包到达分发器时,分发器对该数据包进行目的地址转换,将用户请求数据包的目的地址(10.1.1.250)转换为服务器池中的某台主机的ip(192.168.10.1),然后将数据包从对内网卡转发出来;该真实主机在接受到用户请求时,将对用户的请求进行处理,并将应答请求数据包返回给分发器,此时该应答数据包的目的IP为用户的IP地址(10.1.1.1),而其源IP地址为该真实主机的IP地址(192.168.10.1),其目的MAC为分发器的MAC地址;当分发器接受到该数据包时,将对此数据包进行源地址转换,将该数据包的源IP地址(192.168.10.1)转换成为分发器的对外IP地址(10.1.1.1),并将该数据包从分发器的对外网卡传送出去。
使用NAT模式构建LVS时,当同时进行的并发很大时,大量的数据包流经分发器,容易造成分发器出现问题。