我们将第1列与第3列合并起来,会惊奇地 发现,第一列不就是网络地址吗?忘记的同学可以翻看第2期视频 。Flag带有G的规则代表网关规则,若数据包的目的IP地址与路由表中目的地址匹配,路由器会将数据包转发到Gateway中的网关地址 。如果flag不带G,说明本条规则不是网关规则,目标地址肯定就在本地链路 , 通过同一个交换机相连 。
如何看路由表
举个例子,如果想发送数据给百度的服务器39.156.69.79,匹配到的目的地址是0.0.0.0/0,那么这个数据包就会被转发给网卡eth0,走默认网关192.168.0.1 。
局域网内发送消息给百度
如果数据包的目的地是我的办公室的主机 , IP地址为192.168.2.12,那么会同时符合两个目的网段,0.0.0.0/0和192.168.2.0/24 , 但是路由器会优先匹配更精确的规则,所以数据包通过tun0网卡转发给网关192.168.10.12 。
数据包发送到办公室
3.2网络数据包的长距离传输:网络数据包长距离传输的过程中,会经过一个个的路由器,我们拿局域网内一台主机和百度的通讯举个例子,假设局域网内一台主机192.168.0.4/24要访问公网上的百度主机39.156.69.79 。主机查询自己的路由表,把数据包发送给谁呢?
主机查询自己的路由表 , 把数据包发送给默认网关192.168.0.1(路由器LAN端IP地址) 。路由器收到数据包后,继续发送给更上级的默认网关(运营商的路由器),经过多个路由的传递,最终百度主机就会收到信息了 。
我们在centos系统中 , 可以使用traceroute -n http://baidu.com的命令查看中途经过了哪些路由器 。我们很清晰地看到 , 第一个经历的路由器就是我们自己的路由器192.168.0.1,第二个路由器是运营商的路由器,27.19.176.1,中间的路由器都是城市路由的节点 。
到百度主机经历的路由器
3.3.路由规则的获得路由器如何获得路由规则?
路由器想要实现路由功能,首先路由器本身得知道数据应该向哪里传 。路由器得知这些信息的方式大致有3种,第一种方式是直连路由;第二种是通过手动添加路由规则,也就是静态路由 。第三种是通过动态路由协议获得的路由 , 一般在城市或大型企业网络运用比较多,家庭网络甚至小型企业根本用不上,我们主要了解一下前两种方法 。
第一种方式是直连路由 。
当主机正确配置好一个IP地址后,会自动生成一条目的地址为该子网的路由 。例如树莓派的网卡eth0通过dhcp获得192.168.0.4/24的ip地址,那么会自动产生一条目的地址为网段192.168.0.0/24的路由 。如果我在网卡tun0上手动设置IP地址为192.168.10.4/24,也会增加192.168.10.0/24的路由 。
第二种方式是手动添加静态路由 。
例如我添加目的地址为我办公室的子网192.168.2.0/24 , 网关地址为192.168.10.12,因为树莓派本机根本不知道192.168.2.0/24的子网在哪里,所以必须手动设置 。再例如,在mac系统中,手动配置IP地址时,填写的网关或路由 , 会生成路由表中的默认路由 。
推荐阅读
- 菊花茶的种类 菊花茶的种类有哪些
- 安徒生被称为 安徒生有什么美誉
- 入户广州户口条件有哪些 入户广州户口的条件是什么
- 龙抬头吃什么 龙抬头有什么食俗
- 要的 要的笔顺
- 晒娃10字短句 晒娃10字短句有哪些
- 水稻栽培的第一部书是什么书 第一部有关水稻栽培技术的农书
- 发财树的养殖方法和注意事项 发财树的养殖方法和注意事项分别有哪些
- 香蕉的功效与作用 香蕉的功效与作用有哪些
- 檐的组词有什么 木的组词有什么