巴拉巴

 找回密码
 立即注册

站内搜索

搜索
热搜: 活动 交友 discuz
查看: 103|回复: 0

网络之路2:初识路由表

[复制链接]

7

主题

7

帖子

21

积分

新手上路

Rank: 1

积分
21
发表于 2023-6-8 16:28:10 | 显示全部楼层 |阅读模式
回顾

通过前面的介绍(网络之路1:初识网络),我们大概掌握了如何查看电脑终端的网络身份-IP地址。从操作过程中不难看出,使用桌面UI进行配置,操作简单并且显示比较直观,但是步骤稍微多一些;而通过命令行进行配置,往往需要比较简单的命令就能获取比较全面的结果,但是相对而言的操作难度比较大。
那如果要区分UI交互操作和CLI命令行交互操作孰优孰劣,也只能是见仁见智了,一般配置的时候也是两者结合着来。
这里就可以提一个通过UI交互看不到的操作,那就是路由表。目前我们还没有什么方式可以在UI交互中找到路由表的相关展示界面,最简单的方法范围是通过命令行进行操作。
我们可以在命令行中通过route命令来操作网络路由表,最常用的命令就是print(打印路由)、add(添加路由)和delete(删除路由),还有一个不太常用的change(修改现有路由)
例如,使用命令route print -4,就可以打印IPv4的所有路由表信息。
注意,这里就能看出命令行难不难了,如果大家具备高中的英语水平的话,就能看出route print可以直译成中文“路由打印”,-4代表强制匹配IPv4路由表。其实这也是一般系统的命令行配置的典型案例,比如其他的Linux操作系统、macOS操作系统等等,也都是采用这种英文单词组合的方式。比如在CentOS系统中,查看路由表的命令可以是route,-v表示查看详细信息。
也可以使用ip route。
这两个命令其实是有差别的,分别属于不同的模块。route命令就是route模块,ip route命令其实是ip命令下面的route模块,我们可以使用Linux系统的帮助命令help来查看详细信息。
ip help命令直译为ip帮助”,可以查看ip命令支持的配置参数。可以看到,route只是众多配置参数中的一个。
而ip route help命令直译为ip路由帮助”,可以查看ip route命令支持的配置参数。
对比route help(路由帮助)所显示的route命令所支持的配置参数,我们可以看到,两者的配置功能存在很大差异。这种情况下就要结合实际情况来进行使用了。
然后回到Windows系统中,还记得tracert看到的转发路径吗?
tracert的全称是traceroute,直译为“追踪路由”“追踪路径”,也就是检查从电脑本机访问到目标站点所经过的网络转发设备。比如说我的电脑怎么知道第一跳要发送到192.168.1.1这台设备,就是查的本地的路由表。
路由表是一个网络设备(如路由器、交换机、网络终端等)中存储的表格,包含了该设备可到达其他网络的信息和如何到达这些网络的路径。路由表中的每一条记录称为路由项(或路由记录),它指示了到达某个目标网络的下一跳路由器或直接连接的接口,并指定了到达目标网络的路由协议和距离等信息。
还是以我们电脑的路由表为例,我们看到主要有5列,分别为网络目标、网络掩码、网关、接口和跃点数。接口指的就是我电脑本身的网卡所使用的IP地址,跃点数也叫距离,不过我们还是习惯称之为“优先级”,在网络目标和网络掩码相同时来区分几条路由项的优先级,数值更小的路由项会被优先选中以转发数据,下一跳就是网关对应的地址。
当终端或网络设备要发送数据包时,它会根据最长匹配原则查找路由表,确定数据包的下一步去向。查找成功之后设备将数据包转发到正确的下一跳路由器或直接连接的接口,最终到达目标网络。
网关这里我们可以看到他有3个值,网卡数量越多,对应的网关数量也就会越多。其中“在链路上”表示接口的IP地址可以匹配网络目标与网络掩码所对应的网络,如10.153.117.4/24可以分别对应10.153.117.0/255.255.255.0、10.153.117.4/255.255.255.255和10.153.117.255/255.255.255.255,参考(IP和家庭)我们可以知道,这三个路由项可以简写成10.153.117.0/24、10.153.117.4/32和10.153.117.255/32,分别是网络地址、主机地址和广播地址。
1)网络地址(Network Address):网络地址是指一个IP地址中用来标识网络部分的位。在IPv4中,网络地址通常由32位二进制数表示,并根据子网掩码将其划分为网络地址和主机地址两部分。网络地址标识了设备所连接的网络。
2)主机地址(Host Address):主机地址是指一个IP地址中用来标识主机部分的位。主机地址标识了设备在该网络中的具体位置。
3)广播地址(Broadcast Address):广播地址是一个特殊的IP地址,用于向同一网络中的所有设备发送数据包。在IPv4中,广播地址的格式是将网络地址部分全部设置为1,主机地址部分全部设置为0,即最后一个主机地址。广播地址是一种广泛使用的网络通信机制,例如DHCP、ARP等都使用广播地址。
也就是说,当我们确定了接口的IP地址和掩码之后,就能对应的确认该IP地址所对应的网络地址、主机地址和广播地址,这几个路由项所对应的网关都是“在链路上”,去往这些网络目标的报文都会从对应的网卡进行转发,这些路由项也叫“直连路由”
如果不是直连路由转发,那就要经过“网关设备”了。网关设备是一种用于实现网络互联的设备,通常用于将一个网络与另一个网络连接起来,从而实现网络间的通信。网关设备可以是路由器、交换机、防火墙、代理服务器等,它们的主要功能是实现数据包的转发和路由选择,如果要访问的目标IP地址不在网关设备上,他会继续重复查路由表转发这一操作,转发到它的“下一个”网关设备,以确保数据能够正确地到达目的地。
所以,就出现了我们使用tracert看到的一跳一跳的现象,除了最后一跳是目标主机之外,中间经过的每一跳都可以看做是一个“网关”
还是之前上海的云主机,我通过openVPN实现了我电脑直连这台云主机,现在这台云主机上有两个网卡,都配置了IP地址。
我现在想从我的电脑上直接访问172.31.0.73/24这个IP地址,我们先看一下路由表的查表结果。
没有命中明细的路由项,只能匹配到0.0.0.0/0这个路由项,转发给192.168.1.1这个网关。但是实际上我们知道转发给192.168.1.1是不能成功转发到目的主机的,所以此时我们要修改主机的路由表,通过route add命令来增加一条路由项。
如果出现“请求的操作需要提升”这个提示,就说明我们该使用管理员权限了。
操作成功之后,我们就可以看到添加的路由项了。然后测试一下是否可以访问。
可以看到,正如我们前面所说,现在当请求报文转发给网关10.153.214.1时,他发现请求的IP地址就在本地,也就是“在链路上”,所以直接进行了响应。而配置路由这个操作,我们之前也使用了自动下发命令,所以正常是可以直接通信的。
对应的,如果我们想删除这条路由,使用route delete命令就可以了。
以上只是经过一台网关设备的场景,如果经过多台网关设备,则在沿途的每一台设备上都要添加对应的路由表项,才能保证报文正确送达。
现在,你知道路由表对于网络通信的正确性和效率又多重要了吧?

来源:http://www.yidianzixun.com/article/0ovBk3nr
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

x
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

  • 返回顶部