BLCL的博客小馆

首页

关于

归档

networkvpnvlan

QinQ 随笔

介绍QinQ(802.1Q-in-802.1Q),也叫做VLAN Stacking或Double VLAN,由IEEE 802.1ad标准定义,是一项扩展VLAN空间的技术,通过在802.1Q标签报文的基础上再增加一层802.1Q的Tag来达到扩展VLAN空间的目的。一般应用在骨干网中,通过将用户私网VLAN Tag封装在公网VLAN Tag中,使报文带着两层VLAN Tag穿越运营商的骨干网络(公网),扩充VLAN数量,实现对用户的精细化管理。QINQ实现方式QinQ可分为两种:基本QinQ和灵活QinQ。(1) 基本QinQ基本QinQ是基于端口方式实现的。开启端口的基本QinQ功能后,当该端口接收到报文,设备会为该报文打上本端口缺省VLAN的VLAN Tag。如果接收到的是已经带有VLAN Tag的..

更多
loading..
C#XamarinWEBTECHNOLOGY

如何 DIY 一个苏康码与行程码“双码合一”的健康码 APP

背景介绍众所周知的背景:苏康码打开很慢,在支付宝中如果没有快捷键,需要以下步骤:点击打开支付宝 -> 点击健康码 -> 点击立即查看,如果设置了长按图标打开健康码,也得至少两步;其他 APP 比如“苏周到”,可以实现长按快捷键后一步访问,但是其中存在三个步骤:APP 启动 -> 健康码小程序启动 -> 加载网页,这种不可理喻的框架,在某些低端机上冷启动,可能需要长达数十秒的时间;行程卡打开也很慢,在微信小程序中打开,不知道为什么每次都让我确认一下“同意并授权运营商查询”,严重影响效率;很多地方两个码都要查,于是慢*2,话说我也不知道为什么有关部门不把这两个码合二为一……所以干脆 DIY 一个。开发流程我想做出这样的效果:打开 APP 后,直接显示苏康码,滑动屏幕可切换到行程码,不需..

更多

关于Vue组件二次封装的技巧总结

在开发Vue项目我们一般使用第三方UI组件库进行开发,如element-plus, @arco-design/web-Vue, naive-ui等, 但是这些组件提供的接口并不一定满足我们的需求,这时我们可以通过对组件库组件的二次封装,来满足我们特殊的需求。 对于封装组件有一个大原则就是我们应该尽量保持原有组件的接口,除了我们需要封装的功能外,我们不应该改变原有组件的接口,即保持原有组件提供的接口如props,events,slots等不变。 为了实现这一原则我们就需要将新组件的接口与旧组件的接口一一对应, 当然我们可以通过在新组件中一一声明对应的接口来实现(或者只实现我们目前需要用到的接口)但这种办法虽然简单但看起来却极其很繁琐, 有没有一种方法可以实现props,events,slots的自动透传呢?..

更多
loading..
运维

jenkins+github配置CI/CD

本站访问有些慢,应该是国内的网络对vercel不友好。但是我有一台几乎闲置的华为云vps,于是尝试了一下配置本站的CI/CD。记录过程。 前置条件 服务器:centos8 项目:需要nodejs编译的前端项目 部署目标:nginx 过程 安装jenkins。参照官网介绍,安装完成后,可以在http://yourip:8080登入jenkins控制台,然后创建用户,安装推荐插件,等等。 配置凭据。进入Manage Credentials界面,Url一般是http://yourip:8080/credentials,创建一个ssh凭据,Private Key字段需填写已经在github配置过的ssh密钥,密钥位置一般在~/.ssh/id_rsa。ssh凭据 接着新建一个secret text凭据..

更多
networkvxlanl2vpn

VXLAN 随笔

简介VXLAN(Virtual eXtensible Local Area Network,虚拟扩展局域网),是由IETF定义的NVO3(Network Virtualization over Layer 3)标准技术之一,(还有NVGRE、STT等技术)是对传统VLAN协议的一种扩展。VXLAN的特点是将L2的以太帧封装到UDP报文(即L2 over L4)中,并在L3网络中传输。VXLAN本质上是一种隧道技术,在源网络设备与目的网络设备之间的IP网络上,建立一条逻辑隧道,将用户侧报文经过特定的封装后通过这条隧道转发。从用户的角度来看,接入网络的服务器就像是连接到了一个虚拟的二层交换机的不同端口上,可以方便地进行二层通信。已经是事实上的网络虚拟化标准,公有云(阿里云、华为云、AWS等)的VPC大多数都是..

更多
loading..
CTFWriteUp

CTF | 2022 数字中国创新大赛虎符网络安全赛道 初赛 WriteUp

引言 2022数字中国创新大赛-虎符网络安全赛道 - 初赛 比赛时间: 2022-03-19 09:00 ~ 2022-03-20 17:00 比赛官网: https://www.qianxin.com/DCICHF/2022 上个周末打了下虎符 CTF,感觉题目总体而言难度挺大,很多题目最后解题数还是个位数。 也就 Misc 方向相对来说简单一点了,于是来玩了玩,简单写一下 writeup 吧。 顺便可以回顾一下去年的: CTF | 2021 数字中国创新大赛虎符网络安全赛道 WriteUp MiscPlain Text ZE9CUk8gUE9WQUxPV0FUWCBOQSBNQVReLCBXWSBET0xWTlkgUEVSRVdFU1RJIFxUTyBOQSBBTkdMSUpTS0lKIFFa..

更多
loading..

golang Channel用法和源码分析 二

本篇文章我们一起了解下golang Channel的常见问题和用法。 从一个关闭的channel中仍能读取到数据吗? 从一个有缓冲的 channel 里读数据,当 channel 被关闭,依然能读出有效值。只有当返回的 ok 为 false 时,读出的数据才是无效的。 1 2 3 4 5 6 7 8 9 10 11 12 13 14 func main() { ch := make(chan int, 5) ch <- 18 close(ch) x, ok := <-ch if ok { fmt.Println("received: ", x) } x, ok = <-ch if !ok { fmt.Println("channel ..

更多
loading..

golang Channel用法和源码分析 一

本篇文章我们一起了解下golang里面channel的用法,和它的源码分析。 源码查看 底层数据结构需要看源码,路径 src/runtime/chan.go:32 ,go版本1.16.15 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 type hchan struct { qcount uint // total data in the queue chan 里元素数量 dataqsiz uint // size of the circular queue chan 底层循环数组的长度 buf unsafe.Pointer // points to an arr..

更多
loading..

golang Map用法和源码分析

本文从源码角度学习 golang map的一些操作,和对应的源码分析。 Golang的map使用哈希表作为底层实现,一个哈希表里可以有多个哈希表节点,也即bucket,而每个bucket就保存了map中的一个或一组键值对。 声明和初始化 golang中的map声明非常简单,我们用map关键字表示声明一个map,然后在方括号内填上key的类型,方括号外填上value的类型。 1 var m map[string] int 这样我们就声明好了一个map。 但是要注意,这样声明得到的是一个空的map,map的零值是nil,可以理解成空指针。所以我们不能直接去操作这个m,否则会得到一个panic。 1 panic: assignment to entry in nil map 我们声明了..

更多
loading..
技术flutter

开源小事一则

这两天更新了一个两年前的 Flutter 插件,有感而发。前言上周收到了一封邮件,询问我两年前开发的一个 Flutter 插件,我惊讶于这个插件还有人在用,便回复了邮件,后来相互加了微信,解决他提的问题。提问的人很大方,一上来就发了一个微信红包,说问题解决之后再发一个,于是我花了大概两个多小时,总算是解决了问题,果不其然他又发了一个红包,让我对他好感倍增 🐶后来想想这个插件还是有用的,于是又更新了一下这个”年久失修”的插件 flutter-tree添加了 在线示例现在这个插件变的更加易用,有了更多的功能,完善的文档,希望对更多人有帮助吧。PS: 果然对于我来说金钱才是第一生产力啊 🐶

更多
1515253545577