- GIỚI THIỆU REGULARE EXPRESSION
- Regular Expression là hệ thống chuẩn các biểu diễn các kí tự “string” , là một công cụ rất mạnh trong BGP khi sử dụng filter route theo các AS.
- Cấu hình topology như hình vẽ
- R1 thiết lập eBGP với R2, R2 eBGP R3, R3 eBGP R4
- R1 adver 8.8.8.0/24 vào BGP
- Kiểm tra bảng BGP trên R4:
R4#show ip bgp
BGP table version
is 2, local router ID is 4.4.4.4
Status codes: s
suppressed, d damped, h history, * valid, > best, i - internal,
r RIB-failure, S Stale
Origin codes: i -
IGP, e - EGP, ? - incomplete
Network Next Hop Metric LocPrf Weight Path
*>
8.8.8.0/24 10.1.34.3 0 300 200 100 i
|
- Các AS quảng bá mạng 8.8.8.0/24 đến AS 400 được viết theo thứ tự từ phải qua trái
- AS_PATH: 300 200 100 I
- Chuyển đổi sang Regular Expression ta thêm vào các ký tự đặc biệt vào AS_PATH
- AS_PATH: ^300_200_100$
- ^ bắt đầu AS_PATH
- $ kết thúc AS_PATH
- _ giữa các AS
- Regular expression :
- ^300_ peer AS ( thằng AS hàng xóm )
- _200_ transit AS ( AS mà route đi qua)
- _100$ origin AS ( route được sinh ra từ AS)
- ^300_200_100$ transit path
- ^* Route Local AS
- .* Match tất cả
- FILTER BẰNG REGULAR EXPRESSION
- Filter dựa trên một số reguler expression căn bản trên
- Command:
ip as-path
access-list x deny/permit {regular expression}
!
router bgp {AS}
neighbor a.b.c.d
filter-list x in/out
|
- TEST FEATURE:
- Trên R2 tạo mạng 2.2.2.0/24 và adver vào BGP
R4#show ip bgp
BGP table version
is 5, local router ID is 4.4.4.4
Status codes: s
suppressed, d damped, h history, * valid, > best, i - internal,
r RIB-failure, S Stale
Origin codes: i -
IGP, e - EGP, ? - incomplete
Network Next Hop Metric LocPrf Weight Path
*>
2.2.2.0/24 10.1.34.3 0 300 200 i
*>
8.8.8.0/24 10.1.34.3 0 300 200 100 i
|
- Tiến hành filter mạng 8.8.8.0/24 bằng 3 cách sử dụng regular expression như ở trên
- Cách 1: filter dựa vào peer AS 300:
ip as-path
access-list 1 deny ^300_
ip as-path
access-list 1 permit .*
!
router bgp 400
neighbor 10.1.34.3 filter-list 1 in
|
BGP(0): 10.1.34.3 rcvd UPDATE
w/ attr: nexthop 10.1.34.3, origin i, path 300 200 100
BGP(0): 10.1.34.3 rcvd 8.8.8.0/24 -- DENIED due to:
filter-list;
BGP(0): no valid path for
8.8.8.0/24
BGP(0): 10.1.34.3 rcvd UPDATE
w/ attr: nexthop 10.1.34.3, origin i, path 300 200
BGP(0): 10.1.34.3 rcvd 2.2.2.0/24 -- DENIED due to:
filter-list;
Nhận xét: R4 cùng học mạng 2.2.2.0/24 và mạng
8.8.8.0/24 qua peer AS 300. nên khi filter dựa vào peer AS thì cả 2 mạng trên
đều bị filter
*Cách 2:
filter dựa vào transit AS 200 :
ip as-path
access-list 1 deny _200_
ip as-path
access-list 1 permit .*
!
router bgp 400
neighbor 10.1.34.3 filter-list 1 in
|
BGP(0): 10.1.34.3 rcvd UPDATE
w/ attr: nexthop 10.1.34.3, origin i, path 300 200 100
BGP(0): 10.1.34.3 rcvd 8.8.8.0/24 -- DENIED due to:
filter-list;
BGP(0): no valid path for
8.8.8.0/24
BGP(0): 10.1.34.3 rcvd UPDATE
w/ attr: nexthop 10.1.34.3, origin i, path 300 200
BGP(0): 10.1.34.3 rcvd 2.2.2.0/24 -- DENIED due to:
filter-list;
BGP(0): no valid path for
2.2.2.0/24
BGP(0): nettable_walker
2.2.2.0/24 no best path
BGP(0): nettable_walker
8.8.8.0/24 no best path
Nhận
xét: giống trường hợp trên cả 2 mạng đều bị filter. Mạng 2.2.2.0/24 có nguồn
gốc là AS 200 nó cũng được xem như là transit AS = 200 nên bị filter
* Cách 3:
filter dựa vào origin AS cac route có nguồn gốc AS 100:
ip as-path
access-list 1 deny _100$
ip as-path
access-list 1 permit .*
!
router bgp 400
neighbor 10.1.34.3 filter-list 1 in
|
10.1.34.3 rcvd UPDATE
w/ attr: nexthop 10.1.34.3, origin i, path 300 200 100
BGP(0): 10.1.34.3 rcvd 8.8.8.0/24 -- DENIED due to:
filter-list;
BGP(0): no valid path for
8.8.8.0/24
BGP(0): 10.1.34.3 rcvd UPDATE
w/ attr: nexthop 10.1.34.3, origin i, path 300 200
BGP(0): 10.1.34.3 rcvd
2.2.2.0/24...duplicate ignored
BGP(0): nettable_walker
8.8.8.0/24 no best path.
R4(config)#do show
ip bgp
BGP table version
is 16, local router ID is 4.4.4.4
Status codes: s
suppressed, d damped, h history, * valid, > best, i - internal,
r RIB-failure, S Stale
Origin codes: i -
IGP, e - EGP, ? - incomplete
Network Next Hop Metric LocPrf Weight Path
*>
2.2.2.0/24 10.1.34.3 0 300 200 i
|
Nhận
xét: route 8.8.8.0/24 có nguồn gốc từ AS 100 đã bị filter . Trên BGP table R4
còn route 2.2.2.0/24
Kết luận: Regular là một công cụ rất mạnh, trên
đây chỉ mới là những trường hợp đơn giản. Bằng cách kết hợp filter AS Path bằng
regular chúng ta có thể filter tất cả các route từ những AS_PATH bằng cách cấu hình đơn giản ở trên.
No comments:
Post a Comment