时间同步:
yum -y install ntpdate
yum -y install ntpntpdate cn.ntp.org.cn
systemctl start ntpd
systemctl enable ntpd
安装ipvsadm
# 安装ipvsadm[root@nat ~]# yum -y install ipvsadm# 清空以往的规则[root@nat ~]# ipvsadm -C# 查看规则[root@nat ~]# ipvsadm -L -n# 新增规则[root@nat ~]# ipvsadm -A -t 192.168.0.100:80 -s rr# 添加主机[root@nat ~]# ipvsadm -a -t 192.168.0.100:80 -r10.1.1.200:80 -m[root@nat ~]# ipvsadm -a -t 192.168.0.100:80 -r10.1.1.201:80 -m# 设置ip转发[root@nat ~]# vim /etc/sysctl.conf============================================net.ipv4.ip_forward=1============================================# 设置生效[root@nat ~]# sysctl -pnet.ipv4.ip_forward = 1
web服务器网关配置:
[root@web01 ~]# route del default[root@web01 ~]# route add default gw 10.1.1.100[root@web02 ~]# route del default[root@web02 ~]# route add default gw 10.1.1.100
添加规则 :
# 配置ipvs规则
[root@ds01 ~]# ipvsadm -A -t 192.168.10.100:80 -s rr[root@ds01 ~]# ipvsadm -LnIP Virtual Server version 1.2.1 (size=4096)Prot LocalAddress:Port Scheduler Flags-> RemoteAddress:Port Forward Weight ActiveConn InActConnTCP 192.168.10.100:80 rr
# 添加rs web01 web02 添加规则
[root@ds01 ~]# ipvsadm -a -t 192.168.10.100:80 -r10.1.1.200:80 -m[root@ds01 ~]# ipvsadm -a -t 192.168.10.100:80 -r10.1.1.201:80 -m[root@ds01 ~]# ipvsadm -LnIP Virtual Server version 1.2.1 (size=4096)Prot LocalAddress:Port Scheduler Flags-> RemoteAddress:Port Forward WeightActiveConn InActConnTCP 192.168.10.100:80 rr-> 10.1.1.200:80 Masq 1 00-> 10.1.1.201:80 Masq 1 00
ip转发:
[root@ds01 ~]# vim /etc/sysctl.conf##########################################net.ipv4.ip_forward=1#############################################[root@ds01 ~]# sysctl -pnet.ipv4.ip_forward = 1
临时修改web01和web02的网关,网关必须指向dip(调度服务器的对内的ip)
[root@web01 ~]# route del default[root@web01 ~]# route add default gw 10.1.1.100[root@web01 ~]# # 临时修改网关# 这也要求了rs ip和 dip要在同一个网段,因为dip是要作为网关存在的
NAT脚本:
# ds脚本#!/bin/bash#配置网卡echo TYPE="Ethernet" >> /etc/sysconfig/network-scripts/ifcfg-ens36echo BOOTPROTO="none" >> /etc/sysconfig/network-scripts/ifcfg-ens36read -p "router name:" router_nameecho NAME='"$rount_name"' >> /etc/sysconfig/network-scripts/ifcfg-ens36uuidkey=$( uuidgen )echo UUID='"$uuidkey"' >> /etc/sysconfig/network-scripts/ifcfg-ens36 >> /etc/sysconfig/network-scripts/ifcfg-ens36echo DEVICE='"$rount_name"' >> /etc/sysconfig/network-scripts/ifcfg-ens36echo ONBOOT="yes" >> /etc/sysconfig/network-scripts/ifcfg-ens36echo IPADDR=192.168.10.100 >> /etc/sysconfig/network-scripts/ifcfg-ens36systemctl restart network#安装ipvsadmyum list installed|grep ipvsadmif[ $? -ne 0 ];thenyum -y install ipvsadmfi#配置规则read -p "vip:" vipread -p "port:" portread -p "rule:" sipvsadm -A -t $vip:$port -s $s# ip forwardecho "net.ipv4.ip_forward=1" >/etc/sysctl.confsysctl -p# rs脚本#!/bin/bashread -p "dip:" dip# 设置网关route del defaultroute add defualt gw $dipDR模式:
1.性能更优,回路不再经过ds2.ds和rs为了保证用户响应,都要求配置统一的vip3.由于rs是直接响应client,网关一定不能设置为ds 的dip4.对rs的vip进行抑制,让ds的vip接收请求,rs的vip不接受请求5.rs的vip绑定点lo回路网卡上
在ds的ens33上挂一个vip 10.1.1.102
ifconfig ens33:0 10.1.1.102 broadcast 10.1.1.102 netmask 255.255.255.255 up
route add -host 10.1.1.102 dev ens33:0
设置规范:
# 安装ipvsadmyum -y install ipvsadm$ 设置规则ipvsadm -A -t 10.1.1.102:80 -s rripvsadm -a -t 10.1.1.102:80 -r 10.1.1.200 -gipvsadm -a -t 10.1.1.102:80 -r 10.1.1.201 -g# rs不在需要指定端口,dr不支持端口映射,vip上是80端口,最终就是80端口# -m nat -g gateway
设置rs主机:
1.在lo接口上绑定vip
[root@web01 ~]# ifconfig lo:0 10.1.1.102 broadcast10.1.1.102 netmask 255.255.255.255 up
2.设置主机路由
[root@web01 ~]# route add -host 10.1.1.102 dev lo:0
3.抑制rs接收请求
echo 1 > /proc/sys/net/ipv4/conf/lo/arp_ignoreecho 2 > /proc/sys/net/ipv4/conf/lo/arp_announceecho 1 > /proc/sys/net/ipv4/conf/all/arp_ignoreecho 2 > /proc/sys/net/ipv4/conf/all/arp_announce
4.生成脚本,对web02使用
ifconfig lo:0 10.1.1.102 broadcast 10.1.1.102 netmask255.255.255.255 uproute add -host 10.1.1.102 dev lo:0echo 1 > /proc/sys/net/ipv4/conf/lo/arp_ignoreecho 2 > /proc/sys/net/ipv4/conf/lo/arp_announceecho 1 > /proc/sys/net/ipv4/conf/all/arp_ignoreecho 2 > /proc/sys/net/ipv4/conf/all/arp_announce
5.测试使用,查看状态
[root@dr03 ~]# ipvsadm -Ln --statsIP Virtual Server version 1.2.1 (size=4096)Prot LocalAddress:Port Conns InPktsOutPkts InBytes OutBytes-> RemoteAddress:PortTCP 10.1.1.102:80 1 60 360 0-> 10.1.1.200:80 0 00 0 0-> 10.1.1.201:80 1 60 360 0[root@dr03 ~]#
dr模式的脚本 :
#!/bin/bash#在ens33上挂载一个ip地址read -p "vip:" vipread -p "mac:" macread -p "num" numifconfig $mac:$num $vip broadcast $vip netmask255.255.255.255# 主机路由route add -host $vip dev $mac:$num#安装ipvsadmyum list installed|grep ipvsadmif [ $? -ne 0 ] ; thenyum -y install ipvsadmfi#配置规则(不需要设置ip_forword)ipvsadm -Cread -p "rule:" ruleread -p "port:" portipvsadm -A -t $vip:$port -s $ruleread -p "rip1:" rip1ipvsadm -a -t $vip:$port -r $rip1 -gread -p "rip2:" rip2ipvsadm -a -t $vip:$port -r $rip2 -g
rs脚本:
#!/bin/bash#在ens33上挂载一个ip地址read -p "vip:" vipread -p "mac:" macread -p "num" numifconfig $mac:$num $vip broadcast $vip netmask 255.255.255.255# 主机路由route add -host $vip dev $mac:$numecho 1 > /proc/sys/net/ipv4/conf/lo/arp_ignoreecho 2 > /proc/sys/net/ipv4/conf/lo/arp_announceecho 1 > /proc/sys/net/ipv4/conf/all/arp_ignoreecho 2 > /proc/sys/net/ipv4/conf/all/arp_announce