LVS
一个调度主机,有两个网卡
lvs的工作原理
lvs组成及术语
1.ipvs:
2.ipvsadm
DS:前端负责均衡节点(负载均衡服务器)
RS:后端真实工作服务器(web服务器)
vip:对外,公网
dip:对内,局域网
lvs的工作模式
LVS-NAT模式
nat模式工作原理
nat模式的特性
nat环境搭建
主机名称 | ip地址 | 功能 |
web01 | 192.168.118.200 | rs |
web02 | 192.168.118.201 | realserver |
nat | vip:192.168.10.100 dip:192.168.118.10 | 负载均衡调度器directorserver,ntp |
dns | 192.168.118.110 | dns |
web服务器:
下载nginx,在index.html写入内容,启动nginx,编写计划任务
yum -y install nginx
echo "web-----01" > /usr/share/nginx/html/index.html
[root@web01 ~]# nginx
[root@web01 ~]# crontab -e
30 3 * * * /usr/sbin/ntpdate 192.168.118.10 //时间服务器的IP
nat服务器:
需要两块网卡,再添加一块网卡
配置vip网卡:
同步时间,编写计划任务,配置时间服务器,启动服务,设置开机自启动
142 yum -y install ntpdate.x86_64
143 ntpdate cn.ntp.org.cn
144 which ntpdate
145 crontab -e
* 2 * * * /usr/sbin/ntpdate cn.ntp.org.cn
147 yum -y install ntp
148 systemctl start ntpd
149 systemctl enable ntpd
dns服务器:
[root@dns ~]# yum -y install bind
[root@dns ~]# vim /etc/named.conf //添加any
[root@dns ~]# vim /etc/named.rfc1912.zones
zone "yuanyu.zhangmin" IN {
type master;
file "yuanyu.zhangmin.zone";
allow-update { none; };
};
[root@dns ~]# cd /var/named/
[root@dns named]# cp -p named.localhost yuanyu.zhangmin.zone
[root@dns named]# vim yuanyu.zhangmin.zone
[root@dns named]# named-checkconf /etc/named.conf
[root@dns named]# named-checkconf /etc/named.rfc1912.zones
[root@dns named]# named-checkzone yuanyu.zhangmin.zone yuanyu.zhangmin.zone
[root@dns named]# systemctl restart named
client客户端:
[root@allow ~]# echo "nameserver 192.168.118.110" > /etc/resolve.conf
[root@allow ~]# ping nat.yuanyu.zhangmin -c2
PING nat.yuanyu.zhangmin (192.168.118.135) 56(84) bytes of data.
64 bytes from 192.168.118.135 (192.168.118.135): icmp_seq=1 ttl=64 time=0.639 ms
64 bytes from 192.168.118.135 (192.168.118.135): icmp_seq=2 ttl=64 time=0.305 ms
nat配置规则:在nat服务器配置
安装ipvsadm
[root@nat ~]# yum -y install ipvsadm.x86_64
查看所有的规则,如果已经配置好规则,重启之后也就没有了
web服务器网关配置:
临时修改web01和web02的网关,网关必须指向dip(调度服务器的对内的ip)
这也要求了rs ip和dip要在同一个网段,因为dip是要作为网关存在的
升级
LVS-DR模式
设置ds主机:192.168.118.202
1.在ens33上挂一个IP地址(vip)192.168.118.203,在rs上的vip和这个vip相同
9 ifconfig ens33:0 192.168.118.203 broadcast 192.168.118.203 netmask 255.255.255.255 up
2.设置主机路由
11 route add -host 192.168.118.203 dev ens33:0
3. 安装ipvsadm
13 yum -y install ipvsadm
4.配置规则
ipvsadm -C //清空规则
14 ipvsadm -A -t 192.168.118.203:80 -s rr
15 ipvsadm -a -t 192.168.118.203:80 -r 192.168.118.200 -g
17 ipvsadm -a -t 192.168.118.203:80 -r 192.168.118.201 -g
18 ipvsadm -Ln
注意:
设置rs主机
1.在lo接口上绑定vip
2.设置主机路由
3.抑制rs接收请求
web01:
[root@web01 ~]# ifconfig lo:0 192.168.118.203 broadcast 192.168.118.203 netmask 255.255.255.255 up
[root@web01 ~]# route add -host 192.168.118.203 dev lo:0
[root@web01 ~]# ifconfig
抑制rs的vip接收请求
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
web02的操作与web01一样,可以使用脚本来操作:
[root@web02 ~]# cat arp.sh
ifconfig lo:0 192.168.118.203 broadcast 192.168.118.203 netmask 255.255.255.255 up
route add -host 192.168.118.203 dev lo:0
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
测试使用,查看状态
在浏览器上访问vip 192.168.118.203,在dr上查看详情
[root@dr ~]# ipvsadm -Ln --stats
IP Virtual Server version 1.2.1 (size=4096)
Prot LocalAddress:Port Conns InPkts OutPkts InBytes OutBytes
-> RemoteAddress:Port
TCP 192.168.118.203:80 6 140 0 39432 0
-> 192.168.118.200:80 3 12 0 518 0
-> 192.168.118.201:80 3 128 0 38914 0