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....

从零开始接触IBM POWER小型机

天锦 发表于 女票们的新建与保养 分类,标签:
有幸能够在毕业前夕通过协会购得一台IBMPower720小型机,想着小型机挺专业也挺稀见的,毕竟在我们学校目前还没有小型机,学校的机房也都是X86的服务器,就在咸鱼上淘了一台IBM的小型机。IBM的小型机与普通的X86服务器有着很大的不同,也有很多不同于普通X86的名称如ASMI、HMC、LPAR等,网上资料很杂,尤其是这些个之间的关系,没见过多少详细介绍的,这次就做个总结,从简单到难,一点一点了解这个系列的小型机。ASM和HMCASM是IBM的高级系统管理接口,它的界面可以通过串口Console或者网页的形式访问到,这个ASM可以类比成iDRAC或者iLO,他们的功能大致是相似的,运行在服务器内部的固定电路中,通过固件程序对服务器进行基本管理的部件。IBMHMC(HardwareManagementConsole)则是独立于Power服务器的外置系统,将Power服务器的HMC...

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...

Server 2019 部署FTP后无法连接

天锦 发表于 Linux下的N种作死方法 分类,标签:
使用IIS内建部署FTP,客户端无法连接服务器,关掉防火墙后正常,但是查看防火墙上已经设置了对应的规则(系统内建的规则),没有生效,打开cmd,执行以下命令sc sidtype ftpsvc unrestrictednet stop ftpsvc & net start ftpsvcnetsh advfirewall firewall add rule name="FTP for IIS" service=ftpsvc action=allow protocol=TCP dir=innetsh advfirewall set ...