NAT模式工作原理

LVS---8.LVS的nat模式搭建验证测试_IP

  • 当用户请求到达Director Server,此时请求的数据报文会先到内核空间的PREROUTING链。 此时报文的源IP为CIP,目标IP为VIP。
  • PREROUTING检查发现数据包的目标IP是本机,将数据包送至INPUT链。
  • IPVS比对数据包请求的服务是否为集群服务,若是,修改数据包的目标IP地址为后端服务器IP,然后将数据包发至POSTROUTING链。 此时报文的源IP为CIP,目标IP为RIP。
  • POSTROUTING链通过选路,将数据包发送给Real Server
  • Real Server比对发现目标为自己的IP,开始构建响应报文发回给Director Server。 此时报文的源IP为RIP,目标IP为CIP。
  • Director Server在响应客户端前,此时会将源IP地址修改为自己的VIP地址,然后响应给客户端。 此时报文的源IP为VIP,目标IP为CIP。

NAT特性

  • RIP最好是内网IP
  • RS的网关必须指向DIP。
  • DIP和RIP必须在同一个网段内。
  • 请求和回应的报文都必须经过director,director容易成为瓶颈。
  • nat支持端口转发。

NAT模式测试

  • 测试环境:
Director:    centos 6.5        VIP:192.168.1.61
                                DIP:192.168.1.66

RealServer1: centos6.5         RIP:192.168.1.67

RealServer2: centos6.5         RIP:192.168.1.69
  • 在Director上要安装两块网卡,一块是1网段的,一块是12网段的,nat是跨网络转发,上面的vip应该和其他三个ip不在一个网段
  • Director配置
    安装ipvsadm:

[root@ShiYanLou LVS]# yum install ipvsadm –y
编辑脚本:/LVS/install.sh

#director设置 nat 防火墙
iptables -t nat -F

#!/bin/bash
VIP=192.168.1.61
DIP=192.168.1.66
RIP1=192.168.1.67
RIP2=192.168.1.69
# director服务器上开启路由转发功能:
echo 1 > /proc/sys/net/ipv4/ip_forward
# 关闭 icmp 的重定向
echo 0 > /proc/sys/net/ipv4/conf/all/send_redirects
echo 0 > /proc/sys/net/ipv4/conf/default/send_redirects
#echo 0 > /proc/sys/net/ipv4/conf/eth0/send_redirects
echo 0 > /proc/sys/net/ipv4/conf/eth1/send_redirects
# director设置 ipvsadm
IPVSADM='/sbin/ipvsadm'
$IPVSADM -C
$IPVSADM -A -t $VIP:80 -s rr
$IPVSADM -a -t $VIP:80 -r $RIP1:80 -m
$IPVSADM -a -t $VIP:80 -r $RIP2:80 -m

/etc/init.d/ipvsadm save

ifconfig lo:0 192.168.1.61 netmask 255.255.255.255 broadcast 192.168.1.61  #增加虚拟ip的网卡
/sbin/route add -host 192.168.1.61 dev lo:0 #增加虚拟ip的路由
#不做上面两步是无法访问通的
  • RealServer配置
    配置RealServer1和RealServer2的网关为DIP。如:
vi /etc/sysconfig/network-scripts/ifcfg-eth0
DEVICE=eth0
HWADDR=00:0C:29:46:3B:8C
TYPE=Ethernet
UUID=e2fa0e51-7240-4ef9-8572-bf82ef8bb6a8
ONBOOT=yes
NM_CONTROLLED=yes
BOOTPROTO=static
IPADDR=192.168.1.67
NETMASK=255.255.255.0
GATEWAY=192.168.1.66                #配置网关为DIP

安装httpd

yum –y install httpd

标记网页:

RealServer1:echo "I am RealServer1 192.168.1.67">/var/www/html/index.html   
RealServer2:echo "I am RealServer2 192.168.1.69">/var/www/html/index.html
  • 验证
    多次访问http://192.168.1.111

会轮询得到“I am RealServer1 192.168.229.132”“I am RealServer2 192.168.229.134”

注意:

  1. 关闭Director的防火墙iptables,不然访问不成功。
  2. 增加的网卡不能增加到回环地址上,否则数据出不去

参考:
LVS原理详解以及部署