ArthurChiao's Blog

Recent Posts

  • 2022-01-23

    Cracking Kubernetes Network Policy

    TL; DRThis post digs into the Kubernetes NetworkPolicy model, then designsa policy enforcer based on the technical requirements and furtherimplements it with less than 100 lines of eBPF code. Hopethat after reading through this post, readers will get a deeper unders...

  • 2022-01-02

    [译] [论文] BBR:基于拥塞(而非丢包)的拥塞控制(ACM, 2017)

    译者序本文翻译自 Google 2017 的论文: Cardwell N, Cheng Y, Gunn CS, Yeganeh SH, Jacobson V.BBR: congestion-based congestion control.Communications of the ACM. 2017 Jan 23;60(2):58-66.论文副标题:Measuring Bottleneck Bandwidth andRound-trip propagation time(测量瓶颈带宽和往返传输时间)。BBR 之前,主流的 T...

  • 2021-12-19

    Trip.com: First Step towards Cloud Native Security

    TL; DRThis post shares our explorations on cloud native securities for Kubernetesas well as legacy workloads, with CiliumNetworkPolicy for L3/L4 accesscontrol as the first step. TL; DR 1 Introduction 1.1 Access control in Kubernetes 1.2 Implementation...

  • 2021-12-05

    [译] Facebook 流量路由最佳实践:从公网入口到内网业务的全路径 XDP/BPF 基础设施(LPC, 2021)

    译者序本文翻译自 Facebook 在 LPC 2021 大会上的一篇分享:From XDP to Socket: Routing of packets beyond XDP with BPF。标题可直译为《从 XDP 到 Socket 的(全路径)流量路由:XDP 不够,BPF 来凑》,因为 XDP 运行在网卡上,而且在边界和流量入口,再往后的路径(尤其是到了内核协议栈)它就管不到了,所以引入了其他一些 BPF 技术来“接力”这个路由过程。另外,这里的“路由”并非狭义的路由器三层路由,而是泛指 L3-L7 流量转发。翻译时加了...

  • 2021-11-24

    [译] 为 K8s workload 引入的一些 BPF datapath 扩展(LPC, 2021)

    译者序本文翻译自 LPC 2021 的一篇分享:BPF datapath extensions for K8s workloads。作者 Daniel Borkmann 和 Martynas Pumputis 都是 Cilium 的核心开发。翻译时补充了一些背景知识、代码片段和链接,以方便理解。翻译已获得作者授权。由于译者水平有限,本文不免存在遗漏或错误之处。如有疑问,请查阅原文。以下是译文。 译者序 0 引言 0.1 Cilium datapath 基础 0.2 Cilium datapath ...

  • 2021-11-19

    [译] [论文] 可虚拟化第三代(计算机)架构的规范化条件(ACM, 1974)

    译者序本文翻译自 1974 年关于可虚拟化计算机架构(即能支持 VM)的经典论文: Popek, Gerald J., and Robert P. Goldberg."Formal requirements for virtualizable third generation architectures."Communications of the ACM 17.7(1974): 412-421.虽然距今已半个世纪,但这篇文章的一些核心思想仍未过时。特别是,它在最朴素的层面介绍了虚拟机是如何工作的(就像 (译) RFC 118...

  • 2021-10-21

    [译] NAT 穿透是如何工作的:技术原理及企业级实践(Tailscale, 2020)

    译者序本文翻译自 2020 年的一篇英文博客:How NAT traversal works。设想这样一个问题:在北京和上海各有一台局域网的机器(例如一台是家里的台式机,一台是连接到星巴克 WiFi 的笔记本),二者都是私网 IP 地址,但可以访问公网,如何让这两台机器通信呢?既然二者都能访问公网,那最简单的方式当然是在公网上架设一个中继服务器:两台机器分别连接到中继服务,后者完成双向转发。这种方式显然有很大的性能开销,而且中继服务器很容易成为瓶颈。有没有办法不用中继,让两台机器直接通信呢?如果有一定的网络和协议基础,就会明白这...

  • 2021-10-07

    [译] 写给工程师:关于证书(certificate)和公钥基础设施(PKI)的一切(SmallStep, 2018)

    译者序本文翻译自 2018 年的一篇英文博客:Everything you should know about certificates and PKI but are too afraid to ask,作者 MIKE MALONE。这篇长文并不是枯燥、零碎地介绍 PKI、X.509、OID 等概念,而是从前因后果、历史沿革的角度把这些东西串联起来,逻辑非常清晰,让读者知其然,更知其所以然。证书和 PKI 的目标其实很简单:将名字关联到公钥(bind names to public keys)。加密方式的演进: MAC ...

  • 2021-09-14

    [译] 基于角色的访问控制(RBAC):演进历史、设计理念及简洁实现(Tailscale, 2021)

    译者序本文翻译自 2021 年的一篇英文博客:RBAC like it was meant to be。很多系统(例如 Kubernetes、AWS)都在使用某种形式的 RBAC 做权限/访问控制。本文基于 access control 的发展历史,从设计层面分析了DAC -> MAC -> RBAC -> ABAC的演进历程及各模型的优缺点、适用场景等,然后从实际需求出发,一步步地设计出一个实用、简洁、真正符合 RBAC 理念的访问控制系统。作为对比,如果想看看表达能力更强(但也更复杂)的 RBAC/ABAC...

  • 2021-09-10

    [译] Control Group v2(cgroupv2 权威指南)(KernelDoc, 2021)

    译者序本文翻译自 2021 年 Linux 5.10 内核文档:Control Group v2,它是描述 cgroupv2 用户空间侧的设计、接口和规范的权威文档。原文非常全面详细,本文只翻译了目前感兴趣的部分,其他部分保留原文。另外,由于技术规范的描述比较抽象,因此翻译时加了一些系统测试输出、内核代码片段和链接,便于更好理解。由于译者水平有限,本文不免存在遗漏或错误之处。如有疑问,请查阅原文。以下是译文。 译者序 1 引言 1.1 术语 1.2 cgroup 是什么? ...