LVS/NAT实现
一、LVS简单介绍
LVS(Linux Virtual Server)其实就是针对高可伸缩、高可用网络服务的需求,给出了基于IP层和基于内容请求分发的负载平衡调度解决方法,并在Linux内核中实现了这些方法,将一组服务器构成一个实现可伸缩的、高可用网络服务的虚拟服务器。所以,lvs需要内核有ipvs支持,linux-2.4.23以后ipvs都编译到内核里,如果你是之前版本确保你的内核支持ipvs后,只需安装ipvsadm就可以把一台服务器配置成负载调度器(Load Balancer)。对外提供服务的IP,也就是我们访问的IP称做VIP。调度器LB的任务主要是分发请求,真正处理的是真实服务器(Real Server)。
网络地址传输模式::LB收到用户请求包后,LB将请求包中虚拟服务器的IP地址转换为某个选定RS的IP地址,转发给RS;RS将应答包发给LB,LB将应答包中RS的IP转为虚拟服务器的IP地址,回送给用户。
lvs-nat模型特征
DR(Direct Routing)直接路由模式。LB收到请求包后,将请求包中目标MAC地址转换为某个选定RS的MAC地址后将包转发出去,RS收到请求包后 ,可直接将应答内容传给用户。此时要求LB和所有RS都必须在一个物理段内,且LB与RS群共享一个虚拟IP。
lvs-dr模型特征 (常用)
IP隧道 (IP Tunneling)模式。LB收到用户请求包后,根据IP隧道协议封装该包,然后传给某个选定的RS;RS解出请求信息,直接将应答内容传给用户。此时要求RS和LB都要支持IP隧道协议。
lvs-tun模型特征
三、lvs scheduling methods调度算法有10种
静态调度4个轮叫RR
动态调度6个
基于本地的最少链接(Locality-Based Least Connections:DH)LBLC
带复制的基于本地最少链接(Locality-Based Least Connections with Replication)LBLCR
172.16.23.1是LVS与互联网的虚拟server ip地址,简称为VIP
192.168.23.1是LVS与内部真实服务器通信的ip地址,简称为DIP
192.168.23.2与192.168.23.3就是LVS通过一些调度算法,选择服务器响应的真实服务器地址
yum -y install httpd
service httpd start
设置ip地址为192.168.23.2
(1)、sysctl -w net.ipv4.ip_forward=1 向内核传递参数开启ip转发功能,使立即生效
cat /proc/sys/net/ipv4/ip_forward 查看确保为1
(4)、用ipvsadm设置规则
ipvsadm -A -t 172.16.23.1:80 -s rr //这里定义一个集群服务 –s指调度算法为rr
ipvsadm -a -t 172.16.23.1:80 -r 192.16.23.2 –m //向集群服务添加RS -m为nat方式
ipvsadm -a -t 172.16.23.1:80 -r 192.16.23.3 –m //向集群服务添加RS -m为nat方式
(5)3.在web1和web2上设置默认网关指向DIP的地址
route add default gw 192.168.23.1
ping 172.16.23.1 确保能ping通
(6)、测试是否成功
ab -c 10 -n 1000 http://172.16.23.1/index.html 用ab命令做测试
watch -n1 'ipvsadm -L -n' 每秒刷新一次来查看变化
(7)ipvsadm命令详细介绍
1.定义集群服务
语法:
ipvsadm -A|-E -t|-u VIP:port -s scheduler -s指调度算法
ipvsadm -D -t|-u VIP:port
-A 在虚拟服务器表中添加新的虚拟服务器记录
-E 编辑内核虚拟服务器表中虚拟服务器记录。
-D 删除虚拟服务器表中虚拟服务器记录。
-L 查看
-t|-u 代表tcp和udp服务
VIP指虚拟服务器ip地址,即LVS与internet通信的网卡地址
2. 真实服务器的规则定义
ipvsadm -a|e -t|u VIP:port -r REALSERVER -g|-i|-m [-w weight]
ipvsadm -d -t|-u VIP:port -r REALSERVER
-a 在虚拟服务器表的添加一条新的真实服务器
-e 编辑虚拟服务器记录中真实服务器记录
-d删除虚拟服务器记录的真实服务器记录
-r 提供服务响应的真实服务器
-g 指LVS 的工作模式为直接路由模式
-i 指LVS 的工作模式为隧道模式
-m 指LVS 的工作模式为NAT 模式
-z 清空计数器
-n 数字的方式来显示地址
--stats 状态信息
--rate 每秒速率
添加或者修改REALSERVER:ipvsadm -a|e -t|u|f VIP:port -r REALSERVER[:port] -g|-i|-m [-w 权重]
删除一个REALSERVER: ipvsadm -d -t|u|f VIP:port -r REALSERVER[:port]
VMware Network Adepter VMnet1:Host用于与Host-Only虚拟网络进行通信的虚拟网卡
VMware Network Adepter VMnet8:Host用于与NAT虚拟网络进行通信的虚拟网卡
1桥接网络(Bridged Networking)
桥接网络是指本地物理网卡和虚拟网卡通过VMnet0虚拟交换机进行桥接,物理网卡和虚拟网卡在拓扑图上处于同等地位(虚拟网卡既不是Adepter VMnet1也不是Adepter VMnet8)。那么物理网卡和虚拟网卡就相当于处于同一个网段,虚拟交换机就相当于一台现实网络中的交换机。所以两个网卡的IP地址也要设置为同一网段。
在NAT网络中,会用到VMware Network Adepter VMnet8虚拟网卡,主机上的VMware Network Adepter VMnet8虚拟网卡被直接连接到VMnet8虚拟交换机上与虚拟网卡进行通信。
VMware Network Adepter VMnet8虚拟网卡的作用仅限于和VMnet8网段进行通信,它不给VMnet8网段提供路由功能,所以虚拟机虚拟一个NAT服务器,使虚拟网卡可以连接到Internet。在这种情况下,我们就可以使用端口映射功能,让访问主机80端口的请求映射到虚拟机的80端口上。
VMware Network Adepter VMnet8虚拟网卡的IP地址是在安装VMware时由系统指定生成的,我们不要修改这个数值,否则会使主机和虚拟机无法通信。
在Host-Only模式下,虚拟网络是一个全封闭的网络,它唯一能够访问的就是主机。其实Host-Only网络和NAT网络很相似,不同的地方就是Host-Only网络没有NAT服务,所以虚拟网络不能连接到Internet。主机和虚拟机之间的通信是通过VMware Network Adepter VMnet1虚拟网卡来实现的。
转载于:https://blog.51cto.com/wang888long/832670