成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

五分鐘技術(shù)趣談 | MQTT設(shè)備接入時(shí)獲取真實(shí)IP地址的解決方案

網(wǎng)絡(luò)
本文通過(guò)實(shí)踐演示,介紹如何在MQTT設(shè)備接入時(shí)獲取真實(shí)IP地址。

Part 01

需求背景 

在OneNET平臺(tái)某私有化項(xiàng)目中,項(xiàng)目方的需求是要獲取設(shè)備真實(shí)IP地址,然后根據(jù)設(shè)備的IP來(lái)統(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í)候會(huì)將源TCP連接的IP地址改寫為自己的內(nèi)網(wǎng)IP地址,不能像F5這種硬負(fù)載可以直接將設(shè)備的源地址轉(zhuǎn)發(fā)到后端服務(wù)上,因此就不能直接通過(guò)配置Nginx的方式來(lái)讓MQTT接入服務(wù)獲取到設(shè)備源IP地址,也就不能實(shí)現(xiàn)項(xiàng)目方的需求。

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

圖片圖片

proxy protocol協(xié)議流程

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

圖片

proxy protocol報(bào)文格式

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

圖片

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

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

圖片

Wireshark抓proxy_protocol協(xié)議包

Part 03

實(shí)踐操作  

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

圖片

真實(shí)IP解碼器

隨后我們?cè)诮獯a器的decode方法中,將原始報(bào)文解析出來(lái),判斷是否有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)行處理,這就是整體處理流程。

圖片

圖片

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

Part 04

測(cè)試認(rèn)證 

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

圖片

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

責(zé)任編輯:龐桂玉 來(lái)源: 移動(dòng)Labs
相關(guān)推薦

2023-07-23 18:47:59

Docker開(kāi)源

2023-07-16 18:46:30

2023-07-16 18:49:42

HTTP網(wǎng)絡(luò)

2023-04-15 20:25:23

微前端

2023-07-02 16:34:06

GPU虛擬化深度學(xué)習(xí)

2023-07-02 16:09:57

人工智能人臉識(shí)別

2023-07-12 15:50:29

機(jī)器學(xué)習(xí)人工智能

2023-08-29 06:50:01

Javamaven

2023-07-30 10:09:36

MMD數(shù)據(jù)庫(kù)

2023-09-12 07:10:13

Nacos架構(gòu)

2023-08-15 14:46:03

2023-07-31 08:55:15

AI技術(shù)網(wǎng)絡(luò)暴力

2023-07-23 08:35:13

Web網(wǎng)絡(luò)

2024-12-18 14:10:33

2023-07-12 16:03:37

Android開(kāi)發(fā)架構(gòu)

2023-08-06 07:00:59

Openstack網(wǎng)絡(luò)

2023-09-17 17:51:43

Android 14

2023-08-06 06:55:29

數(shù)字可視化物聯(lián)網(wǎng)

2023-07-16 18:42:18

2023-07-12 16:13:01

點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)

主站蜘蛛池模板: 国产yw851.c免费观看网站 | 免费一区在线 | 成人aaa视频 | 一级二级三级在线观看 | 在线观看视频你懂得 | 色婷婷综合久久久久中文一区二区 | 丁香婷婷久久久综合精品国产 | 美国一级黄色片 | 精品乱码一区二区 | 国产精品二区三区在线观看 | 亚洲欧洲色视频 | 自拍第1页| 91精品国产综合久久久久久丝袜 | 日韩精品一二三 | 亚洲小视频在线观看 | 午夜精品久久久久久久99黑人 | 欧美黄色一区 | 黄色片视频网站 | 久久久国产一区二区三区四区小说 | 日韩免费一二三区 | 三级视频在线观看 | 91精品久久久久久久久 | 中文字幕亚洲一区 | 国产精品高清在线 | 欧美一区二区三区在线 | 日韩欧美亚洲综合 | 久久大香 | 瑞克和莫蒂第五季在线观看 | 91极品欧美视频 | 天天干夜夜操 | 欧美日韩中文字幕在线播放 | 日韩中文字幕在线免费 | 日日操夜夜操天天操 | 午夜在线视频 | 亚洲www啪成人一区二区麻豆 | 国产精品久久久久久福利一牛影视 | 一二区成人影院电影网 | 久久久久久91 | 97精品国产97久久久久久免费 | 久久久久久久一区 | 国产精品久久久久久久久久三级 |