摘要: 船舶网络故障与违规互访易导致业务中断。本文记录了基于 Linux 构建标准工业级 海事网关 多链路调度与安全隔离的实操复盘。
导语: 在主导一个远洋船队的网络重构项目时,我们面临一个典型的技术与风控双重挑战:业务方要求在航次中,保障关键报关与导航数据的高可用,避免因断网导致的压船等待;同时,依据最新的船舶网络安全框架(如 IACS UR E26 精神),必须将不可控的船员生活网络与船舶的航行办公网严格隔离,防止因单点感染导致的系统级瘫痪与合规审查受阻。如果仅仅使用商业级路由器,无法实现平滑的链路状态监控,更无法构建内核级状态机隔离。为了用技术手段化解这些潜在的"停航隐患",我们直接在一台高集成度的标准工业级 海事网关 上,深入 Linux 系统编写了基于 mwan3 的多链路调度脚本,并利用 nftables 构建了稳固的隔离链路。今天把核心代码做个实战复盘。
基于 Mwan3 的高可用多链路故障转移

要避免因单一卫星信号丢失导致的业务停摆,必须在边缘侧配置策略路由与高频探活。我们在网关内部署了针对多 WAN 环境优化的 mwan3 服务,实现链路的毫秒级无感切换。
Bas
#!/bin/sh
# /etc/config/mwan3 核心调度配置片段
config interface 'primary_sat'
list track_ip '8.8.8.8'
list track_ip '1.1.1.1'
option reliability '1'
option count '1'
option timeout '2'
option interval '5'
option down '3'
option up '3'
config interface 'backup_sat'
list track_ip '8.8.8.8'
# 备用卫星探活间隔拉长,节省昂贵的探测流量
option interval '10'
config member 'primary_member'
option interface 'primary_sat'
option metric '1' # 高优先级
option weight '10'
config member 'backup_member'
option interface 'backup_sat'
option metric '2' # 备用优先级
config policy 'wan_failover'
list use_member 'primary_member'
list use_member 'backup_member'
config rule 'default_rule'
option dest_ip '0.0.0.0/0'
option use_policy 'wan_failover'
利用 Nftables 建立底层隔离防线
在链路高可用保障后,底层网络协议栈必须承担起防越权访问的责任,这是应对合规审查的技术底座。我们利用 Linux 配合 nftables 拉起隔离网,有效阻断非信任生活子网(192.168.20.0/24)对船舶办公内网(192.168.10.0/24)的扫描嗅探。
Bash
# Nftables 阻断防御与区域隔离策略
nft flush ruleset
nft add table inet ship_defense
# 定义转发链,默认拒绝所有跨网段转发连接
nft add chain inet ship_defense forward_chain { type filter hook forward priority 0 \; policy drop \; }
# 状态机:拦截生活网段向核心办公网的探测,直接丢弃并记录安全审计日志
nft add rule inet ship_defense forward_chain ip saddr 192.168.20.0/24 ip daddr 192.168.10.0/24 log prefix "[ALERT-CREW-SCAN] " counter drop
# 允许办公网主动访问外网,及合法连接的响应包返回
nft add rule inet ship_defense forward_chain ct state established,related accept
nft add rule inet ship_defense forward_chain ip saddr 192.168.10.0/24 oifname "eth0" accept
# 允许生活网在限速策略下主动访问公网
nft add rule inet ship_defense forward_chain ip saddr 192.168.20.0/24 oifname "eth0" accept
通过这套底层脚本组合拳,网关不仅实现了关键业务数据的高可用出海,更构建了能够应对安全审计的稳健网络接管机制。

【常见问题解答 (FAQ):】
问题1、为何在边缘侧使用 mwan3 而不是 OSPF 动态路由协议?
答:在精简的边缘网关 Linux 系统中,对于非对等的链路(如高通量卫星与 L 波段备用卫星),mwan3 基于 iptables 的 MARK 机制提供了良好的开发效率和精准的源/目的 IP 分流控制,相比动态路由协议在弱网环境下收敛更快。
问题2、这套隔离策略如何应对港口国的现场网络安全审计?
答:配置了 log prefix 的 nftables 规则会将拦截事件写入内核日志(dmesg/syslog)。配合网关自带的日志外发模块,可形成直观的安全审计报表,向审查员证明船舶已采取有效的边界隔离手段。
问题3、如何系统性地学习这套底层隔离与多链路调度设计?
答:建议深入研究 Linux Kernel Netfilter 架构与 Policy Routing 机制。同行可以在相关技术开源社区搜索查阅大型船舶合规组网部署脚本,进行参考研究。
总结:在复杂的商船网络改造中,熟练掌握底层链路调度逻辑与网络隔离防逃逸机制,配置合适的高性能标准网关策略,是用技术手段降低运营隐患、化解停航风险的核心能力。