在工業(yè)網(wǎng)絡(luò)場(chǎng)景中,可能會(huì)用到NAT的地方,包括現(xiàn)場(chǎng)級(jí)/工廠級(jí)/企業(yè)級(jí)之間存在地址重疊、廠區(qū)之間有系統(tǒng)互聯(lián)需求但使用了同網(wǎng)段、需要隱藏工業(yè)現(xiàn)場(chǎng)的IP地址、從工業(yè)現(xiàn)場(chǎng)總線過(guò)渡到工業(yè)以太網(wǎng)、前期信息網(wǎng)規(guī)劃不盡合理、淘工廠興起將線下工廠搬到線上等。本篇先為大家介紹雙向NAT在工業(yè)場(chǎng)景的應(yīng)用。
場(chǎng)景一:工業(yè)現(xiàn)場(chǎng)會(huì)遇到客戶將網(wǎng)絡(luò)設(shè)備外包給第三方維護(hù)。操作員站與PLC無(wú)法通信,但均能與工業(yè)防火墻通信,在不修改網(wǎng)絡(luò)設(shè)備的情況下如何實(shí)現(xiàn)操作員站與PLC通信呢?
場(chǎng)景二:工業(yè)現(xiàn)場(chǎng)部署安全防護(hù)類產(chǎn)品時(shí),常會(huì)遇到工業(yè)PLC無(wú)法配置網(wǎng)關(guān)、工業(yè)攝像機(jī)無(wú)法修改網(wǎng)關(guān)等問(wèn)題,沒(méi)有網(wǎng)關(guān)或網(wǎng)關(guān)錯(cuò)誤的情況下如何實(shí)現(xiàn)跨網(wǎng)段通信呢?
場(chǎng)景三:客戶現(xiàn)場(chǎng)由于當(dāng)初規(guī)劃不合理,沒(méi)有將服務(wù)器單獨(dú)劃分網(wǎng)段或DMZ區(qū)域,內(nèi)網(wǎng)用戶訪問(wèn)內(nèi)網(wǎng)服務(wù)器想隱藏內(nèi)網(wǎng)地址,同時(shí)還想進(jìn)行安全檢測(cè)及保護(hù),應(yīng)該如何解決?
一、雙向NAT介紹
1.1 什么是雙向NAT
雙向NAT是針對(duì)同一條流同時(shí)轉(zhuǎn)換報(bào)文的源IP地址和目的IP地址。
1.2 雙向NAT應(yīng)用場(chǎng)景
① 域間雙向NAT:工業(yè)現(xiàn)場(chǎng)一些設(shè)備不允改動(dòng),例如網(wǎng)絡(luò)設(shè)備不能修改路由、工業(yè)攝像機(jī)無(wú)法修改網(wǎng)關(guān)、工業(yè)PLC無(wú)法配置網(wǎng)關(guān)。
② 域內(nèi)雙向NAT:想讓內(nèi)網(wǎng)用戶通過(guò)外網(wǎng)地址訪問(wèn)DMZ區(qū)的服務(wù)器,且想經(jīng)過(guò)出口墻檢查來(lái)增加安全性。
二、解決方案介紹
2.1 場(chǎng)景一解決方案介紹
① 需求:由于三層交換機(jī)到操作員站1(192.168.40.3)的路由沒(méi)有配置或配置錯(cuò)誤,導(dǎo)致操作員站1與西門子PLC無(wú)法通信。在不修改三層交換機(jī)的情況下,實(shí)現(xiàn)操作員站1與西門子PLC通信。
② 方案:配置域間雙向NAT,來(lái)解決中間網(wǎng)絡(luò)設(shè)備沒(méi)有路由的場(chǎng)景。
③ 原理:通過(guò)域間雙向NAT,使操作員站1通過(guò)工業(yè)防火墻地址(192.168.40.1),來(lái)間接訪問(wèn)到西門子PLC。PLC回應(yīng)時(shí)通過(guò)防火墻地址(192.168.182.100),來(lái)將數(shù)據(jù)報(bào)文送達(dá)操作員站1。
2.2 場(chǎng)景二解決方案介紹
① 需求:由于PLC沒(méi)有配置網(wǎng)關(guān)或網(wǎng)關(guān)錯(cuò)誤,導(dǎo)致操作員站1與西門子PLC無(wú)法通信。客戶反饋PLC沒(méi)有條件修改網(wǎng)關(guān),希望在此件條件下能夠解決問(wèn)題。
② 方案:配置域間雙向NAT,來(lái)解決PLC沒(méi)有網(wǎng)關(guān)或網(wǎng)關(guān)錯(cuò)誤的場(chǎng)景。
③ 原理:通過(guò)域間雙向NAT,使操作員站1通過(guò)工業(yè)防火墻地址(192.168.40.1),來(lái)間接訪問(wèn)到西門子PLC。PLC回應(yīng)時(shí)通過(guò)訪問(wèn)工業(yè)防火墻地址(192.168.120.1),此時(shí)是同網(wǎng)段不需要網(wǎng)關(guān),發(fā)送ARP來(lái)獲取工業(yè)防火墻(192.168.120.1)接口的MAC來(lái)完成通信,最終將數(shù)據(jù)報(bào)文送達(dá)操作員站1。
2.3 場(chǎng)景三解決方案介紹
① 需求:由于管理員在規(guī)劃網(wǎng)絡(luò)時(shí)“偷懶”,將內(nèi)網(wǎng)用戶和內(nèi)網(wǎng)服務(wù)器規(guī)劃到同一個(gè)網(wǎng)段中。現(xiàn)在希望內(nèi)網(wǎng)用戶通過(guò)外網(wǎng)地址訪問(wèn)內(nèi)網(wǎng)服務(wù)器。作用是隱藏內(nèi)網(wǎng)服務(wù)器地址,并使流量經(jīng)過(guò)防火墻,由此來(lái)提高網(wǎng)絡(luò)的安全性。
② 方案:配置域內(nèi)雙向NAT,將內(nèi)網(wǎng)用戶訪問(wèn)內(nèi)網(wǎng)服務(wù)器的報(bào)文的源地址進(jìn)行轉(zhuǎn)換,轉(zhuǎn)換后源地址可以是外網(wǎng)地址池IP地址(也可以是內(nèi)網(wǎng)地址,只要不和內(nèi)網(wǎng)服務(wù)器地址在同網(wǎng)段),這樣內(nèi)網(wǎng)服務(wù)器的回應(yīng)報(bào)文就會(huì)被發(fā)送到防火墻。
③ 原理:配置域內(nèi)雙向NAT,當(dāng)內(nèi)網(wǎng)用戶通過(guò)訪問(wèn)防火墻外網(wǎng)地址(1.1.1.1),來(lái)間接訪問(wèn)到內(nèi)網(wǎng)服務(wù)器(10.1.1.2)時(shí),防火墻將源地址轉(zhuǎn)換為地址池中地址(1.1.1.100)。此時(shí)服務(wù)器回應(yīng)報(bào)文目的地址為地址池中地址(1.1.1.100),使流量仍然經(jīng)過(guò)防火墻處理,再轉(zhuǎn)換后發(fā)給內(nèi)網(wǎng)用戶。
三、典型案例-場(chǎng)景一
3.1 任務(wù)說(shuō)明
三層交換機(jī)沒(méi)有到操作員站1的路由,導(dǎo)致操作員站1與西門子PLC無(wú)法通信,但均能與工業(yè)防火墻通信。在不修改三層交換機(jī)的情況下,完成操作員站1與西門子PLC通信。
3.2 配置說(shuō)明
定義感興趣流
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 驗(yàn)證說(shuō)明
在操作員站1用WinCC向西門子PLC下發(fā)溫度和濕度指令:
在工業(yè)防火墻上可以看到s7工業(yè)協(xié)議
在工業(yè)防火墻上可以看到查看會(huì)話信息:
分別在入口(192.168.40.1)和出口(192.168.182.100)抓包
通過(guò)會(huì)話和抓包,可以看到工業(yè)防火墻的域間雙向NAT轉(zhuǎn)換過(guò)程
1)IP報(bào)文從操作員站到西門子PLC的轉(zhuǎn)換過(guò)程:
操作員站下發(fā)的指令報(bào)文經(jīng)過(guò)工業(yè)防火墻,目的地址(192.168.40.1)經(jīng)過(guò)DNAT轉(zhuǎn)換為PLC地址(192.168.120.101):(Ge0/0/4)192.168.40.1:102[192.168.120.101:102],通過(guò)會(huì)話信息可以看到西門子S7協(xié)議使用TCP協(xié)議102端口。
源地址(192.168.40.3)經(jīng)過(guò)SNAT轉(zhuǎn)換為工業(yè)防火墻地址(192.168.182.100):
(Ge0/0/5.30)192.168.40.3:63948[192.168.182.100:63948]。
這樣報(bào)文的源地址和目的地址就同時(shí)進(jìn)行了轉(zhuǎn)換,即完成了域間雙向NAT。
2)IP報(bào)文從西門子PLC到操作員站的轉(zhuǎn)換過(guò)程:
當(dāng)PLC的回應(yīng)報(bào)文經(jīng)過(guò)工業(yè)防火墻時(shí),目的地址(192.168.182.100)根據(jù)session表((Ge0/0/5.30)192.168.40.3:63948[192.168.182.100:63948])轉(zhuǎn)換為操作員站地址(192.168.40.3)。
源地址(192.168.120.101)經(jīng)session表((Ge0/0/4)192.168.40.1:102[192.168.120.101:102])轉(zhuǎn)換為工業(yè)防火墻地址(192.168.40.1)。
這樣報(bào)文再次進(jìn)行域間雙向NAT轉(zhuǎn)換,報(bào)文的源地址和目的地址均進(jìn)行了轉(zhuǎn)換。
3.4 NAT補(bǔ)充說(shuō)明
細(xì)心的同學(xué)可能會(huì)問(wèn),會(huì)不會(huì)影響訪問(wèn)工業(yè)防火墻的管理流量?可能會(huì),有2個(gè)方案供參考。
工業(yè)防火墻啟用第三個(gè)口(建議是Ge0/0/0),插上第三根網(wǎng)線,也就是帶外管理啦。
SNAT和DNAT都可以增加地址池,方便內(nèi)網(wǎng)和外網(wǎng)通過(guò)帶內(nèi)的方式來(lái)管理工業(yè)防火墻。
四、典型案例-場(chǎng)景二
4.1 任務(wù)說(shuō)明
PLC沒(méi)有配置網(wǎng)關(guān)或網(wǎng)關(guān)錯(cuò)誤,導(dǎo)致操作員站1與西門子PLC無(wú)法通信。在不修改PLC的情況下,實(shí)現(xiàn)操作員站1與西門子PLC通信。
配置說(shuō)明
① 定義感興趣流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
驗(yàn)證說(shuō)明
在操作員站1用WinCC向西門子PLC下發(fā)溫度和濕度指令:
在工業(yè)防火墻上可以看到s7工業(yè)協(xié)議
在工業(yè)防火墻上可以看到查看會(huì)話信息:
通過(guò)查看會(huì)話,可以看到工業(yè)防火墻的域間雙向NAT轉(zhuǎn)換過(guò)程
1)IP報(bào)文從操作員站到西門子PLC的轉(zhuǎn)換過(guò)程:
操作員站訪問(wèn)西門子PLC的報(bào)文到達(dá)工業(yè)防火墻時(shí),目的地址(192.168.40.1)經(jīng)過(guò)DNAT轉(zhuǎn)換為西門子PLC(192.168.120.101):(Ge0/0/4)192.168.40.1:102[192.168.120.101:102]。
源地址(192.168.40.3)經(jīng)過(guò)SNAT轉(zhuǎn)換為工業(yè)防火墻地址(192.168.120.1),與西門子PLC屬于同一網(wǎng)段:(Ge0/0/5.30)192.168.40.3:64066[192.168.120.1:64066] 。
這樣報(bào)文的源地址和目的地址就同時(shí)進(jìn)行了轉(zhuǎn)換,即完成了域間雙向NAT。
2)IP報(bào)文從西門子PLC到操作員站的轉(zhuǎn)換過(guò)程:
西門子PLC的回應(yīng)報(bào)文經(jīng)過(guò)工業(yè)防火墻時(shí),目的地址(192.168.120.1)根據(jù)session表((Ge0/0/5.30)192.168.40.3:64066[192.168.120.1:64066])轉(zhuǎn)換為操作員站地址(192.168.40.3)。
西門子PLC的源地址(192.168.120.101)根據(jù)session表((Ge0/0/4)192.168.40.1:102[192.168.120.101:102])轉(zhuǎn)換為工業(yè)防火墻地址(192.168.40.1)。
這樣報(bào)文再次進(jìn)行域間雙向NAT轉(zhuǎn)換,報(bào)文的源地址和目的地址均進(jìn)行了轉(zhuǎn)換。
4.3 西門子PLC沒(méi)有網(wǎng)關(guān)是如何通信的?如果操作員站沒(méi)有網(wǎng)關(guān),域間雙向NAT可以解決嗎?
沒(méi)有網(wǎng)關(guān)還能跨網(wǎng)段通信的大體過(guò)程:當(dāng)西門子PLC回應(yīng)操作員站的請(qǐng)求時(shí),發(fā)現(xiàn)自己的地址(192.168.120.101)和目的地址(192.168.120.1)在同一網(wǎng)段,此時(shí)西門子PLC就不會(huì)去查找路由,而是發(fā)送ARP廣播報(bào)文詢問(wèn)目的地址對(duì)應(yīng)的MAC地址。工業(yè)防火墻會(huì)收到ARP廣播,一看目的IP正是自己的(192.168.120.1),于是將(192.168.120.1)對(duì)應(yīng)接口MAC地址發(fā)給西門子PLC,告訴PLC:“把回應(yīng)報(bào)文發(fā)送給我即可”,所以西門子PLC將回應(yīng)報(bào)文發(fā)送至工業(yè)防火墻,工業(yè)防火墻再對(duì)其進(jìn)行后續(xù)處理。既然西門子PLC上省去了查找路由的環(huán)節(jié),那就不用設(shè)置網(wǎng)關(guān)了,這就是配置域間雙向NAT的好處。
操作員站沒(méi)有網(wǎng)關(guān),通過(guò)域間雙向NAT是可以解決的。此場(chǎng)景中操作員站1可以刪除網(wǎng)關(guān),因?yàn)椴僮鲉T站與工業(yè)防火墻在同網(wǎng)段。
五、典型案例-場(chǎng)景三
5.1 任務(wù)說(shuō)明
內(nèi)網(wǎng)用戶和內(nèi)網(wǎng)服務(wù)器在同一個(gè)網(wǎng)段,使內(nèi)網(wǎng)用戶通過(guò)外網(wǎng)地址訪問(wèn)內(nèi)網(wǎng)服務(wù)器。隱藏內(nèi)網(wǎng)服務(wù)器地址,同時(shí)使流量經(jīng)過(guò)防火墻來(lái)提高安全性。
5.2 配置說(shuō)明
① 配置感興趣流、配置域內(nèi)雙向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(方法二):
② 配置感興趣流、配置域內(nèi)雙向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 驗(yàn)證說(shuō)明
① 訪問(wèn)內(nèi)網(wǎng)服務(wù)器(驗(yàn)證http和ping)
② 查看會(huì)話(nat和icmp)
③ 查看抓包(icmp)
1)內(nèi)網(wǎng)用戶處抓包
2)內(nèi)網(wǎng)服務(wù)器抓包
④ 通過(guò)會(huì)話和抓包,可以清晰看到FW做了什么
1)IP報(bào)文從內(nèi)網(wǎng)用戶到內(nèi)網(wǎng)服務(wù)器的轉(zhuǎn)換過(guò)程:
當(dāng)內(nèi)網(wǎng)用戶訪問(wèn)內(nèi)網(wǎng)服務(wù)器的報(bào)文到達(dá)防火墻時(shí),目的地址(1.1.1.1)經(jīng)過(guò)DNAT轉(zhuǎn)換為內(nèi)網(wǎng)服務(wù)器地址(10.1.1.2):(Ge0/0/2)1.1.1.1:NA[10.1.1.2:NA] 。
源地址(10.1.1.3)經(jīng)過(guò)SNAT轉(zhuǎn)換為外網(wǎng)地址(1.1.1.100),與內(nèi)網(wǎng)服務(wù)器(10.1.1.3)在不同網(wǎng)段:(Ge0/0/2)10.1.1.3:NA[1.1.1.100:NA] 。
這樣報(bào)文的源地址和目的地址就同時(shí)進(jìn)行了轉(zhuǎn)換,即完成了域內(nèi)雙向NAT。
② IP報(bào)文從內(nèi)網(wǎng)服務(wù)器到內(nèi)網(wǎng)用戶的轉(zhuǎn)換過(guò)程:
當(dāng)內(nèi)網(wǎng)服務(wù)器的回應(yīng)報(bào)文經(jīng)過(guò)防火墻時(shí),目的地址(1.1.1.100)根據(jù)session表((Ge0/0/2)10.1.1.3:NA[1.1.1.100:NA])轉(zhuǎn)換為內(nèi)網(wǎng)用戶地址(10.1.1.3)。
源地址(10.1.1.2)根據(jù)session表((Ge0/0/2)1.1.1.1:NA[10.1.1.2:NA])轉(zhuǎn)換為外網(wǎng)地址(1.1.1.1)。
這樣報(bào)文再次進(jìn)行域內(nèi)雙向NAT轉(zhuǎn)換,報(bào)文的源地址和目的地址均轉(zhuǎn)換為外網(wǎng)地址。
5.4 域內(nèi)雙向NAT補(bǔ)充說(shuō)明
① 文中說(shuō)為了便于防火墻管理使用了地址池,但如果不使用地址池地址,直接使用外網(wǎng)出口地址可以嗎?
1)直接使用外網(wǎng)出口地址是可以的,一樣可以達(dá)到需求所要求的效果。
2)其實(shí)內(nèi)網(wǎng)地址也是可以的,只要不和內(nèi)網(wǎng)服務(wù)器在同一網(wǎng)段即可。
② 也許有人會(huì)說(shuō)“內(nèi)網(wǎng)用戶與內(nèi)網(wǎng)服務(wù)器連接防火墻的不同口,會(huì)有什么變化呢?”
1)如果將內(nèi)網(wǎng)用戶和內(nèi)網(wǎng)服務(wù)器通過(guò)不同的接口連接到防火墻,此時(shí)內(nèi)網(wǎng)用戶和內(nèi)網(wǎng)服務(wù)器交互的所有報(bào)文會(huì)經(jīng)過(guò)防火墻轉(zhuǎn)發(fā),所以只配置DNAT就可以了。
2)關(guān)鍵要明確NAT轉(zhuǎn)換的方向和轉(zhuǎn)換后地址的作用,而不要糾結(jié)于轉(zhuǎn)換后是外網(wǎng)地址還是內(nèi)網(wǎng)地址,靈活應(yīng)用域內(nèi)雙向NAT可以起到事半功倍的效果。
六方云作為工業(yè)互聯(lián)網(wǎng)的資深廠商,有責(zé)任和義務(wù)盡可能多的向合作伙伴及客戶,傳播正能量的、有價(jià)值的、更具深度的解決方案和技術(shù)原理,幫助客戶解決問(wèn)題的同時(shí)也實(shí)現(xiàn)我們公司的自身價(jià)值。
來(lái)源:IT時(shí)代網(wǎng)
IT時(shí)代網(wǎng)(關(guān)注微信公眾號(hào)ITtime2000,定時(shí)推送,互動(dòng)有福利驚喜)所有原創(chuàng)文章版權(quán)所有,未經(jīng)授權(quán),轉(zhuǎn)載必究。
創(chuàng)客100創(chuàng)投基金成立于2015年,直通硅谷,專注于TMT領(lǐng)域早期項(xiàng)目投資。LP均來(lái)自政府、互聯(lián)網(wǎng)IT、傳媒知名企業(yè)和個(gè)人。創(chuàng)客100創(chuàng)投基金對(duì)IT、通信、互聯(lián)網(wǎng)、IP等有著自己獨(dú)特眼光和豐富的資源。決策快、投資快是創(chuàng)客100基金最顯著的特點(diǎn)。
小何
來(lái)自: 美國(guó)如此忌憚華為 顯示出對(duì)中國(guó)崛起的深層憂慮--IT時(shí)代網(wǎng)
小何
來(lái)自: 彭博社:六大中國(guó)手機(jī)品牌在全球挑戰(zhàn)三星蘋果霸主地位--IT時(shí)代網(wǎng)
小何
小何
來(lái)自: 少年頭條對(duì)壘中年騰訊:解局兩代互聯(lián)網(wǎng)公司商業(yè)之戰(zhàn)--IT時(shí)代網(wǎng)