NAT模式 
1.模拟环境: 
LVS服务器有两块网卡,连接外网(用户端)和内网(服务器),充当"交警"角色. 
优点: 节省ip开销 
缺点: LVS服务器负载过高,数据吞吐量降低 
三台Linux虚拟机: 
LVS服务器(vmnet1 ip: 200.168.10.10 , vmnet2 ip: 192.168.10.1) 
WEB服务器1(vmnet2 ip: 192.168.10.2) 
WEB服务器2(vmnet2 ip: 192.168.10.3) 
本地真实机: 外网用户(vmnet1 ip: 200.168.10.2) 
2.准备: 
a) 关闭防火墙 
# service iptables stop 
# vi /etc/selinux/config (设置 SELINUX=disabled) 
b) 建立网页文件 
# vi /var/www/html/index.html 
(两台web服务器的index.html内容要差异化...) 
c) 安装 ipvsadm 软件 
# yum -y install ipvsadm* 
3.配置LVS/WEB服务器: 
a) LVS: 开启路由转发功能 
# echo 1 > /proc/sys/net/ipv4/ip_forward 
b) WEB: 设置网关 
# route add default gw 192.168.10.1 
(因为它在内网,它的数据得经过LVS服务器到外网去!) 
c) 在LVS服务器上,ping内网和外网,看是否能通? 
4.设置LVS服务器的转发规则: 
#!/bin/bash 
#lvs.sh 
ipvsadm -At 200.168.10.10:80 -s rr 
ipvsadm -at 200.168.10.10:80 -r 192.168.10.2:80 -m 
ipvsadm -at 200.168.10.10:80 -r 192.168.10.3:80 -m 
ipvsadm 
# chmod a+x lvs.sh 
./lvs.sh 
-s 模式  rr 轮询 
-r 真实服务器 -m 模式 
5.测试: 
外网用户访问 200.168.10.10 
(如果操作正确,每刷新一次会显示不同内容,因为web服务器有2台,它们是轮流应答的!!) 
TUN模式 
1.模拟环境: LVS服务器和WEB服务器都设置为公网IP(有点:web服务器的返回数据不经过LVS服务器,而是直接给外网用户,数据吞吐量较NAT模式增加10倍!) 
三台Linux虚拟机: 
LVS服务器:(vmnet1 ip: 200.168.10.10) 
WEB服务器1:(vmnet1 ip: 200.168.10.2) 
WEB服务器2:(vmnet1 ip: 200.168.10.3) 
本地真实机: 外网用户(vmnet1) 
2.思考一个问题: 
三台服务器全部在公网,用户访问时,怎么知道该访问哪一台WEB服务器 ; 即使知道要访问的是LVS服务器,那LVS怎么知道要去找哪一台WEB服务器呢? 
3.写两个脚本: lvs.sh在LVS服务器执行,arp.sh在WEB服务器执行 
#!/bin/bash 
#lvs.sh 
ifconfig tunl0 200.168.10.10 netmask 255.255.255.255 up 
route add -host 200.168.10.10 dev tunl0 
ipvsadm -At 200.168.10.10:80 -s rr 
ipvsadm -at 200.168.10.10:80 -r 200.168.10.2:80 -i 
ipvsadm -at 200.168.10.10:80 -r 200.168.10.3:80 -i 
ipvsadm -L -n 
#!/bin/bash 
#arp.sh 
ifconfig tunl0 200.168.10.10 netmask 255.255.255.255 up 
route add -host 200.168.10.10 dev tunl0 
echo 1 > /proc/sys/net/ipv4/conf/tunl0/arp_ignore 
当交换机问"谁是10.10",作arp忽略 
echo 2 > /proc/sys/net/ipv4/conf/tunl0/arp_announce 
当LVS问谁是"10.2",作arp宣告 
echo 1 > /proc/sys/net/ipv4/conf/all/arp_ignore 
echo 2 > /proc/sys/net/ipv4/conf/all/arp_announce 
4.测试: 用户访问 200.168.10.10 
DR模式 
1.模拟环境: 
a) 在TUN模式上,把tunl0网卡都关闭,改用回环网卡,兼容性更强 
b) 网络环境与TUN模式一致 
2.写两个脚本: 
#!/bin/bash 
#lvs.sh 
ifconfig eth0:0 200.168.10.10 netmask 255.255.255.255 up 
route add -host 200.168.10.10 dev eth0:0 
ipvsadm -At 200.168.10.10:80 -s rr 
ipvsadm -at 200.168.10.10:80 -r 200.168.10.2:80 -g 
ipvsadm -at 200.168.10.10:80 -r 200.168.10.3:80 -g 
ipvsadm -L -n 
#!/bin/bash 
#arp.sh 
ifconfig lo:0 200.168.10.10 netmask 255.255.255.255 up 
route add -host 200.168.10.10 dev lo:0 
echo 1 > /proc/sys/net/ipv4/conf/lo/arp_ignore 
echo 2 > /proc/sys/net/ipv4/conf/lo/arp_announce 
echo 1 > /proc/sys/net/ipv4/conf/all/arp_ignore 
echo 2 > /proc/sys/net/ipv4/conf/all/arp_announce 
3.测试: 用户访问 200.168.10.10
Logo

更多推荐