亚洲v欧美v另类v综合v日韩v,好看的黄色片,这里只有精品免费视频,特级做a爱片久久久久久

五分鐘技術(shù)趣談 | MQTT設(shè)備接入時(shí)獲取真實(shí)IP地址的解決方案
作者 | 中移物聯(lián)2023-07-31

Part 01

● 需求背景 ●

在OneNET平臺某私有化項(xiàng)目中,項(xiàng)目方的需求是要獲取設(shè)備真實(shí)IP地址,然后根據(jù)設(shè)備的IP來統(tǒng)計(jì)處于各個(gè)省內(nèi)區(qū)域的設(shè)備數(shù)量展示到大屏上。

Part 02

● 查找解決方案 ●

以MQTT設(shè)備接入為例,由于項(xiàng)目方使用的外層負(fù)載是Nginx軟負(fù)載,并且MQTT協(xié)議是基于TCP,只能走4層方式轉(zhuǎn)發(fā)報(bào)文,Nginx轉(zhuǎn)發(fā)報(bào)文的時(shí)候會將源TCP連接的IP地址改寫為自己的內(nèi)網(wǎng)IP地址,不能像F5這種硬負(fù)載可以直接將設(shè)備的源地址轉(zhuǎn)發(fā)到后端服務(wù)上,因此就不能直接通過配置Nginx的方式來讓MQTT接入服務(wù)獲取到設(shè)備源IP地址,也就不能實(shí)現(xiàn)項(xiàng)目方的需求。

經(jīng)過網(wǎng)上查詢相關(guān)解決方案,發(fā)現(xiàn)一個(gè)Internet協(xié)議叫做proxy protocl(參考資料:https://www.jianshu.com/p/cc8d592582c9),該協(xié)議可以通過為TCP包添加一個(gè)很小的頭信息,來傳遞客戶端信息(協(xié)議棧、源IP、目的IP、源端口、目的端口等),在網(wǎng)絡(luò)情況復(fù)雜又需要獲取用戶真實(shí)IP時(shí)非常有用。其本質(zhì)是在三次握手結(jié)束后由代理在連接中插入了一個(gè)攜帶了原始連接四元組信息的數(shù)據(jù)包。

image

proxy protocol協(xié)議流程

查閱到proxy protocol報(bào)文的格式如下圖中所示,里面包含了客戶端的源地址和端口等信息,能夠滿足我們的需求。

image

proxy protocol報(bào)文格式

后端服務(wù)要獲取這個(gè)特殊報(bào)文也需要在Nginx上配置開啟proxy_protocol協(xié)議,如下圖中所示。

image

Nginx上配置開啟proxy_protocol協(xié)議

通過wireshark工具抓包我們也發(fā)現(xiàn)包結(jié)構(gòu)和查閱到的資料是一致的,接下來我們要做的就是在MQTT協(xié)議解析的時(shí)候把這個(gè)特殊的包也要解析處理并保存這個(gè)客戶端的真實(shí)IP。

image

Wireshark抓proxy_protocol協(xié)議包

Part 03

● 實(shí)踐操作 ●

說干就干,我們修改MQTT接入服務(wù)的源代碼是基于Netty框架實(shí)現(xiàn)的,于是我們在編解碼的時(shí)候增加了真實(shí)IP解碼器,如下圖所示。

image

真實(shí)IP解碼器

隨后我們在解碼器的decode方法中,將原始報(bào)文解析出來,判斷是否有proxy protocol報(bào)文,然后解析報(bào)文并提取里面的設(shè)備真實(shí)源IP地址和端口,并將之保持在Netty中的ChannelAttribute上下文中,方便后續(xù)獲取。

注意,這里的proxy protocol報(bào)文和MQTT協(xié)議中的報(bào)文是粘包在一起的,所以我們需要提取源地址后將剩余的MQTT協(xié)議包分離處理交給后續(xù)的MQTT協(xié)議解碼器進(jìn)行處理,這就是整體處理流程。

image

真實(shí)IP解碼器源碼

Part 04

● 測試認(rèn)證 ●

重新打包部署服務(wù)后,我們根據(jù)日志看到通過Nginx負(fù)載方式能夠正常獲取到測試設(shè)備的源IP信息,滿足需求。

image

對于4層的UDP協(xié)議獲取設(shè)備源IP也可以參考本方案解決。

熱門文章
全新計(jì)劃體現(xiàn)了高通技術(shù)公司對需要更長產(chǎn)品生命周期的客戶的承諾;長期產(chǎn)品計(jì)劃涵蓋十多款物聯(lián)網(wǎng)專用芯片,展示具有更長生命周期的廣泛芯片種類,促進(jìn)物聯(lián)網(wǎng)應(yīng)用在企業(yè)和工業(yè)等用例中的使用。
2023-07-31
X
主站蜘蛛池模板: 女子拍下偷窥全过程| 虐乳乳乳乳乳乳乳乳乳| 俄罗斯交性video| 日本人视频JIZZ页码6| 便器の妖精av| 男人边吃奶边做受动态图| 大量国产激情视频在线观看| 国产高清毛片| 亚洲欧美日韩高清在线看| 久久久无码精品秘?人口 | 老小交小videos| 男生操女生逼的视频| 大尺度吸乳奶头| 好长?好硬?受不了?原神| 办公室的故事完整版| 年轻朋友的妻子3| 公与妇仑乱8V| 掀起她的裙子从后面进| 国产自在自线午夜精品视频| 大J8又粗又硬又爽熟妇乱| 三级国产小说视频看看| 欧美草逼片| 公司業績的目標和發展計劃| 美国情事电影播放在线观看| 平罗县| FurryGay Fuck Gay Fucking| 手机看片av| 暴风影音资源在线观看高清免费版| 一边摸一边抽搐一进一出视频| 一区欧美| 精品人妻无码一区二区三区四区无码| 久久亚洲伊人成综合人影院| 嗯哼嗯哼~太大了| 国内大量揄拍情侣品视频| wang老王视频| 国产偷v国产偷v亚洲偷v| 免费精品视频一区二区三区 | 揉我奶头?啊?嗯高潮av| 欧美zo0猪| 日本草久| 3p双龙一女三根一起进|