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

[经验分享] linux集群之LVS入门和企业级实战(续一)

[复制链接]

尚未签到

发表于 2019-1-6 06:17:01 | 显示全部楼层 |阅读模式
  一、NAT模型实验:

  1、安装ipvsadm
  通常ipvs在linux内核中会有支持,可以查看内核配置文件检查是否支持。
[root@localhost ~]# grep -i ipvs /boot/config-2.6.32-573.el6.x86_64
# IPVS transport protocol load balancing support
# IPVS scheduler
# IPVS application helper
  

  检查linux是否安装了ipvsadm。
  
[root@localhost ~]# rpm -ql ipvsadm
/etc/rc.d/init.d/ipvsadm
/etc/sysconfig/ipvsadm-config
/sbin/ipvsadm
/sbin/ipvsadm-restore
/sbin/ipvsadm-save
/usr/share/doc/ipvsadm-1.26
/usr/share/doc/ipvsadm-1.26/README
/usr/share/man/man8/ipvsadm-restore.8.gz
/usr/share/man/man8/ipvsadm-save.8.gz
/usr/share/man/man8/ipvsadm.8.gz
  

  安装ipvsadm工具包
  
[root@localhost ~]# yum install ipvsadm
已加载插件:fastestmirror
设置安装进程
Loading mirror speeds from cached hostfile
* base: mirrors.tuna.tsinghua.edu.cn
* extras: mirrors.btte.net
* updates: mirrors.tuna.tsinghua.edu.cn
包 ipvsadm-1.26-4.el6.x86_64 已安装并且是最新版本
  

  2、常用命令讲解
  ipvsadm -A|E -t|u|fservice-address [ -s scheduler] [-p [timeout]] [-o] [-M netmask]
  -A:创建一个负载均衡的方法,指明规则、模型。
  -E:编辑负载均衡的方法。
  -t|u|f:指定服务器工作在哪个协议上。工作在网络层
  service-address:指定vip:port
  -s:指定调度方法。rr、wrr、ldlc、
  

  -D:删除一个负载均衡方法。
  ipvsadm -a|e -[tuf] service-address -r real-serveraddress -[gim] [-w weight] [-x upper] [-y lower]
  -a|e:添加、编辑一个负载均衡方法,实际就是添加rip。
  指定lvs模型类型:
  -g:DR模型、默认
  -i:tun模型
  -m:nat模型
  

  查看ipvsadm工作状态
  主参数:-L 查看ipvsadm状态
  辅助参数:—stats-n
  3、保存配置文件
  service ipvsadm save
  默认存储位置:/etc/sysconfig/ipvsadm
  手动指定保存位置:ipvsadm -S >/root/ipvsadm.conf
  
[root@localhost ~]# ipvsadm -S >/root/ipvsadm.conf
[root@localhost ~]# more ipvsadm.conf
-A -t 10.40.0.230:http -s wrr


  手动恢复保存的配置文件:ipvsadm -r  RemoteAddress:Port           Forward Weight ActiveConn InActConn
TCP  10.40.0.230:80 wrr
  

  添加RIP主机到负载均衡LVS中。
  
[root@localhost ~]# ipvsadm -a -t 10.40.0.230:80 -r 192.168.1.10 -m
[root@localhost ~]# ipvsadm -a -t 10.40.0.230:80 -r 192.168.1.20 -m
  

  查看ipvsadm当然工作状态。
  
[root@localhost ~]# ipvsadm -L -n
IP Virtual Server version 1.2.1 (size=4096)
Prot LocalAddress:Port Scheduler Flags
  -> RemoteAddress:Port           Forward Weight ActiveConn InActConn
TCP  10.40.0.230:80 wrr
  -> 192.168.1.10:80              Masq    1      0          0         
  -> 192.168.1.20:80              Masq    1      0          0         
  

  

  lvs配置很简单,应用中注意各个网卡的设置,特别是路由设置,建议检查一下,通常使用虚拟机时这些问题注意的比较多。
  

  二、DR模型实验
  

  1、禁止realserver上的VIP直接和前端路由进行通信的三种方案:
  1、修改路由,使用静态arp,arp绑定
  2、在realserver上使用arptables,禁止响应对vip的广播请求。
  
  3、在realserver上修改其内核参数,并将vip配置在与rip不同的接口上,通常是lo。
  
arp_ignore:用来定义arp响应限制级别
                0:响应任意本地接口的请求
                1:如果目的ip地址是本地进入的接口,就响应,非直连接口不响应。

     arp_announce:定义arp通告级别
     0:通告任何针对本地地址的请求,任意端口都通告。
     1:尽量不通告目标接口不是此接口的请求,比如eth0接口不会通告针对本地eth1接口的请求。
     2:使用最合适的本地接口进行通告。绝对不响应非本接口请求,比2严格。
  

  2、强制realserver使用vip作为源地址发送响应报文,通常使用一条路由在进行强制。
  

  3、网络规划
  3.1RIP/DIP/VIP在同一个网络中,网关可以指向同一个路由,配置最简单。

  我的实验是在虚拟机上完成的,具体虚拟机配置如下:
  director server
  eth0:10.40.0.58 桥接模式
[root@localhost ~]# ifconfig eth0:1 10.40.0.51 broadcast 10.40.0.51 netmask 255.255.255.255 up
[root@localhost ~]# route add -host 10.40.0.51 dev eth0:1
  
[root@localhost ~]# ipvsadm -A -t 10.40.0.51:80 -s wlc
[root@localhost ~]# ipvsadm -a -t 10.40.0.51:80 -r 10.40.0.54:80 -g -w 1
[root@localhost ~]# ipvsadm -a -t 10.40.0.51:80 -r 10.40.0.55:80 -g -w 1
[root@localhost ~]# ipvsadm -a -t 10.40.0.51:80 -r 10.40.0.56:80 -g -w 1
  
[root@localhost ~]# ipvsadm
IP Virtual Server version 1.2.1 (size=4096)
Prot LocalAddress:Port Scheduler Flags
  -> RemoteAddress:Port           Forward Weight ActiveConn InActConn
TCP  10.40.0.51:http wlc
  -> 10.40.0.54:http            Route   1      0          0         
  -> 10.40.0.55:http            Route   2      0          0         

  -> 10.40.0.56:http            Route   2      0          0         
  

  Realserver1:
  eth0:10.40.0.54 桥接模式
  Realserver2:
  eth0:10.40.0.55 桥接模式
  Realserver3:
  eth0:10.40.0.56 桥接模式
  具体配置如下:
[root@10.40.0.54~]$ifconfig eth0 10.40.0.54/24
  
[root@10.40.0.54~]$ echo 1 > /proc/sys/net/ipv4/conf/lo/arp_ignore

[root@10.40.0.54~]$ echo 2 > /proc/sys/net/ipv4/conf/lo/arp_announce
[root@10.40.0.54~]$ echo 1 > /proc/sys/net/ipv4/conf/all/arp_ignore
[root@10.40.0.54~]$ echo 2 > /proc/sys/net/ipv4/conf/all/arp_announce
[root@10.40.0.54 ~]# ifconfig lo:0 10.40.0.51 broadcast 10.40.0.51 netmask 255.255.255.255 up

[root@10.40.0.54 ~]# route add -host 10.40.0.51 dev lo:0
  

[root@10.40.0.55~]$ifconfig eth0 10.40.0.55/24
  
[root@10.40.0.55~]$ echo 1 > /proc/sys/net/ipv4/conf/lo/arp_ignore

[root@10.40.0.55~]$ echo 2 > /proc/sys/net/ipv4/conf/lo/arp_announce
[root@10.40.0.55~]$ echo 1 > /proc/sys/net/ipv4/conf/all/arp_ignore
[root@10.40.0.55~]$ echo 2 > /proc/sys/net/ipv4/conf/all/arp_announce
[root@10.40.0.55 ~]# ifconfig lo:0 10.40.0.51 broadcast 10.40.0.51 netmask 255.255.255.255 up

[root@10.40.0.55~]# route add -host 10.40.0.51 dev lo:0
[root@10.40.0.56~]$ifconfig eth0 10.40.0.56/24
  
[root@10.40.0.56~]$ echo 1 > /proc/sys/net/ipv4/conf/lo/arp_ignore

[root@10.40.0.56~]$ echo 2 > /proc/sys/net/ipv4/conf/lo/arp_announce
[root@ 10.40.0.56~]$ echo 1 > /proc/sys/net/ipv4/conf/all/arp_ignore
[root@10.40.0.56~]$ echo 2 > /proc/sys/net/ipv4/conf/all/arp_announce
[root@10.40.0.56~]# ifconfig lo:0 10.40.0.51 broadcast 10.40.0.51 netmask 255.255.255.255 up

[root@10.40.0.56~]# route add -host 10.40.0.51 dev lo:0
  3.2RIP同VIP不在同一个网段,在需要另外指定添加一个路由器用于和rip相连,并指定网关为此路由器,然后此路由在自由选择出口方法

  我的实验是在虚拟机上完成的,具体虚拟机配置如下:
  director server
  eth0:10.40.0.58 桥接模式 有线网卡
  eth1:192.168.1.10 桥接模式  wifi网卡
  具体配置如下:
  1、配置vip、dip(dip就是eth1的ip地址了),关闭防火墙,开启ip_forward转发
[root@localhost ~]# ifconfig eth0:1 10.40.0.51 broadcast 10.40.0.51 netmask 255.255.255.255 up
[root@localhost ~]# route add -host 10.40.0.51 dev eth0:1
  
[root@localhost ~]# ipvsadm -A -t 10.40.0.51:80 -s wlc
[root@localhost ~]# ipvsadm -a -t 10.40.0.51:80 -r 10.40.0.54:80 -g -w 1
[root@localhost ~]# ipvsadm -a -t 10.40.0.51:80 -r 10.40.0.55:80 -g -w 1
[root@localhost ~]# ipvsadm -a -t 10.40.0.51:80 -r 10.40.0.56:80 -g -w 1
[root@localhost ~]# ipvsadm
IP Virtual Server version 1.2.1 (size=4096)
Prot LocalAddress:Port Scheduler Flags
  -> RemoteAddress:Port           Forward Weight ActiveConn InActConn
TCP  10.40.0.51:http wlc
  -> 192.168.1.11:http            Route   1      0          0         
  -> 192.168.1.12:http            Route   2      0          0         
  Realserver1:
  eth0:10.40.0.54 桥接模式  wifi网卡
  Realserver2:
  eth0:10.40.0.55 桥接模式  wifi网卡
  Realserver3:
  eth0:10.40.0.56 桥接模式  wifi网卡
[root@192.168.1.11~]$ifconfig eth0 192.168.1.11/24
  
[root@192.168.1.11~]$ echo 1 > /proc/sys/net/ipv4/conf/lo/arp_ignore

[root@192.168.1.11~]$ echo 2 > /proc/sys/net/ipv4/conf/lo/arp_announce
[root@192.168.1.11~]$ echo 1 > /proc/sys/net/ipv4/conf/all/arp_ignore
[root@192.168.1.11~]$ echo 2 > /proc/sys/net/ipv4/conf/all/arp_announce
[root@localhost ~]# ifconfig lo:0 10.40.0.51 broadcast 10.40.0.51 netmask 255.255.255.255 up

[root@localhost ~]# route add -host 10.40.0.51 dev lo:0

[root@192.168.1.11~]$route add default gw 192.168.1.1
  

[root@192.168.1.11~]$ifconfig eth0 192.168.1.12/24
  
[root@192.168.1.11~]$ echo 1 > /proc/sys/net/ipv4/conf/lo/arp_ignore

[root@192.168.1.11~]$ echo 2 > /proc/sys/net/ipv4/conf/lo/arp_announce
[root@192.168.1.11~]$ echo 1 > /proc/sys/net/ipv4/conf/all/arp_ignore
[root@192.168.1.11~]$ echo 2 > /proc/sys/net/ipv4/conf/all/arp_announce
[root@localhost ~]# ifconfig lo:0 10.40.0.51 broadcast 10.40.0.51 netmask 255.255.255.255 up

[root@localhost ~]# route add -host 10.40.0.51 dev lo:0
[root@192.168.1.11~]$route add default gw 192.168.1.1
  

  





运维网声明 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-659767-1-1.html 上篇帖子: 负载均衡集群企业及应用实战 下篇帖子: 实现LVS的持久连接以及健康状态监控功能
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

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

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

扫描微信二维码查看详情

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


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


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


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



合作伙伴: 青云cloud

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