设为首页 收藏本站
查看: 967|回复: 0

[经验分享] LVS(Linux 虚拟服务)NAT模式配置详解

[复制链接]
累计签到:2 天
连续签到:1 天
发表于 2019-1-5 09:59:41 | 显示全部楼层 |阅读模式
一、前言
二、原理
三、环境
四、配置
     1.后端web服务器配置
     2.前端LVS服务器配置
五、测试
六、ipvsadm常用命令
--------------------------------------
一、前言  
   LVS是Linux Virtual Server的简写,意即Linux虚拟服务器,是一个虚拟的服务器集群系统。本项目在1998年5月由章文嵩博士成立,是中国国内最早出现的自由软件项目之一。可伸缩网络服务的几种结构,它们都需要一个前端的负载调度器(或者多个进行主从备份)。我们先分析实现虚拟网络服务的主要技术,指出IP负载均衡技术是在负载调度器的实现技术中效率最高的。在已有的IP负载均衡技术中,主要有通过网络地址转换(Network Address Translation)将一组服务器构成一个高性能的、高可用的虚拟服务器,我们称之为VS/NAT技术(Virtual Server via Network Address Translation)。在分析VS/NAT的缺点和网络服务的非对称性的基础上,我们提出了通过IP隧道实现虚拟服务器的方法VS/TUN (Virtual Server via IP Tunneling),和通过直接路由实现虚拟服务器的方法VS/DR(Virtual Server via Direct Routing),它们可以极大地提高系统的伸缩性。VS/NAT、VS/TUN和VS/DR技术是LVS集群中实现的三种IP负载均衡技术。
二、LVS-NAT原理
  详细原理找百度;
三、环境,实现LVS—NAT模式;
系统:CentOS6.4 32位
    拓扑图:LVS-NAT模式

四、配置
1.后端web服务器配置(生产环境中web页面应该是一样的,为了测试,显示才不一致。)
1.1.web1配置
1
2
3
4
5
6
# setenforce 0        //关闭SELinux及防火墙
# service iptables stop
# yum install httpd
# echo "This is web1" >/var/www/html/index.html
# service httpd start
# ping 192.168.4.1    //需通
1.2.web2配置
1
2
3
4
5
6
7
8
# setenforce 0        //关闭SELinux及防火墙
# service iptables stop
# yum install httpd
# echo "This is web1" >/var/www/html/index.html
# vim /etc/httpd/conf/httpd.conf
Listen 800
# service httpd start
# ping 192.168.4.1    //需通
2.前端LVS服务器配置
2.1.使用轮询算法(rr)
配置调度设备ip转发和默认路由;

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
# vim /etc/sysctl.conf
7 net.ipv4.ip_forward = 1       //开启路由转发功能
# route
Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
192.168.4.0     *               255.255.255.0   U     1      0        0 eth3
192.168.2.0     *               255.255.255.0   U     1      0        0 eth1
default         192.168.2.254   0.0.0.0         UG    0      0        0 eth1
# yum install ipvsadm           //安装ipvs
# ipvsadm -A -t 192.168.2.10:80 -s rr                       //定义群集服务,算法为轮训
# ipvsadm -a -t 192.168.2.10:80 -r 192.168.4.100:80 -m      //定义真实服务器,使用NAT 模式
# ipvsadm -a -t 192.168.2.10:80 -r 192.168.4.200:800 -m
# ipvsadm -L -n    //查看集群服务和后方节点
IP Virtual Server version 1.2.1 (size=4096)
Prot LocalAddress:Port Scheduler Flags
  -> RemoteAddress:Port           Forward Weight ActiveConn InActConn
TCP  192.168.2.10:80 rr
  -> 192.168.4.100:80             Masq    1      0          0
  -> 192.168.4.200:800            Masq    1      0          0


客户端访问测试,测试结果(基本1:1)
1
2
3
4
5
6
7
# ipvsadm -L -n
IP Virtual Server version 1.2.1 (size=4096)
Prot LocalAddress:Port Scheduler Flags
  -> RemoteAddress:Port           Forward Weight ActiveConn InActConn
TCP  192.168.2.10:80 rr
  -> 192.168.4.100:80             Masq    1      0          12
  -> 192.168.4.200:800            Masq    1      0          13
2.2.使用加权的轮询算法(wrr)
1
2
3
4
5
6
7
8
9
# ipvsadm -E -t 192.168.2.10:80 -s wrr     //修改群集服务为加权轮询算法  
# ipvsadm -e -t 192.168.2.10:80 -r 192.168.4.200:800 -m -w 2  //修改后方某节点权重设2
# ipvsadm -L -n
IP Virtual Server version 1.2.1 (size=4096)
Prot LocalAddress:Port Scheduler Flags
  -> RemoteAddress:Port           Forward Weight ActiveConn InActConn
TCP  192.168.2.10:80 wrr
  -> 192.168.4.100:80             Masq    1      0          0
  -> 192.168.4.200:800            Masq    2      0          0
访问几次后查看测试结果(基本1:2)
1
2
3
4
5
6
7
# ipvsadm -L -n
IP Virtual Server version 1.2.1 (size=4096)
Prot LocalAddress:Port Scheduler Flags
  -> RemoteAddress:Port           Forward Weight ActiveConn InActConn
TCP  192.168.2.10:80 wrr
  -> 192.168.4.100:80             Masq    1      0          7
  -> 192.168.4.200:800            Masq    2      0          14
2.3.保存及应用
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
# service ipvsadm save           //保存
ipvsadm: Saving IPVS table to /etc/sysconfig/ipvsadm:      [  OK  ]
# vim /etc/sysconfig/ipvsadm     //查看
  1 -A -t 192.168.2.10:80 -s wrr
  2 -a -t 192.168.2.10:80 -r 192.168.4.100:80 -m -w 1
  3 -a -t 192.168.2.10:80 -r 192.168.4.200:800 -m -w 2
# ipvsadm -C                     //临时清除
# ipvsadm -L -n
IP Virtual Server version 1.2.1 (size=4096)
Prot LocalAddress:Port Scheduler Flags
  -> RemoteAddress:Port           Forward Weight ActiveConn InActConn                                                   
# service ipvsadm restart        //重新应用
ipvsadm: Clearing the current IPVS table:                  [  OK  ]
ipvsadm: Unloading modules:                                [  OK  ]
ipvsadm: Clearing the current IPVS table:                  [  OK  ]
ipvsadm: Applying IPVS configuration:                      [  OK  ]
# ipvsadm -L -n
IP Virtual Server version 1.2.1 (size=4096)
Prot LocalAddress:Port Scheduler Flags
  -> RemoteAddress:Port           Forward Weight ActiveConn InActConn
TCP  192.168.2.10:80 wrr
  -> 192.168.4.100:80             Masq    1      0          0
  -> 192.168.4.200:800            Masq    2      0          0
五、测试方法
客户机浏览器访问http://192.168.2.10  即可。
六、ipvsadm常用命令  
-A --add-service 在内核的虚拟服务器表中添加一条新的虚拟服务器记录。也就是增加一台新的虚拟服务器。
-E --edit-service 编辑内核虚拟服务器表中的一条虚拟服务器记录。
-D --delete-service 删除内核虚拟服务器表中的一条虚拟服务器记录。
-C --clear 清除内核虚拟服务器表中的所有记录。
-R --restore 恢复虚拟服务器规则
-S --save 保存虚拟服务器规则,输出为-R 选项可读的格式
-a --add-server 在内核虚拟服务器表的一条记录里添加一条新的真实服务器记录。也就是在一个虚拟服务器中增加一台新的真实服务器
-e --edit-server 编辑一条虚拟服务器记录中的某条真实服务器记录
-d --delete-server 删除一条虚拟服务器记录中的某条真实服务器记录
-L|-l --list 显示内核虚拟服务器表
-Z --zero 虚拟服务表计数器清零(清空当前的连接数量等)
-r --real-server server-address 真实的服务器[Real-Server:port]
-w --weight weight 真实服务器的权值
-m --masquerading 指定LVS 的工作模式为NAT模式
-g --gatewaying 指定LVS 的工作模式为直接路由模式(也是LVS 默认的模式)
-i --ipip 指定LVS 的工作模式为隧道模式
-t --tcp-service service-address 说明虚拟服务器提供的是tcp 的服务
[vip:port] or [real-server-ip:port]
-u --udp-service service-address 说明虚拟服务器提供的是udp 的服务
[vip:port] or [real-server-ip:port]
-f --fwmark-service fwmark 说明是经过iptables 标记过的服务类型。
-s --scheduler scheduler 使用的调度算法,有这样几个选项
rr|wrr|lc|wlc|lblc|lblcr|dh|sh|sed|nq,
默认的调度算法是: wlc.
-n --numeric 输出IP 地址和端口的数字形式
-h --help 显示帮助信息




运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-659550-1-1.html 上篇帖子: 请详细描述LVS DR模式的原理 下篇帖子: ospf+lvs+fullnat 配置部署纪要
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表