액세스 제어 목록(방화벽 필터)
클라우드 네이티브 라우터의 레이어 3-레이어 4 액세스 제어 목록(방화벽 필터)에 대해 알아보려면 이 주제를 읽어보십시오.
주니퍼 클라우드 네이티브 라우터 릴리스는 스테이트리스 방화벽 필터를 지원합니다. 방화벽 필터는 라우터를 네트워크 대상으로 전송하거나 라우팅 엔진으로 향하는 과도한 트래픽으로부터 클라우드 네이티브 라우터를 보호하는 수단을 제공합니다. 액세스 제어 목록(ACL)이라고도 하는 무상태 방화벽 필터는 트래픽을 상태 형식으로 검사하지 않습니다. 대신 패킷 내용을 정적으로 평가하고 네트워크 연결 상태를 추적하지 않습니다. 스테이트리스 방화벽 필터의 기본 목적은 패킷 필터링을 사용하여 보안을 강화하는 것입니다. 패킷 필터링을 사용하면 들어오거나 나가는 패킷의 구성 요소를 검사한 다음 지정한 기준과 일치하는 패킷에 대해 지정한 작업을 수행할 수 있습니다. 무상태 방화벽 필터의 일반적인 용도는 악의적이거나 신뢰할 수 없는 패킷으로부터 라우팅 엔진 프로세스 및 리소스를 보호하는 것입니다.
시스템을 통과할 수 있는 패킷에 영향을 주고 필요에 따라 패킷에 특수 작업을 적용하려면 필터 용어라고 하는 하나 이상의 패킷 필터링 규칙의 시퀀스를 구성할 수 있습니다. 필터 용어는 일치 여부를 결정하는 데 사용할 일치 조건 과 일치 패킷에 대해 수행할 작업을 지정합니다. 무상태 방화벽 필터를 사용하면 레이어 3 및 레이어 4 헤더 필드의 평가에 기반하여 단편화된 패킷을 포함하여 특정 프로토콜 체계의 모든 패킷을 조작할 수 있습니다. 자세한 내용은 무상태 방화벽 필터 개요 항목을 검토하십시오.
클라우드 네이티브 라우터에서는 수신 인터페이스에만 무상태 방화벽 필터를 적용할 수 있습니다. 지원되는 인터페이스 유형에는 패브릭 인터페이스, 하위 인터페이스, 포드 인터페이스 및 인터페이스가 irb 포함됩니다.
클라우드 네이티브 라우터는 제품군당 최대 16개의 필터와 필터당 16개의 용어를 지원합니다.
클라우드 네이티브 라우터는 표에 제공된 일치 조건 및 작업을 통해 IPv4 및 IPv6 표준 방화벽 필터를 지원합니다. 또한 클라우드 네이티브 라우터 는 레이어 2 액세스 제어 목록(브리지 제품군에 대한 방화벽 필터)도 지원합니다.
| 일치 조건 |
묘사 |
|---|---|
| 대상 주소 address |
IPv4 대상 주소 필드를 일치시킵니다. 접두사에 서브넷 마스크(선택 사항)를 제공할 수 있습니다. |
| 대상 포트 number | UDP 또는 TCP 대상 포트 필드를 일치시킵니다. 일치 조건에 기반하여 숫자 값 대신 다음 텍스트 동의어 중 하나를 지정할 수 있습니다(포트 번호도 나열되어 |
| 소스 주소 address |
패킷을 전송하는 소스 노드의 IPv4 주소를 일치시킵니다. 접두사에 서브넷 마스크(선택 사항)를 제공할 수 있습니다. |
| 소스 포트 number |
UDP 또는 TCP 소스 포트 필드를 일치시킵니다. 일치 조건에 기반하여 숫자 값 대신, 일치 조건으로 나열된 |
| 프로토콜 number |
IP 프로토콜 유형 필드를 일치시킵니다. 숫자 값 대신 텍스트 동의어(필드 값도 나열되어 있음) 중 하나를 지정할 수 있습니다(필드 값도 나열 |
| tcp 플래그 value |
TCP 헤더의 8비트 TCP 플래그 필드에서 하나 이상의 저순서 6비트를 일치시킵니다. 개별 비트 필드를 지정하기 위해 다음 텍스트 동의어나 16진수 값을 지정할 수 있습니다.
TCP 세션에서, SYN 플래그는 전송된 초기 패킷에서만 설정되어 있는 반면, ACK 플래그는 초기 패킷 후 전송된 모든 패킷에 설정되어 있습니다. 비트 필드 논리 연산자를 사용하여 여러 개의 플래그를 함께 묶을 수 있습니다. 이 일치 조건을 구성하는 경우, 동일한 용어에 일치 문을 구성 |
| icmp 유형 number |
ICMP 메시지 유형 필드를 일치시킵니다. 숫자 값 대신 텍스트 동의어(필드 값도 나열 |
| 일치 조건 |
묘사 |
|---|---|
| 대상 주소 address |
IPv6 대상 주소 필드를 일치시킵니다. 접두사에 서브넷 마스크(선택 사항)를 제공할 수 있습니다. |
| 대상 포트 number | UDP 또는 TCP 대상 포트 필드를 일치시킵니다. 일치 조건에 기반하여 숫자 값 대신 다음 텍스트 동의어 중 하나를 지정할 수 있습니다(포트 번호도 나열되어 |
| 소스 주소 address |
패킷을 전송하는 소스 노드의 IPv6 주소를 일치시킵니다. 접두사에 서브넷 마스크(선택 사항)를 제공할 수 있습니다. |
| 소스 포트 number |
UDP 또는 TCP 소스 포트 필드를 일치시킵니다. 일치 조건에 기반하여 숫자 값 대신, 일치 조건으로 나열된 |
| tcp 플래그 value |
TCP 헤더의 8비트 TCP 플래그 필드에서 하나 이상의 저순서 6비트를 일치시킵니다. 개별 비트 필드를 지정하기 위해 다음 텍스트 동의어나 16진수 값을 지정할 수 있습니다.
TCP 세션에서, SYN 플래그는 전송된 초기 패킷에서만 설정되어 있는 반면, ACK 플래그는 초기 패킷 후 전송된 모든 패킷에 설정되어 있습니다. 비트 필드 논리 연산자를 사용하여 여러 개의 플래그를 함께 묶을 수 있습니다. |
| icmp 유형 message-type |
ICMP 메시지 유형 필드를 일치시킵니다. 숫자 값 대신 다음 텍스트 동의어 중 하나를 지정할 수 있습니다(필드 값도 나열 |
| 작업 유형 |
묘사 |
지원되는 작업 |
|---|---|---|
| 종료 |
특정 패킷에 대한 방화벽 필터의 모든 평가를 중단합니다. 라우터(또는 스위치)는 지정된 작업을 수행하며, 패킷을 검사하는 데 추가 용어는 사용되지 않습니다. 방화벽 필터 용어에는 하나의 종료 동작만 지정할 수 있습니다. 필터 용어 내에서 둘 이상의 종료 동작을 지정하려고 하면 최신 종료 동작이 기존 종료 동작을 대체합니다. 그러나 단일 용어에서 하나 이상의 비종료 동작과 함께 하나의 종료 동작을 지정할 수 있습니다. 예를 들어, 용어 내에서 와 |
|
| 종단되지 않음 |
패킷에 대한 다른 기능(예: 카운터 증가, 패킷 헤더에 대한 정보 로깅, 패킷 데이터 샘플링, 시스템 로그 기능을 사용하여 원격 호스트로 정보 전송)을 수행하지만 패킷을 검사하는 데 추가 용어가 사용됩니다. 참고: 클라우드 네이티브 라우터는 종료 작업과 함께 추가된 경우에만 비 종료 작업으로 지원합니다 |
세다 counter-name |
구성 예
configlet 리소스를 사용하여 cRPD Pod를 구성합니다.
계층에서 무상태 방화벽 필터를 사용하여 클라우드 네이티브 라우터 컨트롤러를 구성할 수 있습니다 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;
}
}
}
문제 해결
클라우드 네이티브 라우터 컨트롤러 명령
제품군 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
패밀리 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