我有一个运行OpenWRT的华为无线路由器。
路由器通过PPPoE方式上网,同时在LAN(局域网)中拥有以太网地址,配置如下:
Address: 10.100.219.174 NetMask: 255.255.255.0 Gateway: 10.100.219.254
我想同时访问互联网和局域网,所以我连接了 PPPoE,然后使用route
命令设置路由。之后的路由表是:
Destination Gateway Genmask Flags MSS Window irtt Iface default 58.247.228.1 0.0.0.0 UG 0 0 0 pppoe-wan 10.0.0.0 10.100.219.254 255.0.0.0 UG 0 0 0 eth2.1 10.100.219.0 * 255.255.255.0 U 0 0 0 eth2.1 58.247.228.1 * 255.255.255.255 UH 0 0 0 pppoe-wan 192.168.0.0 * 255.255.255.0 U 0 0 0 br-lan
此时,我可以访问 Internet 和 LAN路由器(我可以 ping 谷歌和任何 LAN 地址)。
但在我的笔记本电脑(连接到路由器)上,我只能访问互联网。如果我尝试访问某个肯定已启动的 LAN 地址(10.20.2.12),它会告诉我:
PING 10.20.2.12 (10.20.2.12): 56 data bytes Request timeout for icmp_seq 0 92 bytes from openwrt.lan (192.168.0.1): Destination Port Unreachable Vr HL TOS Len ID Flg off TTL Pro cks Src Dst 4 5 00 5400 bded 0 0000 3f 01 f04f 192.168.0.164 10.20.2.12
我是否错过了某些步骤?
答案1
首先,您尝试路由的网络存在两次:10.0.0.0/8 包含网络 10.100.0.0/24。在这种情况下,您尝试访问的主机(在 Eth2.1 上)可能不知道将其答案发送到哪里;openwrt 使用默认网关(当您使用 WAN 连接时,这意味着 NAT)来处理返回的数据包(如果有)。
只需检查您尝试访问的主机上是否设置了正确的网关。然后检查第二个网络上是否有数据包(使用 wireshark 或类似工具);如果有,请查找目标地址。“路由”设备上的子掩码可能错误 (/8)。
如果不是,请使用不包含在您的 LAN 范围内的其他 IP 范围。