7路由器配置

前面学习了交换机的配置,现在开始搞路由器的配置。这次之所以很长时间才更新,是因为我把好几节的内容都放到这一篇文章里了。

一、介绍

1.1什么是路由器?

路由器是一种用户网络互连的设备,它工作在OSI参考模型的第三层(即网络层)。与之对比的二层交换机,工作在数据链路层。长这么个样子

我花三十大洋淘的二手路由器长这个样子

1.2为什么需要路由器?

路由器有以下这些功能:

  1. 路由选择:在 IP 互联网中,当 IP 数据包到达路由器时,路由器能够根据一定的策略,为数据包选择一条合适的路径进行"路由",即向合适的方向转发。在这个过程中每台路由器只负责将数据包在本站通过最优的路径转发,数据包通过路由器一站一站地接力、逐跳被转发到目的地。
  2. 网络互连:实现不同逻辑网段之间的互连
  3. 过滤与隔离
  4. 分段和重组
  5. 网络管理功能
  6. 网络安全

可能很多人想问我有了交换机,为啥还需要路由器?

交换机和路由器虽然都是网络连接设备,但是它们在网络中的功能和应用层次是不同的。以下是它们主要的区别和作用:

  1. 工作层次不同:交换机主要工作在数据链路层(第二层),负责数据包的传输;而路由器主要工作在网络层(第三层),负责数据包的路由选择和网络互连。

  2. 功能不同:交换机的主要功能是实现不同设备间的信息传输,扩展网络的覆盖范围,简化网络结构;路由器除了能进行信息传输外,还能实现不同网络间的连接,如将局域网(LAN)与广域网(WAN)连接,实现信息在不同网络间的路由传输。

  3. 网络划分:交换机能实现VLAN(虚拟局域网)的划分,但是无法实现网络间路由,不同VLAN间的报文需要通过路由器才能实现交互;路由器可以划分子网,实现网络间的互联互通。

因此,即使有了交换机,我们仍然需要路由器来实现不同网络间的互联互通,以及提供更高级的网络管理和控制功能。在实际的网络结构中,交换机和路由器通常会根据需要共同使用,以构建出高效稳定的网络环境。

1.3网关又是啥?

使用路由器必须知道网关的概念。

从一个网络向另一个网络发送信息,必须经过一道"关口",这道关口就是网关。对应的就是路由器端口上配置的IP地址。

二、IP路由原理

路由是指导路由器如何进行数据报文发送的路径信息。每个路由器都有路由表,路由表中的条目就是路由。

路由表如何生成的后面了解,我们先看一下路由表的组成。

2.1路由表的构成

  • Destination/Mask 即目的网络地址/子网掩码:二者一起用来标识 IP数据报文的目的地址或目的网络
  • proto(协议类型字段)指明这条路由是如何形成的,有直连路由 direct、静态路由 static 和动态路由(包括 OSPF 和 RIP 协议)
  • pref(preference):表明路由优先级。数值越小优先级越高
  • Metric 字段(路由度量值,也称路由权):表示到达这条路由所指目的地的代价
  • Nexthop(下一跳地址):更接近目的网络的下一个路由器地址
  • Interface(路由器接口):指明 IP 包将从路由器的哪个接口转发

2.2路由表的查找原则

  1. 最长匹配原则。当路由表中存在多个路由项可以同时匹配目的 IP地址时,路由查找进程会选择其中掩码最长的路由项用于转发。

  2. 如果路由表中没有路由项能够匹配数据包,则路由器丢弃该数据包。但如果路由表中有默认路由存在,则路由器按照默认路由来转发数据包。

当路由器收到一个数据包时,将数据包中的目的 IP 地址提取出来,然后与路由表字段中的"子网掩码"进行逐位"与"运算,运算的结果再与路由项包含的目的地址进行比较。如果与某路由项中的目的地址相同,则认为与此路由项匹配,路由选择成功;如果没有路由项能够匹配,则丢弃该数据包。

三、路由来源

既然路由器是靠路由表里的路由项来进行转发的,那怎么配置路由项呢?有三种方案:直连路由、静态路由、动态路由。

3.1直连路由

直连路由 是指与路由器接口直接相连的网段的路由,由链路 层协议发现。

配置也很简单,给路由器的接口配置上IP地址,并将链路状态设置为UP即可:

指令配置为:

csharp 复制代码
[RT1-Serial0/1/0]ip add 10.0.0.1 24   //配置路由器接口IP地址
[RT2]display ip routing-table  //展示路由表

下图展示的是RT2的路由表,可以看到网段的地址(红色箭头)、自己端口IP(黄色箭头)、相连路由器的端口IP(绿色箭头)都有记录,且对应的下一跳地址、对应接口是有区别的。

3.2静态路由

静态路由,是由网络管理员在路由器上手动配置的路由信息。

普通静态路由

命令:

css 复制代码
[RT2]ip route-static ip-address {mask|masklen} {interface-type interface-name | nexthop-address}  [preference value] [reject|blackhole]

系统视图下,用 ip route-static 关键字来配置,route-static表示静态路由

  • ip-address 指目的网络地址
  • maskmasklen 这二者二选一, mask 表示掩码, masklen 掩码长度,它们和前面的网络地址一起标识目的网络。
  • { interface-type interface-name | nexthop-address }这两者也是二选一,interface-type 表示物理接口类型,interface-name 表示 接口名称,例如 serial0/1,表示接口类型是 serial(串口),接口编号是 0/1。nexthop-address 路由的下一跳 IP 地址。通常情况下,这二者中我们常使用后者(即使用路由的下一跳 IP 地址)。当然下一跳地址需要是直连链路上可达的地址。
  • 后面的preference 是优先级,该项可以省略。静态路由默认的优先级值为60,可以根据需要进行更改。
  • reject | blackhole 两个可选项中,
    • Reject:表示目的地不可达:当到达某一目的地的静态路由具有该属性时,任何去往该目的地的 IP 报文都将被丢弃,并通知源主机目的地不可达。
    • Blackhole 属性:字面意思是黑洞,当到达某一目的地的静态路由具有该属性时,任何去往该目的地的 IP 报文都将被丢弃,也不向数据源发送任何报错消息,像一个黑洞一样,数据包有去无回

例如:

举个例子,如果想PC1和PC4通信:

在RT1和RT2上配置完接口的IP地址后,为其配置静态路由地址

查看路由表,能够发现在RT1上有了路由到30.0.0.0的路由条目:

静态默认路由

默认路由,也叫缺省路由。它的目标网络号是 0.0.0.0,子网掩码为 0.0.0.0,它匹配所有的网络。它是路由器在找不到匹配的路由时,才会把数据包用默认路由转发。

命令:

csharp 复制代码
[RT2]ip route-static 0.0.0.0 0.0.0.0 nexthop-address

3.3动态路由

大家如果是小型的网络环境,配置一下静态路由就够了。如果说恰巧网络环境复杂了,那再用动态路由。所以大家按照自己的需求学习吧。我之所以整理这块资料,纯粹是想有个了解,也想看看大学时期学的理论,是怎么映射到实际中的。

介绍

动态路由:它是路由协议根据网络结构或流量的变化,动态寻找网络的最佳路径。

  • 路由及路由表维护由路由协议自动完成,不需要管理员手动进行,大大减少了管理员的工作量,适用于复杂的网络。
  • 对拓扑变化的响应速度大大提高。

路由协议工作过程如下:

路由交换的含义是这样的:

路由协议有很多分类,大家使用比较多的。

一是按照工作范围划分:

二是按照采用的算法划分:

  • 距离矢量路由协议:距离矢量路由协议基于贝尔曼-福特算法。这种算法关心的是到目的网段的距离(有多远)和方向(即从哪个接口转发数据)。网络中相邻路由器之间交换整个路由表,并进行矢量的叠加,最后达到全网同步。网络中每台路由器都不了解整个网络拓扑,他们只知道与自己直接相连的网络情况,并根据从邻居得到的路由信息更新自己的路由表,进行矢量叠加后转发给其他的邻居。这种路由协议也称为"依照传闻的路由协议"。该算法特点是路由表项学习完全依靠邻居,交换的是整个路由表。实现和管理简单,但收敛速度慢,报文量大,占用网络开销,并且会产生路由环路。如RIP,BGP。
  • 链路状态路由协议:链路状态路由协议基于 Dijkstra 算法,也称为最短路径优先算法。它把路由器分成区域,收集区域内所有路由器的链路状态信息,根据链路状态信息生成网络拓扑结构,每一台路由器再根据结构图计算出路由。它的特点是:首先得到网络拓扑,根据拓扑计算路由。确保网络中没有路由环路存在,路由收敛速度快,网络流量小。如OSPF等。

RIP协议

RIP 的全称是 Routing Information Protocol 路由信息协议。

这是最早的动态路由协议:

  • 其原理简单,配置容易;

  • RIP 是基于距离矢量(D-V,distance-vector)的路由协议;

  • 它有 RIPv1 和 RIPv2 两个版本;

  • RIP 使用跳数来衡量到达目的网络的距离,最多 15 跳。大于或等于16 的跳数被定义为无穷大,即目的网络或主机不可达。适用于中小型网络;

跳数(也叫度量值,花费,路由权)在 RIP 中,路由器到与它直接相连的网络的跳数为 0,通过一个路由器可到达的网络的跳数为 1,依次类推。

RIP 协议中,路由器每隔 30s 向其相邻路由器广播自己知道的全部路由信息------即自己的整个路由表,用于通知相邻路由器自己可以到达的网络以及到达该网络的距离(通常用"跳数"表示),相邻路由器可以根据收到的路由表修改和刷新自己的路由表。

  • 对本路由表中不存在的路由项,在度量值小于协议规定的最大值16时,在路由表中增加该路由项。
  • 对本路由表中已有的路由项,当发送报文的RIP邻居不同时,只在路由项度量值减少时更新该路由项。
  • 对本路由表中已有的路由项,当发送响应报文的RIP邻居相同时,不论响应报文中携带的路由度量值增大或减少,都更新该路由项。

最终的效果如下所示:

RIP的配置命令也比较简单:

less 复制代码
[RT1]rip [process-id]  //启动rip
[RT1-rip-1]network network-address //指定网段启用rip,如network 10.0.0.0

像上面的拓扑图,这么配置完后,PC1和PC2就能通信了。

RIPV2

为啥要有RIPV2?

有无类别可以用这个例子解释,假设用RIPV1,因为使用的是有类路由协议,协议报文中不携带掩码信息,最终RT1上学到的10.0.0.8,和该目的网段与实际 RT2 的网络不一致。

如果使用RIPV2,且关闭自动聚合功能,就能获取到正确的目的网段。

常用配置命令

less 复制代码
//选择版本
[RT1-rip-1]version {1 | 2} //RIP视图下指定RIP的全局版本
[RT1-Serial0/1/0]rip version 2 [broadcast | multicast] //接口视图下指定接口运行的RIP版本

[RT1-rip-1]undo summary //RIP视图下关闭自动路由聚合功能

[RT1-Serial0/1/0]rip authentication-mode {md5 {rfc2082 key-string key-id | rfc2453 key-string} | simple password  } //配置认证信息。相邻的接口需要使用相同的密钥

如[RT1-Serial0/1/0]rip authentication-mode md5 rfc2453 jzszhn

RIP环路及避免

因为RIP协议的工作机制,容易产生环路,为了避免这种情况,有几种解决方案:

  1. 定义最大路由权值:RIP 路由算法通过跳数来记录路由的代价,规定了最大跳数为15,跳数为 16 代表不可达。
  2. 路由毒化:所谓路由毒化就是路由器主动把路由表中发生故障的路由项以度量值无穷大(16)的形式通告给 RIP 邻居,以使邻居能够及时得知网络发生故障。
  3. 水平分割:水平分割要求路由器,从某个接口接收到的路由条目,不再会从此接口发送出去。
  4. 毒性逆转:毒性反转是指路由器从某个接口学到路由后,将该路由的跳数设置为 16,并从原接收接口发回给邻居路由器。
  5. 触发更新:触发更新就是指在网络发生变化之后立刻发送路由更新信息,以响应网络变化。
  6. 抑制时间:包含路由更新信息的数据包被某些网络中的链路丢失或损坏,或者其他路由器没能及时收到触发更新,这些路由信息进入网络很可能会产生环路,因此就产生了结合触发更新的抑制时间机制。一旦路由无效,在抑制计时器超时之前该路由将进入抑制状态,在被抑制状态,只有来自同一邻居且度量值小于 16 的路由更新才会被路由器接收,取代不可达路由,其他路由信息将被忽略。抑制时间机制让更新信息有更多的时间传遍整个网络。

通过这些防环机制可以抑制 RIP 协议中的路由环路的产生,但是却不能完全避免环路!

配置方案:

csharp 复制代码
[RT1-Serial0/1/0]rip split-horizon  //开启水平分割,默认是开启的
[RT1-Serial0/1/0]rip poison-reverse //开启毒性逆转,默认是关闭的

OSPF协议

RIP有很多缺陷,如以跳数评估的路由并非最优路径,最大跳数16导致网络尺度小,收敛速度慢,更新发送全部路由表浪费网络资源。

OSPF(Open Shortest Path First,开放最短路径优先)是 IETF 开发的基于链路状态的自治系统内部路由协议。

  • 无路由自环
  • 路由变化收敛速度快
  • 支持区域划分
  • 支持等值路由
  • 支持验证
  • 支持路由分级管理
  • 可使用大规模网络

OSPF协议工作过程为:

最终每台路由器会以自己为根节点计算最小生成树

而且OSPF支持多区域管理

一般的结构如下图所示:

常用配置命令

scss 复制代码
//1.配置router id
//Router ID 的作用是在 OSPF 自治系统内唯一标识一台路由器
//采用点分十进制的形式标识,如router id 10.0.0.1
[Router] router id ip-address  

//2.启动 OSPF 进程,并指定进程 ID
//不指定默认为1, [Router]ospf 2
[Router]ospf [ process-id ]


//3.重启 OSPF 进程
//reset ospf  0
<Router>reset ospf [process-id]

//4.配置OSPF区域
//area 0,,进入区域视图
[Router-ospf-100]area area-id


//5.在指定的接口上启动 OSPF
//network 10.0.0.1 0.0.0.255
[Router-ospf-1-area-0.0.0.0]network network-address wildcard-mask

四、实战

操作 指令 说明
查看路由 [RT2]display ip routing-table
路由器端口配置IP地址 [RT1-Serial0/1/0]ip add 10.0.0.1 24
配置静态路由 [RT2]ip route-static ip-address {mask|masklen} {interface-type interface-name |nexthop-address} [preference value] [reject|blackhole]
去掉静态路由 增加undo,其它不变
配置rip [RT1]rip [RT1-rip-1]network 192.168.0.0 [RT1-rip-1]network 192.168.1.0 启动、路由器相邻的网段
查看rip信息 display rip
关闭RIP undo rip
配置OSPF [RT1]router id 1.1.1.1 [RT1]ospf 1 [RT1-ospf-1]area 0 [RT1-ospf-1-area-0.0.0.0]network 1.1.1.1 0.0.0.0 [RT1-ospf-1-area-0.0.0.0]network 192.168.0.0 0.0.0.255 [RT1-ospf-1-area-0.0.0.0]network 192.168.1.0 0.0.0.255 配置唯一id、开启ospf、设置区域、配置区域连接的网段
查看OSPF display ospf

我们按照这个架构图,尝试一下各个功能。现在我只配置了PC的IP地址,修改了一下路由器的名称,其它没有变动。

现在PC3 ping PC4肯定是不通的。我们先查看一下路由器的路由情况,没啥信息。

css 复制代码
[RT1]display ip routing-table

Destinations : 7        Routes : 7

Destination/Mask   Proto   Pre Cost        NextHop         Interface
0.0.0.0/32         Direct  0   0           127.0.0.1       InLoop0
127.0.0.0/8        Direct  0   0           127.0.0.1       InLoop0
127.0.0.1/32       Direct  0   0           127.0.0.1       InLoop0
127.255.255.255/32 Direct  0   0           127.0.0.1       InLoop0
224.0.0.0/4        Direct  0   0           0.0.0.0         NULL0
224.0.0.0/24       Direct  0   0           0.0.0.0         NULL0
255.255.255.255/32 Direct  0   0           127.0.0.1       InLoop0

配置接口

我们在对应的端口上配置上IP地址。

css 复制代码
[RT1]interface GigabitEthernet 0/0
[RT1-GigabitEthernet0/0]ip add 192.168.0.1 24
[RT1-GigabitEthernet0/0]exit
[RT1]interface GigabitEthernet 0/1
[RT1-GigabitEthernet0/1]ip add 192.168.1.1 24

[RT2]interface GigabitEthernet 0/1
[RT2-GigabitEthernet0/1]ip add 192.168.1.2 24
[RT2-GigabitEthernet0/1]exit
[RT2]interface GigabitEthernet 0/0
[RT2-GigabitEthernet0/0]ip add 10.0.0.1 24

现在再查看一下RT1的路由信息,可以看到接口对应的IP地址和网段显示出来了。

css 复制代码
[RT1]dis ip routing-table

Destinations : 13       Routes : 13

Destination/Mask   Proto   Pre Cost        NextHop         Interface
0.0.0.0/32         Direct  0   0           127.0.0.1       InLoop0
127.0.0.0/8        Direct  0   0           127.0.0.1       InLoop0
127.0.0.1/32       Direct  0   0           127.0.0.1       InLoop0
127.255.255.255/32 Direct  0   0           127.0.0.1       InLoop0
192.168.0.0/24     Direct  0   0           192.168.0.1     GE0/0
192.168.0.1/32     Direct  0   0           127.0.0.1       InLoop0
192.168.0.255/32   Direct  0   0           192.168.0.1     GE0/0
192.168.1.0/24     Direct  0   0           192.168.1.1     GE0/1
192.168.1.1/32     Direct  0   0           127.0.0.1       InLoop0
192.168.1.255/32   Direct  0   0           192.168.1.1     GE0/1
224.0.0.0/4        Direct  0   0           0.0.0.0         NULL0
224.0.0.0/24       Direct  0   0           0.0.0.0         NULL0
255.255.255.255/32 Direct  0   0           127.0.0.1       InLoop0

但现在ping肯定还是ping不通的。

静态路由

我们配置一下静态路由。配置要连接到的网段、掩码、下一条的地址

csharp 复制代码
[RT1]ip route-static 10.0.0.0 24 192.168.1.2
[RT2]ip route-static 192.168.0.0 24 192.168.1.1

可以看到已经有到对应网段的路由条目了。

css 复制代码
[RT1]dis ip routing-table

Destinations : 14       Routes : 14

Destination/Mask   Proto   Pre Cost        NextHop         Interface
0.0.0.0/32         Direct  0   0           127.0.0.1       InLoop0
10.0.0.0/24        Static  60  0           192.168.1.2     GE0/1
127.0.0.0/8        Direct  0   0           127.0.0.1       InLoop0
127.0.0.1/32       Direct  0   0           127.0.0.1       InLoop0
127.255.255.255/32 Direct  0   0           127.0.0.1       InLoop0
192.168.0.0/24     Direct  0   0           192.168.0.1     GE0/0
192.168.0.1/32     Direct  0   0           127.0.0.1       InLoop0
192.168.0.255/32   Direct  0   0           192.168.0.1     GE0/0
192.168.1.0/24     Direct  0   0           192.168.1.1     GE0/1
192.168.1.1/32     Direct  0   0           127.0.0.1       InLoop0
192.168.1.255/32   Direct  0   0           192.168.1.1     GE0/1
224.0.0.0/4        Direct  0   0           0.0.0.0         NULL0
224.0.0.0/24       Direct  0   0           0.0.0.0         NULL0
255.255.255.255/32 Direct  0   0           127.0.0.1       InLoop0

尝试ping也能成功了

python 复制代码
<H3C>ping 10.0.0.2
Ping 10.0.0.2 (10.0.0.2): 56 data bytes, press CTRL_C to break
56 bytes from 10.0.0.2: icmp_seq=0 ttl=253 time=5.201 ms
56 bytes from 10.0.0.2: icmp_seq=1 ttl=253 time=3.537 ms
56 bytes from 10.0.0.2: icmp_seq=2 ttl=253 time=3.048 ms
56 bytes from 10.0.0.2: icmp_seq=3 ttl=253 time=4.605 ms
56 bytes from 10.0.0.2: icmp_seq=4 ttl=253 time=3.339 ms

--- Ping statistics for 10.0.0.2 ---
5 packet(s) transmitted, 5 packet(s) received, 0.0% packet loss
round-trip min/avg/max/std-dev = 3.048/3.946/5.201/0.819 ms
<H3C>%Dec  3 22:00:15:209 2023 H3C PING/6/PING_STATISTICS: Ping statistics for 10.0.0.2: 5 packet(s) transmitted, 5 packet(s) received, 0.0% packet loss, round-trip min/avg/max/std-dev = 3.048/3.946/5.201/0.819 ms.

RIP

我们用RIP协议试试,这次就仅用rip1。我们需要先关掉静态路由。

csharp 复制代码
[RT1]undo ip route-static 10.0.0.0 24 192.168.1.2
[RT2]undo ip route-static 192.168.0.0 24 192.168.1.1

可以发现静态路由没有了

css 复制代码
[RT1]dis ip routing-table

Destinations : 13       Routes : 13

Destination/Mask   Proto   Pre Cost        NextHop         Interface
0.0.0.0/32         Direct  0   0           127.0.0.1       InLoop0
127.0.0.0/8        Direct  0   0           127.0.0.1       InLoop0
127.0.0.1/32       Direct  0   0           127.0.0.1       InLoop0
127.255.255.255/32 Direct  0   0           127.0.0.1       InLoop0
192.168.0.0/24     Direct  0   0           192.168.0.1     GE0/0
192.168.0.1/32     Direct  0   0           127.0.0.1       InLoop0
192.168.0.255/32   Direct  0   0           192.168.0.1     GE0/0
192.168.1.0/24     Direct  0   0           192.168.1.1     GE0/1
192.168.1.1/32     Direct  0   0           127.0.0.1       InLoop0
192.168.1.255/32   Direct  0   0           192.168.1.1     GE0/1
224.0.0.0/4        Direct  0   0           0.0.0.0         NULL0
224.0.0.0/24       Direct  0   0           0.0.0.0         NULL0
255.255.255.255/32 Direct  0   0           127.0.0.1       InLoop0

开始配置RIP

csharp 复制代码
[RT1]rip
[RT1-rip-1]network 192.168.0.0
[RT1-rip-1]network 192.168.1.0

[RT2]rip
[RT2-rip-1]network 192.168.1.0
[RT2-rip-1]network 10.0.0.0

可以看到,自动找到10.0.0.0了

css 复制代码
[RT1-rip-1]dis ip routing-table

Destinations : 14       Routes : 14

Destination/Mask   Proto   Pre Cost        NextHop         Interface
0.0.0.0/32         Direct  0   0           127.0.0.1       InLoop0
10.0.0.0/8         RIP     100 1           192.168.1.2     GE0/1
127.0.0.0/8        Direct  0   0           127.0.0.1       InLoop0
127.0.0.1/32       Direct  0   0           127.0.0.1       InLoop0
127.255.255.255/32 Direct  0   0           127.0.0.1       InLoop0
192.168.0.0/24     Direct  0   0           192.168.0.1     GE0/0
192.168.0.1/32     Direct  0   0           127.0.0.1       InLoop0
192.168.0.255/32   Direct  0   0           192.168.0.1     GE0/0
192.168.1.0/24     Direct  0   0           192.168.1.1     GE0/1
192.168.1.1/32     Direct  0   0           127.0.0.1       InLoop0
192.168.1.255/32   Direct  0   0           192.168.1.1     GE0/1
224.0.0.0/4        Direct  0   0           0.0.0.0         NULL0
224.0.0.0/24       Direct  0   0           0.0.0.0         NULL0
255.255.255.255/32 Direct  0   0  

互相间仍能ping通

python 复制代码
<H3C>ping 10.0.0.2
Ping 10.0.0.2 (10.0.0.2): 56 data bytes, press CTRL_C to break
56 bytes from 10.0.0.2: icmp_seq=0 ttl=253 time=5.262 ms
56 bytes from 10.0.0.2: icmp_seq=1 ttl=253 time=3.289 ms
56 bytes from 10.0.0.2: icmp_seq=2 ttl=253 time=3.099 ms
56 bytes from 10.0.0.2: icmp_seq=3 ttl=253 time=3.038 ms
56 bytes from 10.0.0.2: icmp_seq=4 ttl=253 time=3.094 ms

--- Ping statistics for 10.0.0.2 ---
5 packet(s) transmitted, 5 packet(s) received, 0.0% packet loss
round-trip min/avg/max/std-dev = 3.038/3.556/5.262/0.857 ms
<H3C>%Dec  3 22:12:20:771 2023 H3C PING/6/PING_STATISTICS: Ping statistics for 10.0.0.2: 5 packet(s) transmitted, 5 packet(s) received, 0.0% packet loss, round-trip min/avg/max/std-dev = 3.038/3.556/5.262/0.857 ms.

通过这次配置,大家能看到,使用RIP容易了很多,只需要配置和自己相连的网段即可。

OSPF

为了测试OSPF,我们先关闭RIP。

ini 复制代码
[RT1-rip-1]undo rip
Undo RIP process? [Y/N]:Y

[RT2-rip-1]undo rip
Undo RIP process? [Y/N]:Y

没有相邻信息了

css 复制代码
[RT1]dis ip routing-table

Destinations : 13       Routes : 13

Destination/Mask   Proto   Pre Cost        NextHop         Interface
0.0.0.0/32         Direct  0   0           127.0.0.1       InLoop0
127.0.0.0/8        Direct  0   0           127.0.0.1       InLoop0
127.0.0.1/32       Direct  0   0           127.0.0.1       InLoop0
127.255.255.255/32 Direct  0   0           127.0.0.1       InLoop0
192.168.0.0/24     Direct  0   0           192.168.0.1     GE0/0
192.168.0.1/32     Direct  0   0           127.0.0.1       InLoop0
192.168.0.255/32   Direct  0   0           192.168.0.1     GE0/0
192.168.1.0/24     Direct  0   0           192.168.1.1     GE0/1
192.168.1.1/32     Direct  0   0           127.0.0.1       InLoop0
192.168.1.255/32   Direct  0   0           192.168.1.1     GE0/1
224.0.0.0/4        Direct  0   0           0.0.0.0         NULL0
224.0.0.0/24       Direct  0   0           0.0.0.0         NULL0
255.255.255.255/32 Direct  0   0  

现在使用OSPF进行配置

csharp 复制代码
[RT1]router id 1.1.1.1
[RT1]ospf 1
[RT1-ospf-1]area 0
[RT1-ospf-1-area-0.0.0.0]network 1.1.1.1 0.0.0.0
[RT1-ospf-1-area-0.0.0.0]network 192.168.0.0 0.0.0.255
[RT1-ospf-1-area-0.0.0.0]network 192.168.1.0 0.0.0.255


[RT2]router id 2.2.2.2
[RT2]ospf 1
[RT2-ospf-1]area 0
[RT2-ospf-1-area-0.0.0.0]network 2.2.2.2 0.0.0.0
[RT2-ospf-1-area-0.0.0.0]network 192.168.1.0 0.0.0.255
[RT2-ospf-1-area-0.0.0.0]%Dec  3 22:27:39:829 2023 RT2 OSPF/5/OSPF_NBR_CHG: OSPF 1 Neighbor 192.168.1.1(GigabitEthernet0/1) changed from LOADING to FULL.
[RT2-ospf-1-area-0.0.0.0]network 10.0.0.0 0.0.0.255

能够看到路由器有了新的路由项,而且网段也正确了

css 复制代码
[RT1-ospf-1-area-0.0.0.0]dis ip routing-table

Destinations : 14       Routes : 14

Destination/Mask   Proto   Pre Cost        NextHop         Interface
0.0.0.0/32         Direct  0   0           127.0.0.1       InLoop0
10.0.0.0/24        O_INTRA 10  2           192.168.1.2     GE0/1
127.0.0.0/8        Direct  0   0           127.0.0.1       InLoop0
127.0.0.1/32       Direct  0   0           127.0.0.1       InLoop0
127.255.255.255/32 Direct  0   0           127.0.0.1       InLoop0
192.168.0.0/24     Direct  0   0           192.168.0.1     GE0/0
192.168.0.1/32     Direct  0   0           127.0.0.1       InLoop0
192.168.0.255/32   Direct  0   0           192.168.0.1     GE0/0
192.168.1.0/24     Direct  0   0           192.168.1.1     GE0/1
192.168.1.1/32     Direct  0   0           127.0.0.1       InLoop0
192.168.1.255/32   Direct  0   0           192.168.1.1     GE0/1
224.0.0.0/4        Direct  0   0           0.0.0.0         NULL0
224.0.0.0/24       Direct  0   0           0.0.0.0         NULL0
255.255.255.255/32 Direct  0   0           127.0.0.1       InLoop0

ping也是通的

python 复制代码
<H3C>ping 10.0.0.2
Ping 10.0.0.2 (10.0.0.2): 56 data bytes, press CTRL_C to break
56 bytes from 10.0.0.2: icmp_seq=0 ttl=253 time=4.426 ms
56 bytes from 10.0.0.2: icmp_seq=1 ttl=253 time=3.146 ms
56 bytes from 10.0.0.2: icmp_seq=2 ttl=253 time=2.584 ms
56 bytes from 10.0.0.2: icmp_seq=3 ttl=253 time=2.975 ms
56 bytes from 10.0.0.2: icmp_seq=4 ttl=253 time=4.471 ms

--- Ping statistics for 10.0.0.2 ---
5 packet(s) transmitted, 5 packet(s) received, 0.0% packet loss
round-trip min/avg/max/std-dev = 2.584/3.520/4.471/0.780 ms
<H3C>%Dec  3 22:29:55:246 2023 H3C PING/6/PING_STATISTICS: Ping statistics for 10.0.0.2: 5 packet(s) transmitted, 5 packet(s) received, 0.0% packet loss, round-trip min/avg/max/std-dev = 2.584/3.520/4.471/0.780 ms.

大家也能看到,使用OSPF虽然复杂一点,但是复杂的不多。鉴于它更强大的能力,性价比也是很高的。

总结

如果大家不关注于原理的话,路由器配置其实挺简单的。大家上手试试吧。

最后

大家如果喜欢我的文章,可以关注我的公众号(程序员麻辣烫)

我的个人博客为:shidawuhen.github.io/

往期文章回顾:

  1. 设计模式
  2. 招聘
  3. 思考
  4. 存储
  5. 算法系列
  6. 读书笔记
  7. 小工具
  8. 架构
  9. 网络
  10. Go语言
相关推荐
用户67570498850229 分钟前
告别数据库瓶颈!用这个技巧让你的程序跑得飞快!
后端
千|寻1 小时前
【画江湖】langchain4j - Java1.8下spring boot集成ollama调用本地大模型之问道系列(第一问)
java·spring boot·后端·langchain
栗子叶1 小时前
两种Https正向代理的实现原理
网络协议·http·https·正向代理
程序员岳焱1 小时前
Java 与 MySQL 性能优化:MySQL 慢 SQL 诊断与分析方法详解
后端·sql·mysql
龚思凯1 小时前
Node.js 模块导入语法变革全解析
后端·node.js
天行健的回响1 小时前
枚举在实际开发中的使用小Tips
后端
wuhunyu1 小时前
基于 langchain4j 的简易 RAG
后端
techzhi1 小时前
SeaweedFS S3 Spring Boot Starter
java·spring boot·后端
jingyucsdn1 小时前
网页端 VUE+C#/FastAPI获取客户端IP和hostname
网络协议·tcp/ip·fastapi