Centos7静态路由和动态路由

news2024/12/30 3:59:36

路由,即路由选择(Routing),是指在计算机网络中选择数据传输路径的过程。路由器(Router)是执行路由选择功能的网络设备。路由的主要目的是在复杂的网络结构中,选择最佳路径将数据包从源节点传递到目标节点。

路由的类型

  1. 静态路由(Static Routing)

    • 由网络管理员手动配置。
    • 路由信息是固定的,不会自动更新。
    • 优点:简单、开销小。
    • 缺点:不适用于大型或动态变化的网络。
  2. 动态路由(Dynamic Routing)

    • 使用路由协议自动学习和更新路由信息。
    • 路由器之间互相交换路由信息,自动选择最佳路径。
    • 优点:适应网络变化,适合大规模网络。
    • 缺点:开销较大,需要更多的计算资源。

比较

特点静态路由动态路由
配置手动配置自动更新
适应性固定,不适应变化动态调整,适应变化
维护工作量较高,需人工维护较低,自动维护
复杂性低,简单明了高,需要配置和管理协议
资源消耗低,节省资源高,消耗计算和带宽资源

常见的动态路由协议

  1. RIP(Routing Information Protocol)

    • 使用距离向量算法。
    • 适用于小型网络。
    • 路由更新周期为30秒,最多跳数为15。
  2. OSPF(Open Shortest Path First)

    • 使用链路状态算法。
    • 适用于大型网络。
    • 路由更新是基于网络变化进行的。
  3. BGP(Border Gateway Protocol)

    • 主要用于互联网中的自治系统之间的路由选择。
    • 使用路径向量算法。
    • 适用于跨域路由。

路由表

路由器通过路由表来决定数据包的转发路径。路由表包含以下信息:

  • 目标网络地址
  • 子网掩码
  • 下一跳(Next Hop)地址
  • 接口(Interface)

路由选择的基本步骤

  1. 路径发现

    • 路由器通过路由协议或者静态配置获得可达网络的路径信息。
  2. 路径选择

    • 根据路由表选择最佳路径。
  3. 路径维护

    • 动态路由协议会定期更新路由表,确保路由信息的准确性。

路由协议的分类

  1. 内部网关协议(IGP, Interior Gateway Protocol)

    • 用于同一自治系统(AS)内。
    • 常见协议有RIP、OSPF、EIGRP(Enhanced Interior Gateway Routing Protocol)。
  2. 外部网关协议(EGP, Exterior Gateway Protocol)

    • 用于不同自治系统之间。
    • 主要协议是BGP。

路由器在转发数据时,确实需要先在路由表中查找相应的路由,主要有三种途径:

  1. 直连路由:当路由器的一个接口配置了IP地址,并且此接口处于激活状态时,路由器会自动将此接口直连的网络添加到路由表中,这种路由被称为直连路由。直连路由无需手动配置,也无需管理员干预,只要接口配置了IP地址并且激活,路由器就会自动生成直连路由。
  2. 静态路由:静态路由是由管理员手动添加的路由。管理员通过命令或配置界面,指定目标网络、子网掩码、下一跳地址或出接口等信息,将静态路由添加到路由表中。静态路由不会自动更新,需要管理员根据网络变化手动修改或删除。静态路由的优点是不会占用路由器太多的CPU和RAM资源,也不会占用太多带宽,但需要管理员对网络拓扑有深入的了解。
  3. 动态路由:动态路由是由路由协议动态建立的路由。路由器通过运行路由协议(如RIP、OSPF、BGP等),与相邻路由器交换链路状态和路由信息,根据这些信息计算出最佳路径,并自动更新路由表。动态路由能够自动适应网络变化,无需管理员手动干预,但会占用一定的CPU和RAM资源,并可能产生额外的网络流量。

在路由查找过程中,路由器会根据数据包的目的IP地址和路由表中的路由条目进行匹配,选择最佳的路径进行转发。如果路由表中没有匹配的路由条目,路由器可能会选择默认路由或进行其他处理。

查看路由表:
[root@localhost ~]# ip r     #或使用命令 ip route 查看路由和网关
default via 192.168.2.1 dev ens33 proto dhcp metric 100 
192.168.2.0/24 dev ens33 proto kernel scope link src 192.168.2.10 metric 100



#via:通过的意思,相当于下一跳

案例需求:在虚拟机B(桥接)上ping虚拟机A(net网络)的ens33网卡IP。

虚拟机A :net模式 192.168.226.100

虚拟机B:桥接模式 192.168.2.10

解决思路:
    1、在主机B上添加默认路由,使其能找到主机A的ens36网卡
    2、在主机A上添加一块桥接的网卡

解决步骤:

在主机A,192.168.226.100操作

查看192.168.226.100的IP如下

接下来对192.168.2.10操作

[root@localhost ~]# ip route add default via 192.168.2.11
[root@localhost ~]# ip r show                                 #查看 IP 路由表
default via 192.168.2.11 dev ens33 
default via 192.168.2.1 dev ens33 proto dhcp metric 100 
192.168.2.0/24 dev ens33 proto kernel scope link src 192.168.2.10 metric 100 



命令解读:
ip route add default via 192.168.2.11 用于配置网络路由表。下面是这个命令的详细解释:

ip route:
这是 ip 命令的 route 子命令,用于查看或修改 IP 路由表。
add:
这是一个操作,表示要添加一个新的路由到路由表中。
default:
这指定了要添加的路由的目的地。default 是一个特殊的路由,表示没有明确匹配的其他路由的所有流量都将使用这个路由。换句话说,它是所有“其他”流量的默认出口。
via 192.168.2.11:
这指定了下一跳(或网关)的地址。当数据包要发送到 default(即所有没有明确路由的数据包)时,它们将首先被发送到 192.168.2.11 这个地址。这通常是一个路由器或网关的地址,负责将数据包转发到其最终目的地。
#启用 IP 转发功能
[root@localhost ~]# echo 1 > /proc/sys/net/ipv4/ip_forward

/proc/sys/net/ipv4/ip_forward: 这是一个虚拟文件系统(procfs)中的文件,用于控制内核参数。在这个特定的例子中,这个文件控制 IPv4 的 IP 转发功能。

  • 如果这个文件的值为 0,则 Linux 系统不会转发 IP 数据包(除了回环接口上的数据包)。
  • 如果这个文件的值为 1,则 Linux 系统将转发来自一个网络接口的数据包到另一个网络接口,如果路由表中有相应的条目。

现在就实现连通啦 。

添加静态路由

有两种主要的方式来添加静态路由:

  1. 使用 route 命令:

    route add -net 目标网络地址 netmask 子网掩码 gw 下一跳地址

    例如,要将数据包发送到目标网络 192.168.1.0/24,网关为 192.168.0.1,可以使用以下命令:

    
    route add -net 192.168.1.0 netmask 255.255.255.0 gw 192.168.0.1

  2. 使用 ip route 命令:

    ip route add 目的网络/子网掩码 via 网关

    同样,以 192.168.1.0/24 和网关 192.168.0.1 为例:

    ip route add 192.168.1.0/24 via 192.168.0.1

删除静态路由

同样地,也有两种主要的方式来删除静态路由:

  1. 使用 route 命令:

    route del -net 目标网络 netmask 子网掩码 gw 网关地址

    以删除目标网络为 192.168.1.0/24 的静态路由为例:

    route del -net 192.168.1.0 netmask 255.255.255.0 gw 192.168.0.1

  2. 使用 ip route 命令:

    ip route del 目标网络/子网掩码 via 下一跳地址

    同样以 192.168.1.0/24 和下一跳地址为 192.168.0.1 为例:

    ip route del 192.168.1.0/24 via 192.168.0.1

 开启路由转发

临时设置
[root@localhost ~]# echo 1 > /proc/sys/net/ipv4/ip_forward 
#默认是零,没有开路由。1表示开启




永久设置 
[root@localhost ~]# vim  /etc/sysctl.conf  #添加如下内容

net.ipv4.ip_forward = 1

[root@localhost ~]# sysctl  -p             #立即生效

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

等保三级 腾讯云控制台检查项设置

1、地址限制 2、角色里加三权用户(查看日志权限) 3、登录失败处理和超时退出 4、密码复杂度和口令有效期 5、双因素验证 6、操作审计

Vue3实战笔记(43)—Vue3组合式API下封装可复用ECharts图表组件

文章目录 前言一、封装echart图标钩子二、使用步骤总结 前言 接上文,已经安装好了ECharts,开始封装组件方便使用。 一、封装echart图标钩子 首先应用我们之前学习的钩子方式,在hooks目录下创建一个名为 useECharts.js 的文件,用…

边框渐变样式

实现样式: 对应代码: div {min-height: 40vh;border: 10px solid transparent;background-image: linear-gradient(#222, #222), var(--gradient);background-origin: border-box;background-clip: padding-box, border-box;border-radius: 10px;positi…

【深度学习】yolov8 seg实例分割训练,交通灯

文章目录 一、类别定义二、标注后再清洗数据三、训练yolov8 seg四、部署五、代码资料 一、类别定义 类别0: 类别1: 类别2: 类别3: 类别4: 类别5: 类别6: 类别7: 二、标注后再清洗…

kubernetes之prometheus kube-controller-manager。 scheduler报错问题

项目场景: prometheus scheduler及kube-controller-manager监控报错 问题描述 kubeadm搭建完kube-prometheus 会有这个报错 原因分析: rootmaster2:~# kubectl describe servicemonitor -n kube-system kube-controller-manager通过以上图片我们发现 k…

数据结构_链式二叉树(Chained binary tree)基础

✨✨所属专栏:数据结构✨✨ ✨✨作者主页:嶔某✨✨ 二叉树的遍历 前序、中序以及后序遍历 学习二叉树结构,最简单的方式就是遍历。所谓二叉树遍历(Traversal)是按照某种特定的规则,依次对二叉树中的结点进行相应的操作&#xff…

自己手写一个栈【C风格】

#include <iostream> //栈 #define MAX_SIZE 20 #define OK 1 #define ERROR 0 #define TRUE 1 #define FALSE 0typedef int Status;//状态类型 typedef int ElemType;//元素类型typedef struct SqStack {ElemType data[MAX_SIZE];int top; };//初始化&#xff0c;方法1 …

安装 Ubuntu桌面版,详细步骤(附引导 U盘制作工具)

下载镜像 安装Ubuntu首先要下载镜像包&#xff0c;访问下面网址下载镜像包 https://releases.ubuntu.com/ 选择你要安装的Ubuntu版本 将 .iso 文件保存到所需位置&#xff0c;下面会使用此文件创建可引导 U盘。 制作 Ubuntu 引导 U 盘 首先要找到一个大于4G的U盘&#xff…

用Python Pygame做的一些好玩的小游戏

有些游戏的代码比较长就不公布了 1.简简单单 1.疯狂的鸡哥 你要准备的图片&#xff1a; 命名为&#xff1a;ji.png 代码&#xff1a; import pygame import random as r pygame.init() pygame.display.set_caption(aaa) pm pygame.display.set_mode((800,600))class Ls(py…

三前奏:获取/ 读取/ 评估数据【数据分析】

各位大佬好 &#xff0c;这里是阿川的博客 &#xff0c; 祝您变得更强 个人主页&#xff1a;在线OJ的阿川 大佬的支持和鼓励&#xff0c;将是我成长路上最大的动力 阿川水平有限&#xff0c;如有错误&#xff0c;欢迎大佬指正 前面的博客 数据分析—技术栈和开发环境搭建 …

Excel提取某一列的唯一值

点击【筛选】&#xff08;【高级筛选】&#xff09;&#xff0c;参数里&#xff1a; 列表区域&#xff1a;为需要选择唯一值的那一列复制到&#xff1a;生成唯一值的目标区域 据说新版本的excel有了unique()函数&#xff0c;可以很快捷的选择某一列的唯一值&#xff0c;但是博…

深度学习500问——Chapter09:图像分割(3)

文章目录 9.8 PSPNet 9.9 DeepLab系列 9.9.1 DeepLabv1 9.9.2 DeepLabv2 9.9.3 DeeoLabv3 9.9.4 DeepLabv3 9.8 PSPNet 场景解析对于无限制的开放词汇和不同场景来说是具有挑战性的。本文使用文中的 pyramid pooling module 实现基于不同区域的上下文集成&#xff0c;提出了PS…

Java进阶学习笔记14——模板方法设计模式

面试和看源码。 谈到设计模式&#xff1a; 1、解决了什么问题&#xff1f; 2、怎么写&#xff1f; 模板方法设计模式解决了什么问题&#xff1f; 解决方法中存在重复代码的问题。 写法&#xff1a; 1&#xff09;定义一个抽象类&#xff1a; 2&#xff09;在里面定义两个方…

阅读笔记——《ProFuzzBench: A Benchmark for Stateful Protocol Fuzzing》

【参考文献】Natella R, Pham V T. Profuzzbench: A benchmark for stateful protocol fuzzing[C]//Proceedings of the 30th ACM SIGSOFT international symposium on software testing and analysis. 2021: 662-665.【注】本文仅为作者个人学习笔记&#xff0c;如有冒犯&…

Java反射角度简单理解spring IOC容器

概述 Java反射&#xff08;Reflection&#xff09;是Java编程语言的一个特性&#xff0c;它允许在运行时对类、接口、字段和方法进行动态查询和操作。反射提供了一种在运行时查看和修改程序行为的能力&#xff0c;这通常用于实现一些高级功能&#xff0c;如框架(Spring)、ORM&…

【正点原子Linux连载】 第四十七章 音频驱动实验摘自【正点原子】ATK-DLRK3568嵌入式Linux驱动开发指南

1&#xff09;实验平台&#xff1a;正点原子ATK-DLRK3568开发板 2&#xff09;平台购买地址&#xff1a;https://detail.tmall.com/item.htm?id731866264428 3&#xff09;全套实验源码手册视频下载地址&#xff1a; http://www.openedv.com/docs/boards/xiaoxitongban 第四十…

EEGLAB的相关使用

目录 概念 1.安装EEGLAB 2.文件实例演示 导入数据集处理 &#xff08;1&#xff09;导入数据集 &#xff08;2&#xff09;画图 &#xff08;3&#xff09; 修改并存储数据集 &#xff08;4&#xff09; 保存数据集 &#xff08;5&#xff09; 删除数据集 &#xff0…

零基础HTML教程(33)--HTML5表单新功能

文章目录 1. 背景2. HTML5新增表单元素2.1 number (数字输入框)2.2 email (邮箱输入框)2.3 url (链接输入框)2.4 tel (电话输入框)2.5 range (范围选择框)2.6 color (颜色选择框)2.7 datetime (日期时间选择框)2.8 search (搜索框) 3. placeholder &#xff08;占位属性&#x…

php TP8 阿里云短信服务SDKV 2.0

安装&#xff1a;composer require alibabacloud/dysmsapi-20170525 2.0.24 官方文档&#xff1a;短信服务_SDK中心-阿里云OpenAPI开发者门户 (aliyun.com) 特别注意&#xff1a;传入参数获得值形式 正确&#xff1a; $PhoneNumbers $postData[PhoneNumbers];$signName $po…

Vue集成Iframe

一、应用场景&#xff0c;为什么要集成Iframe&#xff1f; 1、庞大项目拆分后&#xff0c;便于管理和部署&#xff0c;用集成Iframe的方法合并 2、避免功能重复开发&#xff0c;共用模块可单独开发为一个项目&#xff0c;既可独立部署&#xff0c;也可集成到中台系统 二、集成…