귀하의 경험을 개선할 수 있도록 도와주십시오.

귀하의 의견을 알려주십시오.

2분이 소요되는 설문 조사에 시간을 내주시겠습니까?

Announcement: Try the Ask AI chatbot for answers to your technical questions about Juniper products and solutions.

close
header-navigation
keyboard_arrow_up
close
keyboard_arrow_left
list Table of Contents
keyboard_arrow_right

이 기계 번역이 도움이 되었습니까?

starstarstarstarstar
Go to English page
면책 조항:

이 페이지는 타사 기계 번역 소프트웨어를 사용해 번역됩니다. 주니퍼 네트웍스에서는 우수한 품질의 번역을 제공하기 위한 합리적인 수준의 노력을 기울이지만 해당 컨텐츠의 정확성을 보장할 수 없습니다. 본 번역에 포함된 정보의 정확성과 관련해 의문이 있는 경우 영문 버전을 참조하시기 바랍니다. 다운로드 가능한 PDF는 영어로만 제공됩니다.

예: 복잡한 정규식을 사용한 라우팅 정책 테스트

date_range 19-Jan-25

이 예에서는 명령을 사용하여 test policy 라우팅 정책을 테스트하여 정책이 프로덕션 환경에 적용하기 전에 예상한 결과를 생성하는지 확인하는 방법을 보여줍니다. 정규식, 특히 복잡한 정규식은 제대로 표현하기가 까다로울 수 있습니다. 이 예제에서는 명령을 사용하여 test policy 정규식이 의도한 효과를 갖는지 확인하는 방법을 보여줍니다.

요구 사항

이 예제를 구성하기 전에 디바이스 초기화 이외의 특별한 구성은 필요하지 않습니다.

개요

이 예는 외부 BGP(EBGP) 연결이 있는 두 라우팅 디바이스를 보여줍니다. 디바이스 R2는 BGP 세션을 사용하여 고객 경로를 디바이스 R1로 보냅니다. 이러한 정적 경로에는 여러 커뮤니티 값이 연결되어 있습니다.

content_copy zoom_out_map
user@R2> show route match-prefix 172.16.* detail

inet.0: 7 destinations, 7 routes (7 active, 0 holddown, 0 hidden)
172.16.1.0/24 (1 entry, 1 announced)
        *Static Preference: 5
                Next hop type: Reject
                Address: 0x8fd0dc4
                Next-hop reference count: 8
                State: <Active Int Ext>
                Local AS: 64511 
                Age: 21:32:13 
                Validation State: unverified 
                Task: RT
                Announcement bits (1): 0-KRT 
                AS path: I
                Communities: 64510:1 64510:10 64510:11 64510:100 64510:111

172.16.2.0/24 (1 entry, 1 announced)
        *Static Preference: 5
                Next hop type: Reject
                Address: 0x8fd0dc4
                Next-hop reference count: 8
                State: <Active Int Ext>
                Local AS: 64511 
                Age: 21:32:13 
                Validation State: unverified 
                Task: RT
                Announcement bits (1): 0-KRT 
                AS path: I
                Communities: 64510:2 64510:20 64510:22 64510:200 64510:222

172.16.3.0/24 (1 entry, 1 announced)
        *Static Preference: 5
                Next hop type: Reject
                Address: 0x8fd0dc4
                Next-hop reference count: 8
                State: <Active Int Ext>
                Local AS: 64511 
                Age: 21:32:13 
                Validation State: unverified 
                Task: RT
                Announcement bits (1): 0-KRT 
                AS path: I
                Communities: 64510:3 64510:30 64510:33 64510:300 64510:333

172.16.4.0/24 (1 entry, 1 announced)
        *Static Preference: 5
                Next hop type: Reject   
                Address: 0x8fd0dc4
                Next-hop reference count: 8
                State: <Active Int Ext>
                Local AS: 64511 
                Age: 21:32:13 
                Validation State: unverified 
                Task: RT
                Announcement bits (1): 0-KRT 
                AS path: I
                Communities: 64510:4 64510:40 64510:44 64510:400 64510:444

복잡한 정규식을 테스트하기 위해 디바이스 R2에는 경로를 찾는 정책이 test-regex 있습니다. 정책은 다음과 같이 구성됩니다.

content_copy zoom_out_map
policy-statement test-regex {
    term find-routes {
        from community complex-regex;
        then accept;
    }
    term reject-the-rest {
        then reject;
    }
}
community complex-regex members "^64510:[13].*$";

이 정규식은 1 또는 3으로 시작하는 커뮤니티 값과 일치합니다.

토폴로지

그림 1은 샘플 네트워크를 표시합니다.

그림 1: 복잡한 정규 표현식에 대한 라우팅 정책 테스트복잡한 정규 표현식에 대한 라우팅 정책 테스트

CLI 빠른 구성은(는) 그림 1 내 모든 디바이스의 구성을 보여줍니다.

섹션 #configuration271__policy-test-regex-st은 디바이스 R2의 단계를 설명합니다.

구성

CLI 빠른 구성

이 예를 빠르게 구성하려면, 아래 명령을 복사하여 텍스트 파일로 붙여 넣은 다음 모든 라인브레이크를 제거하고, 네트워크 구성을 일치하는 데 필요한 세부 사항을 바꾸고 [edit] 계층 수준에서 명령을 CLI로 복사해 붙여 넣습니다.

디바이스 R1

content_copy zoom_out_map
set interfaces fe-1/2/0 unit 0 family inet address 10.0.0.1/30
set interfaces lo0 unit 0 family inet address 192.168.0.1/32
set protocols bgp group ext type external
set protocols bgp group ext peer-as 64511
set protocols bgp group ext neighbor 10.0.0.2
set routing-options router-id 192.168.0.1
set routing-options autonomous-system 64510

디바이스 R2

content_copy zoom_out_map
set interfaces fe-1/2/0 unit 0 family inet address 10.0.0.2/30
set interfaces lo0 unit 0 family inet address 192.168.0.2/32
set protocols bgp group ext type external
set protocols bgp group ext peer-as 64510
set protocols bgp group ext neighbor 10.0.0.1
set policy-options policy-statement send-static term 1 from protocol static
set policy-options policy-statement send-static term 1 then accept
set policy-options policy-statement send-static term 2 then reject
set policy-options policy-statement test-regex term find-routes from community complex-regex
set policy-options policy-statement test-regex term find-routes then accept
set policy-options policy-statement test-regex term reject-the-rest then reject
set policy-options community complex-regex members "^64510:[13].*$"
set routing-options static route 172.16.1.0/24 reject
set routing-options static route 172.16.1.0/24 community 64510:1
set routing-options static route 172.16.1.0/24 community 64510:10
set routing-options static route 172.16.1.0/24 community 64510:11
set routing-options static route 172.16.1.0/24 community 64510:100
set routing-options static route 172.16.1.0/24 community 64510:111
set routing-options static route 172.16.2.0/24 reject
set routing-options static route 172.16.2.0/24 community 64510:2
set routing-options static route 172.16.2.0/24 community 64510:20
set routing-options static route 172.16.2.0/24 community 64510:22
set routing-options static route 172.16.2.0/24 community 64510:200
set routing-options static route 172.16.2.0/24 community 64510:222
set routing-options static route 172.16.3.0/24 reject
set routing-options static route 172.16.3.0/24 community 64510:3
set routing-options static route 172.16.3.0/24 community 64510:30
set routing-options static route 172.16.3.0/24 community 64510:33
set routing-options static route 172.16.3.0/24 community 64510:300
set routing-options static route 172.16.3.0/24 community 64510:333
set routing-options static route 172.16.4.0/24 reject
set routing-options static route 172.16.4.0/24 community 64510:4
set routing-options static route 172.16.4.0/24 community 64510:40
set routing-options static route 172.16.4.0/24 community 64510:44
set routing-options static route 172.16.4.0/24 community 64510:400
set routing-options static route 172.16.4.0/24 community 64510:444
set routing-options router-id 192.168.0.2
set routing-options autonomous-system 64511

절차

단계별 절차

다음 예는 구성 계층에서 다양한 수준의 탐색이 필요합니다. CLI 탐색에 관한 정보는 CLI 사용자 가이드에서 구성 모드에서 CLI 편집기 사용을 참조하십시오.

디바이스 R2 구성:

  1. 인터페이스를 구성합니다.

    content_copy zoom_out_map
    [edit interfaces]
    user@R2# set fe-1/2/0 unit 0 family inet address 10.0.0.2/30
    user@R2# set lo0 unit 0 family inet address 192.168.0.2/32
    
  2. BGP를 구성합니다.

    디바이스 R2와의 BGP 피어링 세션에 가져오기 정책을 적용합니다.

    content_copy zoom_out_map
    [edit protocols bgp group ext]
    user@R2# set type external
    user@R2# set peer-as 64510
    user@R2# set neighbor 10.0.0.1
    
  3. 정적 경로를 전송하는 라우팅 정책을 구성합니다.

    content_copy zoom_out_map
    [edit policy-options policy-statement send-static]
    user@R2# set term 1 from protocol static
    user@R2# set term 1 then accept
    user@R2# set term 2 then reject
    
  4. 정규 표현식을 테스트하는 라우팅 정책을 구성합니다.

    content_copy zoom_out_map
    [edit policy-options policy-statement test-regex]
    user@R2# set term find-routes from community complex-regex
    user@R2# set term find-routes then accept
    user@R2# set term reject-the-rest then reject
    [edit policy-options community]
    user@R2# set complex-regex members "^64510:[13].*$"
    
  5. 정적 경로를 구성하고 커뮤니티 값을 연결합니다.

    content_copy zoom_out_map
    [edit routing-options static route 172.16.1.0/24]
    user@R2# set reject
    user@R2# set community [ 64510:1 64510:10 64510:11 64510:100 64510:111 ]
    [edit routing-options static route 172.16.2.0/24]
    user@R2# set reject
    user@R2# set community [ 64510:2 64510:20 64510:22 64510:200 64510:222 ]
    [edit routing-options static route 172.16.3.0/24]
    user@R2# set reject
    user@R2# set community [ 64510:3 64510:30 64510:33 64510:300 64510:333 ]
    [edit routing-options static route 172.16.4.0/24]
    user@R2# set reject
    user@R2# set community [ 64510:4 64510:40 64510:44 64510:400 64510:444 ]
    
  6. AS(Autonomous System) 번호와 라우터 ID를 구성합니다.

    이는 디바이스 R2의 라우팅 테이블에 영향을 미치며, 디바이스 R1 및 디바이스 R3에는 영향을 미치지 않습니다.

    content_copy zoom_out_map
    [edit routing-options ]
    user@R2# set router-id 192.168.0.2
    user@R2# set autonomous-system 64511
    

결과

구성 모드에서 show interfaces, show protocols, show policy-optionsshow routing-options 명령을 입력하여 구성을 확인합니다. 출력 결과가 의도한 구성대로 표시되지 않으면 이 예의 지침을 반복하여 구성을 수정하십시오.

content_copy zoom_out_map
user@R2# show interfaces
fe-1/2/0 {
    unit 0 {
        family inet {
            address 10.0.0.2/30;
        }
    }
}
lo0 {
    unit 0 {
        family inet {
            address 192.168.0.2/32;
        }
    }
}
content_copy zoom_out_map
user@R2# show protocols
bgp {
    group ext {
        type external;
        peer-as 64510;
        neighbor 10.0.0.1;
    }
}
content_copy zoom_out_map
user@R2# show policy-options
policy-statement send-static {
    term 1 {
        from protocol static;
        then accept;
    }
    term 2 {
        then reject;
    }
}
policy-statement test-regex {
    term find-routes {
        from community complex-regex;
        then accept;
    }
    term reject-the-rest {
        then reject;
    }
}
community complex-regex members "^64510:[13].*$";
content_copy zoom_out_map
user@R2# show routing-options
static {
    route 172.16.1.0/24 {
        reject;
        community [ 64510:1 64510:10 64510:11 64510:100 64510:111 ];
    }
    route 172.16.2.0/24 {
        reject;
        community [ 64510:2 64510:20 64510:22 64510:200 64510:222 ];
    }
    route 172.16.3.0/24 {
        reject;
        community [ 64510:3 64510:30 64510:33 64510:300 64510:333 ];
    }
    route 172.16.4.0/24 {
        reject;
        community [ 64510:4 64510:40 64510:44 64510:400 64510:444 ];
    }
}
router-id 192.168.0.2;
autonomous-system 64511;

디바이스 구성을 마쳤으면 구성 모드에서 commit을(를) 입력합니다.

검증

구성이 올바르게 작동하고 있는지 확인합니다.

어떤 커뮤니티가 정규식과 일치하는지 테스트합니다

목적

명령을 사용하여 정규식과 해당 정책을 테스트할 수 있습니다 test policypolicy-name .

작업

  1. 디바이스 R2에서 명령을 실행합니다 test policy test-regex 0/0 .

    content_copy zoom_out_map
    user@R2> test policy test-regex 0/0
    
    
    inet.0: 7 destinations, 7 routes (7 active, 0 holddown, 0 hidden)
    + = Active Route, - = Last Active, * = Both
    
    172.16.1.0/24      *[Static/5] 1d 00:32:50
                          Reject
    172.16.3.0/24      *[Static/5] 1d 00:32:50
                          Reject
    
    Policy test-regex: 2 prefix accepted, 5 prefix rejected
    
  2. 디바이스 R2에서 숫자 2의 인스턴스를 포함하는 커뮤니티 값과 일치하도록 정규식을 변경합니다.

    content_copy zoom_out_map
    [edit policy-options community complex-regex]
    user@R2# delete members "^64510:[13].*$"
    user@R2# set members "^65020:2+$"
    user@R2# commit
    
  3. 디바이스 R2에서 명령을 다시 실행합니다 test policy test-regex 0/0 .

    content_copy zoom_out_map
    user@R2> test policy test-regex 0/0
    
    inet.0: 7 destinations, 7 routes (7 active, 0 holddown, 0 hidden)
    + = Active Route, - = Last Active, * = Both
    
    172.16.2.0/24      *[Static/5] 1d 00:31:36
                          Reject
    
    Policy test-regex: 1 prefix accepted, 6 prefix rejected

의미

172.16.1.0 /24 및 172.16.3.0/24 경로에는 ^64510:[13].*$ 식과 일치하는 커뮤니티가 연결되어 있습니다. 172.16.2.0/24 경로에는 ^65020:2+$ 식과 일치하는 커뮤니티가 있습니다.

footer-navigation