<pre id="co8k0"><cite id="co8k0"></cite></pre><strike id="co8k0"></strike>
  • <acronym id="co8k0"><cite id="co8k0"></cite></acronym>
  • <nav id="co8k0"></nav>
    <input id="co8k0"><em id="co8k0"></em></input>
  • 雙向NAT在工業場景的應用

    在工業網絡場景中,可能會用到NAT的地方,包括現場級/工廠級/企業級之間存在地址重疊、廠區之間有系統互聯需求但使用了同網段、需要隱藏工業現場的IP地址、從工業現場總線過渡到工業以太網、前期信息網規劃不盡合理、淘工廠興起將線下工廠搬到線上等。本篇先為大家介紹雙向NAT在工業場景的應用。

    場景一:工業現場會遇到客戶將網絡設備外包給第三方維護。操作員站與PLC無法通信,但均能與工業防火墻通信,在不修改網絡設備的情況下如何實現操作員站與PLC通信呢?

    場景二:工業現場部署安全防護類產品時,常會遇到工業PLC無法配置網關、工業攝像機無法修改網關等問題,沒有網關或網關錯誤的情況下如何實現跨網段通信呢?

    場景三:客戶現場由于當初規劃不合理,沒有將服務器單獨劃分網段或DMZ區域,內網用戶訪問內網服務器想隱藏內網地址,同時還想進行安全檢測及保護,應該如何解決?

    一、雙向NAT介紹

    1.1 什么是雙向NAT

    雙向NAT是針對同一條流同時轉換報文的源IP地址和目的IP地址。

    1.2 雙向NAT應用場景

    ① 域間雙向NAT:工業現場一些設備不允改動,例如網絡設備不能修改路由、工業攝像機無法修改網關、工業PLC無法配置網關。

    ② 域內雙向NAT:想讓內網用戶通過外網地址訪問DMZ區的服務器,且想經過出口墻檢查來增加安全性。

    二、解決方案介紹

    2.1 場景一解決方案介紹

    ① 需求:由于三層交換機到操作員站1(192.168.40.3)的路由沒有配置或配置錯誤,導致操作員站1與西門子PLC無法通信。在不修改三層交換機的情況下,實現操作員站1與西門子PLC通信。

    ② 方案:配置域間雙向NAT,來解決中間網絡設備沒有路由的場景。

    ③ 原理:通過域間雙向NAT,使操作員站1通過工業防火墻地址(192.168.40.1),來間接訪問到西門子PLC。PLC回應時通過防火墻地址(192.168.182.100),來將數據報文送達操作員站1。

    2.2 場景二解決方案介紹

    ① 需求:由于PLC沒有配置網關或網關錯誤,導致操作員站1與西門子PLC無法通信。客戶反饋PLC沒有條件修改網關,希望在此件條件下能夠解決問題。

    ② 方案:配置域間雙向NAT,來解決PLC沒有網關或網關錯誤的場景。

    ③ 原理:通過域間雙向NAT,使操作員站1通過工業防火墻地址(192.168.40.1),來間接訪問到西門子PLC。PLC回應時通過訪問工業防火墻地址(192.168.120.1),此時是同網段不需要網關,發送ARP來獲取工業防火墻(192.168.120.1)接口的MAC來完成通信,最終將數據報文送達操作員站1。

    2.3 場景三解決方案介紹

    ① 需求:由于管理員在規劃網絡時“偷懶”,將內網用戶和內網服務器規劃到同一個網段中。現在希望內網用戶通過外網地址訪問內網服務器。作用是隱藏內網服務器地址,并使流量經過防火墻,由此來提高網絡的安全性。

    ② 方案:配置域內雙向NAT,將內網用戶訪問內網服務器的報文的源地址進行轉換,轉換后源地址可以是外網地址池IP地址(也可以是內網地址,只要不和內網服務器地址在同網段),這樣內網服務器的回應報文就會被發送到防火墻。

    ③ 原理:配置域內雙向NAT,當內網用戶通過訪問防火墻外網地址(1.1.1.1),來間接訪問到內網服務器(10.1.1.2)時,防火墻將源地址轉換為地址池中地址(1.1.1.100)。此時服務器回應報文目的地址為地址池中地址(1.1.1.100),使流量仍然經過防火墻處理,再轉換后發給內網用戶。

    三、典型案例-場景一

    3.1 任務說明

    三層交換機沒有到操作員站1的路由,導致操作員站1與西門子PLC無法通信,但均能與工業防火墻通信。在不修改三層交換機的情況下,完成操作員站1與西門子PLC通信。

    3.2 配置說明

    定義感興趣流

    CLI(方法一):acl acl01 src-ip net 192.168.40.0 255.255.255.0 dst-ip net 192.168.40.1 255.255.255.255 protocol-object s7/mms permit

    WEB(方法二):

    配置域間雙向NAT

    CLI(方法一):

    nat acl acl01 dnat ip 192.168.120.101 no-port-transfer

    nat acl acl01 snat ip 192.168.182.100 no-port-transfer

    WEB(方法二):

    3.3 驗證說明

    在操作員站1用WinCC向西門子PLC下發溫度和濕度指令:

    在工業防火墻上可以看到s7工業協議

    在工業防火墻上可以看到查看會話信息:

    分別在入口(192.168.40.1)和出口(192.168.182.100)抓包

    通過會話和抓包,可以看到工業防火墻的域間雙向NAT轉換過程

    1)IP報文從操作員站到西門子PLC的轉換過程:

    操作員站下發的指令報文經過工業防火墻,目的地址(192.168.40.1)經過DNAT轉換為PLC地址(192.168.120.101):(Ge0/0/4)192.168.40.1:102[192.168.120.101:102],通過會話信息可以看到西門子S7協議使用TCP協議102端口。

    源地址(192.168.40.3)經過SNAT轉換為工業防火墻地址(192.168.182.100):

    (Ge0/0/5.30)192.168.40.3:63948[192.168.182.100:63948]。

    這樣報文的源地址和目的地址就同時進行了轉換,即完成了域間雙向NAT。

    2)IP報文從西門子PLC到操作員站的轉換過程:

    當PLC的回應報文經過工業防火墻時,目的地址(192.168.182.100)根據session表((Ge0/0/5.30)192.168.40.3:63948[192.168.182.100:63948])轉換為操作員站地址(192.168.40.3)。

    源地址(192.168.120.101)經session表((Ge0/0/4)192.168.40.1:102[192.168.120.101:102])轉換為工業防火墻地址(192.168.40.1)。

    這樣報文再次進行域間雙向NAT轉換,報文的源地址和目的地址均進行了轉換。

    3.4 NAT補充說明

    細心的同學可能會問,會不會影響訪問工業防火墻的管理流量?可能會,有2個方案供參考。

    工業防火墻啟用第三個口(建議是Ge0/0/0),插上第三根網線,也就是帶外管理啦。

    SNAT和DNAT都可以增加地址池,方便內網和外網通過帶內的方式來管理工業防火墻。

    四、典型案例-場景二

    4.1 任務說明

    PLC沒有配置網關或網關錯誤,導致操作員站1與西門子PLC無法通信。在不修改PLC的情況下,實現操作員站1與西門子PLC通信。

    配置說明

    ① 定義感興趣流acl acl01 src-ip net 192.168.40.0 255.255.255.0 dst-ip net 192.168.40.1 255.255.255.255 protocol-object s7/mms permit

    ② 配置域間雙向NAT

    nat acl acl01 dnat ip 192.168.120.101 no-port-transfer

    nat acl acl01 snat ip 192.168.120.1 no-port-transfer

    驗證說明

    在操作員站1用WinCC向西門子PLC下發溫度和濕度指令:

    在工業防火墻上可以看到s7工業協議

    在工業防火墻上可以看到查看會話信息:

    通過查看會話,可以看到工業防火墻的域間雙向NAT轉換過程

    1)IP報文從操作員站到西門子PLC的轉換過程:

    操作員站訪問西門子PLC的報文到達工業防火墻時,目的地址(192.168.40.1)經過DNAT轉換為西門子PLC(192.168.120.101):(Ge0/0/4)192.168.40.1:102[192.168.120.101:102]。

    源地址(192.168.40.3)經過SNAT轉換為工業防火墻地址(192.168.120.1),與西門子PLC屬于同一網段:(Ge0/0/5.30)192.168.40.3:64066[192.168.120.1:64066] 。

    這樣報文的源地址和目的地址就同時進行了轉換,即完成了域間雙向NAT。

    2)IP報文從西門子PLC到操作員站的轉換過程:

    西門子PLC的回應報文經過工業防火墻時,目的地址(192.168.120.1)根據session表((Ge0/0/5.30)192.168.40.3:64066[192.168.120.1:64066])轉換為操作員站地址(192.168.40.3)。

    西門子PLC的源地址(192.168.120.101)根據session表((Ge0/0/4)192.168.40.1:102[192.168.120.101:102])轉換為工業防火墻地址(192.168.40.1)。

    這樣報文再次進行域間雙向NAT轉換,報文的源地址和目的地址均進行了轉換。

    4.3 西門子PLC沒有網關是如何通信的?如果操作員站沒有網關,域間雙向NAT可以解決嗎?

    沒有網關還能跨網段通信的大體過程:當西門子PLC回應操作員站的請求時,發現自己的地址(192.168.120.101)和目的地址(192.168.120.1)在同一網段,此時西門子PLC就不會去查找路由,而是發送ARP廣播報文詢問目的地址對應的MAC地址。工業防火墻會收到ARP廣播,一看目的IP正是自己的(192.168.120.1),于是將(192.168.120.1)對應接口MAC地址發給西門子PLC,告訴PLC:“把回應報文發送給我即可”,所以西門子PLC將回應報文發送至工業防火墻,工業防火墻再對其進行后續處理。既然西門子PLC上省去了查找路由的環節,那就不用設置網關了,這就是配置域間雙向NAT的好處。

    操作員站沒有網關,通過域間雙向NAT是可以解決的。此場景中操作員站1可以刪除網關,因為操作員站與工業防火墻在同網段。

    五、典型案例-場景三

    5.1 任務說明

    內網用戶和內網服務器在同一個網段,使內網用戶通過外網地址訪問內網服務器。隱藏內網服務器地址,同時使流量經過防火墻來提高安全性。

    5.2 配置說明

    ① 配置感興趣流、配置域內雙向NAT(DNAT配置)

    CLI(方法一):

    acl acl01 dst-ip net 1.1.1.1 255.255.255.255 permit

    nat acl acl01 dnat ip 10.1.1.2 no-port-transfer

    WEB(方法二):

    ② 配置感興趣流、配置域內雙向NAT(SNAT配置)

    CLI(方法一):

    acl acl02 src-ip net 10.1.1.3 255.255.255.255 permit

    object address-pool address_pool

    ip address 1.1.1.100 1.1.1.100

    nat acl acl02 snat interface Ge0/0/3 ip-pool address_pool hash-mapping no-port-transfer

    WEB(方法二):

    5.3 驗證說明

    ① 訪問內網服務器(驗證http和ping)

    ② 查看會話(nat和icmp)

    ③ 查看抓包(icmp)

    1)內網用戶處抓包

    2)內網服務器抓包

    ④ 通過會話和抓包,可以清晰看到FW做了什么

    1)IP報文從內網用戶到內網服務器的轉換過程:

    當內網用戶訪問內網服務器的報文到達防火墻時,目的地址(1.1.1.1)經過DNAT轉換為內網服務器地址(10.1.1.2):(Ge0/0/2)1.1.1.1:NA[10.1.1.2:NA] 。

    源地址(10.1.1.3)經過SNAT轉換為外網地址(1.1.1.100),與內網服務器(10.1.1.3)在不同網段:(Ge0/0/2)10.1.1.3:NA[1.1.1.100:NA] 。

    這樣報文的源地址和目的地址就同時進行了轉換,即完成了域內雙向NAT。

    ② IP報文從內網服務器到內網用戶的轉換過程:

    當內網服務器的回應報文經過防火墻時,目的地址(1.1.1.100)根據session表((Ge0/0/2)10.1.1.3:NA[1.1.1.100:NA])轉換為內網用戶地址(10.1.1.3)。

    源地址(10.1.1.2)根據session表((Ge0/0/2)1.1.1.1:NA[10.1.1.2:NA])轉換為外網地址(1.1.1.1)。

    這樣報文再次進行域內雙向NAT轉換,報文的源地址和目的地址均轉換為外網地址。

    5.4 域內雙向NAT補充說明

    ① 文中說為了便于防火墻管理使用了地址池,但如果不使用地址池地址,直接使用外網出口地址可以嗎?

    1)直接使用外網出口地址是可以的,一樣可以達到需求所要求的效果。

    2)其實內網地址也是可以的,只要不和內網服務器在同一網段即可。

    ② 也許有人會說“內網用戶與內網服務器連接防火墻的不同口,會有什么變化呢?”

    1)如果將內網用戶和內網服務器通過不同的接口連接到防火墻,此時內網用戶和內網服務器交互的所有報文會經過防火墻轉發,所以只配置DNAT就可以了。

    2)關鍵要明確NAT轉換的方向和轉換后地址的作用,而不要糾結于轉換后是外網地址還是內網地址,靈活應用域內雙向NAT可以起到事半功倍的效果。

    六方云作為工業互聯網的資深廠商,有責任和義務盡可能多的向合作伙伴及客戶,傳播正能量的、有價值的、更具深度的解決方案和技術原理,幫助客戶解決問題的同時也實現我們公司的自身價值。

    來源:IT時代網

    IT時代網(關注微信公眾號ITtime2000,定時推送,互動有福利驚喜)所有原創文章版權所有,未經授權,轉載必究。
    創客100創投基金成立于2015年,直通硅谷,專注于TMT領域早期項目投資。LP均來自政府、互聯網IT、傳媒知名企業和個人。創客100創投基金對IT、通信、互聯網、IP等有著自己獨特眼光和豐富的資源。決策快、投資快是創客100基金最顯著的特點。

    相關文章
    雙向NAT在工業場景的應用
    Dynatrace 榮獲《2022 Gartner? APM 和可觀測能力的關鍵能力》四項最高分
    Dynatrace 連續12年入選Gartner應用性能監測魔力象限領導者
    云原生批流融合數據平臺StreamNative宣布2300萬美元A輪融資,Prosperity7 Ventures與華泰創新聯合領投

    精彩評論