【记录】网络路由、转发与网卡隔离

基础拓扑

A:192.168.10.11

B(双网卡主机)  

eth1:192.168.10.13  

eth2:192.168.11.11

C:192.168.11.13

两大目标说明

  • 目标 1:开启跨网卡转发 → 让 C ↔ A 互通
  • 目标 2:网卡流量隔离 → 禁止两张网卡之间报文互通(关闭转发 + 防火墙兜底)

一、核心知识点回顾

1. 实现跨网段转发三大必要条件(同时满足)

  1. 主机 B 开启 IP 转发(ip_forward=1)
  2. C 配置静态路由:192.168.10.0/24 via 192.168.11.11
  3. A 配置回程路由:192.168.11.0/24 via 192.168.10.13

2. 主机防火墙三条流量链

  1. INPUT:目标 IP 为本机的数据包
  2. OUTPUT:本机软件主动向外发送的数据包
  3. FORWARD:跨网卡转发数据包(网卡 A 进、网卡 B 出)

重点:想要隔离两张网卡,核心管控 FORWARD 链

3. 关键区分

  • IP 转发开关:内核总闸;开关打开只是允许转发,防火墙依然可以拦截;
  • IP 转发关闭:内核直接丢弃跨网卡报文,防火墙 FORWARD 链不再生效;
  • 隔离方案标准组合:关闭 ip_forward + 防火墙禁止双向转发(双重保障)

二、Linux 完整命令(iproute2 + iptables)

环境:设备 B(双网卡 eth1、eth2)

操作 1:开启跨网卡转发(实现 C 访问 A)

复制代码
# 1. 开启内核转发(临时)
sysctl -w net.ipv4.ip_forward=1
# 永久开启:/etc/sysctl.conf 添加 net.ipv4.ip_forward=1
sysctl -p

# 2. 防火墙放行转发流量(允许eth2 ↔ eth1互相转发)
# 默认策略允许转发
iptables -P FORWARD ACCEPT
# 按需细化:允许eth2 <-> eth1转发
iptables -A FORWARD -i eth2 -o eth1 -j ACCEPT
iptables -A FORWARD -i eth1 -o eth2 -j ACCEPT

操作 2:网卡隔离(禁止两张网卡互相转发流量)

两种方案,推荐方案 2 双层防护

方案 2.1 最简方案:直接关闭内核转发

复制代码
sysctl -w net.ipv4.ip_forward=0
# 内核层面直接丢弃跨网卡报文,防火墙无需配置

方案 2.2 双层防护(推荐,即使误开 ip_forward 依然隔离)

复制代码
# 1. 优先关闭转发
sysctl -w net.ipv4.ip_forward=0

# 2. 防火墙阻断双向跨网卡转发
iptables -P FORWARD DROP
# 禁止 eth2 → eth1
iptables -A FORWARD -i eth2 -o eth1 -j DROP
# 禁止 eth1 → eth2
iptables -A FORWARD -i eth1 -o eth2 -j DROP

Linux 查看命令

复制代码
# 路由表
ip route
ip route get 192.168.10.11
# 转发状态
sysctl net.ipv4.ip_forward
# 查看iptables转发规则
iptables -L FORWARD -v

持久化说明

iptables 规则重启失效;生产环境使用 iptables-save /firewalld/nftables 持久配置。


三、Windows 完整操作(路由 + Windows 高级防火墙)

Windows IP 转发(IPEnableRouter)修改注册表后必须重启生效

操作 1:开启跨网卡转发

  1. 开启系统 IP 转发

    reg add HKLM\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters /v IPEnableRouter /t REG_DWORD /d 1 /f

重启电脑

  1. 防火墙放行转发流量 Windows 防火墙默认不会阻止转发流量; 如果开启高级筛选平台策略,需要手动允许 eth2 ↔ eth1 的转发报文。

操作 2:网卡流量隔离(双重防护)

2.1 关闭内核转发

复制代码
reg add HKLM\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters /v IPEnableRouter /t REG_DWORD /d 0 /f

重启电脑

2.2 防火墙兜底策略(防止人为误开启转发)

打开 Windows Defender 防火墙 → 高级设置 → 连接安全规则 / 筛选平台 使用【Windows 筛选平台】配置: 创建出站 / 入站转发过滤规则:

  • 禁止:接口 eth2 接收的数据包 转发至 eth1
  • 禁止:接口 eth1 接收的数据包 转发至 eth2

简易替代测试方案:使用 Wireshark 验证,不熟悉筛选平台可以优先依靠关闭 IP 转发实现隔离。

Windows 查看命令

复制代码
route print
tracert 192.168.10.11
reg query HKLM\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters /v IPEnableRouter

Windows 路由配置复用

复制代码
# 添加静态永久路由
route add 192.168.10.0 mask 255.255.255.0 192.168.11.11 -p
route delete 192.168.10.0

四、两种工作模式配置汇总表(设备 B)

模式 A:启用转发(C 可以访问 A)

  1. ip_forward = 1
  2. 路由配置完整(两端存在回程路由)
  3. 防火墙 FORWARD 链允许 eth1 ↔ eth2 流量

模式 B:网卡隔离(两张网段不能通过 B 互通)

  1. ip_forward = 0 (基础屏障)
  2. 防火墙 FORWARD 链双向阻断两张网卡转发流量(兜底防护)
  3. 不依靠路由表作为唯一隔离手段

五、重要补充知识点

  1. 防火墙 FORWARD 只管控跨网卡转发流量,无法管控本机程序主动访问 举例: 在主机 B 上直接 ping A,属于 OUTPUT 流量;即使阻断 FORWARD,依然可以通。 ⚠️ 隔离两张网络 ≠ 禁止本机访问两个网段。

  2. 测试验证手段

    • 转发是否生效:C ping A;tracert 查看路径经过 B
    • 隔离是否生效:C 无法 ping 通 A;但 B 本机可以同时 ping 通 A、C
  3. 常见误区

  • 只配置防火墙阻断转发,但是忘记关闭 ip_forward;存在配置失效风险;
  • 认为隔离网卡 = 主机不能同时访问两个网段;概念错误: 隔离 = 网段之间不能互相穿过主机转发,主机本身可以同时访问两边。

六、测试方案

  1. 开启转发模式:C ping A 通
  2. 切换隔离模式(关闭 ip_forward + 防火墙阻断转发):C ping A 不通;
  3. 在 B 本机分别 ping A、ping C,依然正常连通(用来区分【跨网卡转发】和【本机访问】)
相关推荐
嵌入式小能手5 分钟前
飞凌嵌入式ElfBoard-Shell脚本编写基础-传参-$0
linux
随风而飘18610 分钟前
Keithley美国吉时利 2016-P 6.5位音频分析数字多用表
网络·人工智能·功能测试
丰锋ff12 分钟前
初识Linux操作系统
linux·运维·服务器
聚铭网络22 分钟前
【一周安全资讯】《网络数据安全风险评估办法》正式实施;隐私加密通讯平台Threema遭DDoS攻击,服务大面积瘫痪
网络·安全·ddos
xiaoxiangsiyan31 分钟前
现代大型虚拟化智慧园区整体架构EVPN‑VXLAN落地全解
运维·网络·学习·架构
方芯半导体36 分钟前
EtherCAT 从站方案中 MAC、PHY 与 MII 的层级关系与实现解析
网络·人工智能·单片机·macos·ethercat
嵌入式小能手42 分钟前
飞凌嵌入式ElfBoard-Shell脚本编写基础-特殊变量
linux·运维·服务器
SWAGGY..43 分钟前
【C++初阶】:(15)模板进阶--从非类型参数到模板特化与分离编译
java·服务器·前端
limingade44 分钟前
智能拨号器APP-外部WebSocket话单推送系统接口文档
网络·websocket·智能拨号器app·远程推送号码到手机拨打电话·手机app稳定长连接·手机拨打电话后推送话单和录音
呉師傅1 小时前
关于惠普LaserJet1018打印机在Windows11上打印颜色偏淡的问题解决方法
运维·服务器·windows·计算机外设·电脑