Juniper SSG5策略路由PBR (Policy-Based Routing)


Juniper SSG5策略路由PBR (Policy-Based Routing)

當封包進入安全性裝置時,ScreenOS 會先檢查 PBR,作為路由查詢的第一個步驟,且 PBR 檢查對所有非 PBR 流量而言都是透明的。
PBR 會在介面層級中啟用並在虛擬路由器環境中組態,不過您可以選擇將 PBR 政策連結到介面、區域、虛擬路由器 (VR) 或介面、區域或 VR 的組合。
請使用下列三個建構區塊以建立 PBR 政策:
􀂄擴展存取清單
􀂄配對群組
􀂄動作群組

擴展存取清單
擴展存取清單會列出您為 PBR 政策定義的配對準則。PBR 配對準則會決定特定資料通訊流量的路徑。配對準則包括以下內容:
􀂄來源 IP 位址
􀂄目的地 IP 位址
􀂄來源連接埠
􀂄目的地連接埠
􀂄通訊協定,例如 HTTP
􀂄服務品質 (QoS) 優先順序 ( 可選)

配對群組

配對群組會提供組織 ( 依群組、名稱和優先順序) 擴展存取清單的方法。配對群組會將擴展存取清單 ID 號碼與唯一配對群組名稱和配對群組 ID 號碼產生關聯。此配對群組 ID 號碼會定義您希望安全性裝置處理擴展 ACL 清單的順序。您可以將多個擴展存取清單指定到相同的配對群組。

動作群組

動作群組會指定您希望封包採取的路由。您可以定義下一介面、下一躍點或兩者,來指定路由的「動作」。

系統會監看每個已組態動作項目的可到達性,如下所示:
􀂄僅下一介面可到達性 next-interface <介面>
如果您僅將動作項目和文字介面產生關聯,連結狀態就會決定可到達性。
如果下一介面處於啟動狀態,動作項目就是可到達的。任何介面都包含所有下一介面候選的邏輯介面 ( 例如通道、聚集或冗餘),這些介面在政策常駐的 VR中都是可見的。
例如,如果您使用 NULL 介面組態動作項目,動作項目在任何時候都會是可到達的。將 NULL 介面作為下一介面時,PBR 查詢一律都會成功,因此,ScreenOS 會停止路由查詢並丟棄封包。
􀂄僅下一躍點可到達性 next-hop <IP位址>
如果您僅將動作群組和下一躍點產生關聯,則該下一躍點必需可透過目的地路由的路由設定表中的路由項目到達。只要有效路由存在於目的地路由的路由設定表中,組態的下一躍點即可到達以解析下一躍點。
􀂄下一介面和下一躍點可到達性 next-interface <介面> next-hop <IP位址>
如果您同時組態下一介面和下一躍點可到達性,組態的下一躍點必需可透過組態的下一介面到達。
如果下一躍點可透過下一介面到達,動作項目就是可到達的。任何介面都包含所有下一介面候選的邏輯介面 ( 例如通道、聚集或冗餘),這些介面在政策常駐的 VR 中都是可見的。
如果下一躍點是可到達的,但下一介面是 NULL 介面,ScreenOS 便會卸除封包。如果您使用 NULL 介面將動作項目組態為下一介面,並將下一躍點組態為靜態路由,ScreenOS 便會將封包傳給靜態路由。
在組態時,您也可以指派序號以指定您希望處理動作項目的順序。

使用以政策為基礎的路由設定執行路由查詢

當您在介面上啟用以政策為基礎的路由時,ScreenOS 會檢查傳送到該介面的所有通訊流量以取得以政策為基礎的路由設定。當封包進入安全性裝置時,ScreenOS便會檢查內介面以取得 PBR 政策組態。若該內介面上啟用了 PBR,將對封包套用下列動作:
1. ScreenOS 會將連結到該內介面的 PBR 政策套用至封包。
2. 若介面層級 PBR 政策不存在,ScreenOS 便會將連結到與內介面相關的區域的PBR 政策套用至封包。
3. 若區域層級 PBR 政策不存在,ScreenOS 便會將連結到與內介面相關的 VR PBR 政策套用至封包。
ScreenOS 會找出配對群組,然後處理動作群組項目。來自包含有效路由之動作群組的第一個可到達動作項目用於轉寄封包。如果可到達路由未存在於動作項目之間,則會執行定期路由查詢。
如果動作項目是可到達的,ScreenOS 便會執行路由查詢,其中優先使用介面為下一介面 ( 若已指定) 且使用下一躍點為 IP 位址 ( 若已指定),而不會使用目的地IP。如果路由與指明的下一介面和下一躍點相符,ScreenOS 便會轉寄封包。否則,ScreenOS 就會使用目的地 IP 位址。


------------ Juniper SSG5 VPN 翻牆測試 (根據ip網段) site A ------------------------------------

##套用條件:遠端網路設備與本地端網路設備,透過tunnel.1建立VPN連線,只要遠端網段為192.168.100.0/24就符合條件。
##套用條件:又遠端網路設備必須建立兩個網段,其中一個網段可正常上網,而192.168.100.0/24網段的網路流量全部送往VPN tunnel.1通道。我們可以透過pbr設定來完成。
##設定解說:將來自tunnel.1的網段192.168.100.0/24,若其要訪問本地Local網段,則送往各自本地Local介面,其餘的全部送往wan介面。
## 本段設定解析:設定來源位址清單與目的位址清單
set access-list extended 10 src-ip 192.168.100.0/24 entry 1
set access-list extended 20 dst-ip 192.168.1.0/24 entry 1
set access-list extended 30 dst-ip 192.168.2.0/24 entry 1

## 本段設定解析:match-group 凡是符合 來源位址為192.168.100.0/24(遠端vpn網段),目的位址為192.168.1.0/24(本地網段)
## 本段設定解析:action-group 執行將流量送往 bgroup0 介面(本地網段192.168.1.0/24所屬介面)
set match-group name To-Local_lan-match
set match-group To-Local_lan-match ext-acl 10 match-entry 1
set match-group To-Local_lan-match ext-acl 20 match-entry 2
set action-group name To-Local_lan-action
set action-group To-Local_lan-action next-interface bgroup0 action-entry 1

## 本段設定解析:match-group 凡是符合 來源位址為192.168.100.0/24(遠端vpn網段),目的位址為192.168.2.0/24(本地網段)
## 本段設定解析:action-group 執行將流量送往 bgroup1 介面(本地網段192.168.2.0/24所屬介面)
set match-group name To-Local_lan2-match
set match-group To-Local_lan2-match ext-acl 10 match-entry 1
set match-group To-Local_lan2-match ext-acl 30 match-entry 2
set action-group name To-Local_lan2-action
set action-group To-Local_lan2-action next-interface bgroup1 action-entry 1

## 本段設定解析:match-group 凡是符合 來源位址為192.168.100.0/24(遠端vpn網段)
## 本段設定解析:action-group 執行將流量送往 ethernet0/0 介面(本地wan介面)
set match-group name To-Internet-match
set match-group To-Internet-match ext-acl 10 match-entry 1
set action-group name To-Internet-action
set action-group To-Internet-action next-interface ethernet0/0 action-entry 1

## pbr策略解析:若符合來源位址為192.168.100.0/24,目的位址為192.168.2.0/24的流量,將送往 bgroup0 介面,否則進入entry2
set pbr policy To-Internet_pbr match-group To-Local_lan-match action-group To-Local_lan-action 1
## pbr策略解析:若符合來源位址為192.168.100.0/24,目的位址為192.168.3.0/24的流量,將送往 bgroup1 介面,否則進入entry3
set pbr policy To-Internet_pbr match-group To-Local_lan2-match action-group To-Local_lan2-action 2
## pbr策略解析:若符合來源位址為192.168.100.0/24的流量,將送往 ethernet0/0 介面
set pbr policy To-Internet_pbr match-group To-Internet-match action-group To-Internet-action 3

set interface tunnel.1 pbr    ##設定為每個入口介面啟用pbr功能。
set zone vpn pbr To-Internet_pbr   ##Sales_pbr套用到安全區(zone)

##上面兩行命令的效果等同下面一行命令的效果。

set interface tunnel.1 pbr To-Internet_pbr
 


以下則為從WebUI來設定的畫面:

從下圖設定畫面來看,其實Access List有很多功能我們還沒有利用到。
 










------------ Juniper SSG5 VPN 翻牆測試 (根據ip網段) site A ----------------- End 

------------ Juniper SSG5 VPN 翻牆測試 (根據ip網段) site B ---------------- 
##設定相關介面參數
set zone "Trust" vrouter "trust-vr"
set interface "bgroup0" zone "Trust"
set interface "bgroup1" zone "Trust"
set interface bgroup0 ip 192.168.2.1/24
set interface bgroup0 nat
set interface bgroup0 port ethernet0/2
set interface bgroup0 port ethernet0/3
set interface bgroup0 port ethernet0/4
set interface bgroup1 ip 192.168.100.1/24
set interface bgroup1 nat
set interface bgroup1 port ethernet0/5
set interface bgroup1 port ethernet0/6

set zone "Untrust" vrouter "trust-vr"
set interface "ethernet0/0" zone "Untrust"
set interface ethernet0/0 ip 172.16.200.12/24
set interface ethernet0/0 route

set zone id 100 "VPN"
set interface "tunnel.1" zone "VPN"
set interface tunnel.1 ip unnumbered interface ethernet0/0

##設定地址池和地址群組
set address "Trust" "Local-192_168_100_0-24" 192.168.100.0 255.255.255.0
set address "Trust" "Local-192_168_2_0-24" 192.168.2.0 255.255.255.0
set group address "Trust" "Local-Lans"
set group address "Trust" "Local-Lans" add "Local-192_168_100_0-24"
set group address "Trust" "Local-Lans" add "Local-192_168_2_0-24"

set address "VPN" "Remote-192_168_1_0-24" 192.168.1.0 255.255.255.0
set address "VPN" "Remote-172_16_168_0-24" 172.16.168.0 255.255.255.0
set group address "VPN" "Remote-Lans"
set group address "VPN" "Remote-Lans" add "Remote-192_168_1_0-24"
set group address "VPN" "Remote-Lans" add "Remote-172_16_168_0-24"

##設定vpn參數
set ike gateway "Site_A_Gateway" address 172.16.200.11 Main outgoing-interface "ethernet0/0" preshare "netscreen"
set vpn "To-Site_A-VPN" gateway "Site_A_Gateway" replay tunnel idletime 0 sec-level standard
set vpn "To-Site_A-VPN" monitor optimized rekey
set vpn "To-Site_A-VPN" id 0x1 bind interface tunnel.1
##設定vpn proxy參數
set vpn "To-Site_A-VPN" proxy-id local-ip 192.168.2.0/24 remote-ip 192.168.1.0/24 "ANY"
set vpn "To-Site_A-VPN" proxy-id local-ip 192.168.2.0/24 remote-ip 192.168.168.0/24 "ANY"
set vpn "To-Site_A-VPN" proxy-id local-ip 192.168.100.0/24 remote-ip 192.168.1.0/24 "ANY"
set vpn "To-Site_A-VPN" proxy-id local-ip 192.168.100.0/24 remote-ip 192.168.168.0/24 "ANY"

##設定策略-開放內網能上網
set policy id 1 from "Trust" to "Untrust"  "Any" "Any" "ANY" permit
set policy id 1
exit
##設定策略-開放內網與遠端vpn能互通
set policy id 2 from "Trust" to "VPN"  "Local-Lans" "Remote-Lans" "ANY" permit
set policy id 2
exit
set policy id 3 from "VPN" to "Trust"  "Remote-Lans" "Local-Lans" "ANY" permit
set policy id 3
exit

##設定遠端vpn網段資料要走tunnel.1通道
set route 192.168.1.0/24 interface tunnel.1
set route 172.16.168.0/24 interface tunnel.1

##pbr設定192.168.100.0/24網段資料全部要走tunnel.1通道
set access-list extended 10 src-ip 192.168.100.0/24 entry 1
set match-group name All-to-vpn-Match
set match-group All-to-vpn-Match ext-acl 10 match-entry 1
set action-group name All-to-vpn-Action
set action-group All-to-vpn-Action next-interface tunnel.1 action-entry 1
set pbr policy name All-to-vpn
set pbr policy All-to-vpn match-group All-to-vpn-Match action-group All-to-vpn-Action 1
exit
set interface bgroup1 pbr All-to-vpn

------------ Juniper SSG5 VPN 翻牆測試 (根據ip網段) site B ---------------------- End 

以上VPN 翻牆測試失敗,關於pbr的部分能夠運作正常,但是問題是出在vpn通道的部分,在site B我們將bgroup1介面192.168.100.0/24網段的流量全部送往tunnel.1 vpn通道,但是您會發現資料會過不去,只有要送往設定在vpn proxy中的網段的流量才能通過vpn通道,導致無法達成目標,因此這個測試只能純粹當作pbr設定觀念教學之用。
而我們又要如何知道設定在vpn proxy中的網段資料和能通過vpn通道的流量有關呢?我們能做以下之測試:將site B proxy中的192.168.1.0/24網段去掉,您會發現本來ping得到的192.168.1.1變成ping不到了,再將site B proxy中的192.168.1.0/24網段加入,則又恢復正常了。
其實我們在做vpn測試時有一種取巧的方法,那就是將tunnel.1通道加入trust zone(標準的做法是單獨創建一個安全區然後將tunnel.1通道加入,例如vpn zone),而這麼做又有甚麼好處呢?
由於vpn通道與本地網段都綁定在trust區域之中,而同一個區域內是可以彼此任意互相訪問的,也就是我們可以省略測試中[設定地址池和地址群組]以及[設定策略-開放內網與遠端vpn能互通]兩個步驟(後段會說明),讓我麼在複雜環境測試時可以忽略策略(policy)設定方面的因素,而能專注在vpn通道連線的部分,一旦測試成功後,我們再將vpn通道之設定套用在標準做法上,但將tunnel.1通道加入trust zone是非常不安全的做法,除了測試用途之外,請勿這麼做!
那我們又要如何利用SSG5網路設備來翻牆呢?好像只能在遠端電腦使用NetScreen-Remote VPN Client來登入才行。

而既然VPN 翻牆測試失敗,為何我又要將其放上網頁呢?
把它當作pbr設定的學習示範(較完整),並了解vpn通道的限制,當作學習的教材還是不錯的。
畢竟小弟在電腦學習的道路上,常常為了一個命令或是一個觀念,要花幾天的時間去找資料與測試,所以才將失敗的經驗分享出來。
在此徵求高手指導,如何為ssg5設備建立vpn翻牆設定,本人的email如下:
真的萬分感激各位高手大大的指導,感謝您!



------------ pbr entry使用範例 ---------------------------------
下面之設定範例擷取自網路:
說明:設定ethernet0/4介面凡符合清單100101條件的流量,一律經由介面ethernet0/010.1.2.7
set vrouter trust-vr
set access-list extended 100 dst-ip 10.2.2.2/32 dest-port 22-22 protocol tcp entry 1
set access-list extended 100 dst-ip 10.2.2.2/32 dest-port 443-443 protocol tcp entry 2
set access-list extended 101 dst-ip 10.2.2.3/32 dest-port 25-25 protocol tcp entry 1
set access-list extended 101 dst-ip 10.2.2.3/32 dest-port 110-110 protocol tcp entry 2
set match-group name PBR_GROUP
set match-group PRB_ROUTE ext-acl 100 match-entry 1
set match-group PRB_ROUTE ext-acl 101 match-entry 2
set action-group name Action_PBR_ROUTE
set action-group Action_PBR_ROUTE next-interface ethernet0/0 action-entry 1
set action-group Action_PBR_ROUTE next-hop 10.1.2.7 action-entry 2
set pbr policy Redirect_PBR_ROUTE match-group PBR_GROUP action-group Action_PBR_ROUTE 1
exit
set interface ethernet0/4 pbr    ##設定介面啟用pbr功能
set zone Trust pbr Redirect_PBR_ROUTE   ##Sales_pbr套用到trust-vr
------------ pbr entry使用範例 ---------------------------------  End



------------ pbr 雙路分流範例(根據ip網段) -----------------------------------------
下面之設定範例擷取自以下之檔案:
2wan(route-PBR)-wan1_00-wan2_01-DMZ02-firewall_cfg-三個子網段.txt
說明:設定SalesMIS部門流量走ethernet0/1介面,Users部門流量走ethernet0/0介面
##相關介面設定
set interface "ethernet0/0" zone "Untrust"
set interface "ethernet0/1" zone "Untrust"
set interface ethernet0/0 ip 192.168.188.8/24
set interface ethernet0/0 route
set interface ethernet0/1 ip 192.168.100.12/24
set interface ethernet0/1 route
set interface ethernet0/0 dhcp client enable
set interface ethernet0/1 dhcp client enable
set interface bgroup0 port ethernet0/3
set interface bgroup0 port ethernet0/4
set interface bgroup1 port ethernet0/5
set interface bgroup2 port ethernet0/6
set interface bgroup0 ip 192.168.1.1/24
set interface bgroup0 nat
set interface bgroup1 ip 192.168.2.1/24
set interface bgroup1 nat
set interface bgroup2 ip 192.168.3.1/24
set interface bgroup2 nat

##PBR設定開始,設定解析:根據來源網段之不同,設定要將網路流量送往固定的介面
set access-list extended 10 src-ip 192.168.1.0/24 entry 1  ##設定來源位址清單
set match-group name M-Users   ##設定match-group和相匹配的清單
set match-group M-Users ext-acl 10 match-entry 1
set action-group name forUsers   ##設定action-group和相匹配的match-group
set action-group forUsers next-interface ethernet0/0 action-entry 1

set access-list extended 20 src-ip 192.168.2.0/24 entry 1
set match-group name M-MIS
set match-group M-MIS ext-acl 20 match-entry 1
set action-group name forMIS
set action-group forMIS next-interface ethernet0/1 action-entry 1

set access-list extended 30 src-ip 192.168.3.0/24 entry 1
set match-group name M-Sales
set match-group M-Sales ext-acl 30 match-entry 1
set action-group name forSales
set action-group forSales next-interface ethernet0/1 action-entry 1

set pbr policy name Sales_pbr   ##設定policy和相匹配之matchaction-group
set pbr policy Sales_pbr match-group M-Users action-group forUsers 1
set pbr policy Sales_pbr match-group M-MIS action-group forMIS 2
set pbr policy Sales_pbr match-group M-Sales action-group forSales 3

set interface bgroup0 pbr    ##設定為每個內介面啟用pbr功能, 除了啟用它之外,還必須為該特定介面選擇策略。
set interface bgroup1 pbr    ##本例因已在zone選好策略,故只需在zone所屬介面啟用pbr即可
set interface bgroup2 pbr
set zone Trust pbr Sales_pbr   ##Sales_pbr套用到安全區(zone)
set zone MIS pbr Sales_pbr
set zone Sales pbr Sales_pbr
------------ pbr 雙路分流範例(根據ip網段) ------------------------------------  End 



------------ pbr 雙路分流範例(根據功能性port numbers) ---------------
Using 2 internet links with Juniper ScreenOS Firewalls to separate traffic (pbr) and apply traffic shaping.doc
場景: 您有1 JUNIPER防火牆,它有2互聯網連接: 一個昂貴的,但可靠的4Mbit 連接,和一個快速,便宜,但不可靠的20Mbit 連接。
目標: smtp HTTP 服務使用可靠的4Mbit連接,其他服務使用20Mbit 連接。

SSG5(trust-vr)-> set access-list extended 10 dst-port 25-25 protocol tcp entry 1
SSG5(trust-vr)-> set access-list extended 10 dst-port 80-80 protocol tcp entry 2
SSG5(trust-vr)-> set match-group name ISP4MBit
SSG5(trust-vr)-> set match-group ISP4MBit ext-acl 10 match-entry 10
SSG5(trust-vr)-> set action-group name toISP4MBit
SSG5(trust-vr)-> set action-group toISP4MBit next-hop 1.1.1.2 action-entry 1

SSG5(trust-vr)-> set access-list extended 20 dst-port 1-24 entry 1
SSG5(trust-vr)-> set access-list extended 20 dst-port 26-79 entry 2
SSG5(trust-vr)-> set access-list extended 20 dst-port 81-65535 entry 3
SSG5(trust-vr)-> set access-list extended 20 dst-port 25-25 protocol udp entry 4
SSG5(trust-vr)-> set access-list extended 20 dst-port 80-80 protocol udp entry 5
SSG5(trust-vr)-> set match-group name ISP20Mbit
SSG5(trust-vr)-> set match-group ISP20Mbit ext-acl 20 match-entry 10
SSG5(trust-vr)-> set action-group name toISP20MBit
SSG5(trust-vr)-> set action-group toISP20MBit next-hop 2.2.2.2 action-entry 1

SSG5(trust-vr)-> set pbr policy name separate-traffic
SSG5(trust-vr)-> set pbr policy separate-traffic match-group ISP4MBit action-group toISP4MBit 1
SSG5(trust-vr)-> set pbr policy separate-traffic match-group ISP20MBit action-group toISP20MBit 2

## enable PBR on the ingress interface (in the LAN zone !!!!)
SSG5-> set interface ethernet0/0 pbr
## enable the PBR policy on the entire zone
SSG5-> set zone LAN pbr separate-traffic

## create policy to allow traffic
SSG5-> set policy from Lan to Internet any any any nat src permit
------------ pbr 雙路分流範例(根據功能性port numbers) ---------------  End 



------------ pbr 不同網段互通範例 ------------------------------------
##PBR設定開始,介面設定同上例,因使用source route設定2wan分流,卻導致子網路無法相通,因而產生的構想。
##結論:結果因為source route並不支援PBR,故殘念,僅做pbr參考範例用
##設定解析:將會通往1網段的23網段歸為一組清單,再將流量送往1網段所在的bgroup0介面,其餘思路相同。(src-ip來源ip  dst-ip目的ip)
set access-list extended 51 src-ip 192.168.2.0/24 dst-ip 192.168.1.0/24 entry 1
set access-list extended 51 src-ip 192.168.3.0/24 dst-ip 192.168.1.0/24 entry 2
set match-group name M-to-Users
set match-group M-to-Users ext-acl 51 match-entry 1
set action-group name for-to-Users
set action-group for-to-Users next-interface bgroup0 action-entry 1

set access-list extended 52 src-ip 192.168.1.0/24 dst-ip 192.168.2.0/24 entry 1
set access-list extended 52 src-ip 192.168.3.0/24 dst-ip 192.168.2.0/24 entry 2
set match-group name M-to-MIS
set match-group M-to-MIS ext-acl 52 match-entry 1
set action-group name for-to-MIS
set action-group for-to-MIS next-interface bgroup1 action-entry 1

set access-list extended 53 src-ip 192.168.1.0/24 dst-ip 192.168.3.0/24 entry 1
set access-list extended 53 src-ip 192.168.2.0/24 dst-ip 192.168.3.0/24 entry 2
set match-group name M-to-Sales
set match-group M-to-Sales ext-acl 53 match-entry 1
set action-group name for-to-Sales
set action-group for-to-Sales next-interface bgroup2 action-entry 1

set pbr policy name Sales_pbr
set pbr policy Sales_pbr match-group M-to-Users action-group for-to-Users 1
set pbr policy Sales_pbr match-group M-to-MIS action-group for-to-MIS 2
set pbr policy Sales_pbr match-group M-to-Sales action-group for-to-Sales 3

set interface bgroup0 pbr
set interface bgroup1 pbr
set interface bgroup2 pbr
set zone Trust pbr Sales_pbr
set zone MIS pbr Sales_pbr
set zone Sales pbr Sales_pbr
------------ pbr 不同網段互通範例 ---------------------------------  End


這個網誌中的熱門文章

如何測試網路連線--網路斷線了怎麼辦?

筆記電腦刷BIOS失敗無法開機—用CH341A編程器重刷BIOS教學!

查理王的電腦部落格-首頁