写点什么

高并发负载均衡:网络协议原理(三)

  • 2021 年 11 月 12 日
  • 本文字数:1535 字

    阅读完需:约 5 分钟



一块物理网卡上可以设置多个虚拟 IP 地址。


1)上上图中两份协议:


①响应级别:


默认都是 0,外面不知道几个网卡啥的,内部大家互相之间都知道,这就叫对外隐藏,对内可见的隐藏 VIP 方法。


0:代表只要客户端请求任意一块网卡上的 IP,就全部响应(你对着网卡 1 说我要 2 卡,也会响应)


1:代表客户端问到对应的网卡的 IP 上才会响应(你问 1 说要 2,不知道)


②通告级别:


0:通上电就把全部卡的全部 IP 全发出去


1:你问对应的卡的 IP 才告诉响应


2:因为一张卡上可以有多个 IP,假设卡 1 有两个 IP,卡 2 有一个,卡 1 有一个公开的 IP,一个隐藏 IP(这个 IP 可能是与别的网络通信的,不是你的这个网络),卡 2 是公开的 IP,你问 1 的时候会告诉 1 的公开 IP,隐藏 IP 不会说,问卡 1 说找卡 2,无可奉告


2)网卡



上图中 lo 为本机的虚拟网卡,etho 为物理网卡,物理网卡插在主板上,虚拟网卡是在内核中分配的空间接口,ip 为 localhost 也就是 127.0.0.1,本机的 tomcat 上面的页面想测试,打开浏览器输入 localhost:8080,数据发到内核中发现是 LO 的网卡的 IP 是本机所以直接返回去找 tomcat 对应端口,根本不走虚拟网卡,而虚拟网卡也不知道。


隐藏 VIP 的实现:在内核的 LO 接口中再新增一个 VIP,更改两份协议的参数(不告诉别人)。


3)


![在这里插入图片描述](https://img-blog.csdnimg.cn/2020031012452224.png?x-oss-process=ima


【一线大厂Java面试题解析+后端开发学习笔记+最新架构讲解视频+实战项目源码讲义】
浏览器打开:qq.cn.hn/FTf 免费领取
复制代码


ge/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3FxXzM2MjY4MDI1,size_16,color_FFFFFF,t_70)


  1. 搭建



现在的 Linux 系统的内核中默认自带 LVS 负载均衡模块,叫 IPVS 内核模块(所以不需要安装什么模块,只需要安装一个和这个内核模块交互的接口,ipvsadm,用户空间的软件)



以上为搭建步骤


  1. 实验手册



步骤:


1)在 node01 中(作为 LVS 负载均衡服务器)


ifconfig eth0:8 192.168.150.100/24 配置 eth0 网卡的 2 子接口虚拟地址为 192.168.150.100,/24 代表三个 255 一个 0,因为一个 255 代表 8 个 1,所以 3*8 的 1,为 24,设置子网掩码 255.255.255.0。


上面是简写,全写为:


ifconfig eth0:8 192.168.150.100 netmask 255.255.255.0


ifconfig etho:8 down 为撤销删除


2)在 node02 中(先改内核,然后配置 VIP,因为 VIP 需要隐藏,防止直接发送了)


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


cd eth0



cat arp_ignore


echo 1 > arp_ignore


cat arp_ignore


echo 2 > arp_announce


cat arp_announce



cd …


cd all


echo 1 > arp_ignore


echo 2 > arp_announce


ifconfig lo:2 192.168.150.100 netmask 255.255.255.255 (这步不能简写!配置 IP)


3)在 node03 中(同上)


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


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


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


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


ifconfig lo:8 192.168.150.100 netmask 255.255.255.255


到目前为止网络层搭建结束


4)在 node02 和 node03 中,搭建 RIP


安装 httpd


yum install httpd -y(是一个静态的 webserver,类似 tomcat,重启后会失效)


service http start (启动 httpd,默认为 80 端口)


vi /var/www/html/index.html:


from 192.168.150.1x(node02 中就是 192.168.150.12,自己的 IP)保存


windows 的浏览器中(写不写:80 都一样,默认 80 端口):




5)在 node01 中(安装 LVS 模块调用工具):


ipvsadm 工具的使用在上文中有个图进行了详细说明


yum install ipvsadm -y


ipvsadm -A -t 192.168.150.100:90 -s rr


ipvsadm -ln (查看配置了的入口调度,rr 代表轮询的)



ipvsadm -a -t 192.168.150.100:80 -r 192.168.150.12 -g -w l


ipvsadm -ln 查看一下


ipvsadm -a -t 192.168.150.100:80 -r 192.168.150.13 -g -w l


ipvsadm -ln 查看一下



评论

发布
暂无评论
高并发负载均衡:网络协议原理(三)