ipvsadm
##有两个nginx代理在179和176两台虚拟机上。现在需要通过175来访问代理的网页。实现179或者176虚拟机挂了之后,代理仍可用。##
方法:在179和176这两个IP地址上加一个虚拟IP地址,用ipvsadm实现轮询访问调度。
##在179和176上加VIP##
ip addr add 192.168.10.175/24 dev eth0
##在179或者176之中任意挑一台,安装ipvsadm##
yum install -y ipvsadm
ipvsadm -A -t 192.168.10.175:80 -s rr
ipvsadm -a -t 192.168.10.175:80 -r 192.168.10.176:80 -g
ipvsadm -a -t 192.168.10.175:80 -r 192.168.10.179:80 -g
##保存策略,否则重启后会消失##
/etc/init.d/ipvsadm save
##参数解释##
-s scheduler 调度
-r 轮询
-g gatewaying (direct routing)
-t tcp
##删除策略##
ipvsadm -d -t 192.168.10.175:80 server -r 192.168.10.176:80 #删除策略
ipvsadm -C ##清除全部策略
注意:如果有另一台机器(例如:180)也设置了175的VIP,那么可能访问175的时候会默认访问到180,这时候就要解除arp地址绑定。
arp -d 192.162.10.175
##arptables管理响应虚拟机。
arptables使用实例
# arp -a m1 (192.168.0.1) at 00:E0:4C:FF:D7:31 [ether] on eth0 显示当前ARP表信息 当前ARP表中保存有一个主机的arp信息,m1主机,ip地址192.168.0.1 # arptables -D INPUT -s 192.168.0.1 -j DROP 设置arp规则,将所有192.168.0.1的arp包全部丢弃. # arp -d 192.168.0.1 -i eth0 使用arp命令,删除arp表中的192.168.0.1的记录. # arp -a m1 (192.168.0.1) at <incomplete> on eth0 arp表中已没有m1主机的信息. # ping 192.168.0.1 PING m1 (192.168.0.1) 56(84) bytes of data. From m2 (192.168.0.2) icmp_seq=2 Destination host unreachable From m2 (192.168.0.2) icmp_seq=3 Destination Host Unreachable From m2 (192.168.0.2) icmp_seq=4 Destination Host Unreachable 由于无法获得m1主机MAC信息,所以,无法与m1主机进行通信. # arptables -D INPUT -s 192.168.0.1 -j DROP 删除arptables规则. # arp -a m1 (192.168.0.1) at 00:E0:4C:FF:D7:31 [ether] on eth0 arp表中重新记录了m1的MAC信息. # ping 192.168.0.1 PING m1 (192.168.0.1) 56(84) bytes of data. 64 bytes from m1 (192.168.0.1): icmp_seq=1 ttl=64 time=0.315 ms
相关阅读
1、Ipvsadm常用的语法和格式如下: 123456789101112 ipvsadm-A|E-t|u|fvirutal-service-address:port[-sscheduler][-p[t