LVS-NAT模式
一、LVS 概述LVS是Linux内核的一部分因此性能较高。Linux虚拟服务器即分发器或调度器 它不真正提供服务但它接受客户的访问为整个集群提供一个唯一的入口。虚拟服务器和真实服务器Real Server通信。真实服务器Real Server 它真正提供服务集群中每个Real Server可以是一台物理主机也可以是虚拟机。二、LVS三种模式VS/NAT 网络地址转换模式 进站出站的数据流量经过分发器VS/DR 直接路由模式只有进站的数据流量经过分发器VS/TUN 隧道模式只有进站的数据流量经过分发器拓扑基础配置一、克隆vm-01 vm-02 vm-03 vm-04 vm-05 虚拟机virt-clone -o centos7u6-template -n vm-01 -f /kvm/vm-01.img给vm-01 vm-02添加一块网卡、Mac地址注意修改virsh attach-interface vm-01 --type bridge --source virbr0 --persistent --mac aa:34:00:23:36:f1virsh attach-interface vm-02 --type bridge --source virbr0 --persistent --mac aa:34:00:23:36:f2二、给每一台虚拟机配置IP地址、主机名、网关首先配置vm-01 vm-02virsh console vm-01因为vm-01是充当路由所以不需要网关、dnsvim /etc/sysconfig/network-scripts/ifcfg-eth0NAMEeth0DEVICEeth0ONBOOTyesNETBOOTyesIPV6INITyesBOOTPROTOstaticTYPEEthernetIPADDR10.10.10.100NETMASK255.255.255.0查看第二块网卡名ip a创建一个ens8的配置文件vim /etc/sysconfig/network-scripts/ifcfg-ens8NAMEens8DEVICEens8ONBOOTyesNETBOOTyesIPV6INITyesBOOTPROTOstaticTYPEEthernetIPADDR192.168.122.152NETMASK255.255.255.0开启路由转发vm-01 vm-02echo 1 /proc/sys/net/ipv4/ip_forwardvm-03 vm-04 修改IP地址前安装http服务并开启yum install httpd systemctl restart httpd配置文件中网关设置为192.168.122.150重启network二、配置网关规则在vm-02安装yum install ipvsadm配置两条路由一条是172.16.0.100到172.16.0.254一条是10.10.10.200到10.10.10.100在vm-02中ip route add default via 172.16.0.254 dev eth0在vm-05中ip route add default via 10.10.10.100 dev eth0三、在分发器上配置分发规则ipvsadm -A -t 172.16.0.100:80 -s rr ipvsadm -a -t 172.16.0.100:80 -r 192.168.122.100 -m ipvsadm -a -t 172.16.0.100:80 -r 192.168.122.200 -m验证去到vm-05curl 172.16.0.100命令选项解释有两种命令选项格式长的和短的具有相同的意思。在实际使用时两种都可以。-A --add-service 在内核的虚拟服务器表中添加一条新的虚拟服务器记录。也就是增加一台新的虚拟服务器。-E --edit-service 编辑内核虚拟服务器表中的一条虚拟服务器记录。-D --delete-service 删除内核虚拟服务器表中的一条虚拟服务器记录。-C --clear 清除内核虚拟服务器表中的所有记录。-R --restore 恢复虚拟服务器规则-S --save 保存虚拟服务器规则输出为-R 选项可读的格式-a --add-server 在内核虚拟服务器表的一条记录里添加一条新的真实服务器记录。也就是在一个虚拟服务器中增加一台新的真实服务器-e --edit-server 编辑一条虚拟服务器记录中的某条真实服务器记录-d --delete-server 删除一条虚拟服务器记录中的某条真实服务器记录-L|-l --list 显示内核虚拟服务器表-Z --zero 虚拟服务表计数器清零清空当前的连接数量等--set tcp tcpfin udp 设置连接超时值--start-daemon 启动同步守护进程。他后面可以是master 或backup用来说明LVS Router 是master 或是backup。在这个功能上也可以采用keepalived 的VRRP 功能。--stop-daemon 停止同步守护进程-h --help 显示帮助信息其他的选项:-t --tcp-service service-address 说明虚拟服务器提供的是tcp 的服务[vip:port] or [real-server-ip:port]-u --udp-service service-address 说明虚拟服务器提供的是udp 的服务[vip:port] or [real-server-ip:port]-f --fwmark-service fwmark 说明是经过iptables 标记过的服务类型。-s --scheduler scheduler 使用的调度算法有这样几个选项 rr|wrr|lc|wlc|lblc|lblcr|dh|sh|sed|nq,默认的调度算法是 wlc.-p --persistent [timeout] 持久稳固的服务。这个选项的意思是来自同一个客户的多次请求将被同一台真实的服务器处理。timeout 的默认值为300 秒。-M --netmask netmask persistent granularity mask-r --real-server server-address 真实的服务器[Real-Server:port]-g --gatewaying 指定LVS 的工作模式为直接路由模式也是LVS 默认的模式-i --ipip 指定LVS 的工作模式为隧道模式-m --masquerading 指定LVS 的工作模式为NAT 模式-w --weight weight 真实服务器的权值--mcast-interface interface 指定组播的同步接口-c --connection 显示LVS 目前的连接 如ipvsadm -L -c--timeout 显示tcp tcpfin udp 的timeout 值 如ipvsadm -L --timeout--daemon 显示同步守护进程状态--stats 显示统计信息--rate 显示速率信息--sort 对虚拟服务器和真实服务器排序输出--numeric -n 输出IP 地址和端口的数字形式数据包走向1.Client----------GWsip: CIP dip: VIPsmac: Client_mac dmac: GW_up_mac2.GW--------------Directorsip: CIP dip: VIPsmac: GW_down_mac dmac: VIP_mac3.Director--------Real Server (DNAT)sip: CIP dip: RIPsmac: DIP_mac dmac: RealServer_mac4.Real Server-----Directorsip: RIP dip: CIPsmac: RealServer_mac dmac: DIP_mac5.Director--------GWsip: VIP dip: CIPsmac: VIP_mac dmac: GW_down_mac6.GW--------------Clientsip: VIP dip: CIPsmac: GW_up_mac dmac: Client_mac小结LVS/NAT模式的原理是当收到Client请求时Director将数据包的目标IP由VIP转换为选中的Real Server的RIP来实现分发要求RS将网关指向Director的DIP。特点是配置简单所有的入站、出站数据包都经过分发器。当数据量比较大时分发器可能会出现网络瓶颈因而支持的RS数量少。