更新
This commit is contained in:
		
							
								
								
									
										234
									
								
								openwrt/zeroTier结合rip动态路由协议实现互访.md
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										234
									
								
								openwrt/zeroTier结合rip动态路由协议实现互访.md
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,234 @@
 | 
			
		||||
# 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
 | 
			
		||||
```
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
### 安全管理
 | 
			
		||||
 | 
			
		||||
这样配置后  局域网互通 不受防火墙管理,如需要为别人提供服务,只想 别人访问特定的网段
 | 
			
		||||
 | 
			
		||||
可以
 | 
			
		||||
		Reference in New Issue
	
	Block a user