예: 소스 주소에서 필터 기반 전달 구성
이 예에서는 PBR(정책 기반 라우팅)이라고도 하는 FBF(필터 기반 포워딩)를 구성하는 방법을 보여줍니다. 필터는 패킷을 분류하여 수신 라우팅 디바이스 내에서 전달 경로를 결정합니다.
필터 기반 전달은 IP 버전 4(IPv4) 및 IP 버전 6(IPv6)에 대해 지원됩니다.
QFX5110, QFX5120, QFX5130, QFX5200, QFX5210, QFX5220, QFX5230, QFX5240 및 QFX5700는 지원하지 instance-type forwarding
않으며 만 instance-type virtual-router
지원됩니다.
요구 사항
이 예에서는 디바이스 초기화 이외의 특별한 구성이 필요하지 않습니다.
개요
이 예에서는 고객이 서로 다른 ISP에서 제공하는 인터넷 연결을 사용하지만 공통 액세스 계층을 공유하는 경우 서비스 제공업체 선택에 FBF를 사용합니다. 공유 미디어(예: 케이블 모뎀)를 사용할 때 공통 액세스 레이어의 메커니즘은 레이어 2 또는 레이어 3 주소를 보고 고객을 구별합니다. 레이어 2 스위치와 단일 라우터의 조합을 사용하여 공통 액세스 레이어를 구현할 때 필터 기반 포워딩을 사용할 수 있습니다.
FBF를 사용하면 인터페이스에서 수신된 모든 패킷이 고려됩니다. 각 패킷은 일치 조건이 있는 필터를 통과합니다. 필터에 대한 일치 조건이 충족되고 라우팅 인스턴스를 생성한 경우 FBF가 패킷에 적용됩니다. 패킷은 라우팅 인스턴스에 지정된 다음 홉을 기준으로 전달됩니다. 정적 경로의 경우 다음 홉은 특정 LSP가 될 수 있습니다.
소스 클래스 사용 필터 일치 및 유니캐스트 역방향 경로 전달 검사는 FBF용으로 구성된 인터페이스에서 지원되지 않습니다.
FBF를 구성하려면 다음 작업을 수행합니다.
수신 디바이스에 일치 필터를 생성합니다. 일치 필터를 지정하려면 계층 수준에서 명령문을
[edit firewall]
포함합니다filter filter-name
. 필터를 통과하는 패킷은 규칙 집합과 비교하여 분류하고 집합의 구성원 자격을 결정합니다. 분류된 패킷은 필터 설명 언어의 수락 동작에 지정된 라우팅 테이블로 전달됩니다. 그런 다음 라우팅 테이블은 테이블의 대상 주소 항목에 해당하는 다음 홉으로 패킷을 전달합니다.패킷이 전달되는 라우팅 테이블과 패킷이 전달
[edit routing-instances]
되는 대상을 계층 수준에서 지정하는 라우팅 인스턴스를 생성합니다. 예:[edit] routing-instances { routing-table-name1 { instance-type forwarding; routing-options { static { route 0.0.0.0/0 next-hop 172.16.0.14; } } } routing-table-name2 { instance-type forwarding; routing-options { static { route 0.0.0.0/0 next-hop 172.16.0.18; } } } }
RIB 그룹을 생성하여 필터 기반 포워딩(FBF)에 사용되는 포워딩 라우팅 인스턴스와 인터페이스 경로를 공유합니다. 구성의 이 부분은 라우팅 인스턴스에 설치된 경로를 해당 인터페이스의 직접 연결된 다음 홉으로 해결합니다. 계층 수준에서 라우팅 테이블 그룹을
[edit routing-options]
만듭니다.[edit] routing-options { interface-routes { rib-group; inet { int-routes; } } } } routing-options { rib-groups { int-routes { import-rib { inet.0; webtraffic.inet.0; } } } }
이 예에서는 패킷의 소스 주소를 기반으로 고객 트래픽을 도메인 SP1 또는 SP2의 다음 홉 라우터로 보내는 패킷 필터를 보여 줍니다.
패킷에 SP1 고객에게 할당된 소스 주소가 있는 경우 sp1-route-table.inet.0 라우팅 테이블을 사용하여 대상 기반 전달이 발생합니다. 패킷에 SP2 고객에게 할당된 소스 주소가 있는 경우 sp2-route-table.inet.0 라우팅 테이블을 사용하여 대상 기반 전달이 수행됩니다. 패킷이 이러한 조건 중 하나와 일치하지 않으면 필터가 패킷을 수락하고 표준 inet.0 라우팅 테이블을 사용하여 대상 기반 전달이 수행됩니다.
토폴로지
그림 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로 복사해 붙여 넣습니다.
디바이스 P1
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 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 routing-instance sp2-route-table set firewall filter classify-customers term default then accept set interfaces fe-1/2/0 unit 0 family inet filter input classify-customers set interfaces fe-1/2/0 unit 0 family inet address 172.16.0.10/30 set interfaces fe-1/2/1 unit 0 family inet address 172.16.0.13/30 set interfaces fe-1/2/2 unit 0 family inet address 172.16.0.17/30 set protocols ospf rib-group fbf-group set protocols ospf area 0.0.0.0 interface all set protocols ospf area 0.0.0.0 interface fxp0.0 disable set routing-instances sp1-route-table instance-type forwarding set routing-instances sp1-route-table routing-options static route 0.0.0.0/0 next-hop 172.16.0.14 set routing-instances sp2-route-table instance-type forwarding set routing-instances sp2-route-table routing-options static route 0.0.0.0/0 next-hop 172.16.0.18 set routing-options interface-routes rib-group fbf-group set routing-options rib-groups fbf-group import-rib inet.0 set routing-options rib-groups fbf-group import-rib sp1-route-table.inet.0 set routing-options rib-groups fbf-group import-rib sp2-route-table.inet.0
디바이스 P2
set interfaces fe-1/2/0 unit 0 family inet address 172.16.0.2/30 set interfaces fe-1/2/1 unit 0 family inet address 172.16.0.6/30 set interfaces fe-1/2/2 unit 0 family inet address 172.16.0.9/30 set protocols ospf area 0.0.0.0 interface all set protocols ospf area 0.0.0.0 interface fxp0.0 disable
디바이스 PE1
set interfaces fe-1/2/0 unit 0 family inet address 172.16.0.14/30 set interfaces lo0 unit 0 family inet address 172.16.1.1/32 set protocols ospf area 0.0.0.0 interface all set protocols ospf area 0.0.0.0 interface fxp0.0 disable
디바이스 PE2
set interfaces fe-1/2/0 unit 0 family inet address 172.16.0.18/30 set interfaces lo0 unit 0 family inet address 172.16.2.2/32 set protocols ospf area 0.0.0.0 interface all set protocols ospf area 0.0.0.0 interface fxp0.0 disable
디바이스 PE3
set interfaces fe-1/2/0 unit 0 family inet address 172.16.0.1/30 set interfaces lo0 unit 0 family inet address 10.1.1.1/32 set interfaces lo0 unit 0 family inet address 10.1.2.1/32 set protocols ospf area 0.0.0.0 interface all set protocols ospf area 0.0.0.0 interface fxp0.0 disable
디바이스 PE4
set interfaces fe-1/2/0 unit 0 family inet address 172.16.0.5/30 set interfaces lo0 unit 0 family inet address 10.2.1.1/32 set interfaces lo0 unit 0 family inet address 10.2.2.1/32 set protocols ospf area 0.0.0.0 interface all set protocols ospf area 0.0.0.0 interface fxp0.0 disable
P1에서 방화벽 필터 구성
단계별 절차
다음 예는 구성 계층에서 다양한 수준의 탐색이 필요합니다. CLI 탐색 관련 정보는 Junos OS 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
지정된 소스 주소로 패킷을 수신할 때 수행되는 작업을 구성합니다. 기록되고 sp1-route-table.inet.0 라우팅 테이블을 통해 라우팅하기 위해 SP1-route-table 라우팅 인스턴스로 전달됩니다.
[edit firewall filter classify-customers term sp1-customers] user@host# set then log user@host# set then 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
지정된 소스 주소로 패킷을 수신할 때 수행되는 작업을 구성합니다. 기록되고 sp2-route-table.inet.0 라우팅 테이블을 통해 라우팅하기 위해 SP2-route-table 라우팅 인스턴스로 전달됩니다.
[edit firewall filter classify-customers term sp2-customers] user@host# set then log user@host# set then routing-instance sp2-route-table
다른 소스 주소에서 패킷을 수신할 때 수행할 작업을 구성합니다. 기본 IPv4 유니캐스트 라우팅 테이블인 inet.0을 사용하여 수락 및 라우팅됩니다.
[edit firewall filter classify-customers term default] user@host# set then accept
디바이스 P1에서 필터 기반 전달 구성
단계별 절차
다음 예는 구성 계층에서 다양한 수준의 탐색이 필요합니다. CLI 탐색 관련 정보는 Junos OS CLI 사용자 가이드의 구성 모드에서의 CLI 편집기 사용을 참조하십시오.
라우팅 인스턴스를 구성하려면 다음을 수행합니다.
인터페이스를 구성합니다.
[edit interfaces fe-1/2/0] user@host# set unit 0 family inet address 172.16.0.10/30 [edit interfaces fe-1/2/1] user@host# set unit 0 family inet address 172.16.0.13/30 [edit interfaces fe-1/2/2] user@host# set unit 0 family inet address 172.16.0.17/30
방화벽 필터를 라우터 인터페이스 fe-1/2/0.0에 입력 패킷 필터로 할당합니다
classify-customers
.[edit interfaces fe-1/2/0] user@host# set unit 0 family inet filter input classify-customers
라우팅 프로토콜 또는 정적 라우팅을 사용하여 연결을 구성합니다.
관리 인터페이스에서 라우팅을 비활성화하는 것이 가장 좋습니다.
[edit protocols ospf area 0.0.0.0] user@host# set interface all user@host# set interface fxp0.0 disable
방화벽 필터에서
classify-customers
참조되는 라우팅 인스턴스를 생성합니다. 포워딩 인스턴스 유형은 인터페이스가 인스턴스와 연결되지 않은 필터 기반 포워딩을 지원합니다.[edit routing-instances] user@host# set sp1-route-table instance-type forwarding user@host# set sp2-route-table instance-type forwarding
각 라우팅 인스턴스에 대해 지정된 다음 홉(이 예에서는 PE1 및 PE2)으로 트래픽을 전달하는 기본 경로를 정의합니다.
[edit routing-instances ] user@host# set sp1-route-table routing-options static route 0.0.0.0/0 next-hop 172.16.0.14 user@host# set sp2-route-table routing-options static route 0.0.0.0/0 next-hop 172.16.0.18
라우팅 테이블을 연결하여 라우팅 테이블 그룹을 구성합니다. 첫 번째 라우팅 테이블인 inet.0은 기본 라우팅 테이블이고 나머지는 보조 라우팅 테이블입니다. 기본 라우팅 테이블은 라우팅 테이블 그룹의 주소 패밀리(이 경우 IPv4)를 결정합니다.
[edit 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 구성 내에서 fbf-group 라우팅 테이블 그룹을 지정하여 OSPF 경로를 3개의 라우팅 테이블에 설치합니다.
[edit protocols ospf] user@host# set rib-group fbf-group
완료되면 구성을 커밋합니다.
[edit] user@host# commit
결과
, show firewall
, show protocols
, show routing-instances
, 및 show routing-options
명령을 show interfaces
실행하여 구성을 확인합니다.
user@host# show interfaces fe-1/2/0 { unit 0 { family inet { filter { input classify-customers; } address 172.16.0.10/30; } } } fe-1/2/1 { unit 0 { family inet { address 172.16.0.13/30; } } } fe-1/2/2 { unit 0 { family inet { address 172.16.0.17/30; } } }
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; routing-instance sp1-route-table; } } term sp2-customers { from { source-address { 10.2.1.0/24; 10.2.2.0/24; } } then { log; routing-instance sp2-route-table; } } term default { then accept; } }
user@host# show protocols ospf { rib-group fbf-group; area 0.0.0.0 { interface all; interface fxp0.0 { disable; } } }
user@host# show routing-instances sp1-route-table { instance-type forwarding; routing-options { static { route 0.0.0.0/0 next-hop 172.16.0.14; } } } sp2-route-table { instance-type forwarding; routing-options { static { route 0.0.0.0/0 next-hop 172.16.0.18; } } }
user@host# show routing-options rib-groups { fbf-group { import-rib [ inet.0 sp1-route-table.inet.0 sp2-route-table.inet.0 ]; } }
검증
구성이 올바르게 작동하고 있는지 확인합니다.
지정된 소스 주소로 Ping
목적
방화벽 필터를 테스트하기 위해 네트워크를 통해 일부 ICMP 패킷을 보냅니다.
작업
ping
명령을 실행하여 디바이스 PE1에서 lo0.0 인터페이스를 ping합니다.이 인터페이스에 구성된 주소는 172.16.1.1입니다.
디바이스 PE3의 lo0.0 인터페이스에 구성된 주소인 소스 주소 10.1.2.1을 지정합니다.
user@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
ping
명령을 실행하여 디바이스 PE2에서 lo0.0 인터페이스를 ping합니다.이 인터페이스에 구성된 주소는 172.16.2.2입니다.
디바이스 PE4의 lo0.0 인터페이스에 구성된 주소인 소스 주소 10.2.1.1을 지정합니다.
user@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에서
show firewall log
명령을 실행합니다.user@P1> show firewall log Log : Time Filter Action Interface Protocol Src Addr Dest Addr 13:52:20 pfe A fe-1/2/0.0 ICMP 10.2.1.1 172.16.2.2 13:52:19 pfe A fe-1/2/0.0 ICMP 10.2.1.1 172.16.2.2 13:51:53 pfe A fe-1/2/0.0 ICMP 10.1.2.1 172.16.1.1 13:51:52 pfe A fe-1/2/0.0 ICMP 10.1.2.1 172.16.1.1