【无标题】网络,keepalived

七层模型

软件“工程”学:有分层、解耦的概念,因此我们有七层模型

安装VM虚拟机

参考csdn地址https://blog.csdn.net/m0_50519965/article/details/116175873

激活码ZF3R0-FHED2-M80TY-8QYGC-NPKYF

VMware软件下载地址:https://www.vmware.com/cn/products/workstation-pro/workstation-pro-evaluation.html

CentOS 7 下载映像文件地址:centos-7-isos-x86_64安装包下载_开源镜像站-阿里云

su - root 切换到根目录

#cd /proc/$$/fd

#pwd

#exec 8<>  /dev/tcp/www.baidu.com/80

建立sockect连接

# echo -e ‘GET / HTTP/1.0\n’ >& 8

发送GET请求

#cat 0<& 8

读取请求打印到8文件的内容

#exec  8<& -

清除8文件

Ping不通外网解决方法

#第一步

cd /etc/sysconfig/network-scripts/

vi ifcfg-ens33

把no 改为yes

service network restart后就能ping通外网啦

解决ifconfg不存在

yum upgrade

yum install net-tools

netstart查看表格

(网络层)下一跳概念

有2个连接节点node3和node4

在node3增加虚拟网卡

#ifconfig  eth0:3 192.168.88.88/24

其中eth0是网卡名称,需要ifconfig查看现有的网卡名称

#ifconfig查看

我在node4中ping是ping不通的

因为路由表给了默认网关192.168.150.2

在node4中添加路由条解决

#route add 查看添加格式

#route add -host 192.168.88.88 gw 192.168.150.13

-host:不需要掩码位

-route:需要掩码位

#route add -route 192.168.88.88/24 gw 192.168.150.13

我们在node04中ping就可以成功了

相应在node03中可以看到直连ip地址,因为node03的网卡就是192.168.88.88

快和慢

通信慢:因为客服端调用服务器应用层需要7层,服务器还是jvm的还需要用来切换耗时;

通信快: 数据3层设备,到3层又没到4层,做包的转发,不需要握手。

负载均衡

拓扑图

oIS 负载均衡服务器层:浏览接入层4层,负载均衡是浏量,服务器是镜像的

Negix:负载是7层,转发,服务器是微服务模块,不是镜像的

验证

192.168.1.8是私有地址,6.6.6.6是公网地址,私人地址不会出现在公网中

其中路由器记录

#netstat  -natp查看自己连接的网络

D-NAT弊端

瓶颈:客户端-》服务器端 数据量小

服务器端-》客户端   数据量大

下行服务器带宽有瓶颈,消耗算力,优点可以实现负载均衡

DR路由

Ip是端到端的,mac地址是下一跳的节点直接的

负载均衡服务器和server是同一个局域网络,在同一个交换机下面,不能跨网络

Server中的VIP是隐藏的不对外暴露,封装包的时候用到,因网络中不能有相同的IP

D-NAT和DR优缺点

D-NAT需要换ip地址,要求rs的默认网关指向我们的负载均衡服务器,带宽瓶颈

DR模式,需要动链路层,负载均衡服务器和server必须在同一局域网,物理位置约束

隧道技术

在CIP->VIP外面包裹一层DIP->RIP地址,这样数据包就可以顺利的从负载均衡服务器被发送到server1

server1收到这个数据包之后,把外层的DIP->RIP撕掉,就能看到真正的CIP->VIP,自己处理之后,根据CIP->VIP直接返回给客户端。

我们以往用到的PPPOE这种协议就是这种技术。

VPN,翻的围墙就是这种技术

隐藏VIP的方法

实验操作手册

第一步

在node1中配置

#ifconfig eth0:2 192.168.150.100/24

注:等同于#ifconfig eth0:2 192.168.150.100 netmask 255.255.255.0;上面24代码

#ifconfig eth0:2 down(如果删除就用这条语句)

第二步: 在node2和node3配置隐藏ip时要先修改协议

#cd  /proc/sys/net/ipv4/conf/

#cd eth0

#ls

修改的是arp_ignore和arp_announce文件

#cat arp_ignore

#echo 1  >  arp_ignore

#echo 2  >  arp_announce

设置隐藏的vip,配置环卫虚拟接口

#ifconfig lo:2 192.168.115.100 netmask 255.255.255.255

这里必须是4个255,不能是3个

因为如果ping 192.168.115.1就会到lo:2不会走ens:33就出不去

第三步同node2设置一样Node3设置

#echo 1 > /proc/sys/net/ipv4/conf/ens33(自己的网卡名称)/arp_ignore

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

#echo 2 > /proc/sys/net/ipv4/conf/ens33/arp_announce

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

设置隐藏的vip

#ifconfig lo:8 192.168.115.100 netmask 255.255.255.255

第四步:node2和node3安装httpd静态的服务类似tomcat动态并启动

#yum install httpd -y

#service httpd start(如果失败用这个centos7的命令:bin/systemctl start httpd.service)

#vi  /var/www/html/index.html

在文件中写入

from 192.168.node2

测试:

浏览器访问虚拟机ip成功返回From 192.168.150.1x

上面测试可能遇到的问题:

网页访问不通问题解决

#systemctl status firewalld查看防火墙状态

#systemctl stop firewalld关闭防火墙

LVS配置

node1

#yum install ipvsadm  -y

 

#ipvsadm -A -t 192.168.115.100:80 -s rr

#ipvsadm -a -t 192.168.115.100:80 -r 192.168.115.138 -g -w 1

#ipvsadm -a -t 192.168.115.100:80 -r 192.168.115.137 -g -w 1

配置好后就可以向192.168.115.137和192.168.115.138负载了

验证

浏览器

页面刷新交替出现负载的地址

Node01:

#netstat -natp 看不到socket连接

Node02:

#nestat -natp 看到很多socket连接

Node1:

Ipvsadm -lnc 查看偷窥记录本

FIN_WAIT:连接过,偷窥了所有的包

SYN_RECV:连接

ESTABLISHED:连接已建立

实验手册2-keepalived

问题:

1:Lvs会挂,业务下线,单点故障

2:Reserver会挂,一部分用户请求异常,lvs还存着这个reserver的负载记录

问题解决

单点故障解决方式:一变多 a:主备b:主主

Reserver挂了怎么确定?

ping是不对的方法,正确是验证的是http协议,发请求判断返回200

Ok

Keepalived的功能:

  1. 监控自己服务
  2. Master通告自己还活着,Backup监听Master状态,Master挂了,一堆Backup推举出新的Master
  3. 配置:vip,添加ipvs,keepalived是有配置文件
  4. 对后端server健康检查
  5. Keeplived是一个通用的工具,主要作为HA实现

Nginx可以作为公司的负载均衡来用,ngnix成为了单点故障,也可以用keepalived来解决

服务节点node1,node2,node3,node4

Node3和node4配置安装

# yum install keepalived ipvsadm -y

配置:

/etc/keepalived/keepalived.conf

# cp keepalived.conf keepalived.conf.bak//备份一下

#  Vi keepalived.conf //打开如下一个表格中的配置

新创建窗口

#yum install man

#man 5 keepalived.conf // 5号文件

/virtual_ipaddress//查找到下面配置方法

192.168.150.100/24 dev ens33 label ens33:3

192.168.150.100虚拟的vip

/24

dev

 ens33物理网卡

 label ens33:3 取别名

Keepalived实验准备:node0,node1作为主备的主机,node2和node3作为server

如果手动配置过,先清理掉主机node1的配置

# ipvsadm -ln 查看

# ipvsadm -C 清理掉

#ifconfig ens33:8 down

之前配置的node2和node3保持不变

增加一台node0

在node0和node1上安装

#yum install keepalived ipvsadm -y(要用ipvsadm的命令)

配置文件修改

#cd /etc/keepalived/keepalived.conf

#cp /etc/keepalived/keepalived.conf.bak

#vi keepalived.conf

vrrp虚拟路由冗余协议

#yum install man安装帮助文档,可以查看帮助文档修改

#man 5 keepalived.conf

按/输入查找的virtual_ipaddress

获得

Node0

global_defs {

   notification_email {

     acassen@firewall.loc

     failover@firewall.loc

     sysadmin@firewall.loc

   }

   notification_email_from Alexandre.Cassen@firewall.loc

   smtp_server 192.168.200.1

   smtp_connect_timeout 30

   router_id LVS_DEVEL

   vrrp_skip_check_adv_addr

   vrrp_strict

   vrrp_garp_interval 0

   vrrp_gna_interval 0

}

vrrp_instance VI_1 {

    state MASTER // 主 node1 BACKUP 备

    interface ens33

    virtual_router_id 51 //keeplived的标识id

    priority 100 //权重值越大越高 node1 50

    advert_int 1

    authentication {

        auth_type PASS

        auth_pass 1111//权限认证

    }

    virtual_ipaddress {//vip

        192.168.200.16

        192.168.200.17

        192.168.200.18

192.168.115.100/24 dev ens33 label ens33:3

    }

}

virtual_server 192.168.200.100 443 {

virtual_server 192.168.115.100 80 {//虚拟vip的配置

    delay_loop 6

    lb_algo rr

    lb_kind NAT  DR//DR模式

    persistence_timeout  50 (负载连接保持时间50s) 测试环境看切换效果填 0

    protocol TCP

real_server 192.168.201.100 443 {

Real_server 192.168.115.165 80{ 本地的ip加端口

        weight 1

        SSL_GET HTTP_GET{

            url {

              path /

              digest ff20ad2481f97b1754ef3e12ecd3a9cc

              status_code 200

            }

            url {

              path /mrtg/

              digest 9b3a0c85a887a256d6939da88aabd8cd

            }

            connect_timeout 3

            nb_get_retry 3

            delay_before_retry 3

        }

}

Real_server 192.168.115.167 80{ 本地的ip加端口

        weight 1

        SSL_GET HTTP_GET{

            url {

              path /

              digest ff20ad2481f97b1754ef3e12ecd3a9cc

              status_code 200

            }

            url {

              path /mrtg/

              digest 9b3a0c85a887a256d6939da88aabd8cd

            }

            connect_timeout 3

            nb_get_retry 3

            delay_before_retry 3

        }

    }

}

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值