-----------------------------------------
一、前言
二、原理
三、环境
四、配置及测试
五、arp屏蔽解释
arp_announce
arp_ignore
-----------------------------------------
一、前言
VS/DR:即Virtual Server via Direct Routing
也就是用直接路由技术实现虚拟服务器。它的连接调度和管理与VS/NAT和VS/TUN中的一样,但它的报文转发方法又有不同,VS/DR通过改写请求报文的MAC地址,将请求发送到Real Server,而Real Server将响应直接返回给客户,免去了VS/TUN中的IP隧道开销。这种方式是三种负载调度机制中性能最高最好的,但是必须要求Director Server与Real Server都有一块网卡连在同一物理网段上,即在同一个局域网内。
二、原理
三、环境
CentOS6.4 32位
拓扑图:
四、配置及测试
1-1.web1配置
# setenforce 0 # service iptables stop # sysctl -a |grep arp # vim /etc/sysctl.conf //添加以下两行,实现arp屏蔽(详见步骤五) net.ipv4.conf.all.arp_announce = 2 net.ipv4.conf.all.arp_ignore = 1 # sysctl -p //重新加载 # yum install httpd # service httpd start
1-2.web1网卡配置
eth0网卡参数:
虚拟网卡lo:0参数:
2-1.web2配置
# setenforce 0 # service iptables stop # sysctl -a |grep arp # vim /etc/sysctl.conf net.ipv4.conf.all.arp_announce = 2 net.ipv4.conf.all.arp_ignore = 1 # sysctl -p # yum install httpd # service httpd start
2-2.web2网卡配置
eth0网卡参数:
虚拟网卡lo:0参数:
3-1.lvs服务器网卡配置
eth0网卡参数:
eth0:0网卡参数:
3-2.lvs服务器配置
# yum install ipvsadm # ipvsadm -A -t 192.168.2.200:80 -s rr # ipvsadm -a -t 192.168.2.200:80 -r 192.168.2.50:80 -g //直接路由模式,即DR模式 # ipvsadm -a -t 192.168.2.200:80 -r 192.168.2.60:80 -g # ipvsadm //启动服务 IP Virtual Server version 1.2.1 (size=4096) Prot LocalAddress:Port Scheduler Flags -> RemoteAddress:Port Forward Weight ActiveConn InActConn TCP 192.168.2.200:http rr -> 192.168.2.50:http Route 1 0 0 -> 192.168.2.60:http Route 1 0 0
浏览器测试,访问http://192.168.2.200 (轮询,结果1:1)
# ipvsadm IP Virtual Server version 1.2.1 (size=4096) Prot LocalAddress:Port Scheduler Flags -> RemoteAddress:Port Forward Weight ActiveConn InActConn TCP 192.168.2.200:http rr -> 192.168.2.50:http Route 1 0 5 -> 192.168.2.60:http Route 1 0 5
3-3.保存及应用
# service ipvsadm save ipvsadm: Saving IPVS table to /etc/sysconfig/ipvsadm: [ OK ] # vim /etc/sysconfig/ipvsadm 1 -A -t 192.168.2.200:80 -s rr 2 -a -t 192.168.2.200:80 -r 192.168.2.50:80 -g -w 1 3 -a -t 192.168.2.200:80 -r 192.168.2.60:80 -g -w 1 # ipvsadm -C # ipvsadm IP Virtual Server version 1.2.1 (size=4096) Prot LocalAddress:Port Scheduler Flags -> RemoteAddress:Port Forward Weight ActiveConn InActConn # service ipvsadm restart ipvsadm: Clearing the current IPVS table: [ OK ] ipvsadm: Unloading modules: [ OK ] ipvsadm: Clearing the current IPVS table: [ OK ] ipvsadm: Applying IPVS configuration: [ OK ] # ipvsadm IP Virtual Server version 1.2.1 (size=4096) Prot LocalAddress:Port Scheduler Flags -> RemoteAddress:Port Forward Weight ActiveConn InActConn TCP 192.168.2.200:http rr -> 192.168.2.50:http Route 1 0 0 -> 192.168.2.60:http Route 1 0 0
五、arp屏蔽解释
1.arp_announce:对网络接口上,本地IP地址的发出的,ARP回应,作出相应级别的限制: 确定不同程度的限制,宣布对来自本地源IP地址发出Arp请求的接口。
0 - (默认) 在任意网络接口(eth0,eth1,lo)上的任何本地地址
1 -尽量避免不在该网络接口子网段的本地地址做出arp回应. 当发起ARP请求的源IP地址是被设置应该经由路由达到此网络接口的时候很有用.此时会检查来访IP是否为所有接口上的子网段内ip之一.如果改来访IP不属于各个网络接口上的子网段内,那么将采用级别2的方式来进行处理.
2 - 对查询目标使用最适当的本地地址.在此模式下将忽略这个IP数据包的源地址并尝试选择与能与该地址通信的本地地址.首要是选择所有的网络接口的子网中外出访问子网中包含该目标IP地址的本地地址. 如果没有合适的地址被发现,将选择当前的发送网络接口或其他的有可能接受到该ARP回应的网络接口来进行发送.
2.arp_ignore:定义对目标地址为本地IP的ARP询问不同的应答模式0
0 - (默认值): 回应任何网络接口上对任何本地IP地址的arp查询请求
1 - 只回答目标IP地址是来访网络接口本地地址的ARP查询请求
2 -只回答目标IP地址是来访网络接口本地地址的ARP查询请求,且来访IP必须在该网络接口的子网段内
3 - 不回应该网络界面的arp请求,而只对设置的唯一和连接地址做出回应
4-7 - 保留未使用
8 -不回应所有(本地地址)的arp查询