實驗:LVS-DR模型實現

16

網絡拓撲

實驗lvs-dr模式

VS服務器,一個接口,兩個IP

DIP要求和RS在同一個網段中

VIP是公有地址

 

在生產中,VIP是公網地址

在網絡環境中,VIP的子網掩碼任意,只有一它臺主機在獨立的網段中,所以子網掩碼任意

 

路由器上有兩個接口,一個和VIP在一個網段,通過這個地址連接到VIP上,一個和私網的地址進行通訊的

 

RS的地址和DIP和是私網地址,不需要互聯網可以訪問

實現了在同一個物理絡但邏輯上是兩個不同的網段

只有路由器是兩塊網卡,其他都是一塊網卡

 

主機:5臺

??

路由器router

hostname router

exec bash

?

設置網絡

ens33

IPADDR=172.18.0.200

PREFIX=16

DNS1=223.5.5.5

DNS2=223.6.6.6

 

ens34

TYPE=Ethernet

BOOTPROTO=none

DEFROUTE=yes

NAME=ens34

DEVICE=ens34

ONBOOT=yes

IPADDR=192.168.111.101

PREFIX=24

GATEWAY=192.168.111.1

 

 

ens34:1 定義網卡別名

[root@router /etc/sysconfig/network-scripts]# cp ifcfg-ens34 ./ifcfg-ens34:1

 

[root@router /etc/sysconfig/network-scripts]# vim ifcfg-ens34:1

TYPE=Ethernet

BOOTPROTO=none

DEFROUTE=yes

DEVICE=ens34:1

ONBOOT=yes

IPADDR=10.0.0.200

PREFIX=8

 

[root@router ~]# systemctl restart network

 

CentOS6需要關閉NetworkManagre服務

 

 

客戶端

 

hostname client

[root@localhost ~]# exec bash

 

配置網絡

 

nmcli connection modify ens33 ipv4.addresses 172.18.0.123/16 ipv4.gateway 172.18.0.200 ipv4.method manual

 

nmcli connection up ens33

 

 

[root@client ~]# route -n

Kernel IP routing table

Destination ????Gateway ????????Genmask ????????Flags Metric Ref ???Use Iface

0.0.0.0 ????????172.18.0.200 ???0.0.0.0 ????????UG ???100 ???0 ???????0 ens33

172.18.0.0 ?????0.0.0.0 ????????255.255.0.0 ????U ????100 ???0 ???????0 ens33

 

 

測試網絡連通性

[root@client ~]# ping 10.0.0.200

PING 10.0.0.200 (10.0.0.200) 56(84) bytes of data.

64 bytes from 10.0.0.200: icmp_seq=1 ttl=64 time=1.08 ms

 

[root@client ~]# ping 192.168.111.101

PING 192.168.111.101 (192.168.111.101) 56(84) bytes of data.

64 bytes from 192.168.111.101: icmp_seq=1 ttl=64 time=0.609 ms

 

[root@client ~]# ping 172.18.0.200

PING 172.18.0.200 (172.18.0.200) 56(84) bytes of data.

64 bytes from 172.18.0.200: icmp_seq=1 ttl=64 time=0.356 ms

 

 

網絡配置完成!

 

 

RS1,RS2

 

RS1

TYPE=Ethernet

BOOTPROTO=none

DEFROUTE=yes

NAME=ens34

DEVICE=ens34

ONBOOT=yes

IPADDR=192.168.111.102

PREFIX=24

GATEWAY=192.168.111.101

 

 

RS2

TYPE=Ethernet

BOOTPROTO=none

DEFROUTE=yes

NAME=ens34

DEVICE=ens34

ONBOOT=yes

IPADDR=192.168.111.103

PREFIX=24

GATEWAY=192.168.111.101

 

 

ifconfig ens33 down

 

route -n

 

[root@RS1 ~]# route -n

Kernel IP routing table

Destination ????Gateway ????????Genmask ????????Flags Metric Ref ???Use Iface

0.0.0.0 ????????192.168.111.101 0.0.0.0 ????????UG ???100 ???0 ???????0 ens34

192.168.111.0 ??0.0.0.0 ????????255.255.255.0 ??U ????100 ???0 ???????0 ens34

 

[root@RS2 ~]# route -n

Kernel IP routing table

Destination ????Gateway ????????Genmask ????????Flags Metric Ref ???Use Iface

0.0.0.0 ????????192.168.111.101 0.0.0.0 ????????UG ???100 ???0 ???????0 ens34

192.168.111.0 ??0.0.0.0 ????????255.255.255.0 ??U ????100 ???0 ???????0 ens34

 

彼此可以ping通

 

[root@RS1 ~]# ping 172.18.0.123

PING 172.18.0.123 (172.18.0.123) 56(84) bytes of data.

64 bytes from 172.18.0.123: icmp_seq=1 ttl=63?time=2.25 ms

 

[root@RS2 ~]# ping 172.18.0.123

PING 172.18.0.123 (172.18.0.123) 56(84) bytes of data.

64 bytes from 172.18.0.123: icmp_seq=1 ttl=63?time=2.04 ms

 

 

 

注意:route機器需要啟用路由功能

[root@router ~]# vim /etc/sysctl.conf

net.ipv4.ip_forward=1

 

生效

[root@router ~]# sysctl -p

 

 

配置VS

 

 

LVS機器

hostname LVS

exec bash

 

網絡配置

[root@LVS ~]# v34

TYPE=Ethernet

BOOTPROTO=none

DEFROUTE=yes

NAME=ens34

DEVICE=ens34

ONBOOT=yes

IPADDR=192.168.111.100

PREFIX=24

GATEWAY=192.168.111.1(實驗時,網關指向路由器的網關),這里指向的是本機IP地址的網關,實驗過程中也是可以的,但還是建議把這個網關指向路由器的私有地址的接口上

 

66:00分鐘的時候提到網關的問題:網關先配上

 

VS服務器可以不配置網關,請求包到達VS后,不通過VS返回

注意:配上網關,先配上,配的網關是路由器的網關

 

 

LV

[root@LVS ~]# cat lvs_dr_vs.sh

#!/bin/bash

vip=’10.0.0.100′

iface=’ens34:1′

mask=’255.0.0.0’#子網掩碼是什么都可以

port=’80’

rs1=’192.168.111.102′

rs2=’192.168.111.103′

scheduler=’wrr’

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 VS Server is Ready!”

;;

stop)

ipvsadm -C

ifconfig $iface down

echo “The VS Server is Canceled!”

;;

*)

echo “Usage: $(basename $0) start|stop”

exit 1

;;

esac

[root@LVS ~]#

 

 

[root@LVS ~]# bash lvs_dr_vs.sh start

?

[root@LVS ~]# ip a

3: ens34: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP qlen 1000

link/ether 00:0c:29:49:43:34 brd ff:ff:ff:ff:ff:ff

?inet 192.168.111.100/24?brd 192.168.111.255 scope global ens34

valid_lft forever preferred_lft forever

inet 10.0.0.100/8?brd 10.255.255.255 scope global ens34:1

valid_lft forever preferred_lft forever

inet6 fe80::20c:29ff:fe49:4334/64 scope link

valid_lft forever preferred_lft forever

?

?

[root@LVS ~]# ipvsadm -ln

IP Virtual Server version 1.2.1 (size=4096)

Prot LocalAddress:Port Scheduler Flags

-> RemoteAddress:Port ??????????Forward Weight ActiveConn InActConn

TCP ?10.0.0.100:80 wrr

-> 192.168.111.102:80 ??????????Route ??1 ?????0 ?????????0

-> 192.168.111.103:80 ??????????Route ??1 ?????0 ?????????0

 

RS配置

[root@RS1 ~]# cat lvs_dr_rs.sh

#!/bin/bash

vip=10.0.0.100

mask=’255.0.0.0’#子網掩碼是什么都可以

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`” > /var/www/html/index.html

 

case $1 in

start)

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

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

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

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

ifconfig $dev $vip netmask $mask #broadcast $vip up廣播可以不寫

#route add -host $vip dev $dev 路由可以不寫

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 Canceled!”

;;

*)

echo “Usage: $(basename $0) start|stop”

exit 1

;;

esac

[root@RS1 ~]#

 

 

[root@RS1 ~]# bash lvs_dr_rs.sh start

[root@RS2 ~]# bash lvs_dr_rs.sh start

 

確定VIP被綁定到lo上

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

valid_lft forever preferred_lft forever

inet6 ::1/128 scope host

valid_lft forever preferred_lft forever

 

 

關閉防火墻、關閉selinux、關閉橋接網卡、開啟httpd服務

iptables -F && setenforce 0 && ifconfig ens33 down && systemctl start httpd

 

 

 

測試

[root@client ~]# for i in {1..100};do curl 10.0.0.100; sleep 0.1;done

RS1 Server

RS2 Server

RS1 Server

RS2 Server

?

?

腳本中的lo網卡的arp_announce和arp_ignore是不是可以不加?

修改腳本,注釋掉lo網卡所在的行,測試

?

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

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

?

也就是說,加了all是不是可以不加lo

?

?

RS1和RS2

修改對應的選項后重新執行

?

bash lvs_dr_rs.sh start

?

是可以的!

?

all就是代表所有,lo是單獨的針對lo網卡,加上all 和 lo 相對于是雙保險

?

?

 

本文來自投稿,不代表Linux運維部落立場,如若轉載,請注明出處:http://www.www58058.com/91936

(0)
無言勝千言無言勝千言
上一篇 2018-03-05 21:27
下一篇 2018-03-06 03:09

相關推薦

  • 7.22_Linux入門和幫助文件的使用

    Linux系統登錄的兩種方式 GUI:圖形界面 Graphic User Interface 默認在Linux下面有三種可用的圖形界面程序可選,分別為 1.gnome(c,圖形庫gtk) 2.kde(c++,圖形庫qt) 3.xface(輕量級桌面) 每一種圖形界面下面開發的軟件并不兼容,因為它們開發時候所用的開發語言也各不相同 啟動方式:cli模…

    Linux干貨 2016-08-04
  • vrrp_script高可用httpd&雙主httpd

      vrrp_script高可用httpd 實驗拓撲: HA01 192.168.150.137     MASTER HA02 192.168.150.137     BACKUP VIP 1921.168.150.131 實驗1: 通過touch一個文件來控制keepalived主機的優先級 HA01的配…

    Linux干貨 2016-12-06
  • 馬哥教育網絡班20期第2周課程練習

    答: 1、 cp,mv,rm,cat(tac,more,less,tail),touch 其中常用的有: cp(復制):                   -i:交互式              -…

    Linux干貨 2016-06-23
  • 我在馬哥的學習生涯開始

    我的人生工作目標:年薪百萬不是夢!

    Linux干貨 2016-10-28
  • FTP基于PAM和MySQL/MariaDB實現虛擬用戶訪問控制

    前言 vsftpd是一款在Linux發行版中最受推崇的FTP服務器程序,特點是小巧輕快,安全易用,目前在開源操作系統中常用的FTP套件主要有proftpd、pureftp、ServU和wu-ftpd等。本文將講解vsftpd的基本功能和如何基于PAM和MySQL/MariaDB實現虛擬用戶訪問控制。 基礎配置介紹 工作原理 狀態響應碼 1xx:信息碼 2xx…

    2015-04-20
  • keepalived+lvs-dr實現高可用負載均衡

    keepalived+lvs-dr實現高可用負載均衡 實驗拓撲 實驗要求 RS1與RS2地址為172.18.27.201/202 VS1和VS2地址為172.18.27.103/200,VIP為172.18.27.254 VS1和VS2實現lvs-dr負載均衡及高可用性,且vs為sorry sever。 keepalived是單主模式。 實驗步驟 各個主機安…

    2017-05-14
欧美性久久久久