Routing
CGNAT如何在客戶端路由?
在測試 Zscaler POC 時(從安全形度來看),我很難理解CGNAT是如何在客戶端上路由的。
我主要關心(和問題)是100.64.xy 路由不在路由表中(Windows 10)。預設網關位於我的本地網路網關上,因此流量也無法到達那裡。
CGNAT 流量的路由方式有什麼特別之處?
客戶端的路由表是
Active Routes: Network Destination Netmask Gateway Interface Metric 0.0.0.0 0.0.0.0 192.168.43.1 192.168.43.107 50 127.0.0.0 255.0.0.0 On-link 127.0.0.1 331 127.0.0.1 255.255.255.255 On-link 127.0.0.1 331 127.255.255.255 255.255.255.255 On-link 127.0.0.1 331 172.22.208.0 255.255.240.0 On-link 172.22.208.1 271 172.22.208.1 255.255.255.255 On-link 172.22.208.1 271 172.22.223.255 255.255.255.255 On-link 172.22.208.1 271 192.168.43.0 255.255.255.0 On-link 192.168.43.107 306 192.168.43.107 255.255.255.255 On-link 192.168.43.107 306 192.168.43.255 255.255.255.255 On-link 192.168.43.107 306 224.0.0.0 240.0.0.0 On-link 127.0.0.1 331 224.0.0.0 240.0.0.0 On-link 192.168.43.107 306 224.0.0.0 240.0.0.0 On-link 172.22.208.1 271 255.255.255.255 255.255.255.255 On-link 127.0.0.1 331 255.255.255.255 255.255.255.255 On-link 192.168.43.107 306 255.255.255.255 255.255.255.255 On-link 172.22.208.1 271
下面是在 zscaler 上設置的內部公司服務的解析(因此通過 CGNAT 路由)。zscaler 之外的同名指向一個經典的 RFC1918 地址。
> nslookup internalcorporatesite.com Server: xxx.com Address: 192.168.43.1 Non-authoritative answer: Name: internalcorporatesite.com Address: 100.64.1.9
請注意,預設網關
192.168.43.1
不知道 CGNAT - 它是一個本地網路,並且 zscaler 使用 CGNAT。
它使用過濾器驅動程序從網路堆棧中提取數據包並重定向它。因此沒有用於 zScaler 連接的虛擬 NIC。
使用過濾器驅動程序選項,應用程序不會創建虛擬網路適配器。相反,它使用 Windows 過濾來擷取流量並將其轉發到雲。這允許對流量進行更精細的控制,並減少管理系統上網路適配器的應用程序的互操作性問題。
這也意味著通過 ZPA 的目的地不會出現在路由表中。
zScaler 並不真正使用 CGNAT。它只需要一個地址範圍,該地址範圍不應該有發往它的合法流量,它可以劫持和重定向,而後果最小。數據包進入 zScaler 後如何處理基本上是他們的秘訣。