由 ZeroTier 提供支持。 构建虚拟网络的实用指南。 第2部分

在本文描述的前五个步骤中 由 ZeroTier 提供支持。 构建虚拟网络的实用指南。 第1部分 我们通过虚拟网络连接了三个地理上遥远的节点。 其中一个位于物理网络中,另外两个位于两个独立的 DC 中。  

由 ZeroTier 提供支持。 构建虚拟网络的实用指南。 第2部分
尽管这些节点中的每一个都被一一添加到网络中,但这并没有花费太多时间。 但是,如果您需要将物理网络上的所有节点而不是一个节点连接到 ZeroTier 虚拟网络,该怎么办? 有一天,当我对组织从虚拟网络到网络打印机和路由器的访问的问题感到困惑时,出现了这项任务。 

我尝试使用上面描述的方法,但它并不快,而且到处都不容易。 例如,网络打印机 - 您不能只是连接它。 Mikrotik - ZeroTier 不支持。 该怎么办? 经过大量谷歌搜索并分析硬件后,我得出的结论是有必要组织一个网桥。

网桥 (也 源自英语网桥(bridge)是 OSI 模型的二级网络设备,旨在将计算机网络的各个网段(子网)组合成一个网络。

我想在这篇文章中分享我是如何做到这一点的故事。 

建一座桥要花多少钱...

首先,作为管理员,我必须决定网络中的哪个节点将充当桥梁。 研究了这些选项后,我意识到它可以是任何能够在网络接口之间组织桥梁的计算机设备。 它可以变得像路由器一样——一个设备 运行 OpenWRT или Teltonika的RUT系列设备,以及常规服务器或计算机。 

当然,一开始我考虑使用带有 OpenWRT 的路由器。 但考虑到现有的 Mikrotik 完全适合我,虽然不支持与 ZeroTier 集成,而且我实在不想变态、“手鼓跳舞”,所以我决定用电脑作为网桥。 也就是说,Raspberry Pi 3 Model B 不断连接到运行最新版本 Raspbian(基于 Debian Buster 的操作系统)的物理网络。

为了能够组织桥接,设备上必须有一个未被其他服务使用的网络接口可用。 就我而言,主以太网已经在使用中,所以我组织了第二个。 使用基于 Realtek RTL8152 芯片组的 USB 以太网适配器来完成此任务。

将适配器连接到空闲 USB 端口后,更新并重新启动系统:

sudo apt update && sudo apt upgrade -y
sudo reboot

我检查了系统是否看到 USB 以太网适配器:

sudo lsusb

分析获得的数据后

Bus 001 Device 004: ID 0bda:8152 Realtek Semiconductor Corp. RTL8152 Fast Ethernet Adapter
Bus 001 Device 003: ID 0424:ec00 Standard Microsystems Corp. SMSC9512/9514 Fast Ethernet Adapter
Bus 001 Device 002: ID 0424:9514 Standard Microsystems Corp. SMC9514 Hub
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub

我很高兴地注意到设备 004 只是我的适配器。

接下来,我澄清了哪个网络接口分配给该适配器:

dmesg | grep 8152

[    2.400424] usb 1-1.3: New USB device found, idVendor=0bda, idProduct=8152, bcdDevice=20.00
[    6.363837] usbcore: registered new interface driver r8152
[    6.669986] r8152 1-1.3:1.0 eth1: v1.09.9
[    8.808282] r8152 1-1.3:1.0 eth1: carrier on

事实证明 eth1 🙂 我现在可以配置它和网桥。 

我实际上所做的是遵循以下算法:

  • 安装的网桥管理包:
    sudo apt-get install bridge-utils
  • 已安装 ZeroTier XNUMX:
     

    curl -s https://install.zerotier.com | sudo bash
  • 连接的 将其连接到现有的 ZeroTier 网络:
    sudo zerotier-cli join <Network ID>
  • 执行命令禁用 ZeroTier IP 地址和路由管理:
    sudo zerotier-cli set <networkID> allowManaged=0

接下来在您的网络控制器上:

В 网络 点击了 细节,找到并点击链接 v4分配模式 并通过取消选中该复选框来禁用 IP 地址的自动分配 从 IP 分配池自动分配

由 ZeroTier 提供支持。 构建虚拟网络的实用指南。 第2部分
之后,我通过设置名称并选中复选框来授权连接的节点 授权 и 主动桥。 我没有分配IP地址。

由 ZeroTier 提供支持。 构建虚拟网络的实用指南。 第2部分
然后他返回到在节点上设置网桥,为此他通过终端打开网络接口配置文件进行编辑:

sudo nano /etc/network/interfaces

我在哪里添加了以下几行?

auto eth1
allow-hotplug eth1
iface eth1 inet manual

auto br0
allow-hotplug br0
iface br0 inet static
        address 192.168.0.10
        netmask 255.255.255.0
        gateway 192.168.0.1
        network 192.168.0.0
        broadcast 192.168.0.255
        dns-nameservers 127.0.0.1
        bridge_ports eth1 ztXXXXXXXX
        bridge_fd 0
        bridge_maxage 0

哪里 eth1 — 未分配 IP 地址的已连接 USB 以太网适配器。
br0— 使用从我的物理网络的地址范围分配的永久 IP 地址创建网桥。
ztXXXXXXXXX — ZeroTier 虚拟接口的名称,由命令识别:

sudo ifconfig

输入信息后,我保存了配置文件并使用以下命令重新加载网络服务:

sudo /etc/init.d/networking restart

为了检查桥的功能,我运行了命令:

sudo brctl show   

根据收到的数据,大桥已经升起。

bridge name	bridge id		STP enabled	interfaces
br0		8000.00e04c360769	no		eth1
							ztXXXXXXXX

接下来,我切换到网络控制器来设置路由。

为什么我要点击网络节点列表中的链接? IP分配 网桥. 接下来,在打开的窗口中,单击 管理路线。 我进入了一个新页面,其中 目标 我有 0.0.0.0 / 0 但作为 网关 — 先前指定的组织网络地址范围内网桥的 IP 地址。 以我为例 192.168.0.10

由 ZeroTier 提供支持。 构建虚拟网络的实用指南。 第2部分
他确认了输入的数据,并开始检查节点的网络连接性,从物理网络节点 ping 虚拟网络中的节点,反之亦然。

就这样!

然而,与截图中的原型不同的是,虚拟网络节点的 IP 地址与物理网络节点的 IP 地址位于同一范围。 当桥接网络时,这种模型是可能的,主要是它们不与 DHCP 服务器分配的地址重叠。

在本文中,我不会单独讨论在运行 MS Windows 和其他 Linux 发行版的主机端设置网桥 - 互联网上有很多关于此主题的材料。 网络控制器侧的设置与上述相同。

我只是想指出,Raspberry PI 是一种经济且方便的工具,用于通过 ZeroTier 连接网络,而不仅仅是作为固定解决方案。 例如,外包商可以使用基于 Raspberry PI 的预配置网桥将所服务客户端的物理网络与基于 ZeroTier 的虚拟网络快速结合起来。

让我总结一下故事的这一部分。 我期待着提问、回复和评论 - 因为我将在它们的基础上构建下一篇文章的内容。 同时,我建议您尝试使用专用网络控制器和基于市场上的 VDS 的 GUI 来组织自己的虚拟网络 在线 RUVDS。 而且,所有新客户都有3天的免费试用期!

-> 介绍。 理论部分。 地球智能以太网交换机
-> 构建虚拟网络的实用指南。 第1部分
-> 构建虚拟网络的实用指南。 第2部分

由 ZeroTier 提供支持。 构建虚拟网络的实用指南。 第2部分

来源: habr.com

添加评论