在 Linux 上连接两个子网

在 Linux 上连接两个子网

两个子网如何连接?

我不能或者路由追踪这些子网之间。

Vbox1子网ifconfig:

eth0      Link encap:Ethernet  HWaddr 08:00:27:f1:68:9e
          inet addr:192.168.1.65  Bcast:192.168.1.255  Mask:255.255.255.0
          inet6 addr: fe80::a00:27ff:fef1:689e/64 Scope:Link
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:207703 errors:0 dropped:0 overruns:0 frame:0
          TX packets:41701 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000
          RX bytes:45480669 (45.4 MB)  TX bytes:4855362 (4.8 MB)

eth1      Link encap:Ethernet  HWaddr 08:00:27:79:02:34
          inet addr:10.0.3.15  Bcast:10.0.3.255  Mask:255.255.255.0
          inet6 addr: fe80::a00:27ff:fe79:234/64 Scope:Link
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:913 errors:0 dropped:0 overruns:0 frame:0
          TX packets:1335 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000
          RX bytes:129887 (129.8 KB)  TX bytes:150700 (150.7 KB)

lo        Link encap:Local Loopback
          inet addr:127.0.0.1  Mask:255.0.0.0
          inet6 addr: ::1/128 Scope:Host
          UP LOOPBACK RUNNING  MTU:65536  Metric:1
          RX packets:15106 errors:0 dropped:0 overruns:0 frame:0
          TX packets:15106 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:0
          RX bytes:949613 (949.6 KB)  TX bytes:949613 (949.6 KB)

还有 p4(因为我无法从这里访问该机器,所以我给出了手动输入的摘要):

etho : only inet6 addr
lo : inet addr : 127.0.0.1 Mask : 255.0.0.0
venet0 : only inet6 addr
vmbr0 : inet addr : 192.168.0.70 BCast : 192.168.0.255 Mask : 255.255.255.0

两个子网连接成功。切换后互联网服务提供商我无法再访问 p4 子网。所以有些事情已经发生了变化,但我认为这应该是一个小问题,因为在使用子网之前它运行正常。

我读过了两个子网中的虚拟机,但建议使用虚拟局域网。但根据分割流量的最佳方式,VLAN 还是子网?VLAN 工作在网络第 2 层,子网工作在网络第 3 层。应该使用第 3 层,即子网。

所以我应该在这些子网之间有一个网关。

根据Ubuntu KB - 网络配置我添加到 vbox1:

sudo route add default gw 10.10.14.81 eth1

但它会产生:

SIOCADDRT: Network is unreachable

搜索返回Ubuntu 隧道或网关主机地址和网络地址之间的区别。

供您参考,vbox1 是Ubuntu 13.04(咆哮的环尾猫)并且 p4 是Debian 7.5(喘息)。

我现在陷入困境。

答案1

将 vbox1 移至其他子网:将其在 eth0 上的 IP 地址从 192.168.1.65 更改为 192.168.0.65(或子网 192.168.0.0/24 中的其他空闲 IP 地址)。然后,vbox1 知道可以通过哪个接口访问 p4(192.168.0.70)(--> 通过 eth0)。然后 vbox1 自动调整其路由表。现在您应该能够从 vbox1 访问 p4。如果您想从 192.168.1.0/24 中的任何其他客户端访问 p4,则需要将 vbox1 配置为路由器(即可以将到达 eth1 [192.168.1.0/24] 的数据包转发到 eth0 [192.168.0.0/24](反之亦然)的设备。这就是“连接两个网络”的含义)。

具体怎么做取决于你使用的发行版。基本上,你需要将“1”写入设备文件/proc/sys/net/ipv4/ip_forward

喜欢echo 1 > /proc/sys/net/ipv4/ip_forward

但是,这仅在当前启动周期内有效。重启后该设置将消失。

如果要永久执行此操作,则必须将此行放入某些启动脚本中。如果您使用的是 Ubuntu,也可以将其放入 /etc/sysctl.conf(我不确定其他发行版是否如此)。取消注释此行net.ipv4.ip_forward=1。如果要立即生效,也可以发出sudo sysctl -w net.ipv4.ip_forward=1而不是上面提到的“echo”。

另请参阅askubuntu.com 上的链接。

相关内容