我所在的大楼里有一个 LAN,使用 10.10.19.* IP 范围。此外,我家里有一个 ADSL 连接,内部使用 192.168.1.* IP 范围。我还有两个以太网卡。
有什么方法可以让我同时访问这两个网络?我需要一条规则,将所有 10.10.19.* 流量路由到 eth0,将其他所有流量路由到 eth1。这可能吗?
我需要在 Ubuntu 9.10 和 Windows 7 上执行此操作。
答案1
绝对有可能。你需要正确配置你的路线才能做到这一点。你想让你的默认路由通过你的eth1,因此你的路由表应如下所示:
$ /sbin/route
Kernel IP routing table
Destination Gateway Genmask Flags Metric Ref Use Iface
10.10.19.0 * 255.255.255.0 U 0 0 0 eth0
192.168.1.0 * 255.255.255.0 U 0 0 0 eth1
default 192.168.1.1 0.0.0.0 UG 0 0 0 eth1
route print
使用该命令,Windows 看起来会有些类似(当然格式有所不同) 。
您可以使用任一平台上的命令动态设置路由route
。我不确定需要哪些配置选项才能将其中一个设置为默认值(显然,另一个设置为非默认值)... 将使用该信息进行编辑。
编辑:如果您使用 GNOME 或 KDE GUI 网络管理器,请在设备配置中查找“将此接口设置为默认接口”选项eth1
。
如果你/etc/network/interfaces
手动配置,请查看本 HOWTO 中的示例。具体来说,该up
选项允许您在接口启动后运行命令。对于您的情况,您可能需要使用该选项在额外的默认路由上运行 route-delete 命令,或者如果您的两个接口都没有将自己设置为默认路由,则运行 route-add 命令:
# example /etc/network/interfaces
# replace the IP addresses in the route-del and route-add commands below
# with those appropriate to your network
auto eth0
iface eth0 inet dhcp
up route del default gw 10.10.19.1
# runs a route-delete if dhcp adds a default gateway for this interface
auto eth1
iface eth1 inet dhcp
up route add default gw 192.168.1.1
# runs a route-add if dhcp neglects to add a default gateway for this interface
答案2
是的你可以。
如果您为两个 NIC 设置了正确的 IP 地址,它们将负责通过正确的接口路由数据包。
您唯一需要做的就是为不直接发往 10.10.19.* 和 192.168.1.* 网络的数据包设置默认路由(可能是 192.168.1.* ADS 网络上的路由器)。
在 Linux 中:
$ sudo route add default gw 192.168.1.1
在 Windows 中:
使用控制面板设置默认路线。
答案3
只要两个网络都使用 DHCP 来分配 IP 地址,并且只有其中一个网络尝试成为您的默认网关,这应该就可以正常工作。
如果两者都尝试成为默认网关,并且都允许路由到整个互联网,那么它可能也会起作用,但我猜 ADSL 线路的意义在于您希望外部互联网流量通过该线路,而不是通过其余 LAN 共享的任何连接?
按照您打算使用的网卡连接后,可以在 Ubuntu 中运行以下命令并让我们知道输出:
sudo ifconfig
sudo route
这将告诉您当前安排中自动设置了哪些地址和路由。