Lvs-dr 原理与配置
目录
1、ARP介绍
2、DR模式数据包请求响应流程
3、配置过程
4、总结
1、ARP协议介绍
功能:局域网内,根据IP地址获取MAC地址。
互联网上面,每一台主机都有一个32位的IP地址,但是为了在物理网路上传输必须知道对方的MAC地址,因为TCP/IP数据包封装时,先封装的是IP,然后是MAC地址,因此在查看数据包中的目的IP前,首先要拆掉第二层MAC地址。
①、一般在局域网获取MAC地址时,
A 某些节点会发送广播报文,报文中含有自己的MAC地址,问谁有这个IP地址
B 收到广播报文的主机都会检查自己拥有的所有IP地址,如果有的话就告诉那个节点说,“我有这个IP地址”,同时把MAC地址封装在里面
然后,两者互相拥有的对方的MAC地址,放在arp缓存里面,这里也可以设置即使自己有arp请求的IP地址,但是不去响应。
②、在linux中的相关arp参数
arp_ignore:定义对目标地址为本地IP的ARP询问不同的应答模式0
0 - (默认值): 回应任何网络接口上对任何本地IP地址的arp查询请求
1 - 只回答目标IP地址是来访网络接口本地地址的ARP查询请求
2 -只回答目标IP地址是来访网络接口本地地址的ARP查询请求,且来访IP必须在该网络接口的子网段内
3 - 不回应该网络界面的arp请求,而只对设置的唯一和连接地址做出回应
4-7 - 保留未使用
8 -不回应所有(本地地址)的arp查询
arp_announce:对网络接口上,本地IP地址的发出的,ARP回应,作出相应级别的限制: 确定不同程度的限制,宣布对来自本地源IP地址发出Arp请求的接口
0 - (默认) 在任意网络接口(eth0,eth1,lo)上的任何本地地址
1 -尽量避免不在该网络接口子网段的本地地址做出arp回应. 当发起ARP请求的源IP地址是被设置应该经由路由达到此网络接口的时候很有用.此时会检查来访IP是否为所有接口上的子网段内ip之一.如果改来访IP不属于各个网络接口上的子网段内,那么将采用级别2的方式来进行处理.
2 - 对查询目标使用最适当的本地地址.在此模式下将忽略这个IP数据包的源地址并尝试选择与能与该地址通信的本地地址.首要是选择所有的网络接口的子网中外出访问子网中包含该目标IP地址的本地地址. 如果没有合适的地址被发现,将选择当前的发送网络接口或其他的有可能接受到该ARP回应的网络接口来进行发送
2、DR模式数据包的请求响应流程。
a) 客户端发送请求到Director,目标地址为VIP。
b) 报文到达网关的时候,网关会问,谁有这个VIP地址,Real server和Director都配置有VIP地址,但是只有,Director响应。
c) Director收到客户端的报文之后,把报文中的目标MAC地址,根据算法改为Real server中的某一节点的MAC地址。数据包在转发过去,这时候源和目标IP地址都没有改变的。
d) Real server收到数据包之后,先拆开MAC层,发现是自己的MAC,在拆IP层,因为自己配置的也有VIP,所以报文就是自己的了。
e) Real server做出响应,把报文中的源和目标IP地址互换,然后响应给客户机,不需要经过Director
如果Real server只有一块网卡,所有的报文都会从网关出入,网关可能会成为单点,建议Real server配置外网IP。
3、配置
A、Real server
echo 1 > /proc/sys/net/ipv4/conf/eth0/arp_ignore echo 1 > /proc/sys/net/ipv4/conf/all/arp_ignore echo 2 > /proc/sys/net/ipv4/conf/eth0/arp_announce echo 2 > /proc/sys/net/ipv4/conf/eth0/arp_announce Ifconfig lo:0 vip_address netmask 255.255.255.255 broadcast vip_address up 只和自己通信。 #route add -host vip_address dev lo:0 据说这一条可以不配置 确保有httpd服务,和数据包可以通过,关闭防火墙。
B、Director
①、配置VIP地址
Ifconfig eh0:0 vip_address/prefix up
②、测试能否和real server 通信
Ping real_server_address
③、配置ipvs规则
Ipvsadm -A -t vip_address [-s schedualr -p persistence] Ipvsadm -a -t vip_address -r real_server_address -g [-w #] Ipvsadm -a -t vip_address -r real_server_address -g [-w #]
3.2 配置实例
Director: DIP 192.168.198.160 VIP:192.168.198.161 Real server: Node2:192.168.198.140 Node3:192.168.198.150
Real server:
node3和node2配置是一样的。
Director
看一下效果
4、总结:
1、只是使用了简单的调度算法,使用其他的可以在配置director 的时候加上-s 调度算法
2、使用-p选项可以持久连接
3、这个后台,我怎么编辑,前台看起来间隙都是很大啊。
最后就是提升一下做事的效率了,写篇博客花了不少时间。
http://www.cnblogs.com/lgfeng/archive/2012/10/16/2726308.html arp参数的含义。
http://wolfchen.blog.51cto.com/2211749/1122841 lvs dr配置详解