OpenWrt测试双WAN和双机高可用

2021-12-03 作者:

So here’s a quick example. OpenWrt shows capability to provide business-level internet access reliabilities – with not only load balancing/failover between 2 or more ISPs, but also VRRP based hardware (dual x86 vm in this experiment) level redundancy.

从以下的例子可以看出,OpenWrt基本满足了提供小型商业级Internet访问可靠性的初步要求。它不仅可以在多个ISP之间实现负载均衡以及故障切换,在此基础上同时提供基于VRRP的硬件冗余(本实验中为双x86虚拟机)。

 

先开仨虚拟机,前两台做OpenWrt,可以先做1台,复制1台。注意要安装mwan3和keepalived。

 

双WAN做好后,断开一路wan做测试。这里的wanb,用的是楼道里的不可靠wifi,通过Raspberry Pi向下路由一层转成有线网,能体现出不稳定的ISP接入状态。

本来是两路负载均衡的策略,wanb断开后,5s之内可以让所有对外请求都稳定落在wan上。

 

下一步,把MASTER的br-lan断开,模拟一个路由器硬件直接宕掉。

 

这个切换时间很短,还没反应过来,BACKUP就接管了VIP地址,对外请求几乎不受什么影响。

完整阅读本篇»

基于红米AC2100的集客AC/AP方案

2021-10-15 作者:

Free (but proprietary) AC/AP wifi solution by Wuhan GECOOS, is here tested on 2 units Redmi AC2100 and a Proxmox based x86_64 vm.

这篇不准备多写,简单谈一下感受。

硬件结构如下,

  • AP是两台Redmi AC2100,单价159(不是wifi6,消费主义远离我)。
  • AC是书房自建私有云上一台vm,无法单独计费,权当免费。

PROS:

  • 性价比突出。总价只有318,即使考虑到大房子需要3台AP,也只要500块不到而已,还不到一台中端wifi6路由器的钱。有人可能会说,别逗了,家用AP的信号,3台怎么够 —— 哥们,别那么肯定,你说的是面板AP,我这是普通家用路由器(外置天线)刷的AP,原本设计每个都是带全家的,要比信号强度也得比商业吸顶AP吧?
  • AC可以不要,AP支持胖AP模式。这点倒是跟其他家用AC/AP方案接近,并不特别。我猜胖AP漫游效果差点儿?因为我不缺私有云机器,没有做具体测试。
  • 蛮关键的一点,AC可以只做旁路。也就是说,主路由还是主路由,你不一定用这个集客AC做主路由(虽然它也具备路由能力),这一点非常关键。作为AC,管好你的AP,做好弱踢和切换就行了,路由我有更好的选择。
  • 覆盖和速度都能让人满意,mbp连上5G信号,NAS大文件传输不比千兆有线差很多。
  • 每个房间多了一个4口千兆交换机,还tm支持vlan,这个价钱做下来的方案有这么强的灵活性,你敢信?

CONS:

  • 漫游切换,在安卓手机上切换起来,还是没有单路由(不切换)那么流畅。当然,物理问题靠软件显然不能强求,毕竟在家里边角的wifi速度显著提高了;多年前的iPhone 6SP好像漫游效果不错的说;后悔没有拿Android和iPhone互相打个微信视频然后走动一下做个测试。
  • 【昧良心说】集客固件免费但不开源。至于开源与否我不关心,毕竟我刷个路由不是去商业化,我只关心有无黑产,这点主要看开发团队的人文品质吧。真要不放心,自己刷一套放个抓包环境测几个月就有数了;这问题倒不是针对集客,ikuai和梅林也是同一个路子,再说那些原厂(不免费)的路由器系统就能绝保没后门没黑产?

以下纯截图:

AC界面:wifi配置模板下发

完整阅读本篇»

对Python字典数组按Key求均值

2021-09-07 作者:

[ENG TITLE]: Calculate Mean Value by Keys in Python List of Nested-Dicts  

[OR]: Calculate Mean Value by Attributes in Python List of Objects

让我们考虑这样一种情况:现在你有个对象叫做“学生”,他们有年龄、身高、体重等多种数值属性。如何在不关心具体属性名称的前提下,采取简便手段计算多名学生任意属性的均值?

Let’s think about this case, say you have an object that represents single student of a group, and each student has at least his/her age, height, weight, and more attributes like these.

Now how to easily calculate mean value of each attribute within the student group, without caring about attribute names?

或许挺容易的,那么再考虑一下,如果给每名学生加个成绩单,成绩单里放着多科目成绩。以下级对象之实例作为上级实例属性,形成嵌套关系,此时怎么算最简洁呢?

Well, if it’s not a tough challenge, then let’s talk about those nested attributes (object as an attribute)?

完整阅读本篇»

轻巧赛手机的瘦客户端·初测

2021-09-03 作者:

This post talks about the preliminary test to the little weeny-weeny thin client, YF-V102. It works in super smaller factor than a cellphone (thicker though), and less weight too, but still has both wired and wireless connection to connect the vm or physical target through RDP/SPICE.

实话说,拿到整个快递包装,我先琢磨是不是收到个空盒。

不过玩虚拟化这么多年,毕竟主要搞服务端,所以试用瘦客户端,还是第一次,对以往的thin client尺寸及功能,并无经验之谈。

这个带了三个USB、两个3.5mm、一个USB-C供电口、一个标准HDMI、一个RJ45网线接口的盒子,居然不足100g,话说里边还有板子么?

完整阅读本篇»

树莓派4B频繁遭遇系统假死

2021-07-23 作者:

This post talks about the frequently-happened X hang on the combination of newly updated Raspbian (Pi-OS) Buster and Raspberry Pi 4B, which was NEVER experienced on the Pi 3B (not 3B+) and same OS version after 30 + reboot tests.

PS: Pls note that’s X hang, not kernel hang or panic.

Summary: Pi 4B might has compatbilty issue with unbranded display that provides non-standard EDID info, which Pi 3B obviously has no problem to cooperate with.

本文聊一下最近颇为折磨的Pi 4B图形界面假死问题。当然,所谓假死就是X挂了,但kernel活着,从ssh可以很好的登录管理看日志的情况。

硬件是Pi 4B,操作系统是Raspbian (Pi-OS) Buster 升级最新。在上百次重启中,85%都会X hang。但有趣的是,Pi 3B(不是3B+)用同一块TF卡启动,测试30+次重启,无问题。

既然不是kernel hang,那么故障发生时总要看下log,所得如下:

可以说基本是稳定复现,每次都是Xorg先挂。随后呢,其他进程可能不挂,也可能跟着挂。

就“Xorg Tainted”做了大量的检索,升级OS,升级eeprom都试过,依然无果。只能继续看log继续碰运气。

完整阅读本篇»