LVS负载均衡之NAT模式

重点理解NAT方式的实现原理和数据包的改变。

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

  1. LVS-NAT模型的特性
    • RS应该使用私有地址,RS的网关必须指向DIP
    • DIP和RIP必须在同一个网段内
    • 请求和响应报文都需要经过Director Server,高负载场景中,Director Server易成为性能瓶颈
    • 支持端口映射
    • RS可以使用任意操作系统
    • 缺陷:对Director Server压力会比较大,请求和响应都需经过director server

1、实验环境
三台服务器,一台作为 director,两台作为 real server,director 有一个外网网卡(172.16.254.200) 和一个内网ip(192.168.0.8),两个 real server 上只有内网 ip (192.168.0.18) 和 (192.168.0.28),并且需要把两个 real server 的内网网关设置为 director 的内网 ip(192.168.0.8)
2、安装和配置
两个 real server 上都安装 nginx 服务
# yum install -y nginx
Director 上安装 ipvsadm# yum install -y ipvsadm
Director 上编辑 nat 实现脚本

# vim /usr/local/sbin/lvs_nat.sh
# 编辑写入如下内容:
#! /bin/bash
# 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设置 nat 防火墙
iptables -t nat -F
iptables -t nat -X
iptables -t nat -A POSTROUTING -s 192.168.0.0/24 -j MASQUERADE

# director设置 ipvsadm
IPVSADM='/sbin/ipvsadm'
$IPVSADM -C
$IPVSADM -A -t 172.16.254.200:80 -s wrr
$IPVSADM -a -t 172.16.254.200:80 -r 192.168.0.18:80 -m -w 1
$IPVSADM -a -t 172.16.254.200:80 -r 192.168.0.28:80 -m -w 1

保存后,在 Director 上直接运行这个脚本就可以完成 lvs/nat 的配置
/bin/bash /usr/local/sbin/lvs_nat.sh
查看ipvsadm设置的规则
ipvsadm -ln

3、测试LVS的效果
通过浏览器测试2台机器上的web内容 http://172.16.254.200 。为了区分开,我们可以把 nginx 的默认页修改一下:
在 RS1 上执行
# echo "rs1rs1" >/usr/share/nginx/html/index.html
# echo "rs2rs2" >/usr/share/nginx/html/index.html
注意,切记一定要在两台 RS 上设置网关的 IP 为 director 的内网 IP。

转载于:https://blog.51cto.com/gdutcxh/2109229

LVS负载均衡之NAT模式相关推荐

  1. LVS负载均衡群集——NAT模式实例

    目录 一:企业群集应用概述 1.1群集的含义 1.2群集存在的必要 1.3解决的方法 二:企业群集的分类 2.1负载均衡群集(Load Balance Cluster) 2.2高可用群集(High A ...

  2. LVS负载均衡群集—NAT模式实例

    文章目录 前言 一.群集与分布式 1.1 群集的含义 1.2 系统性能扩展方式 1.3 群集的三种类型 1.4 LVS的负载调度算法 1.5 分布式系统 1.6 集群和分布式 1.7 负载均衡群集架构 ...

  3. LVS 负载均衡群集----NAT模式

    目录 一.企业群集应用概述 1.1 群集的含义 1.2 问题 1.3 解决办法 1.4 系统性能扩展方式 二.企业群集分类 2.1  负载均衡群集 2.2  高可用群集 2.3  高性能运算群集 三. ...

  4. LVS负载均衡群集 --NAT模式实战部署(图文详解)

    目录 一.群集应用概述 1.1 群集的含义 1.2 应用场景出现高并发的解决方案 1.3 系统性能扩展方式 1.4 群集的三种分类 1.4.1 负载均衡群集 1.4.2 高可用群集 1.4.3 高性能 ...

  5. LVS负载均衡和nat模式的实操

    LVS理论和实操 一.企业群集应用概述 1.群集的含义 2.问题 3.解决方法 总结: 二.集群的分类 三.负载均衡群集架构 四.LVS负载均衡群集工作模式分析 1.负载均衡群集是目前企业用得最多的群 ...

  6. Lvs 负载均衡之nat模式配置

    2019独角兽企业重金招聘Python工程师标准>>> Lvs nat模式全称是Virtual Server via Network Address Translation(VS/N ...

  7. LVS负载均衡!LVS-NAT模式部署!

    lvs负载均衡 一.企业集群概述 1.集群的含义(cluster) 2.存在的问题 3.问题解决的方法 二.企业集群分类 1.负载均衡群集(Load Balance Cluster) 2.高可用集群 ...

  8. LVS负载均衡与DR模式

    LVS负载均衡与DR模式 一.DR模式的特点 二.LVS-DR中的ARP问题 1.VIP地址相同导致响应冲突 2.返回报文时源地址使用VIP,导致网关设备的ARP缓存表紊乱 三.DR模式 LVS负载均 ...

  9. LVS负载均衡之DR模式

    LVS负载均衡之DR模式 一.LVS-DR数据包流量分析 客户端向目标VIP发送请求,负载均衡器接收 负载均衡器根据负载均衡算法选择后端真实服务器,不修改也不封装IP报文,而是将数据帧的MAC地址改为 ...

最新文章

  1. itstime后面跟什么_一文讲透什么是引流
  2. java面试题标签_java面试笔试题 (WEB)
  3. java中JList的setSelectionMode()详解
  4. 2014 北京邀请赛ABDHJ题解
  5. ASP.NET Core 基础知识(十四)错误处理
  6. 前端学习(1317):静态资源2
  7. android数据存储_SharedPreferences的简单使用
  8. CentOS 7添加开机启动服务脚本
  9. 错误之Only one usage of each socket address (protocol/network address/port)解决办法
  10. NSA(美国国安局)泄漏Exploit分析
  11. 应用市场中的应用转让
  12. sqlalchemy 聚合
  13. kubernetes视频教程笔记 (32)-安全-准入控制Admission Control
  14. 【随机数】深入理解random和srandom
  15. 利用js,HTML,css实现一个简单的指针时钟
  16. python虚拟变量回归_Python中使用虚拟变量的OLS最佳解决方案?
  17. 一文读懂 HTTPS 与 TLS证书链校验
  18. Android的surface的三种工作方式
  19. 微信联合登录全攻略,早期测试用户的详尽经验总结!
  20. 蓝牙无线技术(BLE)介绍与开发点滴总结

热门文章

  1. javascript对下拉列表框(select)的操作
  2. Tasker 正则表达式测试器
  3. 部署Lync For 移动设备 二
  4. Windows系统安全模式妙用全接触
  5. Mysql 从库跳过
  6. gitlab+keepalived
  7. 《Linux及安全》课程实践二
  8. 启动php-fpm时报错
  9. VB winform自动更新 笔记
  10. 关于编译Lambda时报告返回的为void的错误