一、wireguard简介
WireGuard是一个非常简单而且快速,又现代化的一个安全的3层加密隧道网络软件,主要工作在内核里面。 使用了最先进的加密技术,工作在3层。 基于linux内核虚拟网络接口实现。 出现的目的是替换ipsec以及流行在用户态运行的基于tls的解决方案,比如openvpn这类vpn。
二、背景目的
A区域网络与B区域网络实现双向互通,同时A区域网络可以访问B区域网络的扩展区域,B区域在一个超大的C区域中,以一个中继网络的形式存在.
如下图客户端192.168.1.2可以访问192.168.10/24以及6.6.6.0/16网段未被防火墙限制的客户端,同时192.168.10.2可以访问192.168.1/24网段未被防火墙限制的客户端
三、实现思路条件
A区域网络必须拥有一个公网IP地址,可以是固定也可以是动态,动态的话需要通过脚本实现动态ddns,A区域做为wg的服务端,供其他区域的wg调用,并创建隧道,进行隧道连接之后需要配置静态路由实现网络互通
四、配置wireguard
在 OpenWrt 中安装 luci-proto-wireguard、wireguard-tools、kmod-wireguard、luci-app-wireguard、qrencode等包
网络-接口-创建接口
服务端配置
生成秘钥对,配置本段虚拟地址,配置服务端监听接口,这里需要注意服务端和客户端的ip地址要在一个子网内,否则不能通信
客户端配置
生成秘钥对,配置本段虚拟地址,这里监听接口不用填,系统会自动分配,这里需要注意服务端和客户端的ip地址要在一个子网内,否则不能通信
服务端生成对端配置
对端-将客户端的常规配置中的公私钥配在里面,同时生成共享秘钥增加安全性
客户端生成对端配置
对端-将服务端的常规配置中的公私钥配在里面,把服务端生成的共享秘钥copy过来,添加服务端的公网ip及端口
配置两端防火墙
网络-防火墙-添加,两端一样
添加路由
服务端添加路由
网络-路由-添加
客户端添加路由
网络-路由-添加
配置完成后,两端openwrt重启再次查看,两边网络即可互联互通了,同时可以访问对端扩展网络