目錄

簡介

必要條件

需求

採用元件

背景資訊

設定

網路圖表

組態

步驟1.（可選）配置VRF

步驟 2.配置介面

步驟3. （可選）配置NAT

步驟 4.配置FQDN ACL

步驟 5.配置ZBFW

驗證

步驟 1.從客戶端啟動HTTP連線

步驟 2.確認IP快取

步驟 3.確認ZBFW日誌

步驟 4.確認資料包捕獲

疑難排解

常見問題

問：路由器上的IP快取超時值如何確定？

問：當DNS伺服器返回CNAME記錄而不是A記錄時，是否可以接受？

問：將收集在C8300路由器上的資料包捕獲傳輸到FTP伺服器的命令是什麼？

參考

簡介

本文檔介紹在C8300平台上配置在自主模式下使用FQDN ACL模式匹配的ZBFW的過程。

必要條件

需求

思科建議您瞭解以下主題：

- 區域原則防火牆(ZBFW)

- 虛擬路由和轉送(VRF)

- 網路位址翻譯(NAT)

採用元件

本文中的資訊係根據以下軟體和硬體版本：

- C8300-2N2S-6T 17.12.02

本文中的資訊是根據特定實驗室環境內的裝置所建立。文中使用到的所有裝置皆從已清除（預設）的組態來啟動。如果您的網路運作中，請確保您瞭解任何指令可能造成的影響。

背景資訊

區域原則防火牆(ZBFW)是Cisco IOS®和Cisco IOS XE裝置上的進階防火牆組態方法，可用於在網路中建立安全區域。

ZBFW允許管理員將介面分組到區域中，並對在這些區域之間移動的流量應用防火牆策略。

FQDN ACL（完全限定域名訪問控制清單）與思科路由器中的ZBFW一起使用，允許管理員建立基於域名而不是僅IP地址匹配流量的防火牆規則。

在處理託管在AWS或Azure等平台上的服務時，此功能特別有用，因為與服務相關聯的IP地址可能會頻繁更改。

它簡化了訪問控制策略的管理，提高了網路內安全配置的靈活性。

設定

網路圖表

本文檔介紹基於此圖的ZBFW的配置和驗證。 這是使用BlackJumboDog作為DNS伺服器的模擬環境。

網路圖表

組態

這是允許從客戶端與Web伺服器進行通訊的配置。

步驟1. （可選）配置VRF

VRF（虛擬路由和轉發）功能允許您在單個路由器中建立和管理多個獨立的路由表。在本示例中，我們建立了一個稱為WebVRF的VRF，並執行相關通訊的路由。

vrf definition WebVRF

rd 65010:10

!

address-family ipv4

route-target export 65010:10

route-target import 65010:10

exit-address-family

!

address-family ipv6

route-target export 65010:10

route-target import 65010:10

exit-address-family

ip route vrf WebVRF 8.8.8.8 255.255.255.255 GigabitEthernet0/0/3 192.168.99.10

ip route vrf WebVRF 192.168.10.0 255.255.255.0 Port-channel1.2001 192.168.1.253

ip route vrf WebVRF 192.168.20.0 255.255.255.0 GigabitEthernet0/0/3 192.168.99.10

步驟 2.配置介面

為內部和外部介面配置基本資訊，如區域成員、VRF、NAT和IP地址。

interface GigabitEthernet0/0/1

no ip address

negotiation auto

lacp rate fast

channel-group 1 mode active

interface GigabitEthernet0/0/2

no ip address

negotiation auto

lacp rate fast

channel-group 1 mode active

interface Port-channel1

no ip address

no negotiation auto

interface Port-channel1.2001

encapsulation dot1Q 2001

vrf forwarding WebVRF

ip address 192.168.1.1 255.255.255.0

ip broadcast-address 192.168.1.255

no ip redirects

no ip proxy-arp

ip nat inside

zone-member security zone_client

interface GigabitEthernet0/0/3

vrf forwarding WebVRF

ip address 192.168.99.1 255.255.255.0

ip nat outside

zone-member security zone_internet

speed 1000

no negotiation auto

步驟3. （可選）配置NAT

為內部和外部介面配置NAT。 在本例中，來自客戶端的源IP地址(192.168.10.1)被轉換為192.168.99.100。

ip access-list standard nat_source

10 permit 192.168.10.0 0.0.0.255

ip nat pool natpool 192.168.99.100 192.168.99.100 prefix-length 24

ip nat inside source list nat_source pool natpool vrf WebVRF overload

步驟 4.配置FQDN ACL

配置FQDN ACL以匹配目標流量。在本示例中，在FQDN對象組的模式匹配中使用萬用字元「*」來匹配目標FQDN。

object-group network src_net

192.168.10.0 255.255.255.0

object-group fqdn dst_test_fqdn

pattern .*\.test\.com

object-group network dst_dns

host 8.8.8.8

ip access-list extended Client-WebServer

1 permit ip object-group src_net object-group dst_dns

5 permit ip object-group src_net fqdn-group dst_test_fqdn

步驟 5.配置ZBFW

為ZBFW配置區域、類對映和策略對映。 在本示例中，透過使用parameter-map，日誌在ZBFW允許流量時生成。

zone security zone_client

zone security zone_internet

parameter-map type inspect inspect_log

audit-trail on

class-map type inspect match-any Client-WebServer-Class

match access-group name Client-WebServer

policy-map type inspect Client-WebServer-Policy

class type inspect Client-WebServer-Class

inspect inspect_log

class class-default

drop log

zone-pair security Client-WebServer-Pair source zone_client destination zone_internet

service-policy type inspect Client-WebServer-Policy

驗證

步驟 1.從客戶端啟動HTTP連線

驗證從客戶端到WEB伺服器的HTTP通訊是否成功。

HTTP連線

步驟 2.確認IP快取

運行show platform hardware qfp active feature dns-snoop-agent datapath ip-cache all命令以確認目標FQDN的IP快取是在C8300-2N2S-6T中生成的。

02A7382#show platform hardware qfp active feature dns-snoop-agent datapath ip-cache all

IP Address Client(s) Expire RegexId Dirty VRF ID Match

------------------------------------------------------------------------------------------------------

192.168.20.1 0x1 117 0xdbccd400 0x00 0x0 .*\.test\.com

步驟 3.確認ZBFW日誌

確認IP地址(192.168.20.1)與FQDN (.*\.test\.com)匹配，並驗證ZBFW是否允許步驟1中的HTTP通訊。

*Mar 7 11:08:23.018: %IOSXE-6-PLATFORM: R0/0: cpp_cp: QFP:0.0 Thread:003 TS:00000551336606461468 %FW-6-SESS_AUDIT_TRAIL_START: (target:class)-(Client-WebServer-Pair:Client-WebServer-Class):Start http session: initiator (192.168.10.1:51468) -- responder (192.168.20.1(.*\.test\.com):80) from Port-channel1.2001

*Mar 7 11:08:24.566: %IOSXE-6-PLATFORM: R0/0: cpp_cp: QFP:0.0 Thread:002 TS:00000551338150591101 %FW-6-SESS_AUDIT_TRAIL: (target:class)-(Client-WebServer-Pair:Client-WebServer-Class):Stop http session: initiator (192.168.10.1:51468) sent 943 bytes -- responder (192.168.20.1:80) sent 101288 bytes, from Port-channel1.2001

步驟 4.確認資料包捕獲

確認目標FQDN的DNS解析以及客戶端與WEB伺服器之間的HTTP連線是否成功。

內部資料包捕獲：

內部DNS資料包

內部HTTP資料包

Onside中的資料包捕獲(192.168.10.1是NAT到192.168.19.100)：

外部DNS資料包

外部的HTTP封包

疑難排解

對於使用FQDN ACL模式匹配排除與ZBFW相關的通訊問題，您可以在問題期間收集日誌並將它們提供給思科TAC。請注意，故障排除的日誌取決於問題的性質。

要收集的日誌示例：

!!!! before reproduction

!! Confirm the IP cache

show platform hardware qfp active feature dns-snoop-agent datapath ip-cache all

!! Enable packet-trace

debug platform packet-trace packet 8192 fia-trace

debug platform packet-trace copy packet both

debug platform condition ipv4 access-list Client-WebServer both

debug platform condition feature fw dataplane submode all level verbose

!! Enable debug-level system logs and ZBFW debug logs

debug platform packet-trace drop

debug acl cca event

debug acl cca error

debug ip domain detail

!! Start to debug

debug platform condition start

!! Enable packet capture on the target interface (both sides) and start the capture

monitor capture CAPIN interface Port-channel1.2001 both

monitor capture CAPIN match ipv4 any any

monitor capture CAPIN buffer size 32

monitor capture CAPIN start

monitor capture CAPOUT interface g0/0/3 both

monitor capture CAPOUT match ipv4 any any

monitor capture CAPOUT buffer size 32

monitor capture CAPOUT start

!! (Optional) Clear the DNS cache on the client

ipconfig/flushdns

ipconfig /displaydns

!! Run the show command before reproduction

show platform hardware qfp active feature firewall drop all

show policy-map type inspect zone-pair Client-WebServer-Pair sessions

show platform packet-trace statistics

show platform packet-trace summary

show logging process cpp_cp internal start last boot

show platform hardware qfp active feature dns-snoop-agent client hw-pattern-list

show platform hardware qfp active feature dns-snoop-agent client info

show platform hardware qfp active feature dns-snoop-agent datapath stats

show ip dns-snoop all

show platform hardware qfp active feature dns-snoop-agent datapath ip-cache all

show platform software access-list F0 summary

!!!! Reproduce the issue - start

!! During the reproductionof the issue, run show commands at every 10 seconds

!! Skip show ip dns-snoop all command if it is not supported on the specific router

show ip dns-snoop all

show platform hardware qfp active feature dns-snoop-agent datapath ip-cache all

!!!! After reproduction

!! Stop the debugging logs and packet capture

debug platform condition stop

monitor capture CAPIN stop

monitor capture CAPOUT stop

!! Run the show commands

show platform hardware qfp active feature firewall drop all

show policy-map type inspect zone-pair Client-WebServer-Pair sessions

show platform packet-trace statistics

show platform packet-trace summary

show logging process cpp_cp internal start last boot

show platform hardware qfp active feature dns-snoop-agent client hw-pattern-list

show platform hardware qfp active feature dns-snoop-agent client info

show platform hardware qfp active feature dns-snoop-agent datapath stats

show ip dns-snoop all

show platform hardware qfp active feature dns-snoop-agent datapath ip-cache all

show platform software access-list F0 summary

show platform packet-trace packet all decode

show running-config

常見問題

問：路由器上IP快取的超時值是如何確定的？

答：IP快取的超時值由從DNS伺服器返回的DNS資料包的TTL（生存時間）值確定。在本例中，它是120秒。當IP快取超時時，會自動將其從路由器中刪除。以下是資料包捕獲的詳細資訊。

DNS解析的資料包詳細資訊

問：當DNS伺服器返回CNAME記錄而不是A記錄時，是否可以接受？

答：是的，這不是問題。當DNS伺服器返回CNAME記錄時，DNS解析和HTTP通訊不會有任何問題。以下是資料包捕獲的詳細資訊。

內部DNS資料包

DNS解析的資料包詳細資訊

內部HTTP資料包

問：將收集在C8300路由器上的資料包捕獲傳輸到FTP伺服器的命令是什麼？

答：使用monitor capture <capture name> export bootflash:<capture name>.pcap和copy bootflash:<capture name>.pcap ftp://<user>:<password>@<FTP IP Address>命令將資料包捕獲傳輸到FTP伺服器。以下是將CAPIN傳輸到FTP伺服器的示例。

monitor capture CAPIN export bootflash:CAPIN.pcap

copy bootflash:CAPIN.pcap ftp://<user>:<password>@<FTP IP Address>

參考

瞭解基於區域的策略防火牆設計