什么是局域网的网关
网关需要与局域网同一个网段, 否则,局域网的设备无法获取到网关的mac地址,也就无法进行通信。
数据包到达网关之后, 再通过路由将其转发出去。
使用route查看路由表
路由表的Destination为目标地址的网络号,
Gateway为网关地址, 如果网关地址为0.0.0.0表示该路由是直连的, 无网关。
Genmask为掩码, 一个目标地址最先经过掩码的操作,得到网络号。掩码为0.0.0.0, 为最差的路由匹配原则,一般为默认路由。
Flags为路由状态, U表示Up, G表示有网关地址。
Metric为度量, 表示路由需要的跃点数。
Iface为对应的网络接口。
路由转发规则
路由匹配算法主要通过最长匹配原则(掩码前缀),
一般来说,255.255.255.0 是最长的匹配原则,匹配之后的网络号会更为精确, 0.0.0.0是最短的匹配原则,也是设备的默认路由,
- 首先, 目的地址先经过掩码匹配完之后, 会得到一个网络号Destination。 如果有多个路由规则的掩码之后得到的网络号和Destination一样的话,那就看Metric的值; 如果掩码之后的网络号和Destination都不一样的话,则走0.0.0.0的默认路由。
- 找到路由之后, 就开始将包往gateway (网关)地址上丢。 ==如果网关为0.0.0.0或者*的话,表示该路由不需要路由,==也就是想要发送的报文将会被该路由规则后面的网口 通过ARP查找目标地址, 然后丢包出去; 相反,如果网关地址为正常ip地址的话,则想要发送的报文会通过该路由规则后面的网口发到此路由的网关地址上。