Ubuntu 18.04 中的虚拟网卡

Ubuntu 18.04 中的虚拟网卡

我们是一群在悉尼大学完成开发项目单元的学生。我们在 Linux 路由方面遇到了困难,非常感谢您指出正确的方向。我们的总体任务是结合移动互联网连接来增加带宽。

System Diagram 我们想要什么 我们有几个路由器,它们都有自己的子网,全部馈入交换机。想要在一台机器上像使用自己的网关一样使用每个路由器。

我们希望使用MPTCP来利用每个链路来扩展网络带宽。上图中的 Raspberry Pi 仅充当路由器。我们在 RP 上使用 iptables 将数据包从以太网转发到 4G 互联网。例如,我们有 4 个路由器,子网为 192.168.101.0/24、192.168.102.0/24、192.168.103.0/24、192.168.104.0/24。在笔记本电脑中,只有一个物理网卡eth0。我们想在笔记本电脑上设置 MPTCP,为每个 Raspberry Pi 使用虚拟 NIC 或路由规则。

我们尝试了什么?

我们曾经ip addr add在物理 eth0 上添加多个 IP 地址。然后我们尝试添加基于的路由规则http://multipath-tcp.org/pmwiki.php/Users/ConfigureRouting。但最终所有流量仍然通过默认路由器。我们已经成功地将 MPTCP 与连接到笔记本电脑的不同(非虚拟)NIC 结合使用。

我们想知道什么? 这可行吗?

我们还没有成功地使用这些方法,但这可能与我们缺乏这方面的经验有关。

如果可行的话,您能给我们指出正确的方向吗?

编辑

这是我们尝试运行 @dirkt 的解决方案:

    ian@ians-mof-ish-pc:/etc/netplan$ ip r
default via 192.168.91.1 dev eth0.1 
192.168.91.0/24 dev eth0.1 proto kernel scope link src 192.168.91.100 
192.168.92.0/24 dev eth0.2 proto kernel scope link src 192.168.92.100 
ian@ians-mof-ish-pc:/etc/netplan$ ip a
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
    inet 127.0.0.1/8 scope host lo
       valid_lft forever preferred_lft forever
    inet6 ::1/128 scope host 
       valid_lft forever preferred_lft forever
2: enp2s0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mq state UP group default qlen 1000
    link/ether 34:e6:d7:7c:6e:ee brd ff:ff:ff:ff:ff:ff
    inet 192.168.92.201/24 brd 192.168.92.255 scope global enp2s0
       valid_lft forever preferred_lft forever
    inet6 fe80::36e6:d7ff:fe7c:6eee/64 scope link 
       valid_lft forever preferred_lft forever
4: wlp1s0: <BROADCAST,MULTICAST> mtu 1500 qdisc noop state DOWN group default qlen 1000
    link/ether 70:77:81:c1:07:61 brd ff:ff:ff:ff:ff:ff
5: eth0.1@enp2s0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue state UP group default qlen 1000
    link/ether 34:e6:d7:7c:6e:ee brd ff:ff:ff:ff:ff:ff
    inet 192.168.91.100/24 scope global eth0.1
       valid_lft forever preferred_lft forever
    inet6 fe80::36e6:d7ff:fe7c:6eee/64 scope link 
       valid_lft forever preferred_lft forever
6: eth0.2@enp2s0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue state UP group default qlen 1000
    link/ether 34:e6:d7:7c:6e:ee brd ff:ff:ff:ff:ff:ff
    inet 192.168.92.100/24 scope global eth0.2
       valid_lft forever preferred_lft forever
    inet6 fe80::36e6:d7ff:fe7c:6eee/64 scope link 
       valid_lft forever preferred_lft forever
ian@ians-mof-ish-pc:/etc/netplan$ ip rule show
0:  from all lookup local 
32764:  from 192.168.92.100 lookup 2 
32765:  from 192.168.91.100 lookup 1 
32766:  from all lookup main 
32767:  from all lookup default 
ian@ians-mof-ish-pc:/etc/netplan$ ip r show table 1
default via 192.168.91.1 dev eth0.1 
192.168.91.0/24 dev eth0.1 scope link 
ian@ians-mof-ish-pc:/etc/netplan$ ip r show table 2
default via 192.168.92.1 dev eth0.2 
192.168.92.0/24 dev eth0.2 scope link 
ian@ians-mof-ish-pc:/etc/netplan$ ping 8.8.8.8
PING 8.8.8.8 (8.8.8.8) 56(84) bytes of data.
From 192.168.91.100 icmp_seq=1 Destination Host Unreachable
From 192.168.91.100 icmp_seq=2 Destination Host Unreachable
From 192.168.91.100 icmp_seq=3 Destination Host Unreachable
From 192.168.91.100 icmp_seq=4 Destination Host Unreachable
^C
--- 8.8.8.8 ping statistics ---
4 packets transmitted, 0 received, +4 errors, 100% packet loss, time 3041ms
pipe 3
ian@ians-mof-ish-pc:/etc/netplan$ ping 192.168.91.1
PING 192.168.91.1 (192.168.91.1) 56(84) bytes of data.
From 192.168.91.100 icmp_seq=1 Destination Host Unreachable
From 192.168.91.100 icmp_seq=2 Destination Host Unreachable
From 192.168.91.100 icmp_seq=3 Destination Host Unreachable
^C
--- 192.168.91.1 ping statistics ---
4 packets transmitted, 0 received, +3 errors, 100% packet loss, time 3055ms
pipe 3

答案1

您可以使用虚拟局域网为笔记本电脑上的每个 RaspPi 创建一个“虚拟”NIC。

假设第一个 RaspPi 获得 VLAN 标记 1,那么您就可以了

ip link add link eth0 name eth0.1 type vlan id 1

在笔记本电脑上,以及类似的 RaspPi #1。在 RaspPi 上,忽略eth0并仅配置eth0.1一个地址。继续对所有具有不同 VLAN 标记的 RaspPi 执行此操作。

在笔记本电脑上,忽略eth0、使用全部等eth0.1eth0.2并为它们提供不同的地址。

然后使用你所做的一切

我们已经成功地将 MPTCP 与连接到笔记本电脑的不同(非虚拟)NIC 结合使用。

使其发挥作用。

(通过路由的 MPTCP 听起来很有趣,我应该看看这个)。

相关内容