路由表
路由表是指路由器或者其他互联网网络设备上存储的一张路由信息表,该表中存有到达特定网络终端的路径,在某些情况下,还有一些与这些路径相关的度量。
在Linux下可以使用route查看路由表:
其中
- Destination是目的网络地址
- Gateway是下一跳地址
- Genmask是子网掩码
- Iface是发送接口
- Flags中的U标志表示此条目有效(可以禁用某些条目),G标志表示此条目的下一跳地址是某个路由器的地址,没有G标志的条目表示目的网络地址是与本机接口直接相连的网络,不必经路由器转发,因此下一跳地址处记为* 号。
- Iface是发送接口
例:
这台主机有两个网络接口,一个网络接口连到192.168.10.0/24网络,另⼀一个网络接口连到192.168.56.0/24网络。
如果要发送的数据包的目的地址是192.168.56.3,跟他的子网掩码(255.255.255.0)做与运算得到192.168.56.0,与目的网络地址不符,再跟第二行的子网掩码做与运算得到192.168.56.0,正是第⼆行的目的网络地址,因此从eth1接口发送出去,由于192.168.56.0/24正是与eth1 接口直接相连的网络,因此可以直接发到目的主机,不需要经路由器转发。
如果要发送的数据包的目的地址是202.10.1.2,跟前三行路由表条目都不匹配,那么就要按缺省路由条目,从eth0接口发出去,首先发往192.168.10.1路由器,再让路由器根据它的路由表决定下⼀跳地址。