规划拓扑实现VIP与RIP不在同一网络中的集群

环境

名称 IP 类型
客户机 172.50.150.10 CIP
客户机 172.25.150.254 网关
EI 172.50.150.254
E2 192.168.153.254
E2 192.168.200.254
DR 192.168.153.20 DIP
DR 192.168.200.20 VIP
RS1 192.168.153.22 RIP
RS1 192.168.200.20 VIP
RS2 192.168.153.25 RIP
RS2 192.168.200.20 VIP

1. 在客户端配置CIP,并将网关指向E1口

[root@Client ~]# cat /etc/sysconfig/network-scripts/ifcfg-eno16777736 
TYPE=Ethernet
BOOTPROTO=static
DEFROUTE=yes
PEERDNS=yes
PEERROUTES=yes
NAME=eno16777736
DEVICE=eno16777736
ONBOOT=yes
IPADDR=172.50.150.10
NETMASK=255.255.255.0
GATEWAY=172.50.150.254
DNS=114.114.114.114

2. 配置路由器IP

E1口:

[root@route ~]# cat /etc/sysconfig/network-scripts/ifcfg-eno16777736 
TYPE=Ethernet
BOOTPROTO=static
DEFROUTE=yes
PEERDNS=yes
PEERROUTES=yes
NAME=eno16777736
DEVICE=eno16777736
ONBOOT=yes
IPADDR=172.50.150.254
NETMASK=255.255.255.0

E2口:

[root@route ~]# cat /etc/sysconfig/network-scripts/ifcfg-eno16777736 
TYPE=Ethernet
BOOTPROTO=static
DEFROUTE=yes
PEERDNS=yes
PEERROUTES=yes
NAME=eno16777736
DEVICE=eno16777736
ONBOOT=yes
IPADDR=192.168.153.254
NETMASK=255.255.255.0

[root@route ~]# cat /etc/sysconfig/network-scripts/ifcfg-eno16777736 :1
TYPE=Ethernet
BOOTPROTO=static
DEFROUTE=yes
PEERDNS=yes
PEERROUTES=yes
NAME=eno16777736
DEVICE=eno16777736
ONBOOT=yes
IPADDR=192.168.200.254
NETMASK=255.255.255.0

开启IP转发

[root@route ~]#  vim /etc/sysctl.conf
[root@route~]# sysctl -p
net.ipv4.ip_forward = 1

3. 在DR上配置DIP和VIP

DIP

[root@DR ~]# cat /etc/sysconfig/network-scripts/ifcfg-eno16777736 
TYPE=Ethernet
BOOTPROTO=static
DEFROUTE=yes
PEERDNS=yes
PEERROUTES=yes
NAME=eno16777736
DEVICE=eno16777736
ONBOOT=yes
IPADDR=192.168.153.20
NETMASK=255.255.255.0
GATEWAY=192.168.153.254
DNS=114.114.114.114

VIP

[root@DR ~]# ip addr add 192.168.200.20/24 dev lo

[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
    inet 192.168.200.20/24 scope global lo
       valid_lft forever preferred_lft forever
    inet6 ::1/128 scope host 
       valid_lft forever preferred_lft forever
2: eno16777736 : <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP group default qlen 1000
    link/ether 00:0c:29:97:c3:66 brd ff:ff:ff:ff:ff:ff
    inet 192.168.153.20/24 brd 192.168.153.255 scope global noprefixroute eno16777736
       valid_lft forever preferred_lft forever
    inet6 fe80::20c:29ff:fe97:c366/64 scope link 
       valid_lft forever preferred_lft forever

4. 在RS上修改网卡内核参数

[root@RS1 ~]# vim /etc/sysctl.conf 
//添加下面两行内容
net.ipv4.conf.all.arp_ignore = 1
net.ipv4.conf.all.arp_announce = 2
[root@RS1 ~]# sysctl -p
net.ipv4.conf.all.arp_ignore = 1
net.ipv4.conf.all.arp_announce = 2

[root@RS2 ~]# vim /etc/sysctl.conf 
//添加下面两行内容
net.ipv4.conf.all.arp_ignore = 1
net.ipv4.conf.all.arp_announce = 2
[root@RS2 ~]# sysctl -p
net.ipv4.conf.all.arp_ignore = 1
net.ipv4.conf.all.arp_announce = 2

5. 在RS上配置VIP和RIP

RS1

//RIP
[root@RS1 ~]# cat /etc/sysconfig/network-scripts/ifcfg-eno16777736 
TYPE=Ethernet
BOOTPROTO=static
DEFROUTE=yes
PEERDNS=yes
PEERROUTES=yes
NAME=eno16777736
DEVICE=eno16777736
ONBOOT=yes
IPADDR=192.168.153.22
NETMASK=255.255.255.0
GATEWAY=192.168.153.254
DNS=114.114.114.114

//VIP
[root@RS1 ~]# ip addr add 192.168.200.20/24 dev lo

[root@RS1 ~]# 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
    inet 192.168.200.20/24 scope global lo
       valid_lft forever preferred_lft forever
    inet6 ::1/128 scope host 
       valid_lft forever preferred_lft forever
2: eno16777736: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP group default qlen 1000
    link/ether 00:0c:29:2d:e0:d6 brd ff:ff:ff:ff:ff:ff
    inet 192.168.153.22/24 brd 192.168.153.255 scope global noprefixroute eno16777736
       valid_lft forever preferred_lft forever
    inet6 fe80::20c:29ff:fe2d:e0d6/64 scope link 
       valid_lft forever preferred_lft forever

RS2

//RIP
[root@RS2 ~]# vim /etc/sysconfig/network-scripts/ifcfg-eno16777736
TYPE=Ethernet
BOOTPROTO=static
DEFROUTE=yes
PEERDNS=yes
PEERROUTES=yes
NAME=eno16777736
DEVICE=eno16777736
ONBOOT=yes
IPADDR=192.168.153.25
NETMASK=255.255.255.0
GATEWAY=192.168.153.254
DNS=114.114.114.114

//VIP
[root@RS2 ~]# ip addr add 192.168.200.20/24 dev lo

[root@RS2 ~]# ip a
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN qlen 1
    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
    inet 192.168.200.20/24 scope global lo
       valid_lft forever preferred_lft forever
    inet6 ::1/128 scope host 
       valid_lft forever preferred_lft forever
2: eno16777736: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP qlen 1000
    link/ether 00:0c:29:9b:a5:b7 brd ff:ff:ff:ff:ff:ff
    inet 192.168.153.25/24 brd 192.168.153.255 scope global eno16777736
       valid_lft forever preferred_lft forever

6. 配置路由

[root@DR ~]# route add -host 192.168.200.20 dev lo
[root@RS1 ~]# route add -host 192.168.200.20 dev lo
[root@RS2 ~]# route add -host 192.168.200.20 dev lo
[root@route ~]# route add -host 192.168.200.20 dev eno16777736

7. 在RS上配置HTTP服务

[root@RS1 ~]# yum -y install httpd
[root@RS1 ~]# echo 'RS1' > /var/www/html/index.html
[root@RS1 ~]# systemctl enable --now httpd

[root@RS2 ~]# yum -y install httpd
[root@RS2 ~]# echo 'RS2' > /var/www/html/index.html
[root@RS2 ~]# systemctl enable --now httpd

8. 在DR上配置规则

[root@DR ~]# yum -y install ipvsadm
[root@DR ~]# ipvsadm -A -t 192.168.200.20:80 -s wrr
[root@DR ~]# ipvsadm -a -t 192.168.200.20:80 -r 192.168.153.22 -g
[root@DR ~]# ipvsadm -a -t 192.168.200.20:80 -r 192.168.153.25 -g
[root@DR ~]# ipvsadm -Sn > /etc/sysconfig/ipvsadm
[root@DR ~]# ipvsadm -Ln
IP Virtual Server version 1.2.1 (size=4096)
Prot LocalAddress:Port Scheduler Flags
  -> RemoteAddress:Port           Forward Weight ActiveConn InActConn
TCP  192.168.200.20:80 wrr
  -> 192.168.153.22:80           Route   1      0          0         
  -> 192.168.153.25:80           Route   1      0          0

9. 客户端访问验证

[root@Client ~]# for i in $(seq 4);do curl 192.168.200.20 ;done
RS2
RS1
RS2
RS1

猜你喜欢

转载自blog.csdn.net/lnsistw/article/details/107633273