我正在 VirtualBox 上试验 OpenWrt。以下是我所拥有的:
- openwrt虚拟机
- 适配器 1 已桥接。从我的实际路由器获取 192.168.1.x 地址。
- 适配器 2 是本地网络“openwrt-lan”。配置为静态桥接。
- Debian 虚拟机
- 适配器 1 是本地网络“openwrt-lan”。使用 DHCP 配置。
我的 /etc/config/network 文件是这样的:
config interface 'loopback'
option ifname 'lo'
option proto 'static'
option ipaddr '127.0.0.1'
option netmask '255.0.0.0'
config interface 'wan'
option proto 'dhcp'
option ifname 'eth1'
config interface 'lan'
option ifname 'eth0'
option proto 'static'
option ipaddr '192.168.2.1'
option netmask '255.255.255.0'
现在 Debian VM 成功获取 192.168.2.136 地址,并且可以看到 openwrt。路由表如下:
Destination Gateway Genmask Flags Metric Ref Use Iface
default OpenWrt.lan 0.0.0.0 UG 0 0 0 eth0
link-local * 255.255.0.0 U 1000 0 0 eth0
192.168.2.0 * 255.255.255.0 U 1 0 0 eth0
/etc/resolv.conf:
# Dynamic resolv.conf(5) file for glibc resolver(3) generated by resolvconf(8)
# DO NOT EDIT THIS FILE BY HAND -- YOUR CHANGES WILL BE OVERWRITTEN
nameserver 127.0.0.1
search lan
但是,它看不到 openwrt 之外的内容。tracert 8.8.8.8 显示流量在 openwrt 路由器处停止。
还有一件奇怪的事情是,尽管进行了上述配置,openwrt VM 上的 eth0 却没有 IP。不确定这是否相关。
任何意见均表示感谢。
答案1
这不起作用的原因是这是一个杂交种设置,因为它使用 VirtualBox 内部的 DHCP,与 OpenWrt 无关。
在实际情况下(哈哈),您的 Debian VM 会从 OpenWrt 路由器接收 IP,同时还会接收设置正确路由表所需的信息。但在您的模拟中,Debian VM 到目前为止尚未与 OpenWrt 路由器直接交互:它不会从路由器接收 IP 地址,也不会接收默认网关。
你可以通过将 Debian VM 视为具有静态 IP 来补救这种情况:因此,在启动 NIC 并为其分配 IP 地址后,你还必须手动设置路由表和 DNS 服务器:在 Debian 计算机上,发出
sudo ip ro add default via 192.168.2.1 dev eth0
如果你的 OpenWrt 路由器的 IP 地址是 192.168.2.1,并且 Debian NIC 名为 eth0,则请进行相应更改。然后在文件 /etc/resolv.conf 的底部添加以下两行:
nameserver 8.8.4.4
nameserver 8.8.8.8
现在它应该可以工作了。