配置策略路由实战 附带基础网络知识

背景

作为一个软件开发人员,不可能做到只负责业务开发工作,一旦功能上线或者系统切换就会遇到非常多考验开发人员个人能力的场景,网络调整就是非常重要的一个方面,如果你在系统上线的过程中无法处理一些简单的网络问题或者听不懂网工在说什么,那么就会导致自己负责的工作很难推进,因此我个人觉得 应该去掌握一些基础的网络知识来帮助自己更好的应对除了开发工作外的一些其他工作内容。

目标

当客户定点 拥有一个相对复杂的网络环境 如何让私有化部署的服务器正确的访问你想要访问的网络。

基础知识

路由器(Router)

功能:

  • 连接不同的网络(如局域网和广域网),转发数据包到目的地。
  • 选择最佳路径来传输数据包。
  • 提供网络地址转换(NAT)功能,将内部网络地址转换为公共地址。
  • 可以提供防火墙和安全功能。

工作原理:

  1. 数据包转发: 路由器使用路由表决定数据包的最佳转发路径。路由表包含目的地址和下一跳的映射信息。
  2. 路径选择: 路由器通过各种路由协议(如RIP、OSPF、BGP)动态更新路由表,选择最佳路径。
  3. 网络地址转换(NAT): 路由器可以将内网地址转换为公网地址,从而使多个设备共享一个公网IP。
  4. 数据包处理: 路由器接收数据包,根据目标IP地址查找路由表,然后将数据包转发到下一跳的路由器或最终目标。

路由器工作在网络层  数据段包含着 目标ip地址 和 源ip 地址 同步路由表匹配下一跳的位置,它通常用来连接不同网络 可以比作内局域网 到 互联网 或者其他内网的出口。

交换机(Switch)

功能:

  • 连接同一网络中的设备(如计算机、打印机),使它们能够相互通信。
  • 根据MAC地址转发数据包,提高网络效率。

工作原理:

  1. 数据包转发: 交换机根据数据包中的MAC地址来决定如何转发数据。它维护一个MAC地址表(也称为转发表),记录每个MAC地址对应的端口。
  2. 学习: 当交换机收到一个数据包时,它会读取数据包的源MAC地址,并将其与接收到数据包的端口关联,更新MAC地址表。
  3. 广播和多播: 如果交换机不知道目标MAC地址,它会将数据包广播到所有端口,直到找到目标设备。对于多播流量,交换机会转发数据包到相关的多个端口。
  4. 帧过滤: 交换机只将数据包发送到目的设备所在的端口,而不是广播到所有端口,从而减少网络拥堵,提高效率。

工作在数据链路层,数据帧包含 目标mac地址和源mac地址 交换机会维护一个mac地址表,通过广播到所有端口来获取未知的mac地址并缓存起来,交换机会自动更新mac地址,由于它无法根据ip来进行转发 因此它使用在局域网内部的数据包转发

网络协议相关

IP 地址: 互联网协议地址(IP 地址)是分配给网络设备的唯一标识符,用于在网络中定位和识别设备。IPv4 地址是32位的,通常表示为四个由点分隔的十进制数(如192.168.1.1)。

子网掩码: 子网掩码用于确定IP地址的网络部分和主机部分。它通过将IP地址与子网掩码进行与运算,帮助路由器识别网络的范围和设备的具体位置(如255.255.255.0)(用来广播确定哪些ip是属于同一个网段的)。

网关: 网关是网络设备的接口,用于将数据从一个网络转发到另一个网络,通常是连接内部网络和外部网络的设备。它通常是一个路由器,用于处理不同网络之间的通信。

DNS 服务器: 域名系统(DNS)服务器将域名(如www.example.com)转换为IP地址(如192.0.2.1),使得用户可以通过易记的域名访问互联网资源,而不需要记住复杂的IP地址。

认识企业路由器

[无线企业路由器] 地址组的设置与管理 - TP-LINK商用网络

[无线企业路由器] 策略选路功能设置指导 - TP-LINK商用网络

[R系列企业VPN路由器] 策略路由(选路)功能设置指导 - TP-LINK商用网络

[TL-ER6520G V1] 某企业网络配置实例 - TP-LINK商用网络

实战

我们假设定点 需要同时连接  医保网 公卫网 互联网 以及卫健委网络

他们的网段都是不同的 分别连接到一个企业路由器的四个wan口

我们先进入路由器的管理页面

进入对象管理 地址管理 地址 创建地址段对象 上面定义了一个客户端的地址段 ,假设我们有一个公卫网ip 10.10.100.100 要访问  因此我们可以在创建一个地址对象 IP段为 10.10.100.2 - 10.10.100.253  起个名称 gw 

然后关联地址组 创建地址组对象  并关联地址对象 对这个地址组设置策略相当于这个地址段全部生效

组名称 自己起一个能代表的   地址名称是上面创建的地址独享也就是关联的地址段,这样设置完成之后 就可以直接个地址组设置策略路由。

策略路由 自上而下依次匹配 匹配到一个生效的策略后 下面的策略将不会在生效。

首先先匹配源地址 这里可以写任意组 或者 你自己定义的表示本地连接路由器设备的地址组,这里可能会匹配到多个 然后 因为任意组 每个都会匹配 但是 你的目的地址是不同的 上面创建了公卫地址 在给公卫地址创建一个组 这里的目的地址就可以设置为公卫组。

这样当你在ip为 192.168.20.2-192.168.20.253的地址上 去访问10.10.100.100就会匹配到这个策略上去,然后呢 生效接口 就是请求的出口。

上面举的例子是 四个wan口 假设 wan4 被分配的地址是 公卫这个网段的 那么我们就设置生效接口为wan4口  流量就会被路由器转发到wan4口 出去了 这就是一个简单策略路由设置过程。

概念解释

1. 静态路由(Static Routing)

定义

静态路由是手动配置的路由规则,网络管理员手动输入路由条目来指定数据包的转发路径。每个路由条目都明确指定了目的地和下一跳路由器(或网关)。

特点
  • 固定性:路由规则是固定的,除非管理员手动更改,路由不会自动调整。
  • 简单性:配置简单,适用于网络拓扑较小或变化不频繁的环境。
  • 管理:适合在网络规模较小或流量模式稳定的情况下使用。需要手动添加和更新路由信息。
  • 不支持基于流量的决策:静态路由无法根据流量的不同特征(如源 IP、目的 IP、端口等)做出动态的路由决策。
使用场景
  • 网络拓扑简单,网络变化不频繁。
  • 小型或家庭网络。
  • 对于特定目的地或网络路径有固定需求的环境。

2. 策略路由(Policy-Based Routing, PBR)

定义

策略路由是一种基于流量的决策机制,通过设置策略来决定数据包的转发路径。路由决策不仅依赖于目的地 IP 地址,还可以基于源 IP 地址、流量类型、协议类型、端口号等多个因素。

特点
  • 灵活性:可以根据流量特征(如源 IP、目的 IP、应用协议等)配置复杂的路由规则。
  • 动态性:支持动态路由决策,可以根据实时流量和网络条件做出调整。
  • 复杂性:配置较为复杂,需要精确设置策略规则,适用于大规模和动态变化的网络环境。
  • 负载均衡:可以实现流量负载均衡,将流量根据策略分配到多个路径上,提高带宽利用率和网络冗余性。
使用场景
  • 网络拓扑复杂,流量模式多样化。
  • 需要根据应用、用户、服务质量等因素灵活配置路由。
  • 需要负载均衡或优化网络流量的环境。
  • 例如,业务流量需要通过不同的 ISP 提供商以实现负载均衡或冗余备份。

总结

  • 静态路由:简单、固定,适合网络拓扑简单且变化不大的场景,配置和维护较为简单。
  • 策略路由:灵活、动态,适合网络环境复杂、多变的场景,支持基于流量特征的路由决策和负载均衡。

测试 命令

tracert -d 命令的结果有助于网络诊断和故障排除,具体用途包括:

  1. 确定网络路径:显示数据包从你的计算机到达目标主机所经过的每一个中转节点(路由器)的 IP 地址。这有助于了解数据包在网络中的流动路径。

  2. 诊断网络延迟:每个中转节点的响应时间会被显示出来,帮助你识别在网络路径中是否存在延迟或瓶颈。这样可以确定延迟是出现在你的本地网络、ISP 还是远程服务器之间。

  3. 定位网络问题:如果你遇到连接问题,tracert -d 可以帮助你确定是否在网络路径中的某个节点上发生了故障或延迟。例如,如果某个中转节点的响应时间异常高或没有响应,这可能是网络问题的来源。

  4. 优化网络配置:网络管理员可以使用 tracert -d 来检查数据流的路径,帮助优化网络配置或解决配置问题。

Tracing route to www.example.com [93.184.216.34]
over a maximum of 30 hops:1     1 ms     1 ms     1 ms  192.168.1.12    10 ms    10 ms    10 ms  203.0.113.13    20 ms    20 ms    20 ms  203.0.113.104    30 ms    30 ms    30 ms  93.184.216.34Trace complete.

可以用上面的命令 来追踪每一跳的详细信息。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/409272.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

文件包含漏洞(1)

目录 PHP伪协议 php://input Example 1&#xff1a; 造成任意代码执行 Example 2&#xff1a; 文件内容绕过 php://filer zip:// PHP伪协议 php://input Example 1&#xff1a; 造成任意代码执行 搭建环境 <meta charset"utf8"> <?php error_repo…

Modern C++——不准确“类型声明”引发的非必要性能损耗

大纲 案例代码地址 C是一种强类型语言。我们在编码时就需要明确指出每个变量的类型&#xff0c;进而让编译器可以正确的编译。看似C编译器比其他弱类型语言的编译器要死板&#xff0c;实则它也做了很多“隐藏”的操作。它会在尝试针对一些非预期类型进行相应转换&#xff0c;以…

QT Quick QML 网络助手——TCP客户端

GitHub 源码: QmlLearningPro &#xff0c;选择子工程 Nettools.pro QML 其它文章请点击这里: QT QUICK QML 学习笔记 ● 运行效果&#xff1a; 左侧为常用的网络调试工具&#xff0c;右侧为本项目 UI 效果&#xff0c;前端使用 QML &#xff0c;后端使用C &#xff…

【文档智能 RAG】浅看开源的同质化的文档解析框架-Docling

前言 RAG的兴起&#xff0c;越来越多的人开始关注文档结构化解析的效果&#xff0c;这个赛道变得非常的同质化。 关于文档智能解析过程中的每个技术环节的技术点&#xff0c;前期文章详细介绍了很多内容&#xff1a; 下面我们简单的看看Docling这个PDF文档解析框架里面都有什…

GPIO(通用输入/输出)、中断(hal库)

目录 GPIO&#xff08;通用输入/输出)&#xff08;hal库&#xff09; GPIO工作模式 推挽输出&#xff08;Push-Pull Output&#xff09; 开漏输出&#xff08;Open-Drain Output&#xff09; 复用推挽输出&#xff08;Alternate Function Push-Pull Output&#xff09; 复…

在Ubuntu 22.04测试ebpf-go入门例子

文章目录 1、eBPF-Go依赖1.1 Ubuntu安装ssh server1.2 安装go1.3 安装llvm和clang1.4 安装libbpf和Linux kernel headers 2 编写eBPF C程序3 使用bpf2go编译eBPF C程序4 编写Go程序5 编译运行Go应用程序 eBPF-Go是一个使用eBPF的Go库。它不依赖于C、libbpf或除标准库之外的任何…

Windows单机安装配置mongodb+hadoop+spark+pyspark用于大数据分析

目录 版本选择安装配置Java环境配置Hadoop配置Spark配置 安装pyspark使用Jupyter Notebook进行Spark MongoDB测试参考 版本选择 根据Spark Connector&#xff1a;org.mongodb.spark:mongo-spark-connector_2.13:10.3.0 的前提要求 这里选择使用最新的MongoDB 7.0.12社区版 ht…

基于R语言进行AMMI分析3

参考资料&#xff1a;https://cran.r-project.org/web/packages/agricolae/agricolae.pdf 1、plot()函数 本次介绍的是Agricolae包中的plot.AMMI()函数。此函数可以绘制AMMI双标图&#xff0c;也可以绘制三标图&#xff08;三个坐标轴&#xff0c;IPCA1&#xff0c;IPCA2&…

TiggerRamDisk绕过激活界面,支持最新iOS17.4.1绕过

&#x1f427;技术交流&#xff1a;582022476 ——————— iOS15等待越狱的日子实在太久了&#xff01;checkra1n越狱目前还未发布iOS15系统越狱。 可很多朋友不小心或者大意已经升级到了最新iOS15系统。一般来说这并没有什么大碍&#xff0c;但如果是绕过激活的设备&#…

Cesium 展示——绘制水面动态升高

文章目录 需求分析需求 如图,绘制水面动态升高,作为洪水淹没的效果 分析 我们首先需要绘制一个面然后给这个面一个高度,在回调函数中进行动态设置值【这里有两种,一种是到达水面一定高度停止升高,一种是水面重新升高】/*** @description :洪水淹没* @author : Hukang*…

一起学Java(3)-Java项目构建工具Gradle和Maven场景定位和优缺点对比

在第一步创建的项目&#xff08;java-all-in-one&#xff09;项目里&#xff0c;我们提到了使用Gradle作为项目构建工具。看到这里&#xff0c;不知道你是否有疑惑&#xff0c;什么是项目构建工具。Java项目常用构建工具有哪些&#xff1f;都有什么特点&#xff1f; 带着疑惑&…

工厂现场多功能帮手,三防平板改善管理体验

随着制造业的智能化变革&#xff0c;信息化、自动化和智能化逐渐成为工厂管理的新常态。在这一波技术浪潮中&#xff0c;三防平板作为一种多功能的工作工具&#xff0c;正在逐步改善工厂现场的管理体验。 一、三防平板的定义与特点 三防平板&#xff0c;顾名思义&#xff0c;是…

Python测试框架之—— pytest介绍与示例

Pytest是一个功能强大且易于使用的Python测试框架&#xff0c;它提供了丰富的功能和灵活的用法&#xff0c;使得编写和运行测试变得简单而高效。 一、Pytest的特点 简单灵活&#xff1a;Pytest的语法简洁清晰&#xff0c;容易上手&#xff0c;并且支持复杂的测试场景。自动发…

python库(21):

1 TextBlob简介 TextBlob 是一个基于 Python 的文本处理库&#xff0c;能够让基础的自然语言处理任务变得异常简单。 它提供了一个简单直观的 API&#xff0c;让你能够轻松执行词性标注、名词短语提取、情感分析、文本分类和关键词提取等功能。 值得一提的是&#xff0c;Tex…

Qt+FFmpeg开发视频播放器笔记(二):界面UI搭建

效果图 主要使用无边框窗体搭建,实现窗体的拖动和缩放&#xff0c;播放列表、文件打开等。 主要代码 manwindow设计类 #ifndef MAINWINDOW_H #define MAINWINDOW_H#include <QMainWindow> #include <QMutex> #include "framelesshelper.h"QT_BEGIN_NA…

【网络】传输层协议——TCP协议(进阶)

目录 1.TCP连接的11种状态 2.再次理解三次挥手 2.1.再次理解三次握手 2.2.Socket编程和三次握手的关系 2.2.1.listen的参数 2.2.2.accept函数 2.3.TCP三次握手的优点 2.3.1.阻止重复历史连接的初始化 2.3.2.为什么两次握手不能防止旧的重复连接初始化造成混乱呢&am…

【附源码】Python :PYQT界面点击按钮随机变色

系列文章目录 Python 界面学习&#xff1a;PYQT界面点击按钮随机变色 文章目录 系列文章目录一、项目需求二、源代码三、代码分析3.1 导入模块&#xff1a;3.2 定义App类&#xff1a;3.3 构造函数&#xff1a;3.4 初始化用户界面&#xff1a;3.5 设置窗口属性&#xff1a;3.6 …

基于YOLOv7算法的高精度实时课堂场景下人脸检测系统

项目目标 开发一套基于YOLOv7的高精度实时人脸检测系统&#xff0c;适用于课堂场景。实现对图片、视频、文件夹内的图像及摄像头流的实时人脸检测。提供直观的图形界面&#xff0c;方便用户操作。支持模型权重的灵活选择与加载&#xff0c;以及后处理参数的调整。 主要功能 模…

基础算法--递推算法[信奥一本通]

本节所讲题源自【信奥一本通】C版&#xff1a;基础算法-第三章-递推算法 相信大家应该都接触过数列的概念。哎哟&#xff0c;一直在跟数组打交道&#xff0c;说数列感觉好陌生&#xff0c;哈哈。数列中的迭代法大家都还记得吗&#xff1a;通过反复应用特定规则&#xff0c;推导…

海思SD3403/SS928V100开发(16)Tsensor驱动开发

1. 前言 由于需要检测SD3403芯片内部实时温度,需要开发Tsensor传感器驱动和应用 查看手册发现SD3403内部有三个Tsensor传感器 可以参考之前我写的35系列平台Tsensor驱动开发记录 海思35系列平台Tsensor驱动开发(1)驱动编写_t sensor-CSDN博客 海思35系列平台Tsensor驱动…