百度360必应搜狗淘宝本站头条
当前位置:网站首页 > 技术资源 > 正文

linux系统防火墙高级配置-Day 6:高可用与负载均衡

off999 2025-03-20 17:57 99 浏览 0 评论

1. 防火墙高可用架构

方案1:Keepalived + iptables/nftables

拓扑
- 主备节点通过VRRP协议实现IP漂移(Virtual IP: 192.168.1.100) - 实时同步防火墙规则(rsync/cron)

Keepalived配置示例

# 主节点配置(/etc/keepalived/keepalived.conf)
vrrp_instance VI_1 {
    state MASTER
    interface eth0
    virtual_router_id 51
    priority 100
    advert_int 1
    virtual_ipaddress {
        192.168.1.100
        }
# 防火墙服务健康检测
track_script {
    chk_firewall
    }
}

vrrp_script chk_firewall {
    script "/usr/bin/systemctl is-active nftables"  # 检测防火墙服务状态
    interval 2
    weight -20  # 服务失败时降低优先级触发切换
    }

规则同步脚本

# 主节点通过rsync推送规则到备节点
#!/bin/bash
nft list ruleset > /etc/nftables.conf
rsync -avz /etc/nftables.conf backup-node:/etc/nftables.conf
ssh backup-node "nft -f /etc/nftables.conf"

2. 四层负载均衡(L4)

iptables实现流量分发

# 随机分发HTTP请求到3台后端
iptables -t nat -A PREROUTING -p tcp --dport 80 \
    -m statistic --mode random --probability 0.33 \
    -j DNAT --to-destination 10.0.1.101:80

iptables -t nat -A PREROUTING -p tcp --dport 80 \
    -m statistic --mode random --probability 0.5 \
    -j DNAT --to-destination 10.0.1.102:80

iptables -t nat -A PREROUTING -p tcp --dport 80 \
    -j DNAT --to-destination 10.0.1.103:80

nftables高级负载均衡

# 定义后端服务器集合
nft add set inet load_balance backend_ips { type ipv4_addr; flags constant; elements = { 10.0.1.101, 10.0.1.102, 10.0.1.103 } }

# 轮询模式分发流量
nft add rule nat prerouting tcp dport 80 \
    dnat to jhash ip saddr . tcp dport mod 3 map { \
        0 : 10.0.1.101, \
        1 : 10.0.1.102, \
        2 : 10.0.1.103 \
    }

3. 七层负载均衡(L7)集成

HAProxy透明代理配置

# /etc/haproxy/haproxy.cfg
frontend http-in
    bind 192.168.1.100:80 transparent
    mode http
    default_backend web_servers

backend web_servers
    balance leastconn
    server web1 10.0.1.101:80 check
    server web2 10.0.1.102:80 check

# 防火墙放行并标记流量
nft add rule inet filter forward tcp dport 80 meta mark set 1 accept
sysctl -w net.ipv4.ip_forward=1

Nginx流量管理

# 加权轮询配置
upstream backend {
    server 10.0.1.101 weight=3;
    server 10.0.1.102 weight=2;
    server 10.0.1.103 weight=1;
}

# 联动防火墙限制连接数
limit_conn_zone $binary_remote_addr zone=per_ip:10m;
server {
    location / {
        limit_conn per_ip 50;
        proxy_pass http://backend;
        }
    }

4. 性能调优与监控

连接跟踪优化

# 调整内核参数(/etc/sysctl.conf)
net.netfilter.nf_conntrack_max = 1000000
net.netfilter.nf_conntrack_tcp_timeout_established = 3600

# 监控工具
conntrack -L -o extended | grep ESTABLISHED | wc -l
nft monitor | grep "new flow"

规则集性能评估

# 测试规则匹配速度(nftables)
nft --debug=netlink add rule inet filter input tcp dport 80 counter
# 输出示例:...[ evaluate ] tcp dport 80 => 80 ...

# iptables规则排序优化
iptables -L -n --line-numbers | grep ACCEPT | sort -k 4

5. 实战任务

任务1:构建双机热备集群

  • 在两台节点部署Keepalived和nftables
  • 配置虚拟IP 192.168.1.100,实现主备切换
  • 模拟主节点故障(systemctl stop nftables),验证IP漂移

任务2:配置七层负载均衡

  • 使用Nginx实现基于URI的流量分发:
location /api {
    proxy_pass http://api_servers;
}
location /static {
    proxy_pass http://static_servers;
}
  • 联动防火墙限制每个客户端IP每秒最多10个请求:
nft add rule inet filter input tcp dport 80 \
    meter http_ratelimit { ip saddr limit rate 10/second } \
    counter accept

6. 注意事项

  • 脑裂(Split-Brain)风险:使用多播检测或第三方仲裁服务配置冗余心跳线(eth1专用于VRRP通信)
  • 会话保持(Session Persistence):四层使用hashlimit模块源IP哈希七层通过Cookie或JWT实现粘性会话
  • 监控告警
# 统计被拒绝的负载均衡请求
nft list counters | grep "counter packets"
# 监控Keepalived状态
journalctl -u keepalived -f

相关推荐

进程管理器快捷键(进程管理器快捷键是什么)

结束任务管理器快捷键就是AIT+F4等于的关闭任务管理器那小窗口!AIT+E是结束某个进程~CTRL+AIT+DEL或者DELETE是打开任务管理器`应该没错了吧`去试下...

win7硬件加速怎么关闭(win7取消硬件加速)

要关闭Win7的音频硬件加速,首先右击桌面上的“计算机”,选择“属性”,点击左侧的“高级系统设置”,然后打开“设备管理器”。在设备管理器中,展开“声音、视频和游戏控制器”选项,找到你的音频设备,右击选...

三星手机官网首页(三星手机官网首页怎么设置)

三星大陆官方网站网址为:http://www.samsung.com.cn温馨提示。若需要购买三星手机,建议到正规的手机专卖店购买,例如:三星指定的专卖店、三星商城,大型购物商城等进行购买。如果需要...

免费下载成品ppt的网站(免费下载成品ppt的网站有哪些)

发不了链接自己百度儿讯网每日更新上千个资料。资料包含小学到高中所有科目的课件、试卷、教案等。如果找不到你想要的资料还可以在服务中心发布需求,网站将通过其它渠道帮助你寻找建议下载一个101教育PPT软...

win7如何彻底关闭135端口(windows关闭135,139端口)
  • win7如何彻底关闭135端口(windows关闭135,139端口)
  • win7如何彻底关闭135端口(windows关闭135,139端口)
  • win7如何彻底关闭135端口(windows关闭135,139端口)
  • win7如何彻底关闭135端口(windows关闭135,139端口)
路由器管家下载官网(路由管家app下载)

亲,您想管理路由器,可以使用电脑管家“路由器管家”功能哦~电脑管家下载地址:guanjia.qq.com使用路由器管家可以帮助您管理和优化家庭或办公室网络,以下是一些基本的使用方法:1. 下...

联想笔记本电脑原装系统下载

关于这个问题,要下载联想电脑系统,您可以按照以下步骤进行操作:1.在联想官方网站上找到支持和驱动页面。您可以在浏览器中搜索"联想官方网站"来找到该网站。2.在支持和驱动页面中,选择...

u盘杀毒后文件不见了(u盘杀完毒,文件还存在,但是看不到了)

U盘杀毒后文件不见了解决方法如下1、将U盘插入电脑,打开已经安装好EasyRecovery数据恢复软件,进入第一个操作界面,我们可以看到软件界面上有多种恢复模式,这里我们选择“存储设备”,点击右下角的...

一招解决u盘写保护(如何解决u盘写保护)

解决方案一:1.查看U盘上是否有写保护开关,打开开关(通常写保护开关在U盘的侧面是一个滑块)。2.尝试重新插入U盘读取数据。解决方案二:运行磁盘检测修复命令1.使用组合键“Win+R”,唤出运行页...

电脑必下的几个软件(电脑必安装的软件)
  • 电脑必下的几个软件(电脑必安装的软件)
  • 电脑必下的几个软件(电脑必安装的软件)
  • 电脑必下的几个软件(电脑必安装的软件)
  • 电脑必下的几个软件(电脑必安装的软件)
我的电脑怎么显示在桌面上(我的电脑怎么在桌面显示出来)

1.首先我们打开电脑,然后在电脑桌面中右键,在弹出的窗口中右键,在弹出的窗口中点击个性化选项。2.进入个性化界面之后我们点击左侧一栏中的主题。3.然后在对应的右侧一栏中找到并点击桌面图标设置。4....

windows11来了(win11要来了)

  找不到Win11运行在哪解决方法  方法一:  1、和win7、win10等系统一样,按下键盘上的“win+R”就可以快速打开运行了。  方法二:  1、右键点击界面左下角的开始菜单。(也可能在任...

启动命令提示符(如何命令提示符下启动修复)

  设置开机启动项的方法主要有两个,其中一个就是使用开机命令来进行设置,操作步骤是进入计算机的桌面,点击计算机的开始菜单栏,在开始菜单栏中选择“运行”按钮,运行窗口弹出之后,在窗口中输入“msconf...

office2016官网下载地址(office2020官网下载)

破解版就可以了。Office2016可支持32位和64位的Windows10、Windows8.1和Windows7操作系统,甚至是在Mac操作系统中也有2016版Office的可以使用,但是无法支持...

深度系统下载软件(深度系统可以安装exe软件吗)

深度Linux系统自带软件中心,通过深度Linux软件中心可以像在Windows系统中一样,简单安装软件,具体如下:1、打开深度Linux软件中心,可以看到软件左侧对软件类型进行了详细的分类,根据需求...

取消回复欢迎 发表评论: