模拟器里点点鼠标就能配路由器,但真实设备挂在机柜里,没有屏幕和键盘——它是怎么被管理的?数据包进到路由器后又是怎么被转发的?这篇文章就从这两个问题讲起:先解决"如何登录设备",再搞懂"路由器如何查表转发",最后动手配置静态路由,并聊聊路由环路为什么靠 TTL 自保。
一、管理真实设备的两种方式
对一台真实路由器或交换机的管理,分为带外管理和带内管理两大类。
1. 带外管理:不依赖网络
Console 线:用 console 线直连设备的 Console 口进行控制,最经典的初始化手段;
MiniUSB 线:部分设备支持通过 MiniUSB 线进行控制,效果类似。
之所以叫"带外",是因为它走的是一条独立于业务网络之外的通道——哪怕设备还没有任何 IP 配置,也能连上管理。
2. 带内管理:借业务网络远程登录
Telnet:基于TCP 23 端口的远程控制协议;
Web 界面:通过浏览器管理;
SNMP:简单网络管理协议,适合批量监控与管理。
带内管理虽然方便,但有两个前提条件:
登录设备和被登录设备之间的网络可达(不通的话,Telnet 根本连不上去);
被登录设备必须开启 Telnet 服务。
第一个条件可以在 Console 口上提前配好地址和路由,第二个条件就是下一节的内容。
二、五步开启 Telnet 服务
以华为设备为例,在被登录设备(R1)上完成以下五步配置。
第 1 步:进入 AAA 视图(AAA 是华为设备的认证授权框架,Telnet 的用户就创建在这里):
[r1]aaa [r1-aaa]第 2 步:在 AAA 中创建用户名、密码,并定义权限等级:
[r1-aaa]local-user huawei privilege level 15 password cipher 123456这条命令创建了用户huawei,密码以密文(cipher)方式存储为123456,权限等级 15(最高级)。
第 3 步:定义该用户的服务类型——限制这个账号只能用于 Telnet 登录:
[r1-aaa]local-user huawei service-type telnet第 4 步:创建 VTY 虚拟登录端口(VTY 就是给远程登录准备的"虚拟线路",0 4表示同时开放 5 路):
[r1]user-interface vty 0 4 [r1-ui-vty0-4]第 5 步:定义认证模式——登录时采用 AAA 中的用户名密码进行认证:
[r1-ui-vty0-4]authentication-mode aaa配置完成后,在其他设备(或 PC)的用户视图<>下,直接敲:
telnet 192.168.1.254即可远程登录到 R1 上进行管理。
三、路由器是怎么转发数据包的
路由器的转发原理一句话概括:当一个数据包来到路由器,路由器会基于数据包中的目标 IP 地址去查本地的路由表——
路由表中存在记录→无条件按照记录执行转发;
路由表中没有记录→直接丢弃该数据包。
注意是"没有记录就丢弃",路由器不会帮你"猜"路径。所以路由表就是路由器的全部世界观,我们先用命令看看它长什么样:
[r1]display ip routing-table输出大致如下:
| Destination/Mask(目标网段和掩码) | Proto | Pre | Cost | Flags | NextHop | Interface |
|---|---|---|---|---|---|---|
| 192.168.1.0/24 | Direct | 0 | 0 | D | 192.168.1.254 | GigabitEthernet0/0/0 |
| 192.168.2.0/24 | Direct | 0 | 0 | D | 192.168.2.254 | GigabitEthernet0/0/1 |
几个关键字段的含义:
Proto = Direct:直连路由。凡是直接用网线连出来的网段,路由器会自动生成对应路由条目,描述的就是直连网段的路由信息。
直连路由的生成条件只有两个:① 接口双 UP(物理和协议都起来);② 接口配置了 IP 地址。缺一个都不会出现。
NextHop(下一跳):路由器的一次转发称为"一跳"。下一跳就是数据到达目标网段途中,下一个路由器入接口的 IP 地址;在直连路由中,下一跳直接使用本接口的 IP 地址。
Interface(出接口):数据包将从哪个接口发出去。
顺带一个工程常识:骨干链路指路由器和路由器之间的链路,一般情况下不会在骨干链路中间加入其他设备。
四、未知网段怎么办:静态路由与动态路由
直连路由只能"看见"网线那头,更远的网段——比如隔了一跳的 192.168.3.0/24——路由表里是没有的。获取未知网段的路由有两条路:
静态路由:由网络管理员手工配置的路由条目;
动态路由:所有路由器运行相同的路由协议,通过路由器之间的沟通、协商,自动计算出到达未知网段的路由条目。
先从静态路由开始,命令如下:
[R1]ip route-static 192.168.3.0 24 192.168.2.2三个参数分别表示:目标网段(192.168.3.0)、掩码(24)、下一跳 IP(192.168.2.2)。配置后再查路由表,Proto 一栏就会显示Static。
关于优先级(Preference)
如果到达同一个目标网段存在多条路径,路由器会比较它们的优先级,只把优先级最高(即数值最小)的那条加载进路由表。几个关键点:
优先级取值范围0–255,数值越大,优先级越低;
静态路由的默认优先级是 60(直连路由是 0,所以直连永远最优先);
路由表中带
RD标志表示递归查找——路由器还需要再查一次路由表,才能确定真正的出接口。
带出接口的写法
除了只写下一跳,还可以同时指定出接口:
[R1]ip route-static 192.168.3.0 24 GigabitEthernet 0/0/0 192.168.2.2五、配错了会怎样?路由环路与 TTL
静态路由是手工配的,配错了就可能出现路由环路——数据包在几台路由器之间打转,永远到不了目的地。
为了不让这样的包在网络里无限循环,IP 头部设计了TTL(生存时间)机制:
数据包每经过路由器的一次转发,TTL 值就减 1;
当某台路由器收到 TTL 已经减到0的数据包时,不再转发,直接丢弃。
要注意的是:TTL 只能减少环路的危害,并不能破除环路。环路问题的根治要靠后续的动态路由协议,这也是静态路由只适合小规模、结构稳定网络的原因。
小结
真实设备的管理分带外(Console / MiniUSB 线)和带内(Telnet / Web / SNMP)两类;带内管理要求网络可达且对端开启服务。
开启 Telnet 五步走:进 AAA → 建用户 → 定服务类型 → 开 VTY → 认证模式指向 AAA。
路由器转发只认路由表:有记录按记录走,没记录直接丢。
直连路由自动生成,条件是接口双 UP + 配置 IP;未知网段靠静态路由手工指路,或动态路由自动学习。
TTL是环路的"保险丝":逐跳减 1,减到 0 就丢弃。
下一篇聊聊另一条路——动态路由协议如何让路由器们自己"商量"出全网的路由。