234 lines
4.2 KiB
Markdown
234 lines
4.2 KiB
Markdown
# ZeroTier 结合rip 实现局域网互访
|
||
|
||
### 为什么选择 ZeroTier 与 rip
|
||
|
||
个人使用ZeroTier体验不错,
|
||
|
||
ZeroTier 实现局域网互访的方式有 双向nat 转发、大子网嵌套小子网,设置静态路由等。
|
||
|
||
|
||
|
||
双向转发
|
||
|
||
流量会经过 openWrt的防火墙,源地址重写,在服务器端只能看到openWrt的地址
|
||
|
||
获取不到 另一个子网的具体主机地址。
|
||
|
||
|
||
|
||
子网嵌套
|
||
|
||
设置繁琐 扩展不方便,
|
||
|
||
|
||
|
||
静态路由
|
||
|
||
需要手动在 openWrt 上设置 静态路由,局域网多时设置繁琐。
|
||
|
||
如:A B C 三个局域网 需要互访
|
||
|
||
需要添加 (N-1) * N 条记录 (N为局域网数量)
|
||
|
||
A 访问B 的路由
|
||
|
||
A 访问C 的路由
|
||
|
||
B 访问A 的路由
|
||
|
||
B 访问C 的路由
|
||
|
||
C 访问B 的路由
|
||
|
||
C 访问A 的路由
|
||
|
||
共六条记录。
|
||
|
||
|
||
|
||
### 名词解释
|
||
|
||
**ZeroTier**
|
||
|
||
自行了解
|
||
|
||
**rip**
|
||
|
||
rip 是一种动态路由协议 可以自动学习路由
|
||
|
||
**frr**
|
||
|
||
frr 是一个 实现了 rip bgp 等多种 路由协议的软件包,同类型的还有
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
### 网络拓扑图
|
||
|
||
```mermaid
|
||
graph TD;
|
||
pro+-->openWrt;
|
||
pro+--> localhost;
|
||
pro+--> nas;
|
||
ZeroTier-->ZeroTier节点;
|
||
ZeroTier-->openWrt;
|
||
|
||
```
|
||
|
||
LAN 是本地局域网 路由器为中兴的 **PRO+** 网段为 `192.168.123.0/24`
|
||
|
||
ZeroTier 虚拟局域网 网段为 `192.168.191.0/24`
|
||
|
||
openWrt 是刷了 openWrt 固件的 小米4A路由器,在次拓扑中 充当两个 网段的lan节点
|
||
|
||
openWrt 在 pro+ 下的地址为 192.168.123.10/24 网关为192.168.123.1
|
||
|
||
openWrt 在 ZeroTier 下的地址为 192.168.191.2/24 网关 默认
|
||
|
||
|
||
|
||
### 准备工作
|
||
|
||
#### 创建ZeroTier
|
||
|
||
首先 在 ZeroTier 里创建局域网 得到 网络ID
|
||
|
||
在本机电脑上安装 ZeroTier one 并加入局域网。
|
||
|
||
默认是 私有局域网 需要去 ZeroTier 通过才能加入
|
||
|
||

|
||
|
||
|
||
|
||
#### 配置 openWrt
|
||
|
||
openWrt lan 口接入电脑,登陆后删除 wan wan6接口 ,
|
||
|
||
编辑LAN接口 将IP设置为静态IP 与本地LAN 同一网段 这里设置成 `192.168.123.10/24`
|
||
|
||

|
||
|
||
|
||
|
||
将 openWrt LAN 口 接入 5400pro+ 的lan口 测试openWrt是否能上网
|
||
|
||
|
||
|
||
##### 安装 ZeroTier
|
||
|
||
在openWrt 软件包里安装 ZeroTier 并填入之前创建的 ZeroTier 局域网ID 加入局域网
|
||
|
||
|
||
|
||
自动NAT 不需要勾选
|
||
|
||
自动NAT 不需要勾选
|
||
|
||
自动NAT 不需要勾选
|
||
|
||
|
||
|
||

|
||
|
||
|
||
|
||
添加 ZeroTier 的接口(不确定是否必须)
|
||
|
||
|
||
|
||
在接口界面 新增接口 协议选择静态IP
|
||
|
||
设备选择 zt 的设备 (多个 zt 网络需要确定 设备对应的子网)
|
||
|
||

|
||
|
||
|
||
|
||
然后填写 IP 为之前在ZeroTier 分配的IP 本文中是 `192.168.192.2/24`
|
||
|
||
网关空着 保存即可
|
||
|
||
|
||
|
||
### 路由配置
|
||
|
||
|
||
|
||
#### 本地路由配置
|
||
|
||
登录本地 路由器 设置静态路由 将ZeroTier的网段指向 openWrt 在5400 pro+ 中的地址
|
||
|
||

|
||
|
||
|
||
|
||
#### ZeroTier 路由配置
|
||
|
||
|
||
|
||
登录ZeroTier 设置静态路由 将5400 PRO+ 的网段指向 openWrt 在ZeroTier 中的地址
|
||
|
||

|
||
|
||
|
||
|
||
#### openWrt 路由配置
|
||
|
||
|
||
|
||
**ssh 登录 openWrt 安装 以下软件包**
|
||
|
||
```bash
|
||
opkg update
|
||
opkg install frr frr-babeld frr-bfdd frr-bgpd frr-eigrpd frr-fabricd frr-isisd frr-ldpd frr-libfrr frr-nhrpd frr-ospf6d frr-ospfd frr-pbrd frr-pimd frr-ripd frr-ripngd frr-staticd frr-vrrpd frr-vtysh frr-watchfrr frr-zebra
|
||
```
|
||
|
||
|
||
|
||
**编辑配置**
|
||
|
||
```
|
||
vi /etc/frr/daemons
|
||
```
|
||
|
||
将 `ripd=no` 修改成 `ripd=yes` 保存
|
||
|
||
|
||
|
||
```
|
||
vi /etc/frr/frr.conf
|
||
```
|
||
|
||
添加网段 在图中红框位置 添加
|
||
|
||
|
||
|
||
```
|
||
router rip
|
||
network 192.168.123.0/24
|
||
network 192.168.191.0/24
|
||
```
|
||
|
||

|
||
|
||
|
||
|
||
重启 frr
|
||
|
||
```
|
||
/etc/init.d/frr restart
|
||
```
|
||
|
||
|
||
|
||
|
||
|
||
### 安全管理
|
||
|
||
这样配置后 局域网互通 不受防火墙管理,如需要为别人提供服务,只想 别人访问特定的网段
|
||
|
||
可以 |