lvs-dr 原理与配置

Lvs-dr 原理与配置

目录

    1、ARP介绍

    2、DR模式数据包请求响应流程

    3、配置过程

   4、总结

1ARP协议介绍

功能:局域网内,根据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:定义对目标地址为本地IPARP询问不同的应答模式

0 – (默认值): 回应任何网络接口上对任何本地IP地址的arp查询请求 

1 – 只回答目标IP地址是来访网络接口本地地址的ARP查询请求 

2 –只回答目标IP地址是来访网络接口本地地址的ARP查询请求,且来访IP必须在该网络接口的子网段内 

3 – 不回应该网络界面的arp请求,而只对设置的唯一和连接地址做出回应 

4-7 – 保留未使用 

8 –不回应所有(本地地址)的arp查询

arp_announce:对网络接口上,本地IP地址的发出的,ARP回应,作出相应级别的限制确定不同程度的限制,宣布对来自本地源IP地址发出Arp请求的接口 

0 – (默认在任意网络接口(eth0,eth1lo)上的任何本地地址 

1 –尽量避免不在该网络接口子网段的本地地址做出arp回应当发起ARP请求的源IP地址是被设置应该经由路由达到此网络接口的时候很有用.此时会检查来访IP是否为所有接口上的子网段内ip之一.如果改来访IP不属于各个网络接口上的子网段内,那么将采用级别2的方式来进行处理

2 – 对查询目标使用最适当的本地地址.在此模式下将忽略这个IP数据包的源地址并尝试选择与能与该地址通信的本地地址.首要是选择所有的网络接口的子网中外出访问子网中包含该目标IP地址的本地地址如果没有合适的地址被发现,将选择当前的发送网络接口或其他的有可能接受到该ARP回应的网络接口来进行发送


2、DR模式数据包的请求响应流程。

a) 客户端发送请求到Director,目标地址为VIP

b) 报文到达网关的时候,网关会问,谁有这个VIP地址,Real serverDirector都配置有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、配置

AReal 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服务,和数据包可以通过,关闭防火墙。

BDirector

①、配置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: 

(]]MY%%S$0`{8]SVO)SF`RW.png

 node3和node2配置是一样的。

Director

    PK%}HCYHSX1SM$O@RT)XZLR.png

看一下效果

 GYYKM)I%HK8}NIUW8K1(1CM.png

0@]Q28L$EX5M_I$ZCAVJ3PM.png

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配置详解

原创文章,作者:艾贺,如若转载,请注明出处:http://www.178linux.com/8153

(2)
艾贺艾贺
上一篇 2015-09-14
下一篇 2015-09-19

相关推荐

  • 每日一练 —8.4 文本处理工具,正则表达式

    练习 1 、找出ifconfig 命令结果中本机的所有IPv4 地址 2 、查出分区空间使用率的最大百分比值 3 、查出用户UID 最大值的用户名、UID 及shell 类型 4 、查出/tmp 的权限,以数字方式显示 5 、统计当前连接本机的每个远程主机IP 的连接数,并按从大到小排序   6,显示/proc/meminfo文件中以大写或小写s开…

    Linux干货 2016-08-15
  • linux文件查找工具 — find

    简述:   linux中find命令是一种强大的实时查找工具,它通过用户给出的路径,在该路径下的文件系统中进行文件查找。因此在遍历一个较大的文件系统时会比较花费时间,而且find命令占用资源也是比较大的,所以它的工作特点是,查找的速度略慢,但是可以实现精确查找和实时查找。由于用户权限的问题,可能只搜索用户具备读取和执行权限的目录。由于fi…

    Linux干货 2016-08-18
  • Redhat kickstart 无人值守安装

                       Redhat kickstart 无人值守安装 一、PXE       PXE工作于Client/Server的网络模式,支持可以通…

    系统运维 2016-09-21
  • N25第三周作业(用户组,和文本管理)

    列出当前系统 上所有已经登录用户的用户名,注意:同一个用户登录多次,则只显示一次即可. 列出最后登录到当前系统的用户相关信息. 命令who查看所有用户 , tail查看后几行 取出当前系统上被用户当作其默认shell的最多那个shell. 命令cut 分割 , -d 指定分隔符,-f指定字段 uniq 显示或忽略重复行信息   -c:显示并统计重复…

    Linux干货 2016-12-19
  • shell脚本总结

    shell进阶:列表生成方式:列表生成方式:(1) 直接给出列表 以空白为间隔(2) 整数列表:(a) {start..end}(b) $(seq [start [step]] end)(3) 返回列表的命令$(COMMAND)(4) 使用glob,如:.sh(5) 变量引用;$@, $while read line(用法)(用于遍历文件,进行处理…

    Linux干货 2017-07-10
  • 文件处理工具及正则表达式练习

    本节练习均在centos7系统下实现,部分练习只截取部分截图,另外排版的事情我已经放弃了! 1.找出/etc/rc.d/init.d/functions文件中行首为某单词(包括下划线)后面跟一个小括号的行 注:^ 行首, . 匹配任意单个字符,* 匹配前面的字符任意次 突然发现前面解法错误,没有排除空格后加小括号的情况,下面是正确做法 2.统计last命令中…

    Linux干货 2017-07-29