一.LVS介绍
LVS是Linux Virtual Server的简称,也就是Linux虚拟服务器, 是一个由章文嵩博士发起的自由软件项目。现在LVS已经是 Linux标准内核的一部分,在Linux2.4内核以前,使用LVS时必须要重新编译内核以支持LVS功能模块,但是从Linux2.4内核以后,已经完全内置了LVS的各个功能模块,无需给内核打任何补丁,可以直接使用LVS提供的各种功能。
LVS自从1998年开始,发展到现在已经是一个比较成熟的技术项目了。可以利用LVS技术实现高可伸缩的。有许多比较著名网站和组织都在使用LVS架设的集群系统,所以学好LVS很重要。
二.LVS的特点
通过LVS提供的负载均衡技术和Linux操作系统实现一个高性能、高可用的服务器群集,它具有良好可靠性、可扩展性和可操作性。从而以低廉的成本实现最优的服务性能。
LVS的主要特点有:
- 高并发连接:LVS基于内核网络层面工作,有超强的承载能力和并发处理能力。单台LVS负载均衡器,可支持上万并发连接。
- 稳定性强:是工作在网络4层之上仅作分发之用,这个特点也决定了它在负载均衡软件里的性能最强,稳定性最好,对内存和cpu资源消耗极低。
- 成本低廉:硬件负载均衡器少则十几万,多则几十万上百万,LVS只需一台服务器和就能免费部署使用,性价比极高。
- 配置简单:LVS配置非常简单,仅需几行命令即可完成配置,也可写成脚本进行管理。
- 支持多种算法:支持多种论调算法,可根据业务场景灵活调配进行使用
- 支持多种工作模型:可根据业务场景,使用不同的工作模式来解决生产环境请求处理问题。
- 应用范围广:因为LVS工作在4层,所以它几乎可以对所有应用做负载均衡,包括http、数据库、DNS、ftp服务等。
- 缺点:工作在4层,不支持7层规则修改,机制过于庞大,不适合小规模应用。
三.LVS模式介绍
LVS有四种模式,根据LVS的高效可分为DR模式、TUN模式、NAT模式和FULLNAT模式。前三种没有坑攻击能力,FULLNAT有抗攻击能力。生产中一般使用的都是NAT模式和DR模式,当然,也并不是说其他模式并不会使用,还是要根据实际的生产场景来决定选择什么样的方案。
四.弄明白大体原理和工作流程
个人体会:先别急着动手做四种模式的实验,先把大体原理和它们工作的流程搞清楚,这样做起实验来才知道敲的命令是干什么的,千万不要糊里糊涂的干,这样纯粹是浪费时间。
五.TCP/IP四层模型和OSI七层模型
TCP/IP四层模型和OSI七层模型
TCP/IP模型各个层次的功能和协议
TCP/IP与OSI最大的不同在于OSI是一个理论上的网络通信模型,而TCP/IP则是实际运行的网络协议。
六.DR模式–直接路由
RS1
Client -----> Director ------> ------> Client
RS2
总的来说:IP地址没变 MAC地址改变
过程:
- client以cip去访问vip,整个集群上的服务器都有vip,但client只能访问Director上的vip,通过Director调度机上的ipvsadm策略将client发来的数据包的目标mac地址一改(由调度器改为RS),扔给后台的RS,RS处理完数据后,再将数据包发送给client(ip是vip,mac是自己的mac)
- 调度机上的ipvsadm策略是osi模型第二层数据链路层的策略,更改了mac地址,不会对第三层网络层的ip做更改,当数据包被扔给RS之后,在OSI模型从下往上解包,到第三层ip层时,发现目地ip是vip,如果RS上不添加VIP的话,RS就会将这个包扔掉,因为与自己的ip不匹配。
- RS上做的arptables策略是为了实现 none VIP , 其实并不冲突,这都是在第二层与第三层之间的策略,RS上做两条策略:
第一条:当网络里有人发送arp请求询问VIP对应的mac地址时,RS不予回应
第二条:从本机上出去的所有arp回应,或者是arp包,注意,只是arp包,因为是arptables策略,如果是VIP发出的(RS上两个ip,一个VIP,一个RIP),都将它转换为RIP
这块要注意的是在网络里,数据包都是先以mac地址(第二层)为目标进行传输的,到达目的地后,一层一层往上解包,进行匹配,第三层匹配ip,第四层匹配端口,等等….只要有一层不匹配,这个包都会被扔掉,或者拒绝
接下来配置:
Director:先修改yum源,baseurl要改镜像挂载点,这都是镜像里的文件,默认不读,要主动写进去
配置VIP
ip addr add 172.25.55.100/24 dev eth1
ip addr #查看是否添加
yum