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

[经验分享] linux virtual server(LVS)的构建

[复制链接]

尚未签到

发表于 2019-1-3 10:01:47 | 显示全部楼层 |阅读模式
一、使用Nat模式的LVS的构建
1.配置分发器。
#配置网卡
ifconfig eth0 10.1.1.250
ifconfig eth1 192.168.10.250
#打开网卡转发
#echo '1' > /proc/sys/net/ipv4/ip_forward //临时启用网卡转发
#编辑/etc/sysctl.conf文件可以永久启用网卡转发
#vim /etc/sysctl.conf
net.ipv4.ip_forward=1
sysctl -p
#安装ipvsadm软件包并增加新的ipvsadm服务
#安转ipvsadm软件包
mount /dev/cdrom /media
cd /media/Cluster
rpm -Uvh ipvsadm-1.24-12.el5.i386.rpm
#增加一个新的服务
ipvsadm -A -t 10.1.1.250:80 -s rr
#-A 添加新的服务                                                                        
#-t 指定服务所使用的虚拟ip地址:端口                                          
#-s 指定服务使用的算法(rr算法是将数据包依次分发给服务中的主机)  
#把服务和服务池(server pool)进行关联
ipvsadm -a -t 10.1.1.250:80 -r 192.168.10.1 -m
ipvsadm -a -t 10.1.1.250:80 -r 192.168.10.2 -m
#-a  添加real server
#-r 指定real server的ip
#-m 指定使用nat模式
#查看建立的服务
ipvsadm -ln
##结果如下
IP Virtual Server version 1.2.1 (size=4096)
Prot LocalAddress:Port Scheduler Flags
  -> RemoteAddress:Port           Forward Weight ActiveConn InActConn
TCP  10.1.1.250:80 rr
  -> 192.168.10.1:80             Masq    1      0          0         
  -> 192.168.10.2:80             Masq    1      0          0
  
2.配置server pool下的真实主机(real server)
#配置服务器ip
ifconfig eth0 192.168.10.1
#配置服务器的默认网关
route add default gw 192.168.10.250
#安装apache服务
yum install httpd
#ifconfig eth0 > /var/www/html/index.html //生成一个页面用于测试
#启动apache服务
/etc/init.d/httpd restart
3.同理配置其他真实主机
4.使用客户端访问http://10.1.1.250测试服务器  
    在这个过程中,首先,用户向分发器发送请求,该请求的目的IP地址为分发器的对外IP(10.1.1.250)、源IP为用户IP(10.1.1.1);当数据包到达分发器时,分发器对该数据包进行目的地址转换,将用户请求数据包的目的地址(10.1.1.250)转换为服务器池中的某台主机的ip(192.168.10.1),然后将数据包从对内网卡转发出来;该真实主机在接受到用户请求时,将对用户的请求进行处理,并将应答请求数据包返回给分发器,此时该应答数据包的目的IP为用户的IP地址(10.1.1.1),而其源IP地址为该真实主机的IP地址(192.168.10.1),其目的MAC为分发器的MAC地址;当分发器接受到该数据包时,将对此数据包进行源地址转换,将该数据包的源IP地址(192.168.10.1)转换成为分发器的对外IP地址(10.1.1.1),并将该数据包从分发器的对外网卡传送出去。
    使用NAT模式构建LVS时,当同时进行的并发很大时,大量的数据包流经分发器,容易造成分发器出现问题。

二、使用DR模式构建LVS
1.配置路由器
ifconfig eth0 10.1.1.254
ifconfig eth1 192.168.10.254
echo 1 > /proc/sys/net/ipv4/ip_forward
2.配置分发器IP地址
#配置eth0的IP
ifconfig eth0 192.168.10.11
#配置默认网关
route add default gw 192.168.10.254
#添加一个虚拟ip,并使其不对外进行广播
ifconfig eth0:0 192.168.10.250 netmask 255.255.255.255 broadcast 192.168.19.250 up
#配置默认路由
route add 192.168.10.250/32 dev eth0:0
#设定分发规则
yum install ipvsadm -y
ipvsadm -A -t 192.168.10.250:80 -s rr
ipvsadm -a -t 192.168.10.250:80 -r 192.168.10.1 -g
ipvsadm -a -t 192.168.10.250:80 -r 192.168.10.2 -g
# -g 指定LVS使用的分发使用DR模式
3.real server的配置
#配置服务器IP
ifconfig eth0 192.168.10.1
#绑定vip
ifconfig lo:0 192.168.10.250 netmask 255.255.255.255 broadcast 192.168.19.250 up
#设置到主机的路由
route add -host 192.168.19.250 dev lo:0
#设置默认路由
route add default gw 192.168.10.254
#禁止真实主机将192.168.10.250进行arp广播
echo 1 > /proc/sys/net/ipv4/conf/lo/arp_ignore
echo 1 > /proc/sys/net/ipv4/conf/all/arp_ignore
echo 2 > /proc/sys/net/ipv4/conf/lo/arp_announce
echo 2 > /proc/sys/net/ipv4/conf/all/arp_announce
================arp_announce=============
对网络接口上,本地IP地址的发出的,ARP回应,作出相应级别的限制: 确定不同程度的限制,宣布对来自本地源IP地址发出Arp请求的接口
0 - (默认) 在任意网络接口(eth0,eth1,lo)上的任何本地地址
1 -尽量避免不在该网络接口子网段的本地地址做出arp回应. 当发起ARP请求的源IP地址是被设置应该经由路由达到此网络接口的时候很有用.此时会检查来访IP是否为所有接口上的子网段内ip之一.如果改来访IP不属于各个网络接口上的子网段内,那么将采用级别2的方式来进行处理.
2 - 对查询目标使用最适当的本地地址.在此模式下将忽略这个IP数据包的源地址并尝试选择与能与该地址通信的本地地址.首要是选择所有的网络接口的子网中外出访问子网中包含该目标IP地址的本地地址. 如果没有合适的地址被发现,将选择当前的发送网络接口或其他的有可能接受到该ARP回应的网络接口来进行发送.
  ================arp_ignore=============
定义对目标地址为本地IP的ARP询问不同的应答模式
0 - (默认值): 回应任何网络接口上对任何本地IP地址的arp查询请求
1 - 只回答目标IP地址是来访网络接口本地地址的ARP查询请求
2 -只回答目标IP地址是来访网络接口本地地址的ARP查询请求,且来访IP必须在该网络接口的子网段内
3 - 不回应该网络界面的arp请求,而只对设置的唯一和连接地址做出回应
4-7 - 保留未使用
8 -不回应所有(本地地址)的arp查询

#重启apache服务
/etc/init.d/httpd restart
4.配置其他真实主机并测试服务器
    在DR模式中,首先,用户向分发器发送请求,请求数据包在封装时,目的ip使用虚拟IP地址(192.168.10.250),源IP地址使用客户机IP。数据包在到达真实服务器途中,只改变源目MAC,源目IP始终不变。当请求数据包到达分发器时,分发器仅进行数据包的分配,此时只更改请求数据包源目MAC。当真实服务器接受到数据包,此时真实服务器则进行数据包的处理,应答用户请求,应答数据包的源IP为虚拟IP(192.168.18.250),目的地址为用户IP地址(10.1.1.100),并直接将数据包传递给路由器的内网接口,此时数据包不经过分发器,不会受到分发器瓶颈的影响。




运维网声明 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-658875-1-1.html 上篇帖子: LB集群之LVS/nat 下篇帖子: LVS工作原理介绍
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

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

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

扫描微信二维码查看详情

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


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


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


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



合作伙伴: 青云cloud

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