路由表(Routing Table)是网络设备(如计算机、路由器、交换机等)用来确定数据包传输路径的数据库。每当网络设备收到一个数据包时,它会查找路由表,决定将数据包转发到哪个网络接口或网关。下面介绍路由表的基本组成、功能以及如何查看和管理路由表。
路由表的基本组成
路由表通常包括以下几项:
- 网络目标(Network Destination): 数据包要到达的目标网络或主机。通常以 IP 地址或子网表示。
- 网络掩码(Netmask/Subnet Mask): 用于确定网络目标中的哪一部分是网络地址,哪一部分是主机地址。
- 网关(Gateway): 数据包应该转发到的下一跳地址。如果网络目标是本地网络,网关可能为空。
- 接口(Interface): 数据包应该通过的网络接口(如以太网端口、Wi-Fi 端口)发送。
- 跃点数(Metric): 到达目标网络的代价或优先级。跃点数越低,优先级越高。
路由表的功能
数据包转发: 根据目的 IP 地址决定数据包应该转发到哪个接口或网关。
路径选择: 当有多个路径可用时,根据跃点数选择最优路径。
网络分段: 将网络划分成不同的子网,优化网络流量和安全性。
动态调整: 使用动态路由协议(如 OSPF、BGP),路由表可以根据网络拓扑的变化动态更新。
windows
windows添加路由表只需要指定网关,不需要指定接口,操作系统会自动选择合适的网络接口来发送数据包,以便达到指定的目标网络。
例如你指定网关是192.168.137.1,则window会根据网卡的配置找到它的接口地址是192.168.137.2
# 打印路由表
route print
# 添加路由表: route [-p] add <目标网络> mask <子网掩码> <网关> metric <跃点数> [IF interface]
# 删除路由表
route delete <目标网络>
# 修改路由表, CHANGE 只用于修改网关和/或跃点数
route CHANGE 157.0.0.0 MASK 255.0.0.0 157.55.80.5 METRIC 2
linux
# 打印路由表
route
# 添加路由表: route add -net <目标网络> netmask <子网掩码> gw <网关>
# 删除路由表: route del -net <目标网络> netmask <子网掩码>
# 修改路由表
通常需要先删除旧路由,再添加新路由