映射,主要思路是轉發時替換報文語義,怎樣替換將須要設備進行查詢。
封裝,則是把須要的報文語義加入到網包中。處理的時候一層層的解封裝就可以,盡量對設備透明。
不少協議都實現了封裝的部分或完整功能。包含IP-in-IP、Vlan、MPLS、VXLAN、NVGRE、STT等。這些協議各有各的特點,不少都是為了簡單地隔離或者通過隧道連通不同網絡。
特別是后面幾種。設計理念大同小異,僅僅是實現細節不同。
對通用的封裝協議標准的需求已經越來越強烈。於是有了Geneve: Generic Network Virtualization Encapsulation。
Geneve的出發點是解決封裝時候加入的metadata信息問題(究竟多少位。該怎么用),嘗試適應各種虛擬化場景,Underlay的協議是最通用的IP協議(准確的說是UDP)。
跟大部分的封裝協議類似。實現Geneve一般須要兩類設備:隧道終端(tunnel endpoints)和傳輸設備(transit devices)。
前者用來處理封裝頭終止隧道,后者則是非必需的。一般是支持IP轉發的設備。
詳細來看Geneve的封裝幀,從外到里依次是
外層以太頭
外層IP頭(V4或V6)
外層UDP頭
Geneve頭(變長)
內層以太頭
Payload
外層以太頭的FCS
當中UDP的目標port默認是IANA分配的6081。而且支持可配置。UDP的校驗和必須計算正確。也可配置為0。
Geneve支持單播、多播和廣播。
