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

[经验分享] LVS类型之NAT

[复制链接]
累计签到:1 天
连续签到:1 天
发表于 2016-4-29 16:50:26 | 显示全部楼层 |阅读模式
                      LVS:Linux virtual server将用户请求的报文转发给后端服务器,根据用户请求的ip+端口号,进行处理
LVS与iptables不能同时使用;
LVS以规则方式进行检查:
    ipvsadm:用户空间,管理集群服务的命令行工具
    ipvs:内核
转发的标准:调度方法(调度中的算法,计算机制)---》schedule method
当用户请求的是IP+22端口,于是进入PREROUTING,直接进入本地(通过INPUT),因为它不是请求的集群服务;
当用户请求的ip+80端口,判断为集群服务,于是内核ipvs进行转发,提供调度功能;
一个调度器只为一个集群服务提供调度功能;


调度器前端提供服务的ip:VIP,virtual ip(面向互联网客户端)

web服务ip:RIP,rs ip
调度器转发给服务端的ip:DIP(面向real server)
客户端的ip:CIP,client ip


LVS类型:
        NAT:地址转换(目标地址转换)----》多目标的DNAT
        DR:直接路由,direct routing
        TUN:隧道
NAT:               
集群节点(real server ip)的ip网段必须和DIP是同一网段
RIP通常是私有地址,仅用于各集群节点间的通信
调度器(director)位于client和real server之间,并负责处理进出的所有通信(director有两张网卡)
real server必须将网管指向DIP
支持端口映射(客户端请求的80,real server可以返回8080的端口进行数据报文传输)
real server可以使用任意操作系统
较大规模应用场景中,director易成为系统瓶颈

ipvsadm:
        管理集群服务
        添加:-A -t|u|f service-address [-s scheduler](调度算法默认为wlc)
                -t:tcp协议的集群服务
                -u:udp协议的集群服务
                -f:防火墙标记firewallmark(FWM)
                service-address:mark number
        修改:-E
        删除:-D -t|u|f service-address
                #ipvsadm -A -t 172.16.100.1:80 -s rr
        管理集群服务中的RS
        添加:-a -t|u|f service-address -r service-address [-g|i|m] [-w weight]
                service-address:事先定义好的某集群服务
                -r service-address:某RS的地址,在nat模型当中可以使用ip+port实现端口映射
                [-g|i|m] [-w weight]:表示LVS类型
                -g:DR模型(默认为DR模型)
                -i:TUN
                -m:NAT
                -w:指定权重
        修改:-e
        删除:-d
              -t|u|f service-address -r service-address
        #ipvsadm -a -t 172.16.100.1 -r 192.168.10.8 -m
        #ipvsadm -a -t 172.16.100.1 -r 192.168.10.9 -m
        查看:
             -L或者-l
             -n:数字格式,显示IP+端口号(主机地址和端口)
                --stats:统计数据信息
                --rate:用来输出速率信息(cps:connection per seconds)
                --timeout:用于输出超时时间值(显示tcp、tcpfin、udp的会话超时时长)
                --daemon
                -c:--connection显示当前连接数(-L连用)
        -C:删除所有集群服务,情况ipvs规则
        保存规则:
                  -S:#ipvsadm -S > /path/to/somefile
        载入此前的规则:
                  -R:#ipvsadm -R < /path/to/somefile
接下来示例演示NAT类型LVS:
确保iptables和ipvs不能同时启动,准备工作3台虚拟机,其中:
一台作为director(VIP、DIP),两张网卡
一台real server(RS1),主机模式
一台real server(RS2),主机模式
将两台real server的网关指向director的ip,具体配置如下:
director:
eth0:(VIP)
ip:192.168.31.100 gateway:192.168.31.1 netmask:255.255.255.0
eth1:(DIP)
ip:192.168.248.128 gateway:192.168.248.1 netmask:255.255.255.0
RS1:
ip:192.168.248.129 gateway:192.168.248.128 netmask:255.255.255.0
RS2:
ip:192.168.248.130 gateway:192.168.248.128 netmask:255.255.255.0
首先配置RS两台上面的web服务作为测试,为方便观察采用的调度算法为rr轮询:

RS1具体操作如下:(RS1虚拟机选为主机模式)
service iptables stop
setenforce 0
vim /etc/selinux/config
SELINUX=disabled
yum -y install httpd
echo "RS1.my.com" > /var/www/html/index.html
service httpd start:确保服务政策启动
curl http://localhost
RS1.my.com
同理RS2具体操作:
service iptables stop
setenforce 0
vim /etc/selinux/config
SELINUX=disabled
yum -y install httpd
echo "RS2.my.com" > /var/www/html/index.html
service httpd start:确保服务政策启动
curl http://localhost
RS2.my.com
RS1.my.com
##################################################################################
director配置操作如下:
将eth0(ip:192.168.31.100 gateway:192.168.31.1 netmask:255.255.255.0)联网方式为桥接
将eth1(ip:192.168.248.128 gateway:192.168.248.1 netmask:255.255.255.0)联网方式为主机模式
ping 192.168.248.129
ping 192.168.248.130
确保能够ping通RS两台web服务器的ip
确保能够访问两台RS的页面
接下来开始配置director:
service iptables stop
setenforce 0
vim /etc/selinux/config
SELINUX=disabled
yum -y install ipvsadm
由于该测试类型为NAT,于是还得配置:
echo 1 > /proc/sys/net/ipv4/ip_forward--->打开转发功能
vim /etc/sysctl.conf
net.ipv4.ip_forward = 1
于是开始建立集群:

ipvsadm -A -t 192.168.31.100:80 -s rr
ipvsadm -a -t 192.168.31.100:80 -r 192.168.248.129 -m
ipvsadm -a -t 192.168.31.100:80 -r 192.168.248.130 -m
[iyunv@test ~]# 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.31.100:80 rr
  -> 192.168.248.129:80           Masq    1      0          0         
  -> 192.168.248.130:80           Masq    1      0          0   
至此集群服务就建立好了,只需要在浏览器中输入

http://192.168.31.100即可查看到RS1以及RS2的站点内容(刷新页面即可轮询站点内容RS1、RS2交替出现)
详细成功截图见下班后上传--
                   


运维网声明 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-210404-1-1.html 上篇帖子: LB集群之LVS-dr 下篇帖子: LVS类型之DR schedule 互联网 计算机 服务器 server
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

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

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

扫描微信二维码查看详情

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


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


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


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



合作伙伴: 青云cloud

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