예: 논리적 시스템에서 필터 기반 전달 구성
이 예는 논리적 시스템 내에서 필터 기반 포워딩을 구성하는 방법을 보여줍니다. 필터는 패킷을 분류하여 수신 라우팅 디바이스 내에서 전달 경로를 결정합니다.
요구 사항
이 예에서는 디바이스 초기화를 제외한 특별한 구성이 필요하지 않습니다.
개요
필터 기반 전달은 IP 버전 4(IPv4) 및 IP 버전 6(IPv6)에 대해 지원됩니다.
고객이 서로 다른 ISP에서 제공하는 인터넷 연결을 사용하면서도 공통 액세스 레이어를 공유하는 경우 서비스 프로바이더 선택에 필터 기반 전달을 사용합니다. 공유 미디어(예: 케이블 모뎀)를 사용할 때 공통 액세스 레이어의 메커니즘은 레이어 2 또는 레이어 3 주소를 보고 고객을 구별합니다. 레이어 2 스위치와 단일 라우터의 조합을 사용하여 공통 액세스 레이어를 구현할 때 필터 기반 포워딩을 사용할 수 있습니다.
필터 기반 포워딩을 사용하면 인터페이스에서 수신된 모든 패킷이 고려됩니다. 각 패킷은 일치 조건이 있는 필터를 통과합니다. 필터에 대한 일치 조건이 충족되고 라우팅 인스턴스를 생성한 경우, 필터 기반 포워딩이 패킷에 적용됩니다. 패킷은 라우팅 인스턴스에 지정된 다음 홉을 기준으로 전달됩니다. 정적 경로의 경우 다음 홉은 특정 LSP가 될 수 있습니다.
소스 클래스 사용 필터 일치 및 유니캐스트 역방향 경로 전달 검사는 필터 기반 포워딩(FBF)으로 구성된 인터페이스에서 지원되지 않습니다.
필터 기반 전달을 구성하려면 다음 작업을 수행합니다.
수신 라우터 또는 스위치에서 일치 필터를 생성합니다. 일치 필터를 지정하려면 계층 수준에서 명령문을
[edit firewall]
포함합니다filter filter-name
. 필터를 통과하는 패킷은 규칙 집합과 비교하여 분류하고 집합의 구성원 자격을 결정합니다. 분류된 패킷은 필터 설명 언어의 수락 동작에 지정된 라우팅 테이블로 전달됩니다. 그런 다음 라우팅 테이블은 테이블의 대상 주소 항목에 해당하는 다음 홉으로 패킷을 전달합니다.패킷이 전달되는 라우팅 테이블과 패킷
[edit routing-instances]
이 전달되는 대상을 또는[edit logical-systems logical-system-name routing-instances]
계층 수준에서 지정하는 라우팅 인스턴스를 생성합니다. 예:[edit] routing-instances { routing-table-name1 { instance-type forwarding; routing-options { static { route 0.0.0.0/0 nexthop 10.0.0.1; } } } routing-table-name2 { instance-type forwarding; routing-options { static { route 0.0.0.0/0 nexthop 10.0.0.2; } } } }
필터 기반 포워딩(FBF)에 사용되는 포워딩 라우팅 인스턴스와 기본 라우팅 인스턴스에
inet.0
인터페이스 경로를 추가하는 라우팅 테이블 그룹을 생성합니다. 구성의 이 부분은 라우팅 인스턴스에 설치된 경로를 해당 인터페이스의 직접 연결된 다음 홉으로 해결합니다. 또는[edit logical-systems logical-system-name routing-options]
계층 수준에서 라우팅 테이블 그룹을[edit routing-options]
만듭니다.
을(를) 인터페이스 경로를 가져올 라우팅 인스턴스 중 하나로 지정합니다 inet.0
. 기본 인스턴스를 inet.0
지정하지 않으면 인터페이스 경로를 기본 라우팅 인스턴스로 가져오지 않습니다.
이 예는 패킷의 소스 주소를 기반으로 고객 트래픽을 도메인 SP 1 또는 SP 2의 다음 홉 라우터로 보내는 패킷 필터를 보여줍니다.
패킷에 SP 1 고객에게 할당된 소스 주소가 있는 경우 sp1-route-table.inet.0 라우팅 테이블을 사용하여 대상 기반 전달이 발생합니다. 패킷에 SP 2 고객에게 할당된 소스 주소가 있는 경우 sp2-route-table.inet.0 라우팅 테이블을 사용하여 대상 기반 전달이 발생합니다. 패킷이 이러한 조건 중 하나와 일치하지 않으면 필터가 패킷을 수락하고 표준 inet.0 라우팅 테이블을 사용하여 대상 기반 전달이 수행됩니다.
논리적 시스템 내에서 필터 기반 포워딩이 작동하도록 하는 한 가지 방법은 패킷을 수신하는 논리적 시스템에 방화벽 필터를 구성하는 것입니다. 또 다른 방법은 메인 라우터에서 방화벽 필터를 구성한 다음 방화벽 필터에서 논리적 시스템을 참조하는 것입니다. 이 예제에서는 두 번째 방법을 사용합니다. 특정 라우팅 인스턴스는 논리적 시스템 내에서 구성됩니다. 각 라우팅 인스턴스에는 자체 라우팅 테이블이 있으므로 방화벽 필터의 라우팅 인스턴스도 참조해야 합니다. 구문은 다음과 같습니다.
[edit firewall filter filter-name term term-name] user@host# set then logical-system logical-system-name routing-instance routing-instance-name
토폴로지
그림 1 본 예제에서 사용되는 토폴로지를 나타냅니다.
논리적 시스템 P1에서 입력 필터는 논리적 시스템 PE3 및 논리적 시스템 PE4에서 수신된 패킷을 분류합니다. 패킷은 소스 주소를 기반으로 라우팅됩니다. 10.1.1.0/24 및 10.1.2.0/24 네트워크에 소스 주소가 있는 패킷은 논리적 시스템 PE1로 라우팅됩니다. 10.2.1.0/24 및 10.2.2.0/24 네트워크에 소스 주소가 있는 패킷은 논리적 시스템 PE2로 라우팅됩니다.
연결을 설정하기 위해 모든 인터페이스에 OSPF가 구성됩니다. 시연을 위해 루프백 인터페이스 주소는 클라우드의 네트워크를 나타내도록 라우팅 디바이스에 구성됩니다.
이 섹션에는 CLI 빠른 구성 토폴로지의 모든 디바이스에 대한 전체 구성이 표시됩니다. 및 메인 라우터에서 방화벽 필터 구성 섹션은 논리적 시스템 P1에서 라우팅 인스턴스 구성 수신 라우팅 디바이스인 논리적 시스템 P1의 단계별 구성을 보여줍니다.
구성
CLI 빠른 구성
이 예를 빠르게 구성하려면, 아래 명령을 복사하여 텍스트 파일로 붙여 넣은 다음 모든 라인브레이크를 제거하고, 네트워크 구성을 일치하는 데 필요한 세부 사항을 바꾸고 [edit] 계층 수준에서 명령을 CLI로 복사해 붙여 넣습니다.
set firewall filter classify-customers term sp1-customers from source-address 10.1.1.0/24 set firewall filter classify-customers term sp1-customers from source-address 10.1.2.0/24 set firewall filter classify-customers term sp1-customers then log set firewall filter classify-customers term sp1-customers then logical-system P1 routing-instance sp1-route-table set firewall filter classify-customers term sp2-customers from source-address 10.2.1.0/24 set firewall filter classify-customers term sp2-customers from source-address 10.2.2.0/24 set firewall filter classify-customers term sp2-customers then log set firewall filter classify-customers term sp2-customers then logical-system P1 routing-instance sp2-route-table set firewall filter classify-customers term default then accept set logical-systems P1 interfaces lt-1/2/0 unit 10 encapsulation ethernet set logical-systems P1 interfaces lt-1/2/0 unit 10 peer-unit 9 set logical-systems P1 interfaces lt-1/2/0 unit 10 family inet filter input classify-customers set logical-systems P1 interfaces lt-1/2/0 unit 10 family inet address 172.16.0.10/30 set logical-systems P1 interfaces lt-1/2/0 unit 13 encapsulation ethernet set logical-systems P1 interfaces lt-1/2/0 unit 13 peer-unit 14 set logical-systems P1 interfaces lt-1/2/0 unit 13 family inet address 172.16.0.13/30 set logical-systems P1 interfaces lt-1/2/0 unit 17 encapsulation ethernet set logical-systems P1 interfaces lt-1/2/0 unit 17 peer-unit 18 set logical-systems P1 interfaces lt-1/2/0 unit 17 family inet address 172.16.0.17/30 set logical-systems P1 protocols ospf rib-group fbf-group set logical-systems P1 protocols ospf area 0.0.0.0 interface all set logical-systems P1 protocols ospf area 0.0.0.0 interface fxp0.0 disable set logical-systems P1 routing-instances sp1-route-table instance-type forwarding set logical-systems P1 routing-instances sp1-route-table routing-options static route 0.0.0.0/0 next-hop 172.16.0.13 set logical-systems P1 routing-instances sp2-route-table instance-type forwarding set logical-systems P1 routing-instances sp2-route-table routing-options static route 0.0.0.0/0 next-hop 172.16.0.17 set logical-systems P1 routing-options rib-groups fbf-group import-rib inet.0 set logical-systems P1 routing-options rib-groups fbf-group import-rib sp1-route-table.inet.0 set logical-systems P1 routing-options rib-groups fbf-group import-rib sp2-route-table.inet.0 set logical-systems P2 interfaces lt-1/2/0 unit 2 encapsulation ethernet set logical-systems P2 interfaces lt-1/2/0 unit 2 peer-unit 1 set logical-systems P2 interfaces lt-1/2/0 unit 2 family inet address 172.16.0.2/30 set logical-systems P2 interfaces lt-1/2/0 unit 6 encapsulation ethernet set logical-systems P2 interfaces lt-1/2/0 unit 6 peer-unit 5 set logical-systems P2 interfaces lt-1/2/0 unit 6 family inet address 172.16.0.6/30 set logical-systems P2 interfaces lt-1/2/0 unit 9 encapsulation ethernet set logical-systems P2 interfaces lt-1/2/0 unit 9 peer-unit 10 set logical-systems P2 interfaces lt-1/2/0 unit 9 family inet address 172.16.0.9/30 set logical-systems P2 protocols ospf area 0.0.0.0 interface all set logical-systems P2 protocols ospf area 0.0.0.0 interface fxp0.0 disable set logical-systems PE1 interfaces lt-1/2/0 unit 14 encapsulation ethernet set logical-systems PE1 interfaces lt-1/2/0 unit 14 peer-unit 13 set logical-systems PE1 interfaces lt-1/2/0 unit 14 family inet address 172.16.0.14/30 set logical-systems PE1 interfaces lo0 unit 3 family inet address 172.16.1.1/32 set logical-systems PE1 protocols ospf area 0.0.0.0 interface all set logical-systems PE1 protocols ospf area 0.0.0.0 interface fxp0.0 disable set logical-systems PE2 interfaces lt-1/2/0 unit 18 encapsulation ethernet set logical-systems PE2 interfaces lt-1/2/0 unit 18 peer-unit 17 set logical-systems PE2 interfaces lt-1/2/0 unit 18 family inet address 172.16.0.18/30 set logical-systems PE2 interfaces lo0 unit 4 family inet address 172.16.2.2/32 set logical-systems PE2 protocols ospf area 0.0.0.0 interface all set logical-systems PE2 protocols ospf area 0.0.0.0 interface fxp0.0 disable set logical-systems PE3 interfaces lt-1/2/0 unit 1 encapsulation ethernet set logical-systems PE3 interfaces lt-1/2/0 unit 1 peer-unit 2 set logical-systems PE3 interfaces lt-1/2/0 unit 1 family inet address 172.16.0.1/30 set logical-systems PE3 interfaces lo0 unit 1 family inet address 10.1.1.1/32 set logical-systems PE3 interfaces lo0 unit 1 family inet address 10.1.2.1/32 set logical-systems PE3 protocols ospf area 0.0.0.0 interface all set logical-systems PE3 protocols ospf area 0.0.0.0 interface fxp0.0 disable set logical-systems PE4 interfaces lt-1/2/0 unit 5 encapsulation ethernet set logical-systems PE4 interfaces lt-1/2/0 unit 5 peer-unit 6 set logical-systems PE4 interfaces lt-1/2/0 unit 5 family inet address 172.16.0.5/30 set logical-systems PE4 interfaces lo0 unit 2 family inet address 10.2.1.1/32 set logical-systems PE4 interfaces lo0 unit 2 family inet address 10.2.2.1/32 set logical-systems PE4 protocols ospf area 0.0.0.0 interface all set logical-systems PE4 protocols ospf area 0.0.0.0 interface fxp0.0 disable
메인 라우터에서 방화벽 필터 구성
단계별 절차
다음 예는 구성 계층에서 다양한 수준의 탐색이 필요합니다. CLI 탐색에 관한 정보는 CLI 사용자 가이드에서 구성 모드에서 CLI 편집기 사용을 참조하십시오.
메인 라우터에서 방화벽 필터를 구성하려면 다음을 수행합니다.
SP1 고객에 대한 원본 주소를 구성합니다.
[edit firewall filter classify-customers term sp1-customers] user@host# set from source-address 10.1.1.0/24 user@host# set from source-address 10.1.2.0/24
지정된 소스 주소로 패킷을 수신할 때 수행되는 작업을 구성합니다.
방화벽 필터의 동작을 추적하기 위해 로그 동작이 구성됩니다. 논리적 시스템 P1의 sp1-route-table.inet.0 라우팅 테이블이 패킷을 라우팅합니다.
[edit firewall filter classify-customers term sp1-customers] user@host# set then log user@host# set then logical-system P1 routing-instance sp1-route-table
SP2 고객에 대한 원본 주소를 구성합니다.
[edit firewall filter classify-customers term sp2-customers] user@host# set from source-address 10.2.1.0/24 user@host# set from source-address 10.2.2.0/24
지정된 소스 주소로 패킷을 수신할 때 수행되는 작업을 구성합니다.
방화벽 필터의 동작을 추적하기 위해 로그 동작이 구성됩니다. 논리적 시스템 P1의 sp2-route-table.inet.0 라우팅 테이블이 패킷을 라우팅합니다.
[edit firewall filter classify-customers term sp2-customers] user@host# set then log user@host# set then logical-system P1 routing-instance sp2-route-table
다른 소스 주소에서 패킷을 수신할 때 수행할 작업을 구성합니다.
이러한 모든 패킷은 기본 IPv4 유니캐스트 라우팅 테이블인 inet.0을 사용하여 수락되고 라우팅됩니다.
[edit firewall filter classify-customers term default] user@host# set then accept
논리적 시스템 P1에서 라우팅 인스턴스 구성
단계별 절차
다음 예는 구성 계층에서 다양한 수준의 탐색이 필요합니다. CLI 탐색에 관한 정보는 CLI 사용자 가이드에서 구성 모드에서 CLI 편집기 사용을 참조하십시오.
논리적 시스템에서 라우팅 인스턴스를 구성하려면 다음을 수행합니다.
논리적 시스템에서 인터페이스를 구성합니다.
[edit logical-systems P1 interfaces lt-1/2/0] user@host# set unit 10 encapsulation ethernet user@host# set unit 10 peer-unit 9 user@host# set unit 10 family inet address 172.16.0.10/30 user@host# set unit 13 encapsulation ethernet user@host# set unit 13 peer-unit 14 user@host# set unit 13 family inet address 172.16.0.13/30 user@host# set unit 17 encapsulation ethernet user@host# set unit 17 peer-unit 18 user@host# set unit 17 family inet address 172.16.0.17/30
방화벽 필터를 라우터 인터페이스 lt-1/2/0.10에 입력 패킷 필터로 할당합니다
classify-customers
.[edit logical-systems P1 interfaces lt-1/2/0] user@host# set unit 10 family inet filter input classify-customers
라우팅 프로토콜 또는 정적 라우팅을 사용하여 연결을 구성합니다.
관리 인터페이스에서 라우팅을 비활성화하는 것이 가장 좋습니다.
[edit logical-systems P1 protocols ospf area 0.0.0.0] user@host# set interface all user@host# set interface fxp0.0 disable
라우팅 인스턴스를 생성합니다.
이러한 라우팅 인스턴스는 방화벽 필터에서 참조됩니다
classify-customers
.포워딩 인스턴스 유형은 인터페이스가 인스턴스와 연결되지 않은 필터 기반 포워딩을 지원합니다. 모든 인터페이스는 기본 인스턴스(이 경우 논리적 시스템 P1)에 속합니다.
[edit logical-systems P1 routing-instances] user@host# set sp1-route-table instance-type forwarding user@host# set sp2-route-table instance-type forwarding
라우팅 인스턴스에 설치된 경로를 직접 연결된 다음 홉으로 해결합니다.
[edit logical-systems P1 routing-instances] user@host# set sp1-route-table routing-options static route 0.0.0.0/0 next-hop 172.16.0.13 user@host# set sp2-route-table routing-options static route 0.0.0.0/0 next-hop 172.16.0.17
라우팅 테이블을 그룹화하여 라우팅 테이블 그룹을 형성합니다.
첫 번째 라우팅 테이블인 inet.0은 기본 라우팅 테이블이고 추가 라우팅 테이블은 보조 라우팅 테이블입니다.
기본 라우팅 테이블은 라우팅 테이블 그룹의 주소 패밀리(이 경우 IPv4)를 결정합니다.
[edit logical-systems P1 routing-options] user@host# set rib-groups fbf-group import-rib inet.0 user@host# set rib-groups fbf-group import-rib sp1-route-table.inet.0 user@host# set rib-groups fbf-group import-rib sp2-route-table.inet.0
OSPF에 라우팅 테이블 그룹을 적용합니다.
이로 인해 OSPF 경로가 그룹의 모든 라우팅 테이블에 설치됩니다.
[edit logical-systems P1 protocols ospf] user@host# set rib-group fbf-group
디바이스 구성을 완료하면 해당 구성을 커밋합니다.
[edit] user@host# commit
결과
및 show logical-systems P1
명령을 실행하여 show firewall
구성을 확인합니다.
user@host# show firewall filter classify-customers { term sp1-customers { from { source-address { 10.1.1.0/24; 10.1.2.0/24; } } then { log; logical-system P1 routing-instance sp1-route-table; } } term sp2-customers { from { source-address { 10.2.1.0/24; 10.2.2.0/24; } } then { log; logical-system P1 routing-instance sp2-route-table; } } term default { then accept; } }
user@host# show logical-systems P1 interfaces { lt-1/2/0 { unit 10 { encapsulation ethernet; peer-unit 9; family inet { filter { input classify-customers; } address 172.16.0.10/30; } } unit 13 { encapsulation ethernet; peer-unit 14; family inet { address 172.16.0.13/30; } } unit 17 { encapsulation ethernet; peer-unit 18; family inet { address 172.16.0.17/30; } } } } protocols { ospf { rib-group fbf-group; area 0.0.0.0 { interface all; interface fxp0.0 { disable; } } } } routing-instances { sp1-route-table { instance-type forwarding; routing-options { static { route 0.0.0.0/0 next-hop 172.16.0.13; } } } sp2-route-table { instance-type forwarding; routing-options { static { route 0.0.0.0/0 next-hop 172.16.0.17; } } } } routing-options { rib-groups { fbf-group { import-rib [ inet.0 sp1-route-table.inet.0 sp2-route-table.inet.0 ]; } } }
검증
구성이 올바르게 작동하고 있는지 확인합니다.
지정된 소스 주소로 Ping
목적
방화벽 필터를 테스트하기 위해 네트워크를 통해 일부 ICMP 패킷을 보냅니다.
작업
논리적 시스템 PE3에 로그인합니다.
user@host> set cli logical-system PE3 Logical system: PE3
ping
명령을 실행하여 논리적 시스템 PE1에서 lo0.3 인터페이스를 ping합니다.이 인터페이스에 구성된 주소는 172.16.1.1입니다.
논리적 시스템 PE3의 lo0.1 인터페이스에 구성된 주소인 소스 주소 10.1.2.1을 지정합니다.
user@host:PE3> ping 172.16.1.1 source 10.1.2.1 PING 172.16.1.1 (172.16.1.1): 56 data bytes 64 bytes from 172.16.1.1: icmp_seq=0 ttl=62 time=1.444 ms 64 bytes from 172.16.1.1: icmp_seq=1 ttl=62 time=2.094 ms ^C --- 172.16.1.1 ping statistics --- 2 packets transmitted, 2 packets received, 0% packet loss round-trip min/avg/max/stddev = 1.444/1.769/2.094/0.325 ms
논리적 시스템 PE4에 로그인합니다.
user@host:PE3> set cli logical-system PE4 Logical system: PE4
ping
명령을 실행하여 논리적 시스템 PE2에서 lo0.4 인터페이스를 ping합니다.이 인터페이스에 구성된 주소는 172.16.2.2입니다.
소스 주소 10.2.1.1을 지정합니다. 이 주소는 논리적 시스템 PE4의 lo0.2 인터페이스에 구성된 주소입니다.
user@host:PE4> ping 172.16.2.2 source 10.2.1.1 PING 172.16.2.2 (172.16.2.2): 56 data bytes 64 bytes from 172.16.2.2: icmp_seq=0 ttl=62 time=1.473 ms 64 bytes from 172.16.2.2: icmp_seq=1 ttl=62 time=1.407 ms ^C --- 172.16.2.2 ping statistics --- 2 packets transmitted, 2 packets received, 0% packet loss round-trip min/avg/max/stddev = 1.407/1.440/1.473/0.033 ms
의미
이러한 ping을 보내면 방화벽 필터 동작이 활성화됩니다.
방화벽 필터 확인
목적
방화벽 필터 동작이 적용되는지 확인합니다.
작업
논리적 시스템 P1에 로그인합니다.
user@host> set cli logical-system P1 Logical system: P1
show firewall log
논리적 시스템 P1에서 명령을 실행합니다.user@host:P1> show firewall log Log : Time Filter Action Interface Protocol Src Addr Dest Addr 13:52:20 pfe A lt-1/2/0.10 ICMP 10.2.1.1 172.16.2.2 13:52:19 pfe A lt-1/2/0.10 ICMP 10.2.1.1 172.16.2.2 13:51:53 pfe A lt-1/2/0.10 ICMP 10.1.2.1 172.16.1.1 13:51:52 pfe A lt-1/2/0.10 ICMP 10.1.2.1 172.16.1.1