LVS-DR:实现VIP和RIP不在同一个网络中集群

环境说明:

client和router的eth1在一个内网中,clinet的网关指向172.25.16.100

DR,RS-1,RS-2三台服务器分别配置了对应的本地静态地址DIP和RIP,且在一个内网中。网关都指向router上的eth0

这里使用了三个公网IP:客户端IP,VIP和eth0.1的IP,eth0上的公网IP可以省略,但是要添加一条主机路由:route add -host VIP dev eth0

1. router上配置ip转发,并测试

[root@router ~]# sysctl -p
net.ipv4.ip_forward = 1 #测试client和rs1,rs2能否互通
[root@client ~]# ip a
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000
link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
inet 127.0.0.1/8 scope host lo
valid_lft forever preferred_lft forever
inet6 ::1/128 scope host
valid_lft forever preferred_lft forever
2: ens33: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP group default qlen 1000
link/ether 00:0c:29:ba:e5:07 brd ff:ff:ff:ff:ff:ff
inet 172.25.16.10/16 brd 172.25.255.255 scope global noprefixroute ens33
valid_lft forever preferred_lft forever
inet6 fe80::b181:319:54a:2d3c/64 scope link noprefixroute
valid_lft forever preferred_lft forever
[root@client ~]# ping 192.168.32.135
PING 192.168.32.135 (192.168.32.135) 56(84) bytes of data.
64 bytes from 192.168.32.135: icmp_seq=1 ttl=63 time=0.613 ms
64 bytes from 192.168.32.135: icmp_seq=2 ttl=63 time=0.632 ms
64 bytes from 192.168.32.135: icmp_seq=3 ttl=63 time=0.669 ms
^C
--- 192.168.32.135 ping statistics ---
3 packets transmitted, 3 received, 0% packet loss, time 2001ms
rtt min/avg/max/mdev = 0.613/0.638/0.669/0.023 ms
[root@client ~]# ping 192.168.32.140
PING 192.168.32.140 (192.168.32.140) 56(84) bytes of data.
64 bytes from 192.168.32.140: icmp_seq=1 ttl=63 time=0.615 ms
64 bytes from 192.168.32.140: icmp_seq=2 ttl=63 time=0.565 ms
64 bytes from 192.168.32.140: icmp_seq=3 ttl=63 time=0.442 ms
^C
--- 192.168.32.140 ping statistics ---
3 packets transmitted, 3 received, 0% packet loss, time 2001ms
rtt min/avg/max/mdev = 0.442/0.540/0.615/0.077 ms #ttl值为63,确实经过了一个路由
[root@rs-1 ~]# ip a
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000
link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
inet 127.0.0.1/8 scope host lo
valid_lft forever preferred_lft forever
inet6 ::1/128 scope host
valid_lft forever preferred_lft forever
2: ens33: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP group default qlen 1000
link/ether 00:0c:29:26:1e:fc brd ff:ff:ff:ff:ff:ff
inet 192.168.32.135/24 brd 192.168.32.255 scope global noprefixroute ens33
valid_lft forever preferred_lft forever
inet6 fe80::20c:29ff:fe26:1efc/64 scope link
valid_lft forever preferred_lft forever
[root@rs-1 ~]# ping 172.25.16.10
PING 172.25.16.10 (172.25.16.10) 56(84) bytes of data.
64 bytes from 172.25.16.10: icmp_seq=1 ttl=63 time=0.484 ms
64 bytes from 172.25.16.10: icmp_seq=2 ttl=63 time=0.534 ms
^C
--- 172.25.16.10 ping statistics ---
2 packets transmitted, 2 received, 0% packet loss, time 1000ms
rtt min/avg/max/mdev = 0.484/0.509/0.534/0.025 ms [root@rs-2 ~]# ip a
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000
link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
inet 127.0.0.1/8 scope host lo
valid_lft forever preferred_lft forever
inet6 ::1/128 scope host
valid_lft forever preferred_lft forever
2: ens33: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP group default qlen 1000
link/ether 00:0c:29:89:35:d0 brd ff:ff:ff:ff:ff:ff
inet 192.168.32.140/24 brd 192.168.32.255 scope global noprefixroute ens33
valid_lft forever preferred_lft forever
inet6 fe80::3fac:e9cd:2f45:12ec/64 scope link noprefixroute
valid_lft forever preferred_lft forever
[root@rs-2 ~]# ping 172.25.16.10
PING 172.25.16.10 (172.25.16.10) 56(84) bytes of data.
64 bytes from 172.25.16.10: icmp_seq=1 ttl=63 time=0.401 ms
64 bytes from 172.25.16.10: icmp_seq=2 ttl=63 time=0.354 ms
64 bytes from 172.25.16.10: icmp_seq=3 ttl=63 time=0.683 ms
64 bytes from 172.25.16.10: icmp_seq=4 ttl=63 time=0.499 ms
^C
--- 172.25.16.10 ping statistics ---
4 packets transmitted, 4 received, 0% packet loss, time 3002ms
rtt min/avg/max/mdev = 0.354/0.484/0.683/0.127 ms

2. DR上配置VIP和转发规则

#配置VIP,也可以配在环回口上
[root@dr ~]# ip addr add 192.168.64.100/32 dev ens33
[root@dr ~]# ip a
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000
link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
inet 127.0.0.1/8 scope host lo
valid_lft forever preferred_lft forever
inet6 ::1/128 scope host
valid_lft forever preferred_lft forever
2: ens33: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP group default qlen 1000
link/ether 00:0c:29:d7:d9:41 brd ff:ff:ff:ff:ff:ff
inet 192.168.32.130/24 brd 192.168.32.255 scope global noprefixroute ens33
valid_lft forever preferred_lft forever
inet 192.168.64.200/32 scope global ens33
valid_lft forever preferred_lft forever
inet6 fe80::20c:29ff:fed7:d941/64 scope link
valid_lft forever preferred_lft forever
[root@dr ~]# route add -host 192.168.64.100/32 dev ens33 [root@dr ~]# yum -y install ipvsadm
#dr模式不支持端口映射,所以直接写IP
[root@dr ~]# ipvsadm -A -t 192.168.64.100:80 -s rr
[root@dr ~]# ipvsadm -a -t 192.168.64.100:80 -r 192.168.32.135 -g
[root@dr ~]# ipvsadm -a -t 192.168.64.100:80 -r 192.168.32.140 -g
[root@dr ~]# ipvsadm -Sn
-A -t 192.168.64.100:80 -s rr
-a -t 192.168.64.100:80 -r 192.168.32.135:80 -g -w 1
-a -t 192.168.64.100:80 -r 192.168.32.140:80 -g -w 1

3. RS上配置arp内核参数和VIP

[root@rs-1 ~]# vim /etc/sysctl.conf
[root@rs-1 ~]# sysctl -p
net.ipv4.conf.all.arp_ignore = 1
net.ipv4.conf.all.arp_announce = 2 [root@rs-2 ~]# vim /etc/sysctl.conf
[root@rs-2 ~]# sysctl -p
net.ipv4.conf.all.arp_ignore = 1
net.ipv4.conf.all.arp_announce = 2 [root@rs-1 ~]# ip addr add 192.168.64.100/32 dev lo
[root@rs-1 ~]# route add -host 192.168.64.100/32 dev lo [root@rs-2 ~]# ip addr add 192.168.64.100/32 dev lo
[root@rs-2 ~]# route add -host 192.168.64.100/32 dev lo

4. 配置HTTP访问

[root@RS-1 ~]# yum -y install httpd
[root@RS-1 ~]# echo 'this is RS-1' > /var/www/html/index.html
[root@RS-1 ~]# systemctl start httpd
[root@rs-1 ~]# ss -tanl
State Recv-Q Send-Q Local Address:Port Peer Address:Port
LISTEN 0 100 127.0.0.1:25 *:*
LISTEN 0 128 *:80 *:*
LISTEN 0 128 *:22 *:*
LISTEN 0 100 [::1]:25 [::]:*
LISTEN 0 128 [::]:22 [::]:* [root@RS-2 ~]# yum -y install httpd
[root@rs-2 ~]# echo 'this is RS-2' > /var/www/html/index.html
[root@RS-2 ~]# systemctl start httpd
[root@rs-2 ~]# ss -tanl
State Recv-Q Send-Q Local Address:Port Peer Address:Port
LISTEN 0 100 127.0.0.1:25 *:*
LISTEN 0 128 *:22 *:*
LISTEN 0 100 [::1]:25 [::]:*
LISTEN 0 128 [::]:80 [::]:*
LISTEN 0 128 [::]:22 [::]:*

5. 客户端访问测试

[root@client ~]# for i in $(seq 10);do curl 192.168.64.100:80;done
this is RS-1
this is RS-2
this is RS-1
this is RS-2
this is RS-1
this is RS-2
this is RS-1
this is RS-2
this is RS-1
this is RS-2

LVS-DR:实现VIP和RIP不在同一个网络中的集群的更多相关文章

  1. [svc]高并发场景 LVS DR +KeepAlive高可用实现及ka的persistence_timeout参数

    LVS-DR+keepalived模式是一种非常经典的常用生产组合 高可用场景及LVS架构 一般都用一(负载)拖多(Server Array)方式 使用LVS架设的服务器集群系统有三个部分组成: (1 ...

  2. centos LB负载均衡集群 三种模式区别 LVS/NAT 配置 LVS/DR 配置 LVS/DR + keepalived配置 nginx ip_hash 实现长连接 LVS是四层LB 注意down掉网卡的方法 nginx效率没有LVS高 ipvsadm命令集 测试LVS方法 第三十三节课

    centos   LB负载均衡集群 三种模式区别 LVS/NAT 配置  LVS/DR 配置  LVS/DR + keepalived配置  nginx ip_hash 实现长连接  LVS是四层LB ...

  3. LVS负载均衡集群--DR模式部署

    目录: 一.LVS-DR数据包流向分析 二.DR 模式的特点 三.LVS-DR中的ARP问题 四.DR模式 LVS负载均衡群集部署 一.LVS-DR数据包流向分析 1.为方便进行原理分析,将clien ...

  4. 虚拟集群LVS及DR模式搭建笔记

    LVS(虚拟集群Linux Virtual Server) LVS-NAT:地址转换,数据包来回都要经过NAT转换,所以Director Server(即LVS服务器)将成为系统瓶颈.使用NAT模式将 ...

  5. lvs dr 模式请求过程

    一. lvs dr 模式请求过程 1.整个请求过程如下: client在发起请求之前,会发一个arp广播的包,在网络中找"谁是vip",由于所有的服务器,lvs和rs都有vip,为 ...

  6. 集群之LVS(负载均衡)详解

    提高服务器响应能力的方法 scale on  在原有服务器的基础上进行升级或者直接换一台新的性能更高的服务器. scale out  横向扩展,将多台服务器并发向外响应客户端的请求.优点:成本低,扩展 ...

  7. 负载均衡LVS集群详解

     一.LB--负载均衡 在负载均衡集群中需要一个分发器,我们将其称之为Director,它位于多台服务器的上面的中间层,根据内部锁定义的规则或调度方式从下面的服务器群中选择一个以此来进行响应请求,而其 ...

  8. 负载均衡集群企业级应用实战—LVS

    一.负载均衡集群介绍 1.集群 ① 集群(cluster)技术是一种较新的技术,通过集群技术,可以在付出较低成本的情况下获得在性能.可靠性.灵活性方面的相对较高的收益,其任务调度则是集群系统中的核心技 ...

  9. 实现基于LVS负载均衡集群的电商网站架构

    背景 上一期我们搭建了小米网站,随着业务的发展,网站的访问量越来越大,网站访问量已经从原来的1000QPS,变为3000QPS,网站已经不堪重负,响应缓慢,面对此场景,单纯靠单台LNMP的架构已经无法 ...

随机推荐

  1. CodeForces 1293 C NEKO's Maze Game

    [题目链接] [题目大意] 有一个2 ∗ n的地图,小女孩从(1,1)想移动到(2,n) 有q次询问,每次询问更改一个格子状态(是否可以通过) 只能上下左右移动而不能斜着移动,问每次操作后,是否可以移 ...

  2. uni-app中textarea组件

    textarea组件,官方给出的监听事件有以下事件: 其中一定要注意,当使用 v-model 对表单内容进行双向绑定的时候,@input 事件是在绑定变量变化前触发的,所以如果在input事件内打印绑 ...

  3. 31道Java核心面试题,一次性打包送给你

    先看再点赞,给自己一点思考的时间,微信搜索[沉默王二]关注这个靠才华苟且的程序员.本文 GitHub github.com/itwanger 已收录,里面还有一线大厂整理的面试题,以及我的系列文章. ...

  4. BUUCTF-Misc-No.3

    比赛信息 比赛地址:Buuctf靶场 内心os(蛮重要的) 我只想出手把手教程,希望大家能学会然后自己也成为ctf大佬,再来带带我QWQ 文件中的秘密 | SOLVED | 打开文件,winhex照妖 ...

  5. [TZOJ] 平台训练-V1

    日常训练 训练网址:http://www.tzcoder.cn/ 1001: 整数求和 描述求两个整数之和.输入输入数据只包括两个整数A和B.输出两个整数的和.样例输入1 2样例输出3题目来源TZOJ ...

  6. C/C++代码覆盖率统计工具:gcov&&gcovr安装和简单使用

    gcov安装 Linux ver: gcov是gcc的自带功能 属于GNU 不用特别安装 Windows ver: 在windows下安装可以使用gcov的gcc 之前试过mingw和Cygwin64 ...

  7. day74 bbs项目☞点赞与评论

    目录 一.文章详情展示 1 将侧边栏做成inclusion_tag 二.点赞点踩功能 三.评论功能 整体总结: 在出现bug的时候,先判断是前端bug还是后端bug,再判断bug错误类型,以及报错信息 ...

  8. java 基础(二) 搭建Java编译环境(linux系统)

    jdk安装配置 首先下载JDK和JRE,这里你的需要看看你的Linux系统是多少位的,比如我的是64位的:下载JDK并指定到Download目录,JRE同样操作:解压并且配置环境: tar -zxvf ...

  9. Python之堡垒机

    本节内容 项目实战:运维堡垒机开发 前景介绍 到目前为止,很多公司对堡垒机依然不太感冒,其实是没有充分认识到堡垒机在IT管理中的重要作用的,很多人觉得,堡垒机就是跳板机,其实这个认识是不全面的,跳板功 ...

  10. 前端05 /js基础

    前端05 /js基础 昨日内容回顾 css选择器的优先级 行内(1000) > id(100) > 类(10) > 标签(1) > 继承(0) 颜色 rgb(255,255,2 ...