您好,登录后才能下订单哦!
这篇文章给大家介绍DR的原理与实现是怎么样的,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。
当用户请求到达Director Server,此时请求的数据报文会先到内核空间的PREROUTING链。 此时报文的源IP为CIP,目标IP为VIP;
PREROUTING检查发现数据包的目标IP是本机,将数据包送至INPUT链;
IPVS比对数据包请求的服务是否为集群服务,若是,将请求报文中的源MAC地址修改为DIP的MAC地址,将目标MAC地址修改RIP的MAC地址,然后将数据包发至POSTROUTING链。 此时的源IP和目的IP均未修改,仅修改了源MAC地址为DIP的MAC地址,目标MAC地址为RIP的MAC地址;
由于DS和RS在同一个网络中,所以是通过二层来传输。POSTROUTING链检查目标MAC地址为RIP的MAC地址,那么此时数据包将会发至Real Server;
RS发现请求报文的MAC地址是自己的MAC地址,就接收此报文。处理完成之后,将响应报文通过lo接口传送给eth0网卡然后向外发出。 此时的源IP地址为VIP,目标IP为CIP;
响应报文最终送达至客户端;
IP分配
dirdirector DIP:192.168.177.210(eth0) VIP:192.168.177.220(eth0:0)
real server1 RIP1:192.168.177.121(eth0) VIP:192.168.177.220(lo:0)
real server2 RIP2:192.168.177.122(eth0) VIP:192.168.177.220(lo:0)
1、real server上的配置
在lo网卡上绑定IP地址
ifconfig lo:0 192.168.177.220 broadcast 192.168.177.220 netmask 255.255.255.255 up
添加路由(VIP地址由lo网卡出)
route add -host 192.168.177.220 lo:0
修改内核参数,使real server上的VIP地址不响应由其他主机发往的ARP报文
echo 1 > /proc/sys/net/ipv4/conf/lo/arp_ignore
echo 2 > /proc/sys/net/ipv4/conf/lo/arp_announce
echo 1 > /proc/sys/net/ipv4/conf/all/arp_ignore
echo 2 > /proc/sys/net/ipv4/conf/all/arp_announce
安装http服务并启动
yum install httpd
echo RS1 > /var/www/html/index.html
/etc/init.d/httpd restart
2、director上的配置
在eth0上绑定VIP
ifconfig eth0:0 192.168.177.220 up
添加路由(使VIP地址的数据通过eth0出)
route add -host 192.168.177.220 dev eth0:0
开启路由转发功能
echo 1 >/proc/sys/net/ipv4/ip_forward
创建一个服务
ipvsadm -A -t 192.168.177.220:80 -s wrr
在服务中添加real server
ipvsadm -a -t 192.168.177.220:80 -r 192.168.177.211:80 -g -w 3
ipvsadm -a -t 192.168.177.220:80 -r 192.168.177.212:80 -g -w 1
配置完成
note:在real server上修改内核参数arp_ignore和arp_announce目的是禁止lo0上的VIP响应其他主机发送的ARP报文,避免发生IP地址冲突的问题。
TUN配置和DR模型配置相似,只是real server和director不再同一个网络中
关于DR的原理与实现是怎么样的就分享到这里了,希望以上内容可以对大家有一定的帮助,可以学到更多知识。如果觉得文章不错,可以把它分享出去让更多的人看到。
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。