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

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

網絡
本文通過實踐演示,介紹如何在MQTT設備接入時獲取真實IP地址。

Part 01

需求背景 

在OneNET平臺某私有化項目中,項目方的需求是要獲取設備真實IP地址,然后根據設備的IP來統計處于各個省內區域的設備數量展示到大屏上。

Part 02

查找解決方案 

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

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

圖片圖片

proxy protocol協議流程

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

圖片

proxy protocol報文格式

后端服務要獲取這個特殊報文也需要在Nginx上配置開啟proxy_protocol協議,如下圖中所示。

圖片

Nginx上配置開啟proxy_protocol協議

通過wireshark工具抓包我們也發現包結構和查閱到的資料是一致的,接下來我們要做的就是在MQTT協議解析的時候把這個特殊的包也要解析處理并保存這個客戶端的真實IP。

圖片

Wireshark抓proxy_protocol協議包

Part 03

實踐操作  

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

圖片

真實IP解碼器

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

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

圖片

圖片

真實IP解碼器源碼

Part 04

測試認證 

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

圖片

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

責任編輯:龐桂玉 來源: 移動Labs
相關推薦

2023-07-23 18:47:59

Docker開源

2023-07-16 18:46:30

2023-07-16 18:49:42

HTTP網絡

2023-04-15 20:25:23

微前端

2023-07-02 16:09:57

人工智能人臉識別

2023-07-02 16:34:06

GPU虛擬化深度學習

2023-07-12 15:50:29

機器學習人工智能

2023-08-29 06:50:01

Javamaven

2023-09-12 07:10:13

Nacos架構

2023-07-30 10:09:36

MMD數據庫

2023-08-15 14:46:03

2023-07-31 08:55:15

AI技術網絡暴力

2023-07-23 08:35:13

Web網絡

2024-12-18 14:10:33

2023-07-12 16:03:37

Android開發架構

2023-09-17 17:51:43

Android 14

2023-08-06 07:00:59

Openstack網絡

2023-07-16 18:42:18

2023-08-06 06:55:29

數字可視化物聯網

2023-06-11 17:32:07

單元測試軟件測試
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 国产日韩一区二区三区 | 日韩欧美网 | 自拍第一页 | 91亚洲免费 | www在线| 日本激情视频网 | 亚洲另类春色偷拍在线观看 | 亚洲一区在线日韩在线深爱 | 91五月婷蜜桃综合 | 日韩在线不卡 | 日本国产精品视频 | 视频一区在线观看 | 国内精品伊人久久久久网站 | 亚洲精品视频在线 | 在线观看中文字幕 | 国产婷婷色一区二区三区 | 黄色片av | 中文字幕在线免费观看 | 中文字幕丁香5月 | 亚洲欧美国产精品一区二区 | 日韩2020狼一二三 | 亚洲精品电影网在线观看 | 免费黄色大片 | 国产精品毛片无码 | 91.色 | 欧美日韩中文国产一区发布 | 日韩天堂av | 久久久久国产一区二区三区四区 | av在线天天 | 欧美性受xxxx白人性爽 | 欧美一区二区三区在线播放 | 人人鲁人人莫人人爱精品 | 国产精品地址 | 人人草人人干 | 午夜视频网站 | 福利一区在线观看 | 有码一区| m豆传媒在线链接观看 | 亚洲看片 | 中文字幕精品视频 | 成人在线精品 |