Linux 网络协议栈数据流跟踪-静态路由demo

内容

实现一个demo,来学习静态路由规则,使用静态路由,来使得通过WAN口互联的两个路由器,他们lan侧分别下挂两个路由器的pc1和pc2,能够互ping通

为什么这么做?

  • 这是一个非常经典且实用的网络实验,可以用来深理解路由的原理

实践设备需求:

  • 两台基于linux 路由器
  • 两台windows PC

框架拓扑图

配置如上图

流程分析

当PC1 (192.168.10.2) 想要Ping PC2 (192.168.20.2) 时,会发生什么?
  1. PC1检查目标IP 192.168.20.2,发现不在自己的 192.168.10.0/24 网段,于是将数据包发给自己的网关192.168.10.1
  2. AR1 收到数据包,查看自己的路由表,只知道:
    直连网络 192.168.10.0/24 (LAN口)
    直连网络 192.168.100.0/30 (WAN口)
    却不知道 192.168.20.0/24 在哪里。
  3. 这里数据包传输就会出现两种选择:
    1)传给默认网关
    2)传给静态路由

如果都没有,AR1会直接将数据包丢弃,并回复一个Unreachable的ICMP错误

数据包流向分析

  1. 当PC1 Ping PC2时,数据包的流程:
    PC1 -> AR1:
    源IP: 192.168.10.2
    目标IP: 192.168.20.2
    PC1发现目标不在本地网络,将包发给网关 192.168.10.1
  2. AR1 处理:
    AR1收到包,查看目标IP 192.168.20.2
    查询路由表匹配 到我们添加的静态路由 192.168.20.0/24 via 192.168.100.2
    它将数据包从WAN口 (192.168.100.1) 转发 出去,目标是下一跳 192.168.100.2 (AR2)
  3. AR2 处理:
    AR2从WAN口收到这个包,查看目标IP 192.168.20.2
    它发现这个IP在自己的直连网络 192.168.20.0/24 (LAN口) 上
    它将数据包从LAN口转发给PC2 192.168.20.2
  4. PC2 回复 PC1:
    PC2收到Ping请求,准备回复。回复包的源IP是 192.168.20.2,目标IP是 192.168.10.2
    PC2发现目标不在本地网络,将回复 包发给自己的网关 192.168.20.1 (AR2)
    AR2查询路由表,匹配静态路由 192.168.10.0/24 via 192.168.100.1
    它将回复包从WAN口转发 给 192.168.100.1 (AR1)
    AR1收到包,发现目标 192.168.10.100 在自己的直连网络,于是通过LAN口将包最终送达PC1
所以,我们在这做这个让静态路由的实践时,我们应该让默认网关不生效!

选择静态路由方案

添加静态路由规则:我们需要在双方的路由器上手动带领它们如何去往对方所在的局域网。

  1. 使得默认网关不生效:
    AR1配置成192.168.100.3这个无效网关

    AR2配置成192.168.100.4这个无效网关
  2. 连通性检测:

    不通,正常,因为没有正确的路径选择
  3. 在 AR1 上添加一条静态路由:
    目的网络: 192.168.20.0 (这是PC2所在的网段)
    子网掩码: 255.255.255.0
    下一跳地址: 192.168.100.2 (你要去192.168.20.0/24,请把数据包交给对面的AR2的WAN口)
    解释: 所有发往 192.168.20.0/24 的流量,请转发给 192.168.100.2。
  4. 在 AR2 上添加一条静态路由:
    目的网络: 192.168.10.0 (这是PC1所在的网段)
    子网掩码: 255.255.255.0
    下一跳地址: 192.168.100.1 (你要去192.168.10.0/24,请把数据包交给对面的Router A的WAN口)
    解释: 所有发往 192.168.10.0/24 的流量,请转发给 192.168.100.1。
  5. 规则命令查询
    AR1:

    AR2:
  6. 连通性检测:
    注意,因为是实体设备,WAN口是无法进行ping包进入的,所以我们需要清空一下防火墙:

    结果:

疑问?

  1. 默认网关可以解决80%的网络到达问题,为什么还要使用静态路由呢?
    我们的Demo正是为了理解这背后的原理,当您将来遇到那些复杂网络拓扑、多路径网络 等20%的特殊场景时,就知道如何应对了。
相关推荐
琥珀色糖9 小时前
Linux守护进程
linux·终端·守护进程·会话·进程组
开心大爆炸13 小时前
xrdp 连接 登录对话框输入密码后闪退
linux·运维·服务器
oushaojun213 小时前
大厂 C++ 面试:深度剖析 Linux Signal 信号机制(转)
linux
苏生Susheng14 小时前
【软件实施】Linux系统Shell脚本教程
linux·运维·服务器·chrome·spring boot·学习·实施
Ruiery14 小时前
Linux 6.6内核 IOMMU 深度解析(七):DMA API 与 IOMMU 集成 — 从 dma_map_single 到 iommu_map
linux·运维·服务器
分支预测失败15 小时前
RISC-V AIA 中断架构实战:从 PLIC 到 APLIC 与 IMSIC 的迁移
linux·后端
GeW15 小时前
RHCE学习拿证计划:锁定核心考点,实现备考效率最大化
linux
snow@li15 小时前
服务器运维:Alibaba Cloud Linux 4 LTS 64位 根目录全景深度解析文章
linux·运维·服务器
苏生Susheng15 小时前
【软件实施】Linux企业运维常用命令手册
java·linux·运维·服务器·springboot·springcloud·软件实施
额额额对了15 小时前
Linux 进程间通信(IPC)核心机制:消息队列、共享内存与信号量详解
linux·网络·网络协议