액세스 제어 목록(방화벽 필터)
요약 이 주제를 읽고 클라우드 네이티브 라우터의 레이어 3 레이어 4 액세스 제어 목록(방화벽 필터)에 대해 알아보십시오.
주니퍼 클라우드 네이티브 라우터 릴리스는 상태 비저장 방화벽 필터를 지원합니다. 방화벽 필터는 라우터를 네트워크 대상으로 전송하거나 라우팅 엔진으로 향하는 과도한 트래픽으로부터 클라우드 네이티브 라우터를 보호하는 수단을 제공합니다. 액세스 제어 목록(ACL)이라고도 하는 상태 비저장 방화벽 필터는 트래픽을 상태 저장으로 검사하지 않습니다. 대신 패킷 내용을 정적으로 평가하고 네트워크 연결 상태를 추적하지 않습니다. 상태 비저장 방화벽 필터의 기본 목적은 패킷 필터링을 사용하여 보안을 강화하는 것입니다. 패킷 필터링을 사용하면 들어오거나 나가는 패킷의 구성 요소를 검사한 다음 지정한 기준과 일치하는 패킷에 대해 지정한 작업을 수행할 수 있습니다. 스테이트리스 방화벽 필터의 일반적인 용도는 악의적이거나 신뢰할 수 없는 패킷으로부터 라우팅 엔진 프로세스 및 리소스를 보호하는 것입니다.
시스템을 전송할 수 있는 패킷에 영향을 미치고 필요에 따라 패킷에 특수 작업을 적용하기 위해 필터 용어라고 하는 하나 이상의 패킷 필터링 규칙 시퀀스를 구성할 수 있습니다. 필터 용어는 일치 및 일치 패킷에 대해 수행할 작업을 결정하는 데 사용할 일치 조건을 지정합니다. 스테이트리스 방화벽 필터를 사용하면 레이어 3 및 레이어 4 헤더 필드의 평가를 기반으로 단편화된 패킷을 포함하여 특정 프로토콜 제품군의 모든 패킷을 조작할 수 있습니다. 자세한 내용은 상태 비저장 방화벽 필터 개요 항목을 검토하십시오.
JCNR에서는 수신 인터페이스에만 스테이트리스 방화벽 필터를 적용할 수 있습니다. 지원되는 인터페이스 유형에는 패브릭 인터페이스, 하위 인터페이스, Pod 인터페이스 및 irb
인터페이스가 포함됩니다.
JCNR은 제품군당 최대 16개의 필터와 필터당 16개의 용어를 지원합니다.
JCNR은 표에 제공된 일치 조건 및 작업을 통해 IPv4 및 IPv6 표준 방화벽 필터를 지원합니다. JCNR은 레이어 2 액세스 제어 목록(브리지 제품군에 대한 방화벽 필터)도 지원합니다.
일치 조건 |
묘사 |
---|---|
대상 주소 address |
IPv4 대상 주소 필드를 일치시킵니다. 선택적 서브넷 마스크와 함께 접두사를 제공할 수 있습니다. |
목적지 포트 number | UDP 또는 TCP 대상 포트 필드를 일치시킵니다. 일치 조건에 기반하여 포트를 구성할 때 동일한 필터 용어에 숫자 값 대신 (1483), |
소스 주소 address |
패킷을 전송하는 소스 노드의 IPv4 주소를 일치시킵니다. 선택적 서브넷 마스크와 함께 접두사를 제공할 수 있습니다. |
소스 포트 number |
UDP 또는 TCP 소스 포트 필드를 일치시킵니다. 일치 조건에 기반하여 포트를 구성할 때 동일한 필터 용어에 숫자 값 대신, 일치 조건과 함께 |
프로토콜 number |
IP 프로토콜 유형 필드를 일치시킵니다. 숫자 값 대신 (51), |
tcp-플래그 value |
TCP 헤더의 8비트 TCP 플래그 필드에서 하나 이상의 저순서 6비트를 일치시킵니다. 개별 비트 필드를 지정하기 위해 다음 텍스트 동의어 또는 16진수 값을 지정할 수 있습니다.
TCP 세션에서 SYN 플래그는 전송된 초기 패킷에서만 설정되는 반면 ACK 플래그는 초기 패킷 이후에 전송된 모든 패킷에 설정됩니다. 비트 필드 논리 연산자를 사용하여 여러 플래그를 함께 묶을 수 있습니다. 이 일치 조건을 구성하는 경우, 동일한 용어에 일치 문을 구성 |
ICMP형 number |
ICMP 메시지 유형 필드를 일치시킵니다. 숫자 값 대신 (0), |
일치 조건 |
묘사 |
---|---|
대상 주소 address |
IPv6 대상 주소 필드를 일치시킵니다. 선택적 서브넷 마스크와 함께 접두사를 제공할 수 있습니다. |
목적지 포트 number | UDP 또는 TCP 대상 포트 필드를 일치시킵니다. 일치 조건에 기반하여 포트를 구성할 때 동일한 필터 용어에 숫자 값 대신 (1483), |
소스 주소 address |
패킷을 전송하는 소스 노드의 IPv6 주소를 일치시킵니다. 선택적 서브넷 마스크와 함께 접두사를 제공할 수 있습니다. |
소스 포트 number |
UDP 또는 TCP 소스 포트 필드를 일치시킵니다. 일치 조건에 기반하여 포트를 구성할 때 동일한 필터 용어에 숫자 값 대신, 일치 조건과 함께 |
tcp-플래그 value |
TCP 헤더의 8비트 TCP 플래그 필드에서 하나 이상의 저순서 6비트를 일치시킵니다. 개별 비트 필드를 지정하기 위해 다음 텍스트 동의어 또는 16진수 값을 지정할 수 있습니다.
TCP 세션에서 SYN 플래그는 전송된 초기 패킷에서만 설정되는 반면 ACK 플래그는 초기 패킷 이후에 전송된 모든 패킷에 설정됩니다. 비트 필드 논리 연산자를 사용하여 여러 플래그를 함께 묶을 수 있습니다. |
ICMP형 message-type |
ICMP 메시지 유형 필드를 일치시킵니다. 숫자 값 대신 (149), |
작업 유형 |
묘사 |
지원되는 작업 |
---|---|---|
종료 |
특정 패킷에 대한 방화벽 필터의 모든 평가를 중지합니다. 라우터(또는 스위치)는 지정된 작업을 수행하며 패킷을 검사하는 데 추가 용어가 사용되지 않습니다. 방화벽 필터 용어에서 하나의 종료 작업만 지정할 수 있습니다. 필터 용어 내에 둘 이상의 종료 동작을 지정하려고 하면 최신 종료 동작이 기존 종료 동작을 대체합니다. 그러나 단일 용어에서 하나 이상의 비 종료 작업과 함께 하나의 종료 작업을 지정할 수 있습니다. 예를 들어, 용어 내에서 및 로 |
|
종료되지 않음 |
패킷에 대한 다른 기능(예: 카운터 증가, 패킷 헤더에 대한 정보 로깅, 패킷 데이터 샘플링 또는 시스템 로그 기능을 사용하여 원격 호스트로 정보 전송)을 수행하지만 패킷을 검사하는 데 추가 용어가 사용됩니다. 참고: JCNR은 종료 작업과 함께 추가된 경우에만 비종료 작업으로 지원됩니다 |
세다 counter-name |
구성 예시
configlet 리소스를 사용하여 cRPD Pod를 구성합니다.
계층 구조에서 상태 비저장 방화벽 필터를 사용하여 JCNR 컨트롤러를 구성할 수 있습니다 firewall
. IPv4 제품군의 구성 예는 다음과 같습니다.
firewall { family inet { filter temp { term a { from { source-address { 10.0.0.1/32; } destination-address { 10.0.0.2/32; } protocol icmp; icmp-type echo-request; source-port http; destination-port bgp; tcp-flags fin; } then { count c1; accept; } } } } }
IPv6 제품군의 구성 예는 다음과 같습니다.
firewall { family inet6 { filter temp6 { term a { from { source-address { 2001:db8::1/128; } destination-address { 2001:db8::1/128; } icmp-type echo-request; source-port http; destination-port bgp; tcp-flags fin; } then { count c1; discard; } } } } }
필터는 수신 인터페이스에 적용됩니다. 지원되는 인터페이스에는 패브릭 인터페이스, 하위 인터페이스, 포드 인터페이스 및 irb
인터페이스가 포함됩니다. 필터는 인터페이스의 입력에만 적용할 수 있습니다.
user@host > show interfaces enp4s0 unit 0 { family inet { filter { input temp; } address 10.0.0.1/24; } family inet6 { filter { input temp6; } } }
문제 해결
JCNR 컨트롤러 명령
패밀리 inet(IPv4)에 대한 모든 방화벽 필터 표시
user@host> show firewall family inet Filter: temp Counters: Name Bytes Packets c1 0 0 c2 1532909 22500 Filter: temp 2 Counters: Name Bytes Packets c3 0 0 c4 100 100
패밀리 inet에 대한 특정 방화벽 필터 표시
user@host> show firewall family inet filter temp Filter: temp Counters: Name Bytes Packets c1 0 0 c2 1532909 22500
family inet의 방화벽 필터에 대한 특정 카운터 표시
user@host> show firewall family inet filter temp counter c2 Filter: temp Counters: Name Bytes Packets c2 1532909 22500
제품군 inet6(IPv6)에 대한 모든 방화벽 필터 표시
user@host> show firewall family inet6 Filter: temp6 Counters: Name Bytes Packets c1 0 0 c2 1532909 22500 Filter: temp6_2 Counters: Name Bytes Packets c3 0 0 c4 100 100
다음 명령을 사용하여 카운터 통계를 지울 수 있습니다.
clear firewall family name >> clear all counter statistics for a family clear firewall family name filter name >> clear all counter statistics for a specific filter for a family clear firewall family name filter name count counter-name >> clear statistics for a specific counter for a specific filter for a family
vRouter 명령
bash-5.1# acl --family inet --filter f4 --term t4 ======================================= Filter: f4 ======================================= Term: t4 ----- Priority: 268420555 Dest IP: 10.0.0.1/32 Src IP: 10.0.0.2/32 Dst ports: [179 - 179] Src ports: [179 - 179] Action: accept (n/a)
bash-5.1# acl --list-actions [1] inet filter "f1": Counter "c1" Rx Packets: 2 [2] inet filter "f1": Counter "c2" Rx Packets: 1
추가 acl
명령은 다음과 같습니다.
acl --list-filters --family <inet/inet6/mpls> >>Lists the full acl table acl --list-actions >>Shows the acl entry corresponding to filter name and term name acl --family <inet/inet6/mpls> --filter <name> [--list-terms] >>Shows the ACL term list acl --family <inet/inet6/mpls> --filter <name> [--term <name>] >>Shows the ACL term details acl --family <inet/inet6/mpls> --filter <name> [--action <name>] >>Shows the ACL action details acl --family <inet/inet6/mpls> --filter <name> [--action <name>] --clear >>Clears the ACL action details acl --help >>Prints the help messages
명령을 사용하여 인터페이스와 연결된 필터를 볼 수 있습니다.vif --get
bash-5.1# vif --get 5 Vrouter Interface Table Flags: P=Policy, X=Cross Connect, S=Service Chain, Mr=Receive Mirror Mt=Transmit Mirror, Tc=Transmit Checksum Offload, L3=Layer 3, L2=Layer 2 D=DHCP, Vp=Vhost Physical, Pr=Promiscuous, Vnt=Native Vlan Tagged Mnp=No MAC Proxy, Dpdk=DPDK PMD Interface, Rfl=Receive Filtering Offload, Mon=Interface is Monitored Uuf=Unknown Unicast Flood, Vof=VLAN insert/strip offload, Df=Drop New Flows, L=MAC Learning Enabled Proxy=MAC Requests Proxied Always, Er=Etree Root, Mn=Mirror without Vlan Tag, HbsL=HBS Left Intf HbsR=HBS Right Intf, Ig=Igmp Trap Enabled, Ml=MAC-IP Learning Enabled, Me=Multicast Enabled vif0/5 PCI: 0000:07:00.0 NH: 10 MTU: 9000 Type:Physical HWaddr:02:8b:65:44:27:bd IPaddr:0.0.0.0 DDP: OFF SwLB: ON Vrf:0 Mcast Vrf:0 Flags:L3L2Vof QOS:0 Ref:9 RX device packets:8807 bytes:374638 errors:0 RX port packets:8806 errors:0 RX queue errors to lcore 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 Fabric Interface: 0000:07:00.0 Status: UP Driver: 0000:07:00.0 RX packets:8806 bytes:374596 errors:0 TX packets:2 bytes:240 errors:0 Drops:0 TX queue packets:2 errors:0 TX port packets:2 errors:0 TX device packets:8 bytes:912 errors:0 inet acl f1 inet6 acl f1v6