路由器的定位与路由表
设计网络的时候有一个原则,就是一个网络中的主机数量最好不要超过300台,超过了就要使用路由器来做一个网络的隔离,隔离方式如下:
PCA----SW1----Router----SW2----PCB
- 路由器每个接口连接的就是一个独立的广播域,然后路由器在多个网络中间,负责把多个网络连在一起
- 在转发数据时,基于收到数据的三层报头中
目的IP地址
来转发
数据在发送前会进行封装,例如一个QQ的消息:
Ethernet2|IPv4|TCP|QQL2 |L3 |L4 |message
路由器主要关心L3层的IP协议首部,其中有源IP地址SIP
和目的IP地址DIP
,根据目的地址来确定数据发给谁
路由
路由Route
:一台路由器去往一个目的网络的路径信息
IP路由表
:保存路由,一条表项叫一条路由条目,一条路由条目就能告诉路由器一个目的网络怎么走
- 路由器就是靠查这个表了解到,我收到了一个包,这个包该怎么去转发
⚠注意:路由器关心的是一个网络在哪里,而不是一个网络中的主机在哪里,所以路由表里的一条路由条目,它指向的不是一台主机,而是主机所属的这么一个网络
-
所以在问路由器时,不是问主机A在哪,而是问主机A所属的网络在哪
-
路由器通过网络的真实名字来标识网络本身,即
网络号
- 网络号本质上是一种特殊的
IP地址
- 网络号本质上是一种特殊的
IP地址分为三类:单播地址、组播地址、广播地址
- 单播地址:主机和路由器接口配置的是单播地址,点分十进制,32位,xxx.xxx.xxx.xxx
- 单播地址配置时属于同一网络的主机,网络位相同,主机位不同,不属于同一网络的网络位不同,主机位不用管了
- 主机位全0和全1的IP地址不能配置给路由器或者主机,主机位全0代表网络地址,标识网络本身,也就是网络号,主机位全1代表广播地址,标识网络中的所有主机
直连路由(Directly Connected Routing)
含义:
-
告诉路由器一个直连网络怎么走
-
直连网络:指路由器直接接口所连接的网络。当一个接口配置了IP地址并处于“up”状态时,路由器会自动将该接口所在的网段信息放入其路由表中。
# 例如对路由器R1而言网络A和网络B就是一个直连网络PCA----SW1----R1----SW2----PCB| 网络A | 网络B |
特点:
-
自动学习
:只要路由器连接一个网路的接口配置了IP地址
和子网掩码
,并且这个接口没有shutdown
,为开启状态,那这个时候路由器就会自动的来学习到该接口所连接网络的路径信息- 简单理解:直连路由只要满足两个条件就可以自动学习
- 路由器连接一个网络的接口要配置
IP地址
和子网掩码
- 路由器连接该网络的接口的状态必须为
up
- 路由器连接一个网络的接口要配置
- 简单理解:直连路由只要满足两个条件就可以自动学习
-
可信度高:因为直接相连,所以路径绝对可靠,管理距离(Administrative Distance)值最低(通常为0)
-
数据发送过程:A想要访问B,它会把数据发给路由器的左边的接口,路由器收到数据之后,查看三层报头的目的IP。然后接下来查路由表发现,想要把包转发给B,要把包通过右边接口发送走,然后B就能接收到数据了
非直连路由
含义:
-
告诉路由器一个非直连网络怎么走
-
非直连网络:指不是由路由器直接接口连接的网络。要去往这些网络,数据包必须经过一个或多个其他路由器(下一跳)进行转发。
# 例如对路由器R1而言网络A和网络C就是一个非直连网络PCA----SW1----R1----R2----SW2----PCB| 网络A |网络B | 网络C |
特点:
- 无法自动学习:必须手动或动态添加,需要通过配置静态路由或运行动态路由协议来将这些路径信息加入到路由表中。
静态路由(Static Routing)
工作原理:由网络管理员手动地、逐条地在每台路由器上配置到达特定目标网络的路径(下一跳IP地址或出口接口)
- 优点:
- 简单: 在小型网络中易于配置和理解。
- 无开销: 不占用带宽和CPU资源,因为没有协议流量。
- 安全: 路由器之间不会交换路由信息,更安全可控。
- 缺点:
- 维护繁琐: 网络拓扑变化时(如新增网段、链路故障),需要管理员手动修改所有相关路由器的配置,容易出错。
- 缺乏容错性: 如果指定的下一跳路由器失效,静态路由不会自动切换路径,除非配置了浮动静态路由等高级功能。
- 规模不适用: 在大型复杂网络中,配置工作量巨大,几乎不可行。
动态路由协议(Dynamic Routing Protocols)
工作原理: 在路由器上启用动态路由协议后,路由器之间会自动地相互交换路由信息,并根据收到的信息动态地计算和更新自己的路由表。
- 我所有的直连网络信息我的邻居未必有,我邻居有的直连网络信息我未必有,所以需要交换路由信息
常见协议:RIP
、EIGRP
、OSPF
、IS-IS
、BGP
- 优点:
- 自动适应变化: 网络拓扑发生变化(如链路故障)时,协议会自动重新计算路径并更新所有路由器的路由表,无需人工干预,容错能力强。
- 扩展性好: 非常适合中大型复杂网络。
- 管理负担轻: 一旦配置完成,日常维护工作量很小。
- 缺点:
- 资源占用: 会占用一定的链路带宽(发送协议报文)和路由器CPU、内存资源。
- 复杂: 配置和理解比静态路由复杂,需要更深入的知识。
- 安全性: 需要妥善配置认证等措施,防止错误或恶意的路由信息注入。
路由条目
含义:
- 路由表中的一个表项
- 一条路由条目可以告知路由器一个目的网络怎么走,可以通过这个路由转发去往目的网络的数据
路由表条目的六要素
目的网络 (Destination Network)
:数据包想要到达的网络地址子网掩码 (Netmask)
:界定目的网络地址的范围,即目的网络的网络位是哪部分,主机位是哪部分- 例如:255.255.255.0代表前24位是网络位,后8位是主机位,255.255.0.0代表前16位是网络位,后16位是主机位,其实就是子网掩码中标识为1的就是网络位,标识为0的就是主机位
下一跳地址 (Next Hop)
:数据包为了到达目的网络,下一个应该被发送到的、直接相连的邻居路由器的接口IP地址。跳(Hop)
:一台三层网络设备,例如:路由器
出站接口 (Outgoing Interface)
:本路由器上,数据包应该从哪个接口转发出去才能到达“下一跳”。度量值 (Metric)
:到达目的网络的路径开销或距离。它是一个数值,用于比较到达同一目的网络的不同路径的优劣。比较时要用相同的标准进行比较- 跳数 (Hops): 路径经过的路由器数量(RIP协议使用)。
- 带宽/延迟: 基于链路带宽和延迟计算的综合值(EIGRP、OSPF协议使用)。
- 成本 (Cost): 通常与带宽反向相关(OSPF协议使用)。
管理距离
华为里叫优先级
:描述一条路由信息的可靠性。不同来源的路由通常具有不同的管理距离,用于在不同路由来源之间选择最可信的路由。通常为0~255,数值越大越不可靠。- 路由器通过多个学习方式学到路由条目后,根据管理距离的大小,将管理距离最小的添加到路由表里。管理距离最小,最可靠,所以添加到表里。
管理距离和度量值的区别
度量值用于描述路径的好坏,而管理距离用于描述一种路由学习方式的可靠程度
- 不同协议计算出来的度量值是没有可比较性的,因为计算的方式不同
- 所以不同的协议会比较管理距离而不比较度量值
思科实操
网络IP简单规划
-
环回口
Loopback0
:不用实际连线,只要没有shutdown就默认为up- 给环回口配置IP地址,可以把这种接口模拟为路由器身后连接的一台主机
- 例如:给R1的Loopback0口配置IP地址
1.1.1.1
,子网掩码255.255.255.255
,就可以看作R1连了一台主机,主机的IP地址为1.1.1.1
-
先规划一下IP地址:
- R1的Loopback0口配置
1.1.1.1
和255.255.255.255
- R2的Loopback0口配置
2.2.2.2
和255.255.255.255
- R3的Loopback0口配置
3.3.3.3
和255.255.255.255
- R1→R2配置
12.0.0.0/24
,R1的口用.1
,R2的口用.2
- R1→R3配置
13.0.0.0/24
,R1的口用.1
,R3的口用.3
配置
enableconfigure terminalhostname <主机名>interface ethernet <接口,例如:0/0>no shutdownip address <IP地址> <子网掩码>
enableconfigure terminalinterface loopback 0ip address <IP地址> <子网掩码>
最后通过show ip interface brief
验证是否配置成功
查看路由
指令:show ip route
输出内容如下:
R1#show ip routeCodes: L - local, C - connected, S - static, R - RIP, M - mobile, B - BGP D - EIGRP, EX - EIGRP external, O - OSPF, IA - OSPF inter area N1 - OSPF NSSA external type 1, N2 - OSPF NSSA external type 2 E1 - OSPF external type 1, E2 - OSPF external type 2 i - IS-IS, su - IS-IS summary, L1 - IS-IS level-1, L2 - IS-IS level-2 ia - IS-IS inter area, * - candidate default, U - per-user static route o - ODR, P - periodic downloaded static route, H - NHRP, l - LISP + - replicated route, % - next hop override
Gateway of last resort is not set
1.0.0.0/32 is subnetted, 1 subnetsC 1.1.1.1 is directly connected, Loopback0 12.0.0.0/8 is variably subnetted, 2 subnets, 2 masksC 12.0.0.0/24 is directly connected, Ethernet0/0L 12.0.0.1/32 is directly connected, Ethernet0/0 13.0.0.0/8 is variably subnetted, 2 subnets, 2 masksC 13.0.0.0/24 is directly connected, Ethernet0/1L 13.0.0.1/32 is directly connected, Ethernet0/1
-
Gateway of last resort is not set
:表示该路由器未配置默认路由(缺省路由) -
以
C
开头的:表示该网络是路由器直接连接的子网(即接口已配置IP地址并处于up/up
状态)。 -
以
L
开头的:表示该地址是路由器接口的具体IP地址(即接口本身的IP,属于/32
主机路由)。 -
⚠注意:不是所有的路由条目都有下一跳的,例如R1直连主机A,已经离主机A最近了,所以不需要下一跳,而如果R1连接R2,然后R2连接主机B,那么由于R1不能直接到达主机B,所以需要下一跳
- 思科这种直连路由不需要下一跳的,不会显示下一跳,而华为虽然显示,也是显示这个接口本身的地址
看管理距离和度量值
命令:show ip route <IP地址>
,例如show ip route 12.0.0.1
R1#show ip route 12.0.0.1Routing entry for 12.0.0.1/32 Known via "connected", distance 0, metric 0 (connected) Routing Descriptor Blocks: * directly connected, via Ethernet0/0 Route metric is 0, traffic share count is 1
distance 0, metric 0
:表示管理距离为0,度量值为0
配置静态路由
enableconfigure terminalip route <想访问的目的网络IP> <子网掩码> <出接口> <下一跳地址># 例如:ip route 2.2.2.2 255.255.255.255 ethernet 0/0 12.0.0.2
-
配置后通过
show ip route
查看是否配置成功 -
递归表查询
:非常糟糕的一种行为,为了转发一个数据要多次查找路由表- 例如在配置静态路由时不指定出接口,此时配置了也不能直接转发数据,当收到一个数据包后,先根据目的网络IP查路由表,获得下一跳地址,然后进一步根据下一跳地址查路由表来确定出接口。
-
R1配置到R2和R3环回口的静态路由,然后R2配置到R1环回口的静态路由,R3配置到R1环回口的静态路由
-
cisco # R1ip route 2.2.2.2 255.255.255.255 ethernet 0/0 12.0.0.2ip route 3.3.3.3 255.255.255.255 ethernet 0/1 13.0.0.3# R2ip route 1.1.1.1 255.255.255.255 ethernet 0/1 12.0.0.1# R3ip route 1.1.1.1 255.255.255.255 ethernet 0/0 13.0.0.1
-
配置静态路由后,通过带源ping进行测试,例如:ping 2.2.2.2 source 1.1.1.1
就是从指定的源IP地址(1.1.1.1)向目标IP地址(2.2.2.2)发送ICMP Echo请求(Ping)
那么如果想让2.2.2.2
能ping通3.3.3.3
呢,应该如何配置?
- 对R2:
ip route 3.3.3.3 255.255.255.255 ethernet 0/1 12.0.0.1
- 对R3:
ip route 2.2.2.2 255.255.255.255 ethernet 0/0 13.0.0.1
- 注意,只有双方都配置好后才能ping通,因为一次成功的 Ping 需要双向路径都可达
华为实操
网络IP规划同上面思科的
给接口配置IP地址
先给接口配置IP地址,以AR1为例:
system-viewsysname AR1interface LoopBack 0ip address 1.1.1.1 32Ctrl+Zinterface GigabitEthernet 0/0/0ip address 12.0.0.1 24Ctrl+Zinterface GigabitEthernet 0/0/1ip address 13.0.0.1 24display this
最后通过display ip interface brief
检查是否配置成功
查看华为的直连路由
查看路由表命令:display ip routing-table
输出如下:
[AR1]display ip routing-tableRoute Flags: R - relay, D - download to fib------------------------------------------------------------------------------Routing Tables: Public Destinations : 11 Routes : 11
Destination/Mask Proto Pre Cost Flags NextHop Interface
1.1.1.1/32 Direct 0 0 D 127.0.0.1 LoopBack0 12.0.0.0/24 Direct 0 0 D 12.0.0.1 GigabitEthernet0/0/0 12.0.0.1/32 Direct 0 0 D 127.0.0.1 GigabitEthernet0/0/0 12.0.0.255/32 Direct 0 0 D 127.0.0.1 GigabitEthernet0/0/0 13.0.0.0/24 Direct 0 0 D 13.0.0.1 GigabitEthernet0/0/1 13.0.0.1/32 Direct 0 0 D 127.0.0.1 GigabitEthernet0/0/1 13.0.0.255/32 Direct 0 0 D 127.0.0.1 GigabitEthernet0/0/1 127.0.0.0/8 Direct 0 0 D 127.0.0.1 InLoopBack0 127.0.0.1/32 Direct 0 0 D 127.0.0.1 InLoopBack0127.255.255.255/32 Direct 0 0 D 127.0.0.1 InLoopBack0255.255.255.255/32 Direct 0 0 D 127.0.0.1 InLoopBack0
Pre
:华为的管理距离(优先级)Cost
:华为的度量值(路径成本)Loopback 0
的下一跳为回环地址127.0.0.1
,表示接口本身,符合前面说的环回口不需要下一跳
查看接口地址 | 查看路由表 | |
---|---|---|
思科 | show ip interface brief | display ip interface brief |
华为 | show ip route | display ip routing-table |
⚠注意:在做非直连网络的测试前,一定要先测试直连网络的连通性
配置静态路由
以AR1为例:
system-viewip route-static 2.2.2.2 32 GigabitEthernet 0/0/0 12.0.0.2ip route-static 3.3.3.3 32 GigabitEthernet 0/0/0 13.0.0.3
- 通过
display ip routing-table
可以发现,华为静态路由的管理距离(优先级)默认值为60 - 注意,只有双方都配置好后才能ping通,因为一次成功的 Ping 需要双向路径都可达
华为带源ping
和思科的写法不同,华为的写法为ping -a <源IP> <目的IP>
,例如测试AR1的环回口到AR2环回口的连通性ping -a 1.1.1.1 2.2.2.2