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直接返回给它的。

 

lvs无法转发到realserver lvs 转发模式_虚拟IP

       准备三台机器网关 内网服务器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

lvs无法转发到realserver lvs 转发模式_LVS_02


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 查看添加的规则 

lvs无法转发到realserver lvs 转发模式_lvs无法转发到realserver_03

意思是整个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了

 

lvs无法转发到realserver lvs 转发模式_虚拟IP_04

安装负载调度器管理软件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来访问两个服务器。

如果没有轮询,检查内网主机默认路由的添加

 

因为在请求与回复中,入站出站都要经过负载调度器,所以说,负载调度器的压力是相对较大的,而且这个负载调度器的高可用也就非常重要了!!!