LVS--VS/DR

-----------------------------------------

一、前言

二、原理

三、环境

四、配置及测试

五、arp屏蔽解释

  1. arp_announce

  2. 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都有一块网卡连在同一物理网段上,即在同一个局域网内。

二、原理

wKioL1MgI3uAww5RAACR2ILNt3g045.jpg

三、环境

CentOS6.4 32位

拓扑图:

wKiom1OAC83wMWBPAAGF9QHTiDc448.jpg

四、配置及测试

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网卡参数:

wKioL1MgI8LxCSsIAACTegYOSZw923.jpg

虚拟网卡lo:0参数:

wKioL1MgI8ax7kb-AACKHnlVJfk762.jpg

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网卡参数:

wKiom1MgI-zyE-DrAACTGzGXD8w595.jpg

虚拟网卡lo:0参数:

wKioL1MgI8ax7kb-AACKHnlVJfk762.jpg

3-1.lvs服务器网卡配置

eth0网卡参数:

wKioL1MgI8HwtBdFAADJ8U3DpIQ688.jpg

eth0:0网卡参数:

wKioL1OADG_jZa1TAAEPH6tc9Io623.jpg

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查询



你可能感兴趣的:(service,网卡)