LVS的DR和NAT模式配置

本文涉及的产品
公网NAT网关,每月750个小时 15CU
简介:

 在进行实验之前要关闭selinux

LVS/NAT模式的配置
  LVS-NAT基于cisco的LocalDirector。VS/NAT不需要在RealServer上做任何设置,其只要能提供一个tcp/ip的协议栈即可,甚至其无论基于什么OS。基于VS/NAT,所有的入站数据包均由Director进行目标地址转换后转发至内部的RealServer,RealServer响应的数据包再由Director转换源地址后发回客户端。
 LVS/NAT模式不能与netfilter兼容,因此,不能将VS/NAT模式的Director运行在netfilter的保护范围之中。现在已经有补丁可以解决此问题,但尚未被整合进ip_vs code。
在进行实验之前先来了解一下简单的概念
    客户端来源的IP是CIP,提供服务的是VIP(客户端访问请求的服务端),director用于和realserver通信的IP叫DIP,realserver用于和director通信的IP叫RIP
下面是NAT模式的拓扑结构图
 

 Director需要配置两块网卡eht0和eht1其中eht0设为桥接模式,eth1模式如下图所示

    由于NAT模型的特性,在这里为两台RealServer的网卡eth0和Director的网卡eth1配为相同模式,具体如上图

  在配置完各自的网卡后使用ping命令使Client,Director,RealServer彼此能够互相ping通。
   在两台RealServer服务器上安装Apache,并启动服务。然后分别建立index.html页面
   RealServer1的index.html的内容为RSS1
   RealServer1的index.html的内容为RSS2
 为两台RealServer路由使其的默认网关指向Director的DIP即172.16.88.1
  #route add default gw 172.16.88.1
安装ipvsadm
 #yum -y install ipvsadm

 配置Director

 添加服务
   # ipvsadm -A -t 172.16.200.1:80 -s rr
    -A 在内核的虚拟服务器列表中添加一条新的虚拟IP记录,也就是增加一台新的虚拟服务器。
   -t 说明虚拟服务器提供的是tcp 的服务,此选项后面跟如下格式:[VIP:port] or [RIP:port]
   -s scheduler使用的调度算法,有这样几个选项 rr|wrr|lc|wlc|lblc|lblcr|dh|sh
 设置转发
   # ipvsadm -a -t 172.16.200.1:80 -r 172.16.88.2 -m 
   # ipvsadm -a -t 172.16.200.1:80 -r 172.16.88.3 -m 
   -a在内核虚拟服务器列表的一条记录里添加一条新的Real Server记录。
   -r指定Real Server的IP地址,此选项后面跟如下格式:[RIP:port]
   -m指定LVS 的工作模式为NAT 模式
 打开路由转发功能
   # echo "1" > /proc/sys/net/ipv4/ip_forward

 

测试效果如下图

LVS/DR模型配置

   在DR模式中所有机器(包括Director和RealServer)都使用了一个额外的IP地址,即VIP。当一个客户端向VIP发出一个连接请求时,此请求必须要连接至Director的VIP,而不能是RealServer的。因为,LVS的主要目标就是要Director负责调度这些连接请求至RealServer的。

     因此,在Client发出至VIP的连接请求后,只能由Director将其MAC地址响应给客户端(也可能是直接与Director连接的路由设备),
而Director则会相应的更新其ipvsadm table以追踪此连接,而后将其转发至后端的RealServer之一。
     为了防止客户端在发出请求后RealServer的VIP响应请求,需要对网络接口上本地IP地址发出的ARP回应作出相应级别的限制(arp_announce),以及如何定义对目标地址为本地IP的ARP询问不同的应答模式(arp_ignore)
 arp_announce
   0.(默认) 在任意网络接口上的任何本地地址
   1.尽量避免不在该网络接口子网段的本地地址.当发起ARP请求的源IP地址是被设 置应该经由路由达到此网络接口的时候很有用.此时会检查来访IP是
否为所有接口上的子网段内ip之一.
   2.对查询目标使用最适当的本地地址.在此模式下将忽略这个IP数据包的源地址并尝试选择与能与该地址通信的本地地址
arp_ignore
   0 (默认值): 回应任何网络接口上对任何本地IP地址的arp查询请求
   1 只回答目标IP地址是来访网络接口本地地址的ARP查询请求
   2 只回答目标IP地址是来访网络接口本地地址的ARP查询请求,且来访IP必须在该网络接口的子网段内
   3  不回应该网络界面的arp请求,而只对设置的唯一和连接地址做出回应
   4-7 保留未使用
   8 不回应所有(本地地址)的arp查询
下面是DR模式的拓扑结构图

 

    Director的网卡eth0配置两个IP地址如上图所示的eth0和eht0:1,模式为桥接 两个RealServer的网卡eth0模式都设置为桥接模式,且eht0的IP为DIP,VIP设置为lo:0(回环地址)

配置RealSever1和RealServer2,两台服务器配置相同

 

安装apache服务,并启用,然后添加主页index.html
    RealServer1的index.html的内容为RSS1
    RealServer1的index.html的内容为RSS2
设置arp_ignore和arp_announce
     #echo 1 > /proc/sys/net/ipv4/conf/eth0/arp_ignore
     #echo 2 > /proc/sys/net/ipv4/conf/eth0/arp_announce
     #echo 1 > /proc/sys/net/ipv4/conf/all/arhp_ignore
     #echo 2 > /proc/sys/net/ipv4/conf/all/arp_announce
添加回环地址以及设置路由
     #ifconfig lo:0 172.16.88.1 broadcast 172.16.88.1 netmask 255.255.255.255 up
     #route add -host 172.16.88.1 dev lo:0

 

 

配置Director

 为eht0增加第二个IP地址,并添加路由使所有的请求都经过eht0:1转发
    #ifconfig eth0:1 172.16.88.1 broadcast 172.16.88.1 netmask 255.255.255.255 up
    #route add -host 172.16.88.1 dev eth0:1
  打开路由转发功能
    #echo 1 > /proc/sys/net/ipv4/ip_forward
  添加服务
    # ipvsadm -A -t 172.16.88.1:80 -s rr
 设置转发
    # ipvsadm -a -t 172.16.88.1:80 -r 172.16.88.2 -g 
    # ipvsadm -a -t 172.16.88.1:80 -r 172.16.88.3 -g
 -g表示是DR模式

 

 配置完成后,使用ping命令使Director和RealServer以及Client彼此能够相通
  在浏览器测试效果如下图所示

   那接下来就以上术的DR模式为基础,讲解一下LVS的持久连接。
   由于HTTP是一种无状态的协议没次请求完毕之后就立即断开了,但是对于电商网站来说却需要能够记忆用户的请求,比如淘宝时当你把选完的一件衣服假如到购物车时是有RealServer1来响应,而当添加第二件衣服到购物车时却是有RealServer2来响应,这会给客户带来无谓的烦恼,所以就需要有一种持久的连接来满足客户的需求。那需要用到LVS的持久连接了,其实Session和Cokies也能够满足客户的这种需求,只是这里就不再赘述。
LVS持久连接的类型有
  PCC:持久客户端连接,客户端发送的请求都定义到同一个realserver上
     # ipvsadm -A -t 172.16.88.1:0 -s rr -p 1800
 PPC:持久端口连接 对同一个端口的请求都定义到同一个realserver上
   # ipvsadm -A -t 172.16.88.1:80 -s rr -p 1800
   # ipvsadm -A -t 172.16.88.1:443 -s rr -p 1800
 

 PNMP:持久防火墙数据包连接,定义端口之间的姻亲关系把两个不同端口定义到同一个realserver

 

 

 

本文转自  沐木小布丁  51CTO博客,原文链接:http://blog.51cto.com/sxhxt/950351

相关文章
|
15天前
|
运维 算法 Linux
LVS详解(四)——LVS安装与配置命令
LVS详解(四)——LVS安装与配置命令
16 2
|
4月前
|
网络协议 Linux 网络架构
Linux三种网络模式 | 仅主机、桥接、NAT
Linux三种网络模式 | 仅主机、桥接、NAT
175 0
|
6月前
|
Linux 虚拟化
VMware安装Linux虚拟机之NAT模式网络配置图文详解
VMware安装Linux虚拟机之NAT模式网络配置图文详解
149 0
|
6月前
|
负载均衡 应用服务中间件 Linux
企业实战(13)LVS负载均衡NAT(网络地址转换)模式实战详解(一)
企业实战(13)LVS负载均衡NAT(网络地址转换)模式实战详解(一)
|
17天前
|
Linux 虚拟化
VMware workstation 中centos7虚拟机在nat模式下怎么配置网卡,指定我想要的IP并且可以联网
https://blog.csdn.net/2302_78534730/article/details/132825156?spm=1001.2014.3001.5502
131 0
|
3天前
|
负载均衡 监控 Linux
CentOS6.5高可用集群LVS+Keepalived(DR模式)
CentOS6.5高可用集群LVS+Keepalived(DR模式)
|
2月前
|
弹性计算 Linux 网络安全
三步搭建VPC专有网络NAT网关,配置SNAT和DNAT规则(补充版)
申明:该文档参考于用户 “帅宝宝”的文档进行的优化,新增永久生效的方式
291 1
|
3月前
|
网络协议 虚拟化 网络架构
桥接模式和NAT模式的区别
桥接模式和NAT模式的区别
|
3月前
|
网络安全 虚拟化 Windows
RHEL7-NAT模式连接外部网络
RHEL7-NAT模式连接外部网络
22 1
|
4月前
|
负载均衡 监控 调度
Keepalived+Lvs(dr)调度器主备配置小实验
Keepalived和LVS(Linux Virtual Server)是两个常用的开源软件,通常结合使用以提供高可用性和负载均衡的解决方案。 Keepalived是一种用于实现高可用性的软件,它可以监控服务器的健康状态,并在主服务器出现故障时自动切换到备份服务器。
98 2