라우팅 정책 일치 조건으로 사용하기 위한 AS 경로 정규 표현식 이해
BGP AS 경로는 네트워크 패킷이 지정된 라우터에 도착하도록 트래버스하는 자율 시스템의 시퀀스입니다. AS 번호는 오른쪽에서 왼쪽으로 읽는 시퀀스로 어셈블됩니다. 예를 들어, AS 경로 5 4 3 2 1의 루트를 사용하는 대상에 도달하는 패킷의 경우 일단 패킷은 AS 5를 트래버스하고 AS 1에 도달할 때까지 계속합니다. 이 경우에는 AS 1은 패킷 대상 이전 마지막 AS로, 패킷의 소스가 피어링하는 AS입니다.
AS 경로와 라우팅 정책 일치 조건으로 작업할 경우, 루트를 찾기 위해 정규 표현식을 사용할 수 있습니다. 그러려면 AS 경로의 일부 또는 전체를 기반으로 하나 이상의 일치 조건을 생성한 다음, 라우팅 정책 안에 포함합니다.
다음 섹션에서는 AS 경로 정규 표현식을 설명하고 구성 예를 제공합니다.
AS 경로 정규 표현식 구성
명명된 AS 경로 정규 표현식을 생성한 다음, as-path
일치 조건(라우팅 정책 일치 조건에서 설명)의 라우팅 정책에 포함할 수 있습니다. 명명된 AS 경로 정규 표현식으로 생성하려면 as-path
문을 포함합니다.
[edit policy-options] as-path name regular-expression;
라우팅 정책에서 AS 경로 정규 표현식을 포함하려면, from
문에서 as-path
일치 조건을 포함합니다.
또한, AS 경로 정규 표현식으로 구성된 명명된 AS 경로 그룹을 생성한 다음 as-path-group
일치 조건의 라우팅 정책에 포함할 수 있습니다. 명명된 AS 경로 그룹을 생성하려면, as-path-group
문을 포함합니다.
[edit policy-options] as-path-group group-name { name [ regular-expressions ]; }
AS 경로 그룹에 AS 경로 정규 표현식을 포함하기 위해, from
문에서 as-path-group
일치 조건을 포함합니다.
동일한 정책 항에서 as-path
문 및 as-path-group
문을 모두 포함할 수는 없습니다
from
문의 as-path
일치 조건에서 다중 AS 경로 정규 표현식의 이름을 포함할 수 있습니다. 이 작업을 수행하면, 일치가 발생하기 위해서는 하나의 AS 경로 정규 표현식만 일치해야 합니다. AS 정규 표현식 일치는 효과적인 논리 OR 연산입니다.
AS 경로 이름은 정규 표현식을 식별합니다. 문자, 숫자 및 하이픈(-)을 포함할 수 있으며, 최대 65,536자 길이입니다. 이름에 공간을 포함하려면, 전체 이름을 따옴표(" ")로 묶어야 합니다.
정규 표현식은 AS 경로의 전체 또는 일부를 일치하는 데 사용됩니다. 두 구성 요소로 구성되는데, 다음 형식으로 지정합니다.
term <operator>
term
- AS를 식별합니다. 다음 방법 중 하나로 지정할 수 있습니다:AS 번호 - 전체 AS 번호는 하나의 항을 구성합니다. POSIX 1003.2에서 정의된 정규 표현식과 다르기 때문에 AS 번호 내의 개별 문자를 참조할 수 없습니다.
와일드카드 문자 - 단일 AS 번호와 일치합니다. 와일드카드 문자는 마침표(.)입니다. 여러 와일드카드 문자를 지정할 수 있습니다.
AS 경로 - 괄호 안에 포함된 단일 AS 번호 또는 AS 번호 그룹. 이러한 방식으로 정규 표현식을 그룹화하면 그룹에서 전체로 공동 연산을 수행하고, 그룹 우선순위를 제공합니다. 그룹화된 경로는 스스로 연산자를 포함할 수 있습니다.
Junos OS 릴리스 9.1 이후, RFC 4893 4개의 옥텟 AS 번호 공백을 위한 BGP 지원에 정의된 4바이트 AS 번호를 지정할 뿐만 아니라, Junos OS의 이전 릴리스에서 지원되는 2바이트 AS 번호를 지정할 수 있습니다. 1~4,294,967,295 범위에서 값을 구성할 수 있습니다.
operator
- (선택 사항) 연산자가 항의 일치 방법을 지정합니다. 대부분의 연산자는 일치로 간주되기 위해 찾아야 하는 항의 수를 설명합니다(예: 발생 수, 또는 0회, 또는 1회). 표 1은(는) AS 경로에 지원되는 정규 표현식의 연산자 목록을 나타냅니다. 두 개의 항 사이에 배치하는 파이프( | ) 및 대시(–) 연산자와 항을 묶는 괄호를 제외한 개입 공간 없이term
뒤에 즉시 연산자를 배치합니다.
단일 정규 표현식에서 하나 이상의 항 연산자 쌍을 지정할 수 있습니다.
표 2은(는) AS 경로와 일치하는 정규 표현식을 정의하는 방법의 예를 보여줍니다.
연산자 |
일치 정의 |
---|---|
|
의 |
|
의 정확히 회 |
|
|
|
|
|
|
|
|
|
파이프의 어느 쪽에서든 두 항 중 하나. |
|
시작 및 종료 범위 사이, 포함. |
|
커뮤니티 속성 정규 표현식의 시작 부분 문자. 이 문자는 암묵적으로 추가됩니다. 따라서 그 사용은 선택 사항입니다. |
|
커뮤니티 속성 정규 표현식의 끝 부분 문자. 이 문자는 암묵적으로 추가됩니다. 따라서 그 사용은 선택 사항입니다. |
|
항 그룹은 괄호 안에 포함됩니다. 괄호 및 항 간의 개입 공간은 무시됩니다. 괄호 집합이 개입 공간 없이 따옴표로 둘러싸인 경우("()"), null 경로를 의미합니다. |
|
AS 번호 집합. 집합에서 하나의 AS 번호는 일치해야 합니다. 시작 및 끝의 범위를 지정하려면, 하이픈(-)을 사용합니다. 캐럿(^)은 집합에서 특정 AS 번호와 일치하지 않다는 것을 나타내는 데 사용될 수 있습니다. 예: [^123] |
AS 일치 경로 |
정규 표현식 |
샘플 일치 |
---|---|---|
AS 경로가 1234입니다 |
1234 |
1234 |
AS 번호 1234의 0회 이상 발생 |
1234* |
1234 1234 1234 1234 1234 1234 Null AS 경로 |
AS 번호 1234의 0회 또는 1회 발생 |
1234? 또는 1234{0,1} |
1234 Null AS 경로 |
AS 번호 1234의 1~4회 발생 |
1234{1,4} |
1234 1234 1234 1234 1234 1234 1234 1234 1234 1234 |
AS 번호 12의 1~4회 발생, 이어서 AS 번호 34의 1회 발생 |
12{1,4} 34 |
12 34 12 12 34 12 12 12 34 12 12 12 12 34 |
단일 AS 번호와 일치하는 AS 번호 범위 |
123–125 |
123 124 125 |
[123–125]* |
Null AS 경로 123 124 124 125 125 125 123 124 125 123 |
|
두 번째 AS 번호가 56 또는 78이어야 하는 경로 |
(. 56) | (. 78) 또는 . (56 | 78) |
1234 56 1234 78 9876 56 3857 78 |
두 번째 AS 번호가 56 또는 78일 것인 경로 |
. (56 | 78)? |
1234 56 52 34 56 1234 1234 78 39 794 78 2 |
첫 번째 AS 번호가 123이며 두 번 AS 번호는 56 또는 78인 경로 |
123 (56| 78) |
123 56 123 78 |
존재하지 않는 경우를 제외하고 어떤 길이의 경로이든 두 번째 AS 번호는 존재하지 않는 것을 포함하여 무엇이든 될 수 있습니다 |
. .* 또는 . .{ 0,} |
1234 1234 5678 1234 5 6 7 8 |
AS 경로는 1 2 3입니다 |
1 2 3 |
1 2 3 |
AS 번호 1 및 2의 1회 발생, 이어서 AS 번호 3의 1회 이상 발생 |
1 2 3+ |
1 2 3 1 2 3 3 1 2 3 3 3 |
AS 번호 1의 1회 이상 발생, 이어서 AS 번호 2의 1회 이상 발생, 이어서 AS의 1회 이상 발생 번호 3 |
1+ 2+ 3+ |
1 2 3 1 1 2 3 1 1 2 2 3 1 1 2 2 3 3 |
AS 번호 4, 5, 6으로 시작하는 모든 길이의 경로 |
4 5 6 . * |
4 5 6 4 5 6 7 8 9 |
AS 번호 4, 5, 6으로 끝나는 모든 길이의 경로 |
. * 4 5 6 |
4 5 6 1 2 3 4 5 6 4 9 4 5 6 |
AS 경로 5, 12 또는 18 |
5 | 12 | 18 |
5 12 18 |
Null AS 경로 구성
AS 경로 정규 표현식을 사용하여 AS에서 시작된 루트(접두사)와 일치하는 null AS 경로를 생성합니다. 이러한 루트는 어떠한 외부 피어로도 AS에 광고되지 않습니다. null AS 경로를 생성하려면, 개입 공간이 없는 따옴표로 둘러싸인 괄호 연산자를 사용합니다.
[edit policy-options] as-path null-as “()";
다음 예에서, 로컬로 관리되는 AS 2는 AS 1(10.2.2.6) 및 AS 3과 연결됩니다. AS 3은 AS2로 루트를 광고하지만, AS 2의 관리자는 AS 3 루트를 AS 1로 광고하려 하지 않으므로, AS 1에서 AS 2를 통해 AS 3으로 트래픽 전송을 허용합니다. 전송 트래픽을 방지하기 위해 내보내기 정책 이(가) AS 1에 only-my-routes
적용됩니다. AS 2에서 AS 1로의 루트 광고를 허용하지만, AS 1로의 AS 3의 루트(또는 연결된 다른 AS의 루트) 광고를 차단합니다.
[edit policy-options] as-path null-as "()"; policy-statement only-my-routes { term just-my-as { from { protocol bgp; as-path null-as; } then accept; } term nothing-else { then reject; } } protocol { bgp { neighbor 10.2.2.6 { export only-my-routes; } } }
AS 경로 정규 표현식의 평가 방법
AS 경로 정규 표현식은 POSIX 1003.2에서 정의된 확장된(최신) 정규 표현식을 구현합니다. 다음 예외를 가진 UNIX 정규 표현식과 동일합니다.
AS 경로 정규 표현식의 기본 일치 단위는 AS 번호이며, 개별 문자가 아닙니다.
정규 표현식은 루트의 AS 경로가
regular-expression
와(과) 정확히 일치하는 경우에만 루트와 일치합니다. 동일한 UNIX 정규 표현식은^regular-expression$
입니다. 예를 들어, AS 경로 정규 표현식1234
은(는) UNIX 정규 표현식^1234$
와(과) 동일합니다.와일드카드 연산자를 사용하여 정규 표현식을 지정할 수 있습니다.
예: AS 경로 정규 표현식 구성
경로를 AS 경로 1234 56 78 9와 정확히 일치하고 다음을 수락합니다.
[edit] policy-options { as-path wellington "1234 56 78 9"; policy-statement from-wellington { term term1 { from as-path wellington; } then { preference 200; accept; } term term2 { then reject; } } }
AS로의 대체 경로와 일치하고, 기본 설정 수정 후 수락합니다.
[edit] policy-options { as-path wellington-alternate “1234{1,6} (56|47)? (78|101|112)* 9+”; policy-statement from-wellington { from as-path wellington-alternate; } then { preference 200; accept; } } }
123, 124 또는 125의 AS 경로 루트와 일치하고, 기본 설정 수정 후 수락합니다.
[edit] policy-options { as-path addison "123–125"; policy-statement from-addison { from as-path addison; } then { preference 200; accept; } } }