默认路由是什么,凭什么它就行?

看资料就是说路由表没有就发给默认路由,路由表没有不是正常情况吗?默认路由到底是什么?往外发是哪里?是上一级路由吗?一直到运营商的路由服务器吗?
0.0.0.0/0就是默认路由,它指向的是默认网关,即Default Gateway。为了解释清楚这几个字,讲个小故事吧。
有一天梁思申怎么也上不了网,于是给宋运辉打电话请求帮忙。宋运辉到了一看,呀,你的无线路由器没有开啊,那怎么上网啊?
梁思申抿嘴一笑,宋运辉将无线路由器的电源打开。过了几分钟,路由器启动完毕,梁思申的电脑就可以上网了。
梁思申:宋大厂长,教教我一点IT知识呗,下次遇到网络问题,我自己就可以解决了。
宋运辉:这还不简单,无线路由器家庭网络的网关(Default Gateway)。家里的电脑、IPAD、手机统统要通过这个网关与Internet通信。你把网关的电源关闭了,那你还怎么上网呢?
梁思申:懂了。听说每个电脑还需要一个IP地址才可以上网,那又是怎么回事呢?
宋运辉:你家里那么多手机、电脑,没有IP地址怎么区分每个设备呢?
梁思申:好像是的。那每一个电脑的IP地址又是怎么来的呢?
宋运辉:无线路由器内部运行一个程序叫DHCP服务器,只要无线连接上它,就可以给电脑动态分配一个IP地址以及其它上网信息。你的电脑获得的IP信息如下:
  • IP地址 =10.1.1.2
  • 网络掩码 =255.255.255.0
  • 默认网关 =10.1.1.1
  • DNS服务器 =10.1.1.1
你的电脑也不是吃素的,它会根据以上信息生成4条路由表条目:
  1. 10.1.1.2 255.255.255.255    本地链路(下一跳)   ---- >  我自己
  2. 10.1.1.0 255.255.255.0         本地链路(下一跳)  ----- >  局域网,包括网关
  3. 0.0.0.0   0.0.0.0                     10.1.1.1 (下一跳)   ------>  互联网
  4. 255.255.255.255 255.255.255.255  本地链路(下一跳)   ------>  广播地址,局域网所有主机,包括自己
梁思申:这个路由表看起来好难啊,解释解释呗。
宋运辉:
  • Ping 10.1.1.2 时,使用路由1,这很好理解,自己与自己的本地通信。

  • Ping 10.1.1.1 时,使用路由2,同一网段的通信。

  • Ping 8.8.8.8 时,使用路由3,即默认路由,不同网段的通信。即你的主机与8.8.8.8主机不在一个网段。

  • Ping 255.255.255.255 时,使用路由4,广播通信,按照规则,这个网段(10.1.1.0/24)的主机都应该回复你,包括自己的主机。

梁思申:好像明白了。每次通信采用什么路由条目,是根据目的IP与路由条目的匹配度,匹配度越长的,越优先使用。如果没有匹配到,那么就使用0.0.0.0/0这条默认路由,做为最后的救命稻草,对吗?
宋运辉:看来你的小脑袋瓜不笨啊,一教就会!那我来考考你,如果DHCP服务器给你的电脑分配的IP参数少了一个信息,默认网关没有分配,你的电脑还能访问互联网吗?
梁思申:那就不能了。我的电脑没有了这条默认路由(0.0.0.0/0)。
宋运辉:很好。那电脑没有默认路由了,会怎么处理上网的报文呢?
梁思申:我猜猜,应该全部被扔了?
宋运辉:回答正确!再考你一个问题,你发现路由3与其它几条路由相比,是否有点另类?
梁思申:路由3 的下一跳和别的路由不一样。路由3 的下一跳 = 10.1.1.1,这个10.1.1.1应该就是路由器的IP地址,对吗?
宋运辉:是的。意思是当你Ping 8.8.8.8 这条命令产生的报文,需要发给网关10.1.1.1。
梁思申:Ping命令产生的报文,目的IP = 8.8.8.8, 源IP =10.1.1.2,那怎样才能将这个IP报文发给网关10.1.1.1呢?
宋运辉:这里有一个小花招。如果你的电脑将目的IP 修改为10.1.1.1, 那是可以将报文发给网关10.1.1.1。可是那不就相当于在 Ping 10.1.1.1了吗?并不是Ping 8.8.8.8的,对吗?
为了解决这个小难题,你的电脑只要将目的MAC,填写为网关的MAC地址即可
所以你的电脑需要发ARP广播,请求网关10.1.1.1的MAC地址。获得了网关的MAC地址之后,一个神奇的报文就诞生了。
  • 目的MAC= 网关10.1.1.1的MAC地址
  • 源MAC  = 10.1.1.2 的MAC地址 (梁思申的电脑MAC地址)
  • 目的IP =8.8.8.8
  • 源IP=10.1.1.2  (梁思申的电脑IP地址)
当这个报文被网关(无线路由器)网卡成功接收,无线路由器也要查路由表,最后也没有匹配到,那么只好使用最后的救命稻草:0.0.0.0/0,这条路由指向ISP。同理可得,将IP报文发给ISP路由器。这样相同的游戏一直玩到ISP的核心网才宣告结束,接下来的游戏可以参考这篇文章
(0)

相关推荐