LVS

LVS

# LVS : Linux Virtual Server Linux虚拟服务器
当配置LVS的时候,不能直接配置内核中的ipvs, 而需要使用ipvs的管理工具ipvsadm进行管理,
之后我们通过keepalived软件进行管理lpvs,不在通过ipvsadm管理工具
即 keepalived和Ipvsadm 是同级别的
# 官网:http://www.linuxvirtualserver.org/zh/

LVS认知小结:

  1. 真正实现负载调度的工具是IPVS,工作在Linux内核层
  2. LVS自带的IPVS管理工具ipvsadm,工作在用户层
  3. keepalived实现管理IPVS及对负载均衡的高
  4. Red hat 工具Piranha WEB 管理实现跳读工具IIPVS
名称 缩写 说明
虚拟IP地址(Virtual Ip Address) VIP VIP为Director 用于向客户端计算机提供服务的IP地址,
比如:www.123.com域名就要解析到VIP上提供服务
真实IP地址(Real Ip Address) RIP 集群下面节点使用的IP地址,物理地址
Director的IP地址 DIP Diretor用于连接内外网的IP地址,物理网卡上的IP地址,
是负载均衡器上的IP地址
客户端主机IP地址(Client Ip Address) CIP 客户端用户计算机请求集群服务器的IP地址
该地址用于发送给集群的请求的源IP地址

LVS的三种模式:

VS/NAT技术(Virtual Server via Network Adress Translation)

入站DNAT,出站SNAT, 入出站都需要经过LVS,可以修改端口,私有网络

VS/DR (Direcot Routing)****重点内容

修改数据包的目的MAC地址,入站经过LVS,出站不经过LVS,直接返回客户,不能改端口,LAN内使用

TUN (IP Tunneling)

不改变数据包内容,数据包外部封装一个IP头,入站经过LVS,出站不经过LVS,直接返回客户,不能改端口,LAN或者WAN内使用,LVS和节点之间通过隧道通信

FULLNAT

http://www.178linux.com/89580

ARP协议

Address Resolution Protocol 地址解析协议

作用:实现通过IP 地址获取对应主机的物理地址MAC(48位)

ARP 协议要求通信的主机双方必须在同一物理网段,即局域网环境

ARP协议是三层协议,工作在2层

MAC (Medium Access Control 媒体访问控制,物理地址)

定义网络设备的位置,在OSI模型中,第三层网络层负责IP地址,第二层数据链路层负责MAC地址,每一台主机都有自己的MAC地址,而每一个网络位置又具有一个它专属的IP地址

IP地址解析为MAC地址

  • 主机10.1.1.1想要与10.1.1.2通信,首先查看自己的缓存,没有的话下一步
  • 主机10.1.1.1 发送ARP广播
  • 所有的主机都接收到了10.1.1.1的ARP广播,但是只有10.1.1.2给它单播回复,并缓存10.1.1.1的MAC地址
  • 主机10.1.1.1 将10.1.1.2的MAC地址保存到缓存中,发送数据

查看APR的命令:arp -a

APR缓存是把双刃剑,

案例:路由器不稳定,公司新增加了路由器,要求无缝切换,如何实现?

  1. 旧的配置导入到新的配置里
  2. linux服务器命令arping可以将arp表记录失效

LVS DR模式原理:

  1. 通过更改数据包的目标MAC地址实现数据包的转发的
  2. 所有节点和LVS要处于一个局域网

LVS 调度算法:

固定调度算法:rr wrr wlc dhs shs 轮训,权重轮训,加权最小连接调度,目的哈希,源哈希

安装lvs

yum install -y ipvsadm

[root@mix nginx]# ipvsadm
IP Virtual Server version 1.2.1 (size=4096)
Prot LocalAddress:Port Scheduler Flags
  -> RemoteAddress:Port           Forward Weight ActiveConn InActConn
[root@mix nginx]# lsmod | grep ip_vs
ip_vs                 145497  0 
nf_conntrack          139264  7 ip_vs,nf_nat,nf_nat_ipv4,nf_nat_ipv6,xt_conntrack,nf_conntrack_ipv4,nf_conntrack_ipv6
libcrc32c              12644  4 xfs,ip_vs,nf_nat,nf_conntrack

[root@mix nginx]# rpm -qc ipvsadm
/etc/sysconfig/ipvsadm-config
[root@mix nginx]# rpm -qa ipvsadm
ipvsadm-1.27-8.el7.x86_64
[root@mix nginx]# rpm -ql ipvsadm
/etc/sysconfig/ipvsadm-config
/usr/lib/systemd/system/ipvsadm.service
/usr/sbin/ipvsadm
/usr/sbin/ipvsadm-restore
/usr/sbin/ipvsadm-save
/usr/share/doc/ipvsadm-1.27
/usr/share/doc/ipvsadm-1.27/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 -C # 清空全部表
ipvsadm -a # 虚拟服务器 -t服务地址:端口 -s rr 算法   -a 添加 -d 删除 -s 调度算法
ipvsadm -L -n # 查看信息



posted @ 2020-10-24 10:25  pigeast  阅读(148)  评论(0编辑  收藏  举报