同时使用两个网络?

同时使用两个网络?

我想在教室(由本地有线 ISP 提供带宽的计算机实验室)中使用 Ubuntu 10.10 Server。这没问题,尽管学校网络有我想使用的 IP 打印机。我无法通过有线互联网访问该打印机。但是,我有两张网卡。

如何才能同时使用这两个网络?

eth0(静态 192.168.1.254)插入四端口路由器 192.168.1.1。四端口路由器的公共端是有线电视公司提供的互联网。我还将教室工作站插入交换机。交换机插入四端口路由器。整个教室都连接到有线互联网。

另一个 NIC,eth1,可以插入墙上的以太网插孔吗?它使用学校网络,我可能会通过 DHCP 收到一个 IP 地址,如 10.140.10.100,而打印机可能位于 10.120.50.10。

我考虑在服务器上安装打印机,以便与工作站共享。但这该怎么做?我是否可以只将 eth1 插入学校网络并访问两个 LAN?

auto lo
iface lo inet loopback

auto eth0
iface eth0 inet static
address 192.168.1.254
netmask 255.255.255.0
network 192.168.1.0
broadcast 192.168.1.255
gateway 192.168.1.1

auto eth1
iface eth1 inet dhcp

答案1

我假设您没有在 Ubuntu 机器上本地设置任何路由。

如果您的目标 IP 地址与直接连接的接口共享地址空间,则它应该默认路由到正确的 IP。

您将能够看到您的接口“拥有”哪些网络ip route show
例如,

$ ip route show
192.168.2.0/24 dev eth0  proto kernel  scope link  src 192.168.2.22  metric 1 

在这种情况下,192.168.1.x/24地址 (eth0) 将成为同一 的网关192.168.1.x/2410.x.x.x地址将成为其子网掩码内所有地址的网关10.x.x.x。这实际上是您在 bacon 的答案中看到的。它显示了一个 ping 测试,其中网关和目标 IP 地址位于同一网络中 - 网络掩码完全匹配。 与接口192.168.43.102位于同一/24网络内(如网络掩码所示255.255.255.0)。

唯一的问题是会对其他子网造成混淆——连接到出站 ISP 路径的接口需要成为所有未直接连接的路由的“最后的网关”。

您可以让它工作,但您应该做一个快速测试,以确保您可以获得所需的资源。您可能会发现需要使用route add添加默认路由。

答案2

我在家里做了一个快速测试设置,一个 10.0.1.0 网络和一个 192.168.43.0 网络(第一个是我的常用 LAN,通过以太网;第二个是我的手机,通过无线网络)。我 ping 到任何一个网络都没有问题,所以我希望计算机能够在两个网络上找到打印机,因为它会自动使用正确的网络接口。我 99% 地确信你不会遇到任何问题(如果出现另外 1% 的问题,请不要起诉我)。

两个 LAN 均能 ping 通

答案3

只是为了完成其他答案:如果您的电脑无法连接到您的设备,您可以通过添加路由“强制”网络设备使用特定地址和/或子网,而无需弄乱默认路由。

在为我的某个 Wi-Fi 设备添加特定路由之前,我的路由如下:

# Note: ro is a shorthand for route.
$ ip -4 ro
default via 192.168.0.254 dev eth0  proto static 
192.168.0.0/24 dev eth0  proto kernel  scope link  src 192.168.0.20  metric 1 
192.168.0.0/24 dev wlan0  proto kernel  scope link  src 192.168.0.15  metric 9

请注意,它们都使用相同的子网,并且 ping 192.168.0.17(仅在 Wi-Fi 网络上的设备)失败(不确定这是否正常)。

使用sudo ip -4 ro add 192.168.0.17 dev wlan0,我添加了一条路由,指定wlan0应用于 192.168.0.17。

我现在可以使用 wlan0 接口连接到该主机,而其他所有东西仍通过 eth0(速度快得多!)。删除新添加的路由非常简单,只需用 替换add即可del

似乎也可以从图形网络管理器来管理路由,尽管使用命令行要快得多。

答案4

我认为您在这里遇到的问题是,像学校这样的大型机构网络可能会使用多个子网。默认情况下,第二个网络接口将仅成为 DHCP 分配给您的子网的首选路由。

您应该使用以下命令检查 DHCP 分配给您的 eth1 接口的子网掩码是什么:

ip addr show dev eth1

要检查打印机是否属于 DHCP 分配的同一子网,您可以使用以下在线检查器:

https://tehnoblog.org/ip-tools/ip-address-in-cidr-range/

只需在第一个框中输入学校打印机的 IP 地址,并在第二个框中输入上述命令中包含 /number 部分的 IP 地址。

如果此工具显示打印机 IP 地址不在 CIDR 范围内,那么这就是您遇到的问题,您需要通过 eth1 接口手动添加静态路由。

为此,您可以使用以下命令检查 DHCP 服务器为您分配的默认路由,找出您需要在学校网络上使用的网关。

ip route show dev eth1

然后,要添加打印机路由,您可以使用以下命令:

ip route add [printerip] via [schoolgateway] dev eth1

您可以省去每次都执行此操作的麻烦,因为 /etc/network/interfaces 允许您使用 up 选项后跟要运行的命令来配置在网络接口启动时要运行的命令。如果您需要运行多个命令(例如,如果您需要添加多个路由),则可以多次包含此选项。以下是使用一个命令的示例:

auto eth1
iface eth1 inet dhcp
up ip route add [printerip] via [schoolgateway] dev eth1

请注意,这只会为打印机添加一条路由,如果您需要访问学校网络上的其他内部服务,则可能需要一条更宽的路由或多条路由。如果是这种情况,我建议您咨询学校的 IT 部门,因为他们应该能够告知您在学校网络上哪些地址范围应该可路由以及每个地址范围应使用哪个网关。然后,您可以根据需要使用以下命令添加这些内容:

ip route add {NETWORK/MASK} via {GATEWAYIP} dev eth1

再次通过将它们添加到 eth1 的 /etc/network/interfaces 配置末尾来实现自动化,格式如下:

up ip route add {NETWORK/MASK} via {GATEWAYIP} dev eth1

相关内容