목차

소개

사전 요구 사항

요구 사항

사용되는 구성 요소

배경 정보

구성

네트워크 다이어그램

설정

1단계(선택 사항) VRF 구성

2단계. 인터페이스 구성

3단계. (선택 사항) NAT 구성

4단계. FQDN ACL 구성

5단계. ZBFW 구성

다음을 확인합니다.

1단계. 클라이언트에서 HTTP 연결 시작

2단계. IP 캐시 확인

3단계. ZBFW 로그 확인

4단계. 패킷 캡처 확인

문제 해결

자주 묻는 질문(FAQ)

Q: 라우터에서 IP 캐시의 시간 초과 값은 어떻게 결정됩니까?

Q: DNS 서버가 A 레코드가 아닌 CNAME 레코드를 반환할 때 허용됩니까?

Q: C8300 라우터에서 수집한 패킷 캡처를 FTP 서버로 전송하는 명령은 무엇입니까?

참조

소개

이 문서에서는 C8300 플랫폼의 자동 모드에서 FQDN ACL 패턴 일치를 사용하여 ZBFW를 구성하는 절차에 대해 설명합니다.

사전 요구 사항

요구 사항

Cisco에서는 다음 항목에 대해 알고 있는 것이 좋습니다.

- ZBFW(Zone-Based Policy Firewall)

- VRF(Virtual Routing and Forwarding)

- NAT(Network Address Translation)

사용되는 구성 요소

이 문서의 정보는 다음 소프트웨어 및 하드웨어 버전을 기반으로 합니다.

- C8300-2N2S-6T 17.12.02

이 문서의 정보는 특정 랩 환경의 디바이스를 토대로 작성되었습니다. 이 문서에 사용된 모든 디바이스는 초기화된(기본) 컨피그레이션으로 시작되었습니다. 현재 네트워크가 작동 중인 경우 모든 명령의 잠재적인 영향을 미리 숙지하시기 바랍니다.

배경 정보

ZBFW(Zone-Based Policy Firewall)는 Cisco IOS® 및 Cisco IOS XE 디바이스에서 네트워크 내에 보안 영역을 생성할 수 있는 고급 방화벽 컨피그레이션 방법입니다.

ZBFW를 사용하면 관리자가 인터페이스를 영역으로 그룹화하고 이러한 영역 사이를 이동하는 트래픽에 방화벽 정책을 적용할 수 있습니다.

Cisco 라우터의 ZBFW와 함께 사용되는 FQDN ACL(Fully Qualified Domain Name Access Control Lists)을 사용하면 관리자가 IP 주소만 아니라 도메인 이름을 기반으로 트래픽과 일치하는 방화벽 규칙을 생성할 수 있습니다.

이 기능은 서비스와 연결된 IP 주소가 자주 변경될 수 있는 AWS 또는 Azure와 같은 플랫폼에서 호스팅된 서비스를 처리할 때 특히 유용합니다.

액세스 제어 정책의 관리를 간소화하고 네트워크 내에서 보안 구성의 유연성을 향상합니다.

구성

네트워크 다이어그램

이 문서에서는 이 다이어그램을 기반으로 ZBFW의 컨피그레이션 및 확인을 소개합니다. BlackJumboDog를 DNS 서버로 사용하는 시뮬레이션된 환경입니다.

네트워크 다이어그램

설정

클라이언트에서 웹 서버로의 통신을 허용하는 컨피그레이션입니다.

1단계. (선택 사항) VRF 구성

VRF(Virtual Routing and Forwarding) 기능을 사용하면 단일 라우터 내에서 여러 독립적인 라우팅 테이블을 생성하고 관리할 수 있습니다. 이 예에서는 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 연결 시작

클라이언트에서 웹 서버로의 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)과 일치하는지 확인하고 1단계의 HTTP 통신이 ZBFW에서 허용되는지 확인합니다.

*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 확인 및 클라이언트와 웹 서버 간의 HTTP 연결이 성공적인지 확인합니다.

내부 패킷 캡처:

내부의 DNS 패킷

내부의 HTTP 패킷

온사이드의 패킷 캡처(192.168.10.1은 192.168.19.100에 대한 NAT):

외부 DNS 패킷

외부 HTTP 패킷

문제 해결

FQDN ACL 패턴 일치를 사용하여 ZBFW와 관련된 통신 문제를 해결하려면 문제 중에 로그를 수집하여 Cisco 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

자주 묻는 질문(FAQ)

Q: 라우터에서 IP 캐시의 시간 초과 값은 어떻게 결정됩니까?

A: IP 캐시의 시간 초과 값은 DNS 서버에서 반환된 DNS 패킷의 TTL(Time-To-Live) 값에 따라 결정됩니다. 이 예에서는 120초입니다. IP 캐시가 시간 초과되면 라우터에서 자동으로 제거됩니다. 패킷 캡처의 세부 정보입니다.

DNS 확인의 패킷 세부사항

Q: DNS 서버가 A 레코드가 아닌 CNAME 레코드를 반환할 때 허용됩니까?

A: 네, 문제 없어요. CNAME 레코드가 DNS 서버에 의해 반환되면 DNS 확인 및 HTTP 통신이 문제 없이 진행됩니다. 패킷 캡처의 세부 정보입니다.

내부의 DNS 패킷

DNS 확인의 패킷 세부사항

내부의 HTTP 패킷

Q: C8300 라우터에서 수집한 패킷 캡처를 FTP 서버로 전송하는 명령은 무엇입니까?

A: 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>

참조

영역 기반 정책 방화벽 설계 이해