高并发负载均衡:网络协议原理(三)
一块物理网卡上可以设置多个虚拟 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
ge/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3FxXzM2MjY4MDI1,size_16,color_FFFFFF,t_70)
搭建
现在的 Linux 系统的内核中默认自带 LVS 负载均衡模块,叫 IPVS 内核模块(所以不需要安装什么模块,只需要安装一个和这个内核模块交互的接口,ipvsadm,用户空间的软件)
以上为搭建步骤
实验手册
步骤:
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 查看一下
评论