본문 바로가기
network/ccie-bgp

Employing AS-Path Filters

AS-Path Filtering Scenarios

- inbound traffic 에 대하여 weight ,lp,med 등 우선순위를 조절 할 수 있지만 , return 되는 traffic 에 대하여
BGP는 다른 회사간에 협의가 있어야지만 이러한 우선 순위를 조절 하기 때문에 임의로 ,
as-path 의 길이를 조절하여 트래픽을 filtering 할 수 있다.
-> 필터링 시에는 regular expressions(정규표현식 이하 regexp) 을 이용 한다.

- 관리자가 show ip bgp 를 통해서 확인한 bgp 테이블에서 해당 as-path  부분을 regexp 를 통해, 검색 치환을 통해서 조절 한다.

 

 

- AS_PATH 는 path attribute에서 as 번호  as 번호  와 같은 형태로 구성 되어 있다.


Regular Expressions

## 아래 와 같은 형태로 regexp 된 결과를 display 할 수 있다.
ROUTER# show ip bgp regexp
 
## filter를 적용 하기 위해 아래와 같에 ip as-path access-lit 를 통해서 acl와 유사한 형태로 저장후 적용 한다.
ROUTER# ip as-path access-list [acl번호] pertmit/deny [regexp]

-  아래와 같이 123을 넣을 경우 123이란 숫자가 AS-PATH에 있을 경우 모두 출력 한다.

ip as-path access-list 1 pertmit 31 -> 이럴 경우 27 31 23 317 223 에서 31이 포함된  것만 허용한다.

또한, | 에서 의미 하는 것은 또는 (or)의 의미이다.


- . 은 어떠한 숫자 이기 때문에 아래처럼 매치가 될 수 있다.




^ Matches beginning of string -> 시작에 매칭 되는것
$ Matches end of string -> 끝에 매칭 되는 것
_ Matches any delimiter (beginning, end, white space, tab, comma) -> 문자나 숫자를 제외한 모든 특수 기호 

예제)
How many times does ^21, 31$, _31_ match?
|213 317 218 31 731|
Answer:
|213 317 218 31 731|

() 의 의미는 특정 그룹으로 둘중 하나 개념으로 아래 예제는 213 혹은 218 이 앞에 나올 수 있음

How many times does (213|218)_31 match?
|213 317 1218 316 31|
Answer:
|213 317 1218 316 31|

\는 특별한 의미가 있음 지우고 없으면 만든다 -> 반전의 의미 -> 특수기호를 그냥 문자 처리 할떄 등등...

How do you match AS 213 in the beginning of the string?
|(213 317) 1218 316 31| <- as path 에서 () 는 confendreation 을 이용한 경우)
Answer:
^\(213_
* Matches zero or more atoms =>아무것도 없거나 무한대
? Matches zero or one atom =? 아무것도 없거나 1개 있거나
+ Matches one or more atoms -> 1개 있거나 없거나 

How do you match AS sequences “23 45” and
“23 78 45” in a single regular expression?  
Answer:
_23(_78)?_45_

_100_  -> 무조건 as100을 거치는 것
^100$ -> AS100 에 붙어 있는것
_100$ -> AS100d에서 originated 되어 있는것
^100_. ->100 으로 시작 하고 _ 뛰고 아무거나 있는것 -> 100에서 오는 것만 
^ [0-9]+$ -> AS1개에서만 받는 것(^<-처음부터 [0-9] 숫자 형태 모두다 포함하고 +<- 1개 있거나 없거나 $<- 끝 이기 떄문에)
^([0-9]+)(_\1)*$ -> 프리팬딩 허락 (_\1) 의 의미가 연속되는되는 의미기때문이고 ,*이 아무것도 없거나 무한대이기 때문에
^$ -> AS번호 붙는것을 안쓸때 -> 자기 것만 광고 -> 고객이 많이 사용 함
.* -> 모두다 받겠다.

- 기본 regexp 정리 

 

- 아래 처럼 AS-path acl 을 적용한뒤 filter-list 를 통해서 적용 가능 하다.

 

## AS-path acl 을 적용 한다.
router(config)#ip as-path access-list number {permit|deny} regexp

# 해당 AS-path acl을 네이버에 적용 한다.
router(config-router)#neighbor ip-address filter-list as-path-filter {in|out}

## AS-path acl확인 방법 
router# show ip as-path-access-list [filter list]

router# show ip bgp regexp regular-expression

router# show ip bgp filter-list access-list-number

 

 









반응형

'network > ccie-bgp' 카테고리의 다른 글

Route-maps are very complex access-lists  (0) 2016.03.05
Filtering with Prefix-Lists  (0) 2016.03.05
Using Multihomed BGP Networks  (0) 2016.03.05
Outbound Route Filtering  (0) 2016.03.04
Forwarding Packets in a Transit AS  (0) 2016.03.04