利用 OpenWRT 的 Hotplug 事件解决 Zerotier 启动时添加自定义路由的难题

利用 ip monitor 工具实现路由观察分析,并利用 OpenWRT 的 hotplug 事件解决 Zerotier 启动时添加自定义路由的难题。

背景

  1. 公司有多个办公地点,使用zerotier组网
  2. 不是所有办公地点都开放实现互访
  3. 每个办公地点都会定期变动公网ip,每日执行 ifup wan 对电信网络执行重新拨号,因此会导致自己手动添加的 ip route 路由被清除
  4. 如何获得真正加入 zerotier 网络并可用变成了必须解决的问题,因此本文探讨的问题即为此
    1. Zerotier本身依赖UDP打洞技术,属于P2P V*N,没有明确的中心化概念,所以什么时候明确连接上网络是个不可预知的问题
    2. Zerotier本身有所有节点的自定义路由,可以在控制器添加,但本次仅为了单台节点自身添加自定义路由而不希望网络中其他节点也有此路由,因此只能在节点本身动手脚

解决方案

解决方案大体有这么两种

Linux 动态切换路由表

背景

我们总共有13台服务器,1个24口交换机(没有路由器),仅购买了两个公网IP,也就是说仅有两台服务器可以直接连通公网(全配置为全转发路由器),而其他机器得通过NAT来访问公网。

机房托管的血与泪

前言

为了解决日益增长的计算、存储、测试环境的需求,结合我们办公室小机房优异的散热、电量、网络条件(详情如下),因此在2021年3月份决定将公司的13台Dell R720服务器搬迁到机房进行托管,以期获得稳定的使用条件。

通过 DHCP Options 下发路由解决同局域网内服务器互访的效率问题

背景

  • 局域网 Kubernetes 测试服务器的具有公网(1.2.3.4)、局域网(10.0.0.10)双网卡
  • 日常需求较多需要从局域网内/公网环境通过域名访问测试服务器(同时还有部分正式环境的大数据服务)

旧方案

  • 公网环境 DNS 配置gw.sukikaka.com A 1.2.3.4
  • 局域网环境 DNS Server 10.0.0.1 配置劫持成 gw.sukikaka.com A 10.0.0.10
  • 局域网环境通过 DHCP Server 配置 DHCP Options 6,10.0.0.1,223.5.5.5 来达到下发 DNS Server 的目的 而以前用内网DNS服务器添加劫持,将gw.sukikaka.com A 10.0.0.10从而解决解析的问题,但是其他测试环境域名通过CNAME将解析指向gw.sukikaka.com时,并不能将CNAME再次顺利解析到10.0.0.10

存在的问题

Migrate to Hugo

2017年搭建的hexo博客,因腾讯云学生机即将过期,这几年用下来也觉得:似乎没什么必要续费云服务器

另外,人老了对npm这种一大坨恶心东西没什么好感,因此决定换用hugo,以此记录。

  • hexo迁移到hugo
  • 腾讯云迁移到github pages
  • 启用disqus评论

UPDATE 2020-09-10

由于实在忍受不了github pages速度。。。。