6. LVS的跨网络DR实现

6. LVS的跨网络DR实现

实验架构

 

 

 

一、网络配置

 

1.客户端

[root@internet ~]# cat /etc/sysconfig/network-scripts/ifcfg-eth0

DEVICE=eth0

NAME=eth0

BOOTPROTO=static

ONBOOT=yes

IPADDR=172.16.0.6

PREFIX=24

GATEWAY=172.16.0.1

 

[root@internet ~]# route -n

Kernel IP routing table

Destination     Gateway         Genmask         Flags Metric Ref    Use Iface

172.16.8.0      0.0.0.0         255.255.255.0   U     0      0        0 eth0

169.254.0.0     0.0.0.0         255.255.0.0     U     1002   0        0 eth0

0.0.0.0         172.16.0.1    0.0.0.0         UG    0      0        0 eth0

 

 

2.路由器

2.1路由器服务器外网IP地址:172.16.0.1内网IP地址:192.168.1.1

[root@Router ~]# cat /etc/sysconfig/network-scripts/ifcfg-eth0

DEVICE=eth0

NAME=eth0

BOOTPROTO=none

ONBOOT=yes

IPADDR1=192.168.1.1

IPADDR2=10.0.0.200

PREFIX=24

 

[root@Router ~]# cat /etc/sysconfig/network-scripts/ifcfg-eth1

DEVICE=eth1

NAME=eth1

BOOTPROTO=static

ONBOOT=yes

IPADDR=172.16.0.1

PREFIX=24

 

2.2路由服务器配置转发

[root@Router ~]#vi /etc/sysctl.conf

net.ipv4.ip_forward=1

 

[root@Router ~]#sysctl -p

 

2.3路由表要有去往VIP10.0.0.100的路由

[root@Router ~]# route -n

Kernel IP routing table

Destination     Gateway         Genmask         Flags Metric Ref    Use Iface

10.0.0.0        0.0.0.0         255.0.0.0       U     102    0        0 eth0

172.16.8.0      0.0.0.0         255.255.255.0   U     101    0        0 eth1

192.168.1.0     0.0.0.0         255.255.255.0   U     102    0        0 eth0

 

 

 

3.LVS服务器

[root@LVS ~]# cat /etc/sysconfig/network-scripts/ifcfg-eth0

DEVICE=eth0

NAME=eth0

BOOTPROTO=none

ONBOOT=yes

IPADDR=192.168.1.4

PREFIX=24

GATEWAY=192.168.1.1

TYPE=Ethernet

PROXY_METHOD=none

BROWSER_ONLY=no

DEFROUTE=yes

IPV4_FAILURE_FATAL=no

IPV6INIT=no

UUID=5fb06bd0-0bb0-7ffb-45f1-d6edd65f3e03

 

[root@LVS ~]# route -n

Kernel IP routing table

Destination     Gateway         Genmask         Flags Metric Ref    Use Iface

0.0.0.0         192.168.1.1     0.0.0.0         UG    100    0        0 eth0

192.168.1.0     0.0.0.0         255.255.255.0   U     100    0        0 eth0

 

 

4.两台RS服务器

4.1 RS1

[root@RS1 ~]# cat /etc/sysconfig/network-scripts/ifcfg-eth0

DEVICE=eth0

NAME=eth0

BOOTPROTO=static

ONBOOT=yes

IPADDR=192.168.1.7

PREFIX=24

GATEWAY=192.168.1.1

TYPE=Ethernet

PROXY_METHOD=none

BROWSER_ONLY=no

DEFROUTE=yes

IPV4_FAILURE_FATAL=no

IPV6INIT=no

UUID=5fb06bd0-0bb0-7ffb-45f1-d6edd65f3e03

 

[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 10.0.0.100/32 scope global lo:1

       valid_lft forever preferred_lft forever

    inet6 ::1/128 scope host

       valid_lft forever preferred_lft forever

2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP group default qlen 1000

    link/ether 00:0c:29:ad:5a:b3 brd ff:ff:ff:ff:ff:ff

    inet 192.168.1.7/24 brd 192.168.1.255 scope global noprefixroute eth0

       valid_lft forever preferred_lft forever

 

[root@RS1 ~]# route -n

Kernel IP routing table

Destination     Gateway         Genmask         Flags Metric Ref    Use Iface

0.0.0.0         192.168.1.1     0.0.0.0         UG    100    0        0 eth0

192.168.1.0     0.0.0.0         255.255.255.0   U     100    0        0 eth0

 

 

4.2 RS2

[root@RS2 ~]# cat /etc/sysconfig/network-scripts/ifcfg-eth0

DEVICE=eth0

NAME=eth0

BOOTPROTO=none

ONBOOT=yes

IPADDR=192.168.1.17

PREFIX=24

GATEWAY=192.168.1.1

TYPE=Ethernet

PROXY_METHOD=none

BROWSER_ONLY=no

DEFROUTE=yes

IPV4_FAILURE_FATAL=no

IPV6INIT=no

UUID=5fb06bd0-0bb0-7ffb-45f1-d6edd65f3e03

[root@RS2 ~]# route -n

Kernel IP routing table

Destination     Gateway         Genmask         Flags Metric Ref    Use Iface

0.0.0.0         192.168.1.1     0.0.0.0         UG    100    0        0 eth0

192.168.1.0     0.0.0.0         255.255.255.0   U     100    0        0 eth0

 

[root@RS2 ~]# 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 10.0.0.100/32 scope global lo:1

       valid_lft forever preferred_lft forever

    inet6 ::1/128 scope host

       valid_lft forever preferred_lft forever

2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP group default qlen 1000

    link/ether 00:0c:29:9f:72:4c brd ff:ff:ff:ff:ff:ff

    inet 192.168.1.17/24 brd 192.168.1.255 scope global noprefixroute eth0

       valid_lft forever preferred_lft forever

 

[root@RS2 ~]# route -n

Kernel IP routing table

Destination     Gateway         Genmask         Flags Metric Ref    Use Iface

0.0.0.0         192.168.1.1     0.0.0.0         UG    100    0        0 eth0

192.168.1.0     0.0.0.0         255.255.255.0   U     100    0        0 eth0

 

 

二、实现LVS配置

1.LVS服务器

[root@LVS ~]# cat lvs_dr_lvs.sh

#/bin/bash

vip=10.0.0.100

iface=lo:1

mask='255.255.255.255'

port='80'

rs1='192.168.1.7'

rs2='192.168.1.17'

scheduler='rr'

type='-g'

rpm -q ipvsadm &> /dev/null || yum -y install ipvsadm &> /dev/null

 

case $1 in

start)

    ifconfig $iface $vip netmask $mask #broadcast $vip up

    iptables -F

    ipvsadm -A -t ${vip}:${port} -s $scheduler

    ipvsadm -a -t ${vip}:${port} -r ${rs1} $type -w 1

    ipvsadm -a -t ${vip}:${port} -r ${rs2} $type -w 1

    echo "The LVS Server is Ready"

    ;;

stop)

    ipvsadm -C

    ifconfig $iface down

    ;;

*)

    echo "Usage $(basename $0) start|stop"

    exit 1

Esac

[root@LVS ~]# bash -n lvs_dr_lvs.sh

[root@LVS ~]# bash lvs_dr_lvs.sh

 

 

2.两台RS服务器

RS1RS2用一样的脚本

[root@RS1 ~]# cat lvs_dr_rs.sh

#/bin/bash

vip=10.0.0.100

mask=255.255.255.255

dev=lo:1

rpm -q httpd &> /dev/null || yum -y install httpd &>/dev/null

service httpd start &> /dev/null && echo "The httpd Server is Ready!"

echo "`hostname -I`" > /var/www/html/index.html

 

case $1 in

start)

echo 1 > /proc/sys/net/ipv4/conf/all/arp_ignore

echo 2 > /proc/sys/net/ipv4/conf/all/arp_announce

echo 1 > /proc/sys/net/ipv4/conf/lo/arp_ignore

echo 2 > /proc/sys/net/ipv4/conf/lo/arp_announce

ifconfig $dev $vip netmask $mask #broadcast $vip up

echo "The RS Server is Ready!"

    ;;

stop)

    ifconfig $dev down

    echo 0 > /proc/sys/net/ipv4/conf/all/arp_ignore

    echo 0 > /proc/sys/net/ipv4/conf/lo/arp_ignore

    echo 0 > /proc/sys/net/ipv4//conf/all/arp_announce

    echo 0 > /proc/sys/net/ipv4/conf/lo/arp_announce

    echo "The RS Server is Caneled!"

    ;;

*)

    echo "Usage: $(basename $0) start|stop"

    exit 1

    ;;

esac

 

[root@RS1 ~]# bash -n lvs_dr_rs.sh

[root@RS1 ~]# bash lvs_dr_rs.sh

 

 

三、客户端验证 

[root@internet ~]# curl 10.0.0.100

192.168.1.7 

[root@internet ~]# curl 10.0.0.100

192.168.1.17 

[root@internet ~]# curl 10.0.0.100

192.168.1.7 

[root@internet ~]# curl 10.0.0.100

192.168.1.17 

posted @   惊起千层浪  阅读(127)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· Manus的开源复刻OpenManus初探
· AI 智能体引爆开源社区「GitHub 热点速览」
· 从HTTP原因短语缺失研究HTTP/2和HTTP/3的设计差异
· 三行代码完成国际化适配,妙~啊~
点击右上角即可分享
微信分享提示