[Container Network Interface] Bridge Network In Docker
The most import feature of the container is the resource isolation, including the mount, network, user, UTC and PID. that's the reason why we can't see those resources status of the host. The resources isolation are supported by the Linux Kernel and we will demostrate the networking part by the network namespace and also show you how does the docekr use the network namespace and Linux Bridge to proivde the network connectivity for each container.
[Container Network Interface] Implement Your CNI In Golang
As we know, the kubernetes use the CNI to provide the network connectivity for its Pod unit and the cluster administrator can choose what kind of the CNI should be installed in the cluster. For example, if the only requirement is the overlay network, you can choose the flannel CNI and choose the calico CNI if you have the requirement of the BGP. In this post, we will learn how to write your own CNI in golang language. Actually, You can implement it with any language as you like.
[netfilter] Introduction to ebtables
本文是 iptables/ebtables 系列分享文的第一篇,會先著重於 iptables/ebtables 本身的架構,更準確的是 netfilter 的架構介紹,從 User-Space 到 Kernel-Space 的組成元件,並且簡單敘述一下整體的運作流程。最後開始介紹 ebtables 這個存在但是較少人知道的工具,不同於 iptables, ebtables 更專注於基於 MAC 地址的 Layer2 轉發。 文章最後介紹了 ebtables 的規則組成,並且將 ebtables 規則的處理順序以圖表的方式呈現,讓大家更容易理解在 Layer2 轉發時,該怎麼透過 `ebtables` 去設定相關的規則來處理封包。
[netfilter] Introduction to iptables
透過瞭解 iptables 規則的四大組成 Table/Chian/Match/Target 來學習 iptables 的規則含義,同時透過圖表的方式來釐清封包在 Linux Kernel 傳輸過程中受到 iptables 規則的處理順序。最後會將 iptables 以及 ebtables 兩者的流程圖整合在一起,構建出一個更全面的封包轉送流程圖,於此流程圖中可以觀察到封包在 Routing/Bridging 不同過程中,是如何通過不同的 ebtables/iptables 規則的處理。 擁有這些資訊能夠讓你對系統上的 iptables/ebtables 有更全面性的理解其功用以及發生時機
[Switchdev] How Kernel Implement SwitchDev(i)
探討 Kernel 如何實作 SwitchDev (I)
[Switchdev] How Kernel Implement SwitchDev(ii)
探討 Kernel 如何實作 SwitchDev (II)
[Switchdev] Introduuction To Switchdev
探討 SwitchDev 架構問題
[論文導讀] Maglev: A Fast and Reliable Software Network Load Balancer
本篇文章是屬於論文導讀系列,這次的對象是Google所推出的Software Network Load Balancer, Meglev. 透過對該論文的研究後可以學習到Google對於一個 Network Load Balancer 的期許以及設計的思考脈絡,並且實際理解其架構來學習到如何設計一個通用(可運行在任意的 Linux Server上), 分散式且易於擴充的彈性架構以及高PPS(Packet Per Second)處理能力的軟體程式。最後透過論文中的實驗與效能評估來觀察實際上 Meglev 的效能以及是否有滿足Google對該軟體架構的期望。
Drbd Networking Structure Introduction
Introduction
IPvS 學習手冊(三)
本文作為 IPVS 系列文第三篇, 會從 Kernel 作為出發點,探討一下 IPVS 本身的模組概念,分享兩種不同的內建除錯方式,此外也會從原始碼的部分看一下 IPVS 初始化的過程做了哪些事情
IPvS 學習手冊(四)
本文作為 IPVS 系列文第四篇,主要是跟大家介紹 IPVS 於 Linux Kernel 內的架構設計,透過理解其設計更可以幫助我們去瞭解 IPVS 與 IPTABLES 的差異,面對諸如此類的探討文章更能夠有足夠的背景去思考與學習
Linux-Kernel-PacketCapture
最近突然對抓封包挺有興趣的,正好以前修網際網路規約時,有trace過linux中TCP/IP相關的code
NFQUEUE drop UDP packets
探討 NFQUEUE + iptables 結合後丟棄 UDP 封包的問題
OVS + DPDK + Docker 共同玩耍
本文介紹了一種將 Contaienr 創建於 OpenvSwitch 與 DPDK 整合的網路拓墣下所遇到的連線問題。開頭先闡述了拓墣架構以及相關的軟體版本,接者介紹是如何搭建起整個測試環境,並且在測試環境中遇到了網路連線的問題,眾多的測試組合中,卻只有一種組合能夠正常的在 Container 間建立起能夠傳輸的 TCP 連線。最後透過 AB 測試的方法歸納出一些會造成問題出現的環境。
OVS + DPDK + Docker 共同玩耍(二)
本文延續前篇文章關於 Docker/OpenvSwitch/DPDK 整合遇到的連線問題,此文章會專注於這個連線問題,從問題發生的原因到如何解決,以及該問題為什麼會在上述的組合中發生都進行一些研究與分析,雖然最後還沒有找到真正造成封包損壞的原因,但是至少也把問題範圍給縮小到 OpenvSwitch/DPDK 上.
你真的理解過 PING 這個指令嗎?
探討 ping 指令的不同實作方式