LVS-NAT
本人已建立个人博客站点,所以文章也都在那边发表了,想了解一下的,可以点这里:点击打开链接
NAT(Network Address Translation)是一种外网和内网地址映射的技术。
NAT 模式下,网络数据报的进出都要经过 LVS的处理。LVS 需要作为 RS(真实服务器)的网关。
当包到达 LVS时,LVS做目标地址转换(DNAT),将目标 IP改为 RS 的 IP。RS接收到包以后,仿佛是客户端直接发给它的一样。RS处理完,返回响应时,源 IP是 RS IP,目标 IP是客户端的 IP。这时 RS 的包通过网关(LVS)中转,LVS会做源地址转换(SNAT),将包的源地址改为 VIP,这样,这个包对客户端看起来就仿佛是 LVS直接返回给它的。
准备三台机器网关 内网服务器1 内网服务器2 (内网共享nfs暂时不管)
网络环境:
A:内网Web1 仅主机模式192.168.66.20
B:内网Web2 仅主机模式192.168.66.30
C:负载调度器 eth0仅主机模式 连接内网 192.168.66.10
eth1 NAT模式连接外网 192.168.33.100
route add default gw IP 地址 所有内网主机全部要指网关,网关服务器的eth0
nfs
mkdir /share
vim /etc/exports 修改 nfs 配置文件
共享的目录客户端地址(共享的权限) example : /share192.168.1.2(ro,sync 只读访问,同步 )
service rpcbind start 开启 rpcbind
service nfs start 开启 nfs 服务
#service portmap restart 如果不行开启服务
showmount -e 本机 IP 地址 查看共享的 nfs 服务器
第一台网站服务器 server1
route add default gw 192.168.66.10
echo “route add default gw192.168.66.10” >> /etc/rc.local
yum -y install httpd 安装 apache
showmount -e 192.168.1.2 ( nfs 服务器地址) 查看是否有 nfs 共享目录
mount 192.168.7.250 : /share (共享目录) /var/www/html (挂载点) 将 nfs 共享文件挂在到 /var/www/html 上
service httpd start 启动 apache 服务
chkconfig httpd on 设置 apache 的开机自启动
echo “this is server 1 ” >>/var/www/html/index.html
第二台网站服务器server2
第二台网页服务器为了测试效果不采用 nfs 共享的方式,但在实际工作中通通采用 nfs 共享的方式
routeadd default gw 192.168.66.10
echo “route add default gw192.168.66.10” >> /etc/rc.local
yum -y install httpd 安装 apache
cd /var/www/html 进入网页存放目录
vi index.html 创建并编辑网页文件
www.diertaiapache.com
配置网关服务器
首先是网卡设置,添加为两块网卡,一块儿为内网网卡,一块外网网卡(NAT模式)
cd /etc/sysconfig/network-scripts/
cp ifcfg-eth0 ifcfg-eth1 #要删除掉mac地址以及uuid
service network restart
vim /etc/sysctl
net,ipv4.ip_forward=1(第7行)开启转发
sysctl -p 刷新内核参数
配置防火墙规则
之前都是关了,所以先开启
serviceiptables start
chkconfigiptables on
iptables-F
iptables -t nat -APOSTROUTING -s 192.168.66.0/24( 内网网段) -o eth1 (外网口网卡名称) -j SNAT --to-source172.16.16.172 (外网口的网卡地址) 添加防火墙规则
SNAT表示原地址修改。NAT模式就是通过对与原地址的修改来实现的,入栈请求时修改目标地址VIP为RIP,出站回复时修改原地址RIP为VIP
此时用iptables -L 是查看不了的,因为默认的是
iptables -L -t fileter
用 iptables -t nat -L 查看添加的规则
意思是整个66网段里所有的端口请求,不管到哪儿去,都把源IP转换成192.168.33.100,我去,刚才竟然手快写错了,那么需要先删除刚才的那条
-A是添加,那么-D就可以删除了
iptables -t nat -DPOSTROUTING -s 192.168.66.0/24 -o eth1 -j SNAT --to-source 192.168.66.30
再添加回来,查看,就ok了
安装负载调度器管理软件ipvsadm
ipvsadm -A (添加一个负载调度器) -t 192.168.33.100:80(集群地址,在 NAT' 模式下,就等于是外网口地址)-s rr (代表采用的算法,rr 代表轮询) 添加一个调度器规则 ipvsadm -A -t 192.168.33.100:80 -s rr
### iptables -D -t IP:80 清除调度规则
ipvsadm -a (集群服务器 ) -t 192.168.33.100:80(集群地址) -r 192.168.66.20:80 (集群服务器地址) -m (代表调度模式, -m 代表NAT 模式) 添加一个集群服务器信息,一台需要添加一条
ipvsadm -a -t192.168.33.100:80 -r 192.168.66.20:80 -m
ipvsadm -a -t192.168.33.100:80 -r 192.168.66.30:80 -m
ipvsadm -Ln 查看已设规则
service ipvsadm save 保存策略
chkconfig ipvsadm on 设置为开机自启动
然后就可以在浏览器当中通过访问192.168.33.100这个外网IP来访问两个服务器。
如果没有轮询,检查内网主机默认路由的添加
因为在请求与回复中,入站出站都要经过负载调度器,所以说,负载调度器的压力是相对较大的,而且这个负载调度器的高可用也就非常重要了!!!