我知道有多种路由协议(BGP等),但是当我连接到我的家庭网络时,linux使用哪种路由协议呢?我在使用基于debian的系统。
发布于 2020-01-26 11:00:33
路由有两个主要方面:第一个是如何路由数据包,第二个是系统如何知道如何路由数据包。
我不确定第一个是否有名字(至少,我不知道一个)。Linux内核维护一个路由表,它是与网络接口相关联的子网列表,也可以是网关、度量和各种其他选项。当系统发送数据包时,内核会查看其路由表;如果一个或多个条目描述包含数据包目的地的子网,则内核将其发送到相应的网络或网关;否则,它将进入默认网关。您可以通过运行
ip route(它将显示主表项)和
ip route table local(它将显示本地表项)或
ip route table all(这将显示一切)。
您至少应该看到这样的条目
default via 100.65.64.1 dev wlp3s0 proto dhcp metric 600
100.65.64.0/21 dev wlp3s0 proto kernel scope link src 100.65.67.24 metric 600这意味着到100.65.64.0/21 (我所在的子网)的数据包将通过wlp3s0发送,而不匹配路由表条目的数据包将发送到100.65.64.1 (默认网关)。
第二部分有多种算法。BGP是其中之一,但你通常只会在路由器上看到它。在典型的家庭设置中,使用来自DHCP on IPv4或NDP on IPv6的信息填充路由表。
路由表条目也可以添加,而不必与来自著名协议的信息相对应;例如,容器网络的条目通常由容器运行时直接添加。
https://unix.stackexchange.com/questions/564152
复制相似问题