如果使用接口而不是地址指定,quagga 中的默认路由将不起作用

如果使用接口而不是地址指定,quagga 中的默认路由将不起作用

zebra.conf我的路由器盒“A”上有以下内容:

hostname nuclear-router
password password
enable password password

interface eth0
ip address 192.168.2.1/24
multicast
no shutdown

interface wlan0
ip address 192.168.1.2/24
multicast
no shutdown

#ip route 0.0.0.0/0 wlan0 # Does not work. 
ip route 0.0.0.0/0 192.168.1.1 # Works beautifully

eth0连接到交换机,包含 192.168.2.0/24 范围,A 无线连接到我的 WRT54GL“B”(IP 为 192.168.1.1,包含 192.168.1.0/24 范围,DHCP 提供 .100 以上的 IP)。B 直接连接到我的 DSL 调制解调器。

问题是,当我使用接口名称指定默认路由时,我无法从 A 或其后面的任何主机连接到互联网 - 我总是遇到“无主机路由”错误。名称查找和 ping 任何本地主机(即使在不同的范围内)或 DSL 调制解调器工作正常 - 只有当超出调制解调器时,事情才会停止工作。但是,当我使用 B 的 IP 作为网关时,它工作正常。我注意到,route当仅使用接口指定默认路由时,A 上的输出在网关列中只有一个星号。我以为这些方法在实践中应该是相同的,所以虽然我让它工作了,但我想知道我误解了什么(和/或配置错误)。为什么仅使用接口指定默认路由时不起作用?

所有路由器和调制解调器都启用了 RIP(版本 2),当然密码也没有真的“密码”这个词。

答案1

虽然当目标是点对点第 2 层链路时,默认路由可能以所需的方式工作,但它肯定不会对以太网或 WLAN 等广播接口起作用。可配置路由位于 OSI 第 3 层(IP 编号),并且不应该需要 MAC 地址(第 2 层)、接口名称(第 1 层)或端口号或数据包类型(第 4 层以上)。一旦为路由提供了正确的目标 IP 编号,路由器就会处理将数据包转发到哪个 MAC 地址以及该 MAC 连接到哪个接口。

总之,将默认路由设置为接口名称不起作用,因为它不应该...如果您不知道哪个 IP 地址应该处理非本地流量的转发,那么最好不要设置默认路由。

答案2

我觉得你把主机名和接口名搞混了。名称wlan0是接口的名称。主机名存储在 DNS 中,并且是查找返回的内容。

最有可能的是,DNS正在查找主机wlan0并出现错误未找到主机

相关内容