色婷婷AⅤ一区二区三区|亚洲精品第一国产综合亚AV|久久精品官方网视频|日本28视频香蕉

          "); //-->

          博客專欄

          EEPW首頁 > 博客 > nginx適配Overlay以及測(cè)試工具

          nginx適配Overlay以及測(cè)試工具

          發(fā)布人:天翼云開發(fā)者 時(shí)間:2025-01-17 來源:工程師 發(fā)布文章

          本文分享自天翼云開發(fā)者社區(qū)《nginx適配Overlay以及測(cè)試工具》,作者:pan

           

          Overlay與Underlay介紹

          Overlay網(wǎng)絡(luò)和Underlay網(wǎng)絡(luò)是一組相對(duì)概念,Overlay網(wǎng)絡(luò)是建立在Underlay網(wǎng)絡(luò)上的邏輯網(wǎng)絡(luò)。而Overlay網(wǎng)絡(luò)是通過網(wǎng)絡(luò)虛擬化技術(shù),在同一張Underlay網(wǎng)絡(luò)上構(gòu)建出的一張或者多張?zhí)摂M的邏輯網(wǎng)絡(luò),如下圖所示。

          詳細(xì)資料可查看https://zhuanlan.zhihu.com/p/43660513511.jpg


          ELB使用的技術(shù)方案

          天翼云ELB使用VXLAN隔離,需要進(jìn)行VXLAN的解析與封裝。VXLAN技術(shù)是一種大二層的虛擬網(wǎng)絡(luò)技術(shù),主要原理是引入一個(gè)UDP格式的外層隧道作為數(shù)據(jù)鏈路層,而原有數(shù)據(jù)報(bào)文內(nèi)容作為隧道凈荷加以傳輸。

          ELB使用dpvs以及nginx做7層http和https的代理以及分發(fā)。報(bào)文流向?yàn)榭蛻舳耍▋?nèi)網(wǎng)或者公網(wǎng))->ELB(內(nèi)部為dpvs->nginx)->RS(真正的http服務(wù)端)。因?yàn)镋LB和RS處于同一VXLAN中,那么nginx轉(zhuǎn)發(fā)的報(bào)文就需要封裝VXLAN,又因?yàn)镽S需要知道真實(shí)的客戶端IP,nginx也需要獲取客戶端IP并轉(zhuǎn)發(fā)的時(shí)候增加X-Forwarded-For。

          dpvs收到報(bào)文會(huì)解析VXLAN,同時(shí)轉(zhuǎn)發(fā)到nginx,因?yàn)閐pvs采用FULLNAT的模式,nginx如果要獲取真實(shí)ip,二者之間采用了Proxy Protocol。Proxy protocol,是一個(gè)Internet協(xié)議,通過為tcp添加一個(gè)很小的頭信息,來方便的傳遞客戶端信息(協(xié)議棧、源IP、目的IP、源端口、目的端口等)。因?yàn)閚ginx還需要知道VXLAN的id,對(duì)Proxy Protocol進(jìn)行了改造,增加了vni字段,如下圖。 12.jpgnginx就需要在原生代碼基礎(chǔ)上,增加vni字段的讀取。同時(shí)連接upstream時(shí),因?yàn)樾枰庋bvni,通過SO_BINDTODEVICE綁定到具體網(wǎng)卡,完成VXLAN封裝。

           

          如何測(cè)試

          因?yàn)橄啾萈roxy Protocol多一個(gè)字段,通過curl無法自測(cè),通過一個(gè)python工具來測(cè)試,源碼為https://github.com/codejudas/py-proxy-protocol/。但是需要修改,增加一個(gè)vni字段,在代碼中涉及vni的地方均添加字段即可,如下圖。13.jpg 然后修改測(cè)試下面的socket.py,測(cè)試結(jié)果如圖: 14.jpg 

          *博客內(nèi)容為網(wǎng)友個(gè)人發(fā)布,僅代表博主個(gè)人觀點(diǎn),如有侵權(quán)請(qǐng)聯(lián)系工作人員刪除。



          關(guān)鍵詞: nginx 虛擬化

          相關(guān)推薦

          技術(shù)專區(qū)

          關(guān)閉