Go语言(GIN)搭建DDNS服务器

天锦 发表于 码农也得有格调 分类,标签:
最近由于异地组网的事情,节点都是动态的IP,在使用阿里云的API做DDNS时,由于阿里云的限制,最小的TTL也只能设置到600,IP更新一次就要折腾至少10分钟,期间就会造成长时间的断联,而且我内部的Kubernetes等系统又要使用基于nsupdate(RFC2136中的动态更新功能)来更新记录,所以自建一个标准的基于RFC2136定义的DDNS系统迫在眉睫!此外还要提供一个HTTP接口用以路由器设备使用curl来更新IP。总体架构首先使用bind服务作为DNS服务器,配置成允许使用nsupdate工具动态更新,完成兼容RFC2136协议的DDNS系统,然后再使用web语言来实现这个http接口。再网上搜集资料经常看到的都是基于php的,但是如果使用php的话就要使用exec或者system这种高风险的函数来调用nsupdate,一般为了安全起见,管理员通常是将这些函数都是禁用掉的...

[后续] OpenWRT系统中ocserv不支持使用Radius指定客户端IP的解决方法

天锦 发表于 码农也得有格调 分类,标签:
在上次组网完成之后,OpenWRT系统下ocserv不支持Radius认证的问题遗留了下来,后来也一直挂在心上,在一次看OpenWRT软件包源码的时候发现了端倪,问题很简单,OpenWRT为了尽量减小软件包的体积,把不常用的功能都没有进行编译,也就是ocserv的Makefile中默认的radius支持是没有启用的:# ocserv avanced configurationmenu "Configuration"depends on PACKAGE_ocservconfig OCSERV_PAMbool "enable PAM"default nconfig OCSERV_SECCOMPbool &qu...

OSPF动态路由协议错误排查

天锦 发表于 码农也得有格调 分类,标签:
最近因为异地组网的事情没少折腾OSPF这个IGP内部路由协议,遇到了一些问题,在这儿记录以下。两端没有任何邻居信息用doshowipospfinterface命令看一下接口有没有up,接口有没有enableOSPF协议,没有enable的话查看你的network声明,确认有没有正确声明网络,写错IP地址这种错误很虽然很低级但很常见也最容易被忽略!检查防火墙,看有没有被防火墙拦截掉GRE的数据包。一端卡在Init,另一端无信息同样,检查防火墙和network声明。对于OpenConnect的链路,目前我也不知道啥情况。卡在Exstart检查接口的MTU是否正确,两端MTU是否相同。当两端MTU值不同时,OSPF协议默认就不进行下一步的路由信息交换了,也就卡在了Exstart中。不合适的MTU会造成网络的效率低下,虽然可以使用mtu-ignore忽略这个问题,强制进行路由交换,但是不...

在OpenWrt上部署OSPF进行异地组网的动态路由生成

天锦 发表于 码农也得有格调 分类,标签:
前言异地组网,各站点下都有不止一个的IP段,规模越来越大,遂即尝试从静态路由迁移到OSPF协议上。使用RouterOS模拟OSPF组网时,鼠标咔嗒咔哒点两下就组网成功了,奈何我的设备都是OpenWRT的系统,实现起来可没模拟那么简单,或者说没有在OSPF上那么简单。可以用坎坷来形容了。全网搜索OpenWRT跑OSPF协议的资料,只有寥寥几篇如蜻蜓点水一般的文章,获得到了一个有用信息,那就是有一个软件叫Quagga,它是一个路由软件套装包,包含了vtysh为用户提供配置操作的接口,zebra进程与内核进行通信,实现路由条目在内核中的添加和修改,以及ospfd、bgpd等多种路由协议的守护进程,完成实际的路由协议的学习和信息交换。quagga通过这种模块化的方式实现了多种路由协议的集成。所以,那还能咋的,安呗,除了它没别的了。部署OSPF路由协议[root@OpenWrt-A ~]#...

ocserv指定分配给客户端的IP地址与反向添加路由

天锦 发表于 码农也得有格调 分类,标签: OpenWRTVPNOpenConnectOcserv
遇到的问题有一个异地组网的需求,也就是说需要搭建VPN进行异地组网,常见的PPTP和L2TP由于某些特殊原因,不得不抛弃不用,重新选择新的协议,思科的AnyConnect基于SSL加密,可以自定义通信的端口号,是个不错的选择,部署了兼容的开源方案ocserv作为服务器,用了一段时间,感觉也很稳定。但是ocserv默认的plan密码只能设置用户名和密码,客户端的IP地址池在ocserv.conf中定义,不能像L2TP和PPTP这些基于PPP拨号获取IP的协议一样指定客户端获取的IP地址,客户端获取的IP地址是随机的,这样一来对于终端用户远程访问很方便,但是对于多站异地组网就很麻烦了,给反向添加路由条目带来了很大的麻烦。假定有两个站点A(10.1.1.1/24)和B(10.2.2.1/24),A作为VPN服务器,VPN接口网络为192.168.240.1/24,当使用L2TP等基于PPP拨号的...

AIX系统安装yum包管理器,使用bash替换ksh

天锦 发表于 码农也得有格调 分类,标签:
安装yum虽然AIX系统支持安装rpm格式的软件包,比使用smit安装软件方便一些,软件库也多一些,但是当你安装一个包依赖多个包时,挨个下载依赖包,挨个安装就过于麻烦。最好还是部署一个yum包管理器来管理软件安装方便一些。可以到https://www.ibm.com/support/pages/aix-toolbox-linux-applications-downloads-alpha 下载yum的rpm包和其相关依赖来安装yum,不错的是IBM提供了一个脚本实现了一键安装yum。该脚本下载地址http://ftp.software.ibm.com/aix/freeSoftware/aixtoolbox/ezinstall/ppc/yum.sh ,下载之后可以通过ftp上传到aix系统中,添加执行权限后执行安装就可以了。#chmod +x yum....

WiFiDog的深入配置,使用HTTPS访问认证服务器

天锦 发表于 码农也得有格调 分类,标签:
前面讲了WiFiDog的简单配置,也就是AuthServer这几个关键配置,在AuthServer配置中,默认情况下是使用HTTP协议与认证服务器通信,如今HTTPS协议逐渐成为各网站的主流,基本上都做了301重定向将HTTP引导到HTTPS上,我们的认证是直接在已有的网站中添加的模块,直接在网站中集成了针对WiFiDog的认证,如果我们实行全站SSL的话,WiFiDog的API接口会被重定向到HTTPS上,而默认的WiFiDog不支持HTTPS就造成了无法与认证服务器通信,我临时在重定向中做了规则,对UserAgent为WiFiDog的访问不做重定向,其他所有的来自80端口的请求全部做重定向,相当于给WiFiDog留了一个HTTP,临时解决的问题,但这终究不是办法。WiFiDog不支持HTTPS,WifiDog-TLS支持!在配置WiFiDog的配置文件时发现了AuthServer中有一...

OpenWRT安装Wifidog实现Portal网页认证上网

天锦 发表于 码农也得有格调 分类,标签:
Portal认证上网多用于WiFi营销,通过接入一个开放的WiFi网络,进行Web认证登陆后放行上网,协会有百来号人,直接公开密码不合适,直接设置成一个开放网络更不合适,必须要做认证之后方能允许上网,Portal认证便是一个很好的选择。先前使用的是iKuai的软路由,iKuai提供了集成Portal认证,我也对协会的网站进行了iKuai认证集成,用户可以直接使用协会网站账号登录上网,但由于种种原因,如今不得不将iKuai撤下,换成OpenWRT路由系统。OpenWRT安装Wifidog很简单,直接使用opkg安装就行[root@openwrt ~]# opkg update[root@openwrt ~]# opkg install wifidog配置网上有提到Web版的配置工具包也就是luci-app-wifido...

Bash脚本实现OpenConnect 自动添加路由

天锦 发表于 码农也得有格调 分类,标签:
最近在用OpenConnect进行多点异地组建虚拟专网,有一个主节点做OpenConnect服务器端,其他节点做客户端。OpenConnect服务器端可以下发路由各客户端但是客户端不能将客户端本地的LAN段路由反馈给服务器端,要实现各节点下的LAN段互访就需要手动在服务器端添加路由条目才行,而客户端拨号获得的IP是从服务器IP池中动态获取的,无法静态绑定(目前暂时没研究出来)也就无法手动设置永久路由。最终思路是使用occtl查看当前已经连接到网关的用户以及其获得的ip地址:root@gw:~# occtl show users      id     user    vhost  &nbs...

PXE实现Windows和Linux的双系统引导

天锦 发表于 码农也得有格调 分类,标签:
先前协会为了修电脑方便,部署了WDS服务器实现PXE网启,引导终端设备加载PE系统或是Window安装进程以进行系统的维护和安装。但是作为一个计算机社团,光有Windows是不行的,Linux对我们也很重要,所以有了这次双系统引导的折腾。在网上看了很多pxe引导的例子,觉得中国科技大学的PXE服务就是我想要的那种,既能引导Linux也能引导Windows,参考PXE是什么、中国科技大学网络启动服务、和中国科技大学PXE服务FAQ,最终选择跳坑科大的simple-pxe。simple-pxe是科大崔灏学长写的一个用于生成GRUB启动菜单的脚本,并不是一键安装的全套服务,所以还有很多要自己折腾的。在运行simple-pxe脚本前,要先准备好HTTP、NFS和TFTP服务环境。simple-pxe脚本使用到了bsdtar、curl、svn、和fatcat命令,fatcat在CentOS中没有...