当前位置: 首页 > news >正文

LVS-NAT、DR、TUN模式配置

1、负载调度器配置

配置IP地址

增加一块网卡

cd /etc/sysconfig/network-scripts/
cp ifcfg-ens33 ifcfg-ens34
vim ifcfg-ens34
TYPE=Ethernet
BOOTPROTO=static
NAME=ens34
DEVICE=ens34
ONBOOT=yes
IPADDR=192.168.116.111
PREFIX=24
​
systemctl restart NetworkManager

安装ipvsadm

yum  install -y ipvsadm

开启路由转发功能【根据应用场景选择是否开启】

vim /etc/sysctl.conf
net.ipv4.ip_forward = 1
sysctl -p

加载ip_vs模块

modprobe ip_vs
lsmod |grep ip_vs
ip_vs                 145458  0 
nf_conntrack          139264  6 ip_vs,nf_nat,nf_nat_ipv4,xt_conntrack,nf_nat_masquerade_ipv4,nf_conntrack_ipv4
libcrc32c              12644  4 xfs,ip_vs,nf_nat,nf_conntrack

启动ipvsadm服务

touch /etc/sysconfig/ipvsadm
systemctl enable --now ipvsadm

配置负载分配策略

ipvsadm -A -t 192.168.115.111:80 -s rr
ipvsadm -a -t 192.168.115.111:80 -r 192.168.116.112:80 -m
ipvsadm -a -t 192.168.115.111:80 -r 192.168.116.113:80 -m

保存策略

ipvsadm-save > /etc/sysconfig/ipvsadm

2、web节点配置

安装nginx

yum install -y epel-release
yum install -y nginx

配置IP

TYPE=Ethernet
BOOTPROTO=static
NAME=ens33
DEVICE=ens33
ONBOOT=yes
IPADDR=192.168.116.112
PREFIX=24
GATEWAY=192.168.116.111
ifdown ens33 ;ifup ens33

3、测试

curl 192.168.115.111

LVS-DR模式配置

  1. 通过负载均衡器配置:将负载均衡器的IP地址设置为Web节点的虚拟IP(VIP)地址。这样,客户端的请求将发送到负载均衡器的VIP地址。

  2. 客户端请求到达负载均衡器:当客户端发送请求到负载均衡器的VIP地址时,负载均衡器会接收到请求。

  3. 负载均衡器将请求转发到后端Web节点:负载均衡器将请求转发到其中一个后端Web节点。它通过修改目标IP地址为相应的Web节点的IP地址,并修改源IP地址为负载均衡器自身的IP地址,然后将请求发送到相应的Web节点。

  4. Web节点响应请求:Web节点接收到来自负载均衡器的请求后,根据请求进行处理,并生成响应。

  5. Web节点将响应地址重写:在发送响应之前,Web节点将响应的源IP地址设置为负载均衡器的VIP地址,这样响应将会返回到负载均衡器。

  6. 负载均衡器将响应发送回客户端:负载均衡器收到来自Web节点的响应后,将响应发回给客户端。客户端认为响应来自负载均衡器的VIP地址。

通过LVS DR模式,Web节点之间的通信是通过负载均衡器进行转发与地址重写实现的,从而实现了负载均衡和高可用性。

1、负载调度器配置

调整ARP参数

vim /etc/sysctl.conf
net.ipv4.conf.all.send_redirects = 0 
net.ipv4.conf.default.send_redirects= 0
net.ipv4.conf.ens33.send_redirects = 0
sysctl -p

配置虚拟IP地址

cd /etc/sysconfig/network-scripts/
cp ifcfg-ens33 ifcfg-ens33:0
​

安装ipvsadm

yum  install -y ipvsadm

加载ip_vs模块

modprobe ip_vs
lsmod |grep ip_vs

启动ipvsadm服务

touch /etc/sysconfig/ipvsadm
systemctl enable ipvsadm

配置负载分配策略

ipvsadm -A -t 192.168.115.110:80 -s rr
ipvsadm -a -t 192.168.115.110:80 -r 192.168.115.112:80 -g
ipvsadm -a -t 192.168.115.110:80 -r 192.168.115.113:80 -g

保存策略

ipvsadm-save > /etc/sysconfig/ipvsadm

2、web节点配置

调整ARP参数

作用:防止VIP在同一网络产生IP地址冲突

vim /etc/sysctl.conf
net.ipv4.conf.all.arp_ignore=1 
net.ipv4.conf.all.arp_announce=2 
net.ipv4.conf.default.arp_ignore=1 
net.ipv4.conf.default.arp_announce = 2 
net.ipv4.conf.lo.arp_ignore = 1 
net.ipv4.conf.lo.arp_announce=2
​
sysctl -p

内核参数详解

- "net.ipv4.conf.all.arp_ignore=1": 此设置指示系统不应对分配给系统的任何IP地址的ARP请求作出响应。
- "net.ipv4.conf.all.arp_announce=2": 此设置指示系统应在其生成的ARP请求中将自己的IP地址作为源地址进行广播。
- "net.ipv4.conf.default.arp_ignore=1": 此设置类似于第一个设置,但仅适用于默认网络接口。
- "net.ipv4.conf.default.arp_announce=2": 此设置类似于第二个设置,但仅适用于默认网络接口。
- "net.ipv4.conf.lo.arp_ignore=1": 此设置指示系统不应对环回接口(lo)分配的任何IP地址的ARP请求作出响应。
- "net.ipv4.conf.lo.arp_announce=2": 此设置指示系统应在环回接口(lo)生成的ARP请求中广播其自己的IP地址作为源地址。
​
1. net.ipv4.conf.all.arp_ignore:将其设置为1,表示Web节点将忽略针对本地IP地址的ARP请求。这样可以防止Web节点响应其他节点的ARP请求,避免网络混乱。
2. net.ipv4.conf.all.arp_announce:将其设置为2,表示Web节点将使用自己的IP地址作为发送ARP请求时的源地址。这样可以确保响应的ARP请求返回到负载均衡器,而不是被路由丢弃。
3. net.ipv4.conf.default.arp_ignore和net.ipv4.conf.default.arp_announce:类似于前两个参数,但仅适用于默认网络接口。
4. net.ipv4.conf.lo.arp_ignore和net.ipv4.conf.lo.arp_announce:类似于前两个参数,但仅适用于环回接口(lo)。在DR模式下,为了实现返回流量的负载均衡,环回接口也需要进行相应的配置。
​
这些内核参数的配置可以确保Web节点正确地处理与负载均衡器之间的通信和ARP请求。通过使用这些参数,Web节点可以正确地响应和转发来自负载均衡器的请求,并确保返回流量经过负载均衡器,从而实现了负载均衡和高可用性。

配置虚拟IP地址

cd /etc/sysconfig/network-scripts/
cp ifcfg-lo ifcfg-lo:0
vim ifcfg-lo:0
DEVICE=lo:0
IPADDR=192.168.115.110
NETMASK=255.255.255.255
ONBOOT=yes
NAME=loopback:0
​
ifup lo:0  #CentOS7
systemctl stop NetworkManager
systemctl start NetworkManager

添加回环路由

route add -host 192.168.115.110/32 dev lo:0

安装httpd

yum install -y httpd

3、测试

curl 192.168.115.110

一、实验环境

主机名称ip角色
lvs-tun192.168.100.100lvs调度器,VIP:192.168.100.101
web1192.168.100.1后端web服务器1
web2192.168.100.2后端web服务器2
client192.168.100.3客户端

二、搭建lvs调度器的TUN模式

1、lvs-tun调度器配置

#清除DR模式的策略
ipvsadm -C 
#查看策略
ipvsadm -L    
[root@lvs-tun ~]# ipvsadm -C
[root@lvs-tun ~]# ipvsadm -Ln
IP Virtual Server version 1.2.1 (size=4096)
Prot LocalAddress:Port Scheduler Flags-> RemoteAddress:Port           Forward Weight ActiveConn InActConn
#加载隧道模块 
[root@lvs-tun ~]# modprobe ipip 
[root@lvs-tun ~]#  ip a 
#添加ip临时添加
[root@lvs-tun ~]# ip addr add 192.168.100.101/24 dev tunl0
#使网卡生效
[root@lvs-tun ~]# ip link set up tunl0  
#开启路由转发功能
[root@lvs-tun ~]# cat /etc/sysctl.conf
net.ipv4.ip_forward = 1
[root@lvs-tun ~]# sysctl -p
###删除tunl0路由
[root@lvs-tun ~]# ip route del 192.168.100.0/24 dev tunl0

在隧道模式里面添加策略

#设置轮询调度
[root@lvs-tun ~]# ipvsadm -A -t 192.168.100.101:80 -s rr 
#-i表示隧道模式,轮询web服务器
[root@lvs-tun ~]# ipvsadm -a -t 192.168.100.101:80 -r 192.168.100.1:80 -i
[root@lvs-tun ~]# ipvsadm -a -t 192.168.100.101:80 -r 192.168.100.2:80 -i
#保存策略
[root@lvs-tun ~]# ipvsadm-save > /etc/sysconfig/ipvsadm
#查看策略文件
[root@lvs-tun ~]# cat /etc/sysonfig/ipvsadm

2、web服务器配置

[root@web1 ~]# vim /etc/sysctl.conf
net.ipv4.conf.all.arp_ignore=1 
net.ipv4.conf.all.arp_announce=2 
[root@web1 ~]# sysctl -p
#加载隧道模块 
[root@web1 ~]# modprobe ipip 
[root@web1 ~]# ip a 
#添加ip临时添加
[root@web1 ~]# ip addr add 192.168.100.101/24 dev tunl0  
#网卡生效
[root@web1 ~]# ip link set up tunl0  
###删除tunl0路由
[root@web1 ~]# ip route del 192.168.100.0/24 dev tunl0
​

3、抓包验证

  1. 调度器抓包
tcpdump -i any -nn

  1. 真实web服务抓包
tcpdump -i tunl0 -nn

三、注意

在web1和web2上面分别修改反向过滤规则,防止丢包不是绝对必须,但强烈建议

  • 在 LVS - TUN 模式下,通常需要将反向路径过滤设置为02,以防止丢包。因为真实服务器从隧道接口接收请求,但响应数据包是通过物理接口发送回客户端的,严格的反向路径过滤(1)会认为这是非法的数据包而丢弃。

  • 系统会对流入的数据包进行反向路径校验,入包的数据是100,如果出包的数据不是100 ;这个数据就会被丢弃,所以我们要消除反向过滤的影响 。

  • 由于隧道模式实现的是不同网段的主机进行通信,如果信息要从服务端返回到客户端时 ,假设客户端和服务端不在同一个网段,数据根本出不去,所以我们需要关闭反向参数检验 。

rp_file参数用于控制系统是否开启对数据包源地址的校验,有三个值,含义分别如下:

  • 0:表示不开启源地址校验

  • 1:开启严格的反向路径校验,对每个进来的数据包,校验其反向路径是否是最佳路径,如果反向路径不是最佳路径,则直接丢弃该数据包

  • 2:开启松散的反向路径校验,对每个进来的数据包,校验其源地址是否可达,即反向路径是否能通(通过任意网口),如果反向路径不通,则直接丢弃该数据包

cat /etc/sysctl.conf
​
net.ipv4.conf.all.rp_filter=0
net.ipv4.conf.default.rp_filter=0
net.ipv4.conf.eth0.rp_filter=0
net.ipv4.conf.tunl0.rp_filter=0
sysctl -p
sysctl -w net.ipv4.conf.all.rp_filter=0
sysctl -w net.ipv4.conf.default.rp_filter=0
sysctl -w net.ipv4.conf.eth0.rp_filter=0
sysctl -w net.ipv4.conf.tunl0.rp_filter=0
sysctl -a | grep rp_filter
http://www.dtcms.com/a/561582.html

相关文章:

  • Qt样式深度解析
  • 怎么用自己电脑做网站优化一个网站
  • 莱芜做网站优化溧阳建设集团有限公司网站
  • id创建网站徐州品牌网站建设
  • 创意设计app青岛网站seo技巧
  • 中英文网站建设 大概要多久张掖建设网站
  • python 异步编程 -- 理解concurrent.futures.Future 对象
  • 【网络工程师】物理二层STP协议
  • 网站关键词排名优化应该怎么做网站备案成功后怎么办
  • Vue3组件间通信——pinia
  • php零基础做网站网站没后台怎么修改类容
  • 郑州做网站狼牙建立网站的链接结构有哪几种形式?
  • RTL8762KD_EVB_Board-嘉立创EDA设计
  • 西安网站制作公司怎么选宁波企业做网站哪家好
  • 手机网站开发算什么费用seo服务外包价格
  • 在 ​CentOS 7​ 的 Linux 系统中配置 ​NFS
  • 网站欣赏网站整合营销传播成功案例
  • 深圳高端网站设计建设网站推广百度优化
  • React Native 项目实战指南
  • 百度品牌网站建设优化大师如何删掉多余的学生
  • 做平面设计的一般浏览什么网站wordpress自定义文章顺序
  • 打造推理模型的4种方法——李宏毅2025大模型课程第7讲
  • 金融行业客服系统中合规高效的身份验证流程分享
  • 网站服务器怎么维护濮阳网站建设在哪里
  • 四川省住房和城乡建设厅网站官网西安做网站缑阳建
  • linux——有关权限的话题。——权限掩码——默认文件权限的理解/文件共享、粘滞位
  • 【经典书籍】《人月神话》第四章“贵族专制、民主政治和系统”精华讲解
  • 南京高端网站定制保定自助建站软件
  • hysAnalyser --- 支持UDP实时流分析和录制功能
  • 葫芦岛做网站的公司微信公众平台导航 wordpress模版