linux virtual server
安装lvs的策略编写工具
yum -y install ipvsadm
安装完后,命令ipvsadm -l 列出定义的策略
配置文件:/etc/sysconfig/ipvsadm-config
修改配置文件
启用ipvsadm服务,直接启用会报错,需要建立一个文件:/etc/sysconfig/ipvsadm
策略添加
策略编辑的帮助查看: ipvsadm -h
参数 | 说明 |
---|---|
-A | 添加虚拟服务 |
-t | 添加虚拟ip和端口 |
-s | 添加调度方法 |
-a | 添加真实服务端 |
-r | 添加真实服务器ip和端口 |
-g | 使用DR模式,直接路由模式 |
例:添加虚拟ip: ipvsadm -A -t 172.25.254.100:80 -s rr,rr表示轮询方式
添加后使用ipvsadm -l 查看列表解析地址,ipvsadm -ln 查看不解析地址
添加真实服务端:ipvsadm -a -t 172.25.254.100:80 -r 172.25.254.2:80 -g,
ipvsadm -a -t 172.25.254.100:80 -r 172.25.254.3:80 -g
将2台真实服务端都添加进去
添加完后重启服务,查看我们写的策略是否加载成功
策略测试:
直接测试访问 172.25.254.100 是没有结果的,因为我们的真实服务端接受到用户请求后返回的数据并不是 172.25.254.100 这个ip,用户无法接收到,所以需要在服务端网卡添加IP地172.25.254.100 才可以得到结果
然后再访问就可以看到轮询结果
说明
这里我们会存在一个问题,因为这个方式的数据传输方式是客户请求client–>调度器virtaul server–>real server -->客户client,这样我们的真实服务端的信息有概率会暴露给外部
使用测试主机访问172.25.254.100
可以看到访问到的结果是这样的,查看到的数据来源是我们的调度器的网卡信息,然后清除记录arp -d 172.25.254.100,再去访问
出现问题了,问题是访问172.25.254.100时没有经过调度器直接访问打牌真实服务端上,看到的信息只有www.hello.com,并且查看到数据来源的信息是真实服务端的网卡
这样就对于企业来说很危险,可能会使这台服务器遭到攻击,这就需要配置让用户请求必须经过调度器到真实服务器上去访问
lvs 防火墙配置
首先需要再真实服务器安装 arptables
火墙策略查看:arptables -L
现在我们需要做的设定就是,要将访问请求到172.25.254.100时,真实服务端不对这个请求产生响应,但是我们需要通多真实服务端返回数据以172.25.254.100这个ip的身份,需要添加两条规则:
arptables -A INPUT -d 172.25.254.100 -j DROP #不对100这个ip的访问回应
arptables -A OUTPUT -s 172.25.254.100 -j mangle --mangle-ip-s 17.25.254.2 #真实地址是172.25.254.2,但是以100这个ip输出数据
arptables-save > /etc/sysconfig/arptables #储存策略
给真实服务器都添加规则,完成后测试访问172.25.254.100就不会出现直接访问真实服务器上的清空。