Rootless Router(Part: 3): EtherGuard
RootlessRouter系列: Rootless Router(Part: 0): 用戶態DN42節點 Rootless Router(Part: 1): wggo-vpp Rootless Router(Re: 0): VPP Host stack Rootless Router(Part: 2): BIRD-vpp Rootless Router(Part: 3): EtherGuard Rootless Router(Extra):蒐集的Userspace 網路棧 Rootless Router(Part: 4): 被VPP Host Stack衝康 Rootless Router(Part: 5): 完結 Rootless Router(Fin): UML版本上線啦! Rootless Router(Afterword): Azure App Service真的很靈 前情提要: 總之BIRD確定了要用python糊以後,我就來決定來搞多節點互連了 Mesh VPN 我決定弄一個layer 2 的mesh VPN,用於我之後會架設的多個節點之間的互聯。 至於為什麼我要自己弄這個VPN呢? 首先,因為幾乎沒見到別的VPN軟體支援VPP VPP雖然有內建VPN,但是沒有一個支援udp打洞 我想要有一個VPN能夠用在VPP上,又能夠udp打洞,似乎只能些修改/重寫了 比較過幾個,最後還是決定以go語言為基礎 因為之前弄 wireguard-go-vpp 的時候,go語言下的libmemif環境都弄好了 如果要基於C++的改成memif後端,不知道環境又要搞多久 順帶一提,go語言的環境設計,真的太神了,不得不吹 不像C++有各種路徑要設定,ld_library_path,還有gcc加上LDFLAGS之類的設定 還有namespace的問題,C++的include真的就只是單純把那段code貼到#include的地方 這個設計,簡單是很簡單,但是各種變數汙染也是不好弄 go語言就方便多了。go get XXX,go mod vender,所有需要的檔案通通搬去vender子資料夾 mod之間也不會互相汙染,真是太神奇了! go語言萬歲! EtherGuard 花了半個月,我終於寫完了! 最後我決定把新弄得VPN取名叫做Etherguard。為什麼叫做Etherg