Giao thức bgp: phần 1: Khái niệm as tổng Quan về Autonomous System



tải về 75.15 Kb.
Chuyển đổi dữ liệu30.08.2016
Kích75.15 Kb.
#29196
http://www.cisconet.com/route-server/world_map.html
Sau đó có thể vào BGP tip để học một số thứ về BGP.
Giao thức BGP: phần 1: Khái niệm AS
1. Tổng Quan về Autonomous System
- Autonomous system (as) : Một AS là một nhóm các router cùng chia sẻ một chính sách và hoạt động trong cùng một miền nhất đinh(domain)
- Mỗi AS có một số nhận diện và được cung cấp bởi một nhà cung cấp AS (internet registry) hoặc nhà cung cấp dịch vụ số này từ 1 -> 65,535. Khoảng từ 64,512 cho đến 65,535 được để dành cho các AS Private sử dụng.
2. AS có một kết nối duy nhất ra AS khác(SingleHomed AS)
- Nếu một AS có duy nhất một kết nối ra mạng bên ngoài, thì nó được xem là kết nối đơn (single).

3. AS có nhiều kết nối ra mạng bên ngoài(Multihomed AS “MA”)
- Một AS là một MA khi nó có nhiều hơn một kết nối ra mạng bên ngoài. Một MA khi nó có kết nối đến internet có thể đến một hay nhiều nhà cung cấp.
-AS này có thể là Transit hoặc Non-Transit AS
> Transit : AS này sẻ chuyển tiếp thông tin từ nhà cung cấp này sang nhà cung cấp khác
Non-Transit: AS này không chuyển tiếp thông tin giữa hai nhà cung cấp khác nhau H2



4. Khi nào không nên sử dụng BGP trong một AS

• Khi chỉ có duy nhất một kết nối đến internet hay đến một AS khác


• Khi chính sách và định tuyến các Route không cần thiết trong một AS
• Router BGP không đủ RAM hay khả năng xử lý để quản lý các cập nhật
• Nhà quản trị ít am hiểu vè lọc(filter) các tuyến(route) và quá trình lựa chọn đường dẫn (path)
• Băng thông thấp giữa các AS
Giao thức BGP: phần 2: láng giềng trong BGP

- khi hai BGP router thiết lập một kết nối TCP, được gọi là láng giềng (neighbor) hay ngang hàng (peer), mỗi router chạy BGP được gọi là BGP speaker. Peer router trao đổi thông tin bằng nhiều bản tin để mở và xác nhận các thông số kết nối, như version của BGP dang được sử dụng, nếu có bất kỳ sự không đồng ý nào giữa các peer thì, thông tin cảnh báo (notification) được gởi ra giữa các peer.

- Khi quan hệ láng giềng được thiết lập, thì chúng sẻ trao đổi các thông tin về BGP route. Sau khi việc trao đổi thông tin được khởi tao xong, thì các cập nhật thành phàn(incemental update) được gởi đi khi có thông tin thay đổi trong mạng chứ không truyền toàn bộ bảng định tuyến.

- Peer truyền các destinations mà nó có thể thấy được bằng các thông tin cập nhật cho các Peer của nó.

- Thông tin về khả năng đến các destination được trao đổi, chăng hạn khi một route trở nên không đến được thì BGP sẻ cảnh báo cho láng giềng của nó về thông tin này bằng thu hồi(withdrawing) các route sai và thay đổi bảng định tuyến mới.



- Nếu không có thông tin định tuyên nào được trao đổi với các peer, thì BGP speaker sẻ truyền một cách có chu kỳ các bản tin keepalive cho nhau để duy trì kết nối. Gói Keepalive(19 byte) được gởi đi trong vòng 60 giây theo mặc đinh và ta có thể thay đổi nó được.



Giao thức BGP: phần 3: Các loại thông điệp và các trạng thái kết nối trong BGP

Các loại bản tin của BGP

- Các loại bản tin khác nhau thực hiên một chức năng trong hoạt động của BGP. Mỗi bản tin mang một thông tin tiêu đề.Thông tin trong tiêu đề chỉ gồm 3 trường: 16 byte Maker, 2 byte Length, và 1 byte Type.

i. Trường Maker được sử dụng hoặc để xác thực(authentication) hoặc để kiểm tra đồng bộ giữa các peer.

ii. Trường Length : chỉ ra chiều dài tổng cộng của bản tin, gồm cả phần tiêu đề. bản tin nhỏ nhất của BGP là 19 bytes = 16 + 2 + 1 , và chiều dài tối đa là 4096 bytes.

iii. Trường Type có thể có 4 giá trị từ 1 -> 4. Mỗi gía trị này tương ứng -với một trong 4 loại bản tin
- Các loại bản tin:
i. Open message : bản tin này được sử dụng để thiết lập kết nối với các peer, và gồm có cả trường cho version, chỉ số AS, hold time, và ID của router.
ii. Keepalive message: bản tin này được truyền đi một cách có chu kỳ giữa các peers để duy trì kết nối và kiểm tra tuyến. Nếu khoảng thời gian truyền keepalive được cấu hình với giá trị là 0, thì sẻ không có thông tin keepalive được truyền di. Holdtime = 3xkeepaive. bản tin keep alive gồm 19 byte tiêu đề và không có thông tin dữ liệu được truyền đi trong bản tin này.
iii. Notification message : bản tin này được sử dụng để chỉ thị cho router nhận biết được là có lỗi. Bản tin này gồm một trường cho mã lỗi được sử dụng cho việc khặc phục và sửa lỗi.
iv. Update message: thông tin cập nhật này gồm tất cả các thông tin sử dung để xây dựng một sơ đò LFP của toàn mạng. Có các thông tin thành phần cơ bả trong Update message dó là: NLRI, thuộc tín của Path, và thu hồi route(withdraw route)

Thoả thuận về trạng thái giữa các peer

- Quá trình thảo thuận giữa các peer được thực hiện qua nhiều trạng thái: có 6 trạng thái của BGP:

i. Idle: idle là trạng thái đầu tiên của một kết nối BGP. BGP chờ sự kiện bắt đầu, nó thường là khởi tạo bởi nhà quản trị hoặc là các sự kiện (event) trong mạng. Tại sự kiện khởi tạo, tạo các thông tin cần thiết và reset lại các timer : holdtime… Idle có thẻ được chuyển về từ một trạng thái khác trong trường hợp có lỗi.

ii. Connect: trong trạng thái connect : BGP chờ cho kết nối TCP được hoàn thành. Nếu kết nối TCP thành công, thì trạng thái này được chuyển tiếp sang trạng thái OpenSent. Nếu kết nối TCP lỗi thì trạng thái này chuyển sang trạng thái Acitve,và router cố gắng để thiết lập kết nối lại. Nếu một kết nối mà retry timer hết hạn(expire) thì trạng thái được duy trì ở trangk thái Connect,thì timer được reset, và kết nối TCP được khởi tạo lại. Trong trường hợp sự kiện được khởi tạo bởi nhà quản trị thì trạng thái chuyển vè idle.

iii. Active: trong trạng thái Active thì BGP cố gắng yêu cầu một peer khởi tạo kết nối TCP. Nếu thành công, nó chuyển sang trạng thái OpenSent. Nếu thời gian kết nói retry timer hết han, thì BGP sẻ chuyển về trạng thái Connect lại. Trong khi active, thì BGP vẫn lắng nghe một kết nối khác được khởi tạo từ peer. Trạng thái có thể chuyển về Idle trong trường hợp có các sự kiện khác, như kết thúc sự kiện bởi hệ thống hay nhà quản trị.

iv. OpenSent : trong trạng thái này, BGP chờ một bản tin open từ peer của nó. bản tin open được kiểm tra tính đúng đắn. Trong trường hớp có xảy ra lỗi, như: version không thích hợp hay AS không chấp nhận, thì hệ thống truyền bản tin chỉ báo và reset keepalive timer. Tại trạng thái này thì hold time được thoả thuận và khoảng thời gian nào nhỏ hơn sẻ được chọn. Nếu thời gian hold time được thoả thuận là 0 thì hold timer và keepalive timer sẻ không được khởi tao.

v. OpenConfirm: Trong trạng thái này, BGP chờ bản tin keepalive hay bản tin chỉ thị cảnh báo. Nếu một bản tin keepalive được nhận, thì trạng thái này chuyển sang trạng thái Established, và láng giềng thoả thuận hoàn thành. Nếu hệ thống nhận một bản tin cập nhật hay keepalive, thì nó reset holdtime, và trạng thái chuyển vè idle. Hệ thống truyền một cách có chu kỳ các bản tin keepalive cho peer theo tốc độ được cài đặt theo keepalive timer. Trong trường hợp bất kỳ mmọt sự ngưng kết nối TCP hay chấm dứt sự kiện, được tạo ra bởi nhà quản trị thì trạng thái sẻ chuyển vê trạng thía idl.

vi. Established: Đây là trạng thái sau cùng của sự thoả thuận của các peer. BGP bắt đầu trao đổi các gói cập nhật với các peers của nó. Nếu không phải là 0 thì hold time sẻ đươc reset lại khi nó nhận được thông tin cập nhật hay bản tin keepalive. Mỗi gói cập nhật đều được kiểm tra lỗi, như trường hợp lỗi hay trùng lặp các thuộc tính. Nếu có lỗi được phát hiện thì một bản tin cảnh báo (notification) được gởi đi cho Peer. Bất kỳ bản tin cảnh báo nào được nhận trong khi ở trạng thái Established đề làm cho BGP xoá Peer dang nhận và trở về trạng thái Idle. Nếu Hold time hết hạn, hay một bản tin chỉ thị cắt kết nối nhận được từ Peer, hay ngưng sự kiện được nhận thì hệ thống sể trở về trạng thái Idle.



Giao thức BGP: phần 4: Khái niệm NLRI và các thuộc tính đường đi trong BGP

NLRI

- Thay vì truyền thông tin về một đích có thể đến được la Network và Subnet mask thì BGP truyền NLRI, gồm Prefix và chiều dài của prefix. Prefix sẻ miêu tả cho dích có thể đến được và chiều dài của prefix là miêu tả cho số lượng bít của subnet mask. Ex: NLRI<19, 192.168.1.0> miêu tả prefix 192.168.1.0, và chiều dài là 19 bit mask.

- Withdraw Route : Bản tin này cung cấp một danh sác các tuyến cập nhật không còn đến được nửa và cần phải thu hồi hay xoá ra khỏi bảng định tuyến của BGP. Một bản tin cập nhật không bao gồm thông tin NLRI hay các thông tin thuộc tính thì nó chỉ được dùng cho Withdraw



Thuộc tính của Path

- Hầu hết cấu hình BGP tập trung vào thuộc tính của path. Mỗi tuyến có giá trị thuộc tính được định nghĩa có thể gồm : thông tin path, route preference, next hop, và tóm tắt route. Nhà quản trị sử dụng những thuộc tính này để tạo các chính sách định tuyến. Dựa trên các giá trị của thuộc tính BGP có thể được cấu hình để lọc các thông tin định tuyến, các path, hay các động thái khác. Có các loại thuộc tính sau:

i. Well-know mandatory: là thuộc tính mà bắt buộc phải tồn tại trong bản tin cập nhật. Nó phải được nhận ra bởi tất cả các Peer. Nếu một thuộc tính Well-know bị thiếu, thì một bản tin chỉ thị lỗi đựoc tạo ra. Điều này đảm bảo rằng tất cả các BGP peer phải thoả thuận theo một chuẩn nhất định.

ii. Well-know discretionary: là thuộc tính được nhận ra bởi tất cả các BGP peer, nhưng có thể hoặc không gởi bản tin câp nhật.

iii. Optional transitive : là thuộc tính có thẻ hay không được nhận ra bởi tât cả các BGP peer. Vì thế thuộc tinh transitive có thể chấp nhận và truyền đi thậm chí no không được nhận ra.

iv. Optional nontransitive: là thuộc tính mà có thê hoặc không nhận ra bởi tất cả BGP peer. Cho dù nhận ra hay không thì nó cũng không được truyền di cho Peer khác.




Giao thức BGP: phần 5: Cách cấu hình BGP

Cấu Hình BGP

1. Cơ bản về cấu hình BGP

- Để khởi tạo quá trình BGP ta sử dụng lệnh:

Router(config)#router bgp AS-number

- Lệnh Network trong IGP như RIP thì nó xác định cổng giao tiếp nào truyền và nhận các cập nhật. Tuy nhiên với BGP thì lệnh network không ảnh hưởng đến cổng giao tiếp nào mà nó quảng bá. Vì thế network sẽ không thiết lập quan hệ giữa các BGP router

Router(config)#network network-number [mask network-mask]

Lệnh network cho biết route nào đã học được nội bộ để quảng bá đi. Route này có thể là route tĩnh, kết nối trực tiếp, hoặc route học được từ IGP như(RIP, OSPF,…)

- Để router BGP thiết lập quan hệ láng giềng với một router khác thì ta sử dụng lệnh:

Router(config-router)#neighbor ip-address remote-as AS-number


Lệnh này cho router biết ID của peer để thiết lập láng giềng.

2.EBGP và IBGP

Khi cấu hình BGP, Thì BGP hỗ trợ hai loại phiên thông tin giữa các peer
-Phiên thông tin giữa các EBGP: xảy ra giữa các router khác AS.
-Phiên thông tin giữa các IBGP: xảy ra giữa các rouer có cùng AS

Nếu gía trị của AS trong cấu hình với lệnh router bgp giống với gía trị của AS trong lệnh neighbor thì quan hệ giữa các BGP là IBGP, còn nếu khác thì quan hệ là EBGP

Ví dụ :

Trong ví dụ này thì RTB thiết lập phiên thông tin EBGP với RTA, và IBGP với RTC.

Trước hết ta sẽ thiết lập phiên thông tin RTB với RTC

RTB(config)#router bgp 200


RTB(config-router)#neighbor 172.16.1.2 remote-as 200
RTB(config-router)#neighbor 172.16.1.2 update-source loopback 0

Đối với RTA thì cũng tương tự như RTC với remote-as có giá trị là 100

Trong ví dụ này ta thấy có lênh update-source loopback 0 Nếu có nhiều đường đến router láng giềng, router có thể sử dụng bất kỳ địa chỉ IP của cổng giao tiếp nào để thiết lập quan hệ láng giềng. Trong trường hơp này thì router sẻ sử dụng cổng loopback để thiết lập kết nối TCP với router láng giềng.

RTB học được các route từ IGB là OSPF, RTB có thẻ quảng bá những mạng này bằng cách redistribuate OSPF vào trong BGP hoăc ta sử dụng lệnh network

RTB(config-router)#network 172.16.1.0 mask 255.255.255.252
RTB(config-router)#network 10.1.1.0 mask 255.255.255.252
RTB(config-router)#network 192.168.1.0
Giao thức BGP, phần 6: Các thuộc tính của BGP
- Well-known mandatory là thuộc tính mà phải tồn tại trong cập nhật của BGP và phải được nhận ra bởi tất cả các nhà cung cập, và các khuyến nghị.
- Well-known discretionary: Là thuộc tính cũng phải được nhận ra bởi tất cả các khuyến nghị về BGP, nhưng nó có thể không được truyền đi trong bảng cập nhật.
- Optional Trasnitive : là một thuộc tính mà nó không yêu cầu phải được hỗ trợ bởi tất cả các khuyến nghị về BGP. Tuy nhiên nếu nó không được nhận ra bởi BGP thì nó sẽ sử dụng cờ. Nếu cờ được thiết lập thì BGP chấp nhận và chuyển tiếp đến các peer khác.
- Optional nontranstivive : là một thuộc tính củng không yêu cầu phải được hổ trợ bởi các khuyến nghị về BGP. Tuy nhiên nếu thuộc tính không được nhận ra bởi BGP, thì nó sẽ sử dụng cờ, nếu cờ không được thiết lập thì thuộc tính sẽ được loại bỏ và không được truyền với các peer khác.
Giao thức BGP, phần 7: Thuộc tính next-hop trong BGP

Thuộc tính next hop: là một thuộc tính well-known mandatory, nó tương tự như trong IGP, để đến được network, thì next hop là địa chỉ IP của router quảng bá route.

> đối với EBGP: thì next hop là địa chỉ ip của láng giềng quảng bá route.
> đối với IBGP : Nơi mà route được quảng từ trong cùng AS thì next hop là địa chỉ ip của láng giêng quảng bá route. Còn đối với route được quảng bá vào AS từ EBGP, thì next hop từ EBGP không được thay đổi vào trong IBGP, next hop là địa chỉ ip của EBGP láng giềng mà nó học được.
> Khi một route được quảng bá trong một môi trường đa truy nhâp(multi-access) như Ethernet, frame relay, thì next hop là địa chỉ IP của các cổng giao tiếp của router.

- Trong ví dụ này thì RTC chạy một phiên thông tin EBGP với RTZ và IBGP với RTA.

- RTC học được route 128.213.1.0 từ RTZ với next hop là 1.1.1.1 do RTC nhận được route 128.213.1.0 đến từ láng giềng RTZ bởi next hop 1.1.1.1, khi nó cập nhật sang RTA thì next hop ip address không có thay đổi, do dó RTA có next hop là 1.1.1.1. Như chúng ta có thể thấy đối với RTA thì next hop là 1.1.1.1 là không thể đến được.

2. Thuộc tính Next Hop trong môi trường Multiaccess.

Một kết nối mạng được xem là multi-access nếu có hơn 2 host có thể kết nối vào. Các router trong kết nối mạng multi-access thì cùng chia sẻ chung một địa chỉ subnet và kết nối vật lý trực tiếp với nhau. Một số môi trường là multi-access như: Ethernet, Frame Relay, ATM.

Ví dụ:

- Trong ví dụ này thì ta thấy RTC sể quảng cáo route học được từ RTB, và khi RTC quảng cáo route thì nó chỉ ra RTB là source của route, Nếu không thì các router khác sẻ phải thực hiện đường đi theo số hop không cần thiết đó là qua RTC đế các router trong cùng một mạng(segment).


- RTA,RTB,RTC : cùng chia sẻ một môi trường truyền là multi-access. RTA và RTC chạy EBGP, RTC và RTB chạy OSPF. RTC học mạng 11.11.11.0/24 từ RTB thông qua OSPF, và nó quảng cáo mạng này đến RTA thông qua EBGP. Vì RTA và RTB chạy khác giao thức định tuyến, nên về logic thì RTA xem RTC(10.10.10.2) là nẽt hop để đến được 11.11.11.0/24. Tuy nhiên điều này không xảy ra, trạng thái đúng cho RTA là xem RTB,10.10.10.3 là next hop vì RTB cùng chìa sẻ một môi trường với RTC.

3. Next Hop trong mạng NBMA(Frame Relay)

- Trong mạng NBMA, không có các kết nối trực tiếp giữa các router, mà là chỉ những kết nối ảo được cấu hình từ mỗi router đến tất cả các router khác. Một lý do quan trọng mà hầu hết các tổ chức đều thự hiện mô hình hup-and-spoke bởi vì giá cả phải chăng. Trong mô hình hub-and-spoke thì nhiều site ở xa có các kết nối ảo đến một hay nhiều router ở site trung tâm.



Ví dụ:

- Ở đây ta thấy RTC là hub router và RTA, RTB là spoke router. ta thấy các kết nối ảo được đặt ra giữa RTA và RTC, giữa RTC và RTB, nhưng không có kết nối nào giữa RTA và RTB. RTA nhận được cập nhật về mạng 11.11.11.0/24 từ RTC và nó sẻ cố gắng sử dụng RTB,10.10.10.3 làm next hop. Điều này tương tự như trong môi trường mạng multi-access.Nhưng trong trường hợp này thì bảng định tuyến có vấn đề vì không có kết nối ảo nào giữa RTA và RTB cả.

- Để giải quyết vấn đề này ta có giải pháp sau: sử dụng thuộc tính next-hop-self để buộc router, trong trường hợp này thì, RTC sẻ quảng cáo mạng 11.11.11.0/24 với next hop là của chính nó 10.10.10.2. RTA lúc này sẻ gởi trực tiếp các gói đến mạng 11.11.11.0/24 qua RTC.

Cú pháp như sau:
Router(config-router)#neighbor ip-address next-hop-self

Đối với RTC ta sử dụng lệnh như sau:
RTC(config-router)#neighbor 10.10.10.1 next-hop-self

Giao thức BGP, phần 8: Thuộc tính AS_PATH
Thuộc tính AS_path: là một thuộc tính Well-know mandatory.

- Nó là tuần tự của các số AS mà route đã truyền qua để đến đích. AS đầu tiên truyền route sẽ thêm số AS của nó và truyền đi sang EBGP peer của nó. Sau đó thì mỗi AS mà nhận route này sẽ truyền route này sang EBGP peer khác và gán thêm số AS của nó vào đầu danh sách các số AS.

Danh sách cuối cùng sẽ là tất cả các số AS mà route đã được truyền đi qua, với số AS của AS mà khởi tạo route ban đầu nằm ở cuối danh sách.

- BGP sử dụng thuộc tính AS_PATH này trong các cập nhật của nó để đảm bảo một mô hình không bị loop trên Internet. Mỗi route được truyền đi giữa các peer sẽ mang theo một danh sách của các số AS mà route đã được truyền qua. Nếu route được quảng cáo đến một AS mà khởi tạo ra nó, và một AS thấy chính nó là một phần trong danh sách các số AS và nó sẽ không chấp nhận route này.

- BGP router sẽ chèn thêm số AS của nó khi quảng cáo bảng định tuyến cập nhật của nó sang một AS khác. Khi route được truyền qua một BGP router có cùng AS thì danh sách AS_path sẽ giữ nguyên không thay đổi.

- Trong ví dụ này thì ta thấy route 172.16.10.0/24 được khởi tạo từ AS1 và được truyền đi qua AS2, AS3, AS4 và truyền ngược trở lại AS1. Nhận thấy rằng mỗi AS truyền route này qua external peer thì nó thêm số AS của nó vào đầu danh sách AS_path. Khi route truyền ngược trở lại AS1, thì BGB border router sẻ nhận ra rằng route này đã từng qua nó và không chấp nhận route này.

- Thông tin về AS_path là một thuộc tính để BGP xác đinh đường đi tốt nhất đến đích. Khi so sánh 2 hay nhiêu route, giả sử tất cả các thuộc tính khác đều giống nhau, thì route nào có path ngắn hơn sẻ được ưu tiên chọn hơn.

AS_path và số private AS

- Thông thường để bảo tồn các số AS, thì các khách hàng mà các chính sách định tuyến của họ là sự mở rộng của các chính sách định tuyến của các nhà cung cấp được ấn định cho các AS không hợp lê. Vì thế nếu khách hàng là một single-homed hay multihomed của cùng một nhà cung cấp thì nhà cung cấp yêu cầu khách hàng phải sử dụng số AS lấy từ private pool 64512 đến 65535.. Như vậy thì tất cả các cập nhật mà nhà cung cấp nhận được từ khách hàng chỉ gồm các số private AS.

- Các số private AS không thể quảng cáo ra internet, vì nó là không duy nhất. Vì lý do này mà các số private AS được cắt bỏ khỏi danh sách AS_path trước khi route được quảng cáo ra ngoài internet.

Ví dụ:


- Trong ví dụ này thì AS1 cung cấp kết nối internet cho khách hàng AS 65001. Vì khách hàng chỉ kết nối đến nhà cung cấp này mà không có kế hoach kết nối thêm đến một nhà cung cấp khác trong tương lai gần nên khác hàng được ấn định một số private AS. Khách hàng nên sử dụng một số AS hợp lệ khi cần có kết nối đến một nhà cung cập khác nữa.

- Prefix (172.16.220.0/24) được khởi tạo từ AS 65001 có AS_path 65001. Khi AS 1 quảng bá prefix này ra internet, thì nó sẻ được loại bỏ số private AS. Khi prefix đến internet thì, nó sẻ được xem như là đã được khởi tạo từ AS1 của nhà cung cấp có AS_path là 1. BGP chỉ loại bỏ số private AS chỉ khi nó được quang bá sang EBGP peer. Điều này nghĩa là việc loại bỏ số private AS sẽ được cấu hình trên RTB để kết nối đên RTC.

Cấu hình:


RTB(config)#router bgp 1
RTB(config-router)#neighbor 172.16.20.2 remote-as 65001
RTB(config-router)#neighbor 192.168.6.3 remote-as 7
RTB(config-router)#neighbor 192.168.6.3 remove-private-as


Giao thức BGP, phần 9: Thuộc tính Aggregator và Local-preference

Thuộc tính Aggregator:

Là một thuộc tính Well-known discretionary. Khi cấu hình aggregation, thì thuộc tính này cung cấp những thông tin về ID của router và số AS của của router khởi tạo aggregate route. Thuộc tính này cho phép ISP admin xác định router nào thực hiện aggregation.



Thuộc tính Local Preference:

Là một thuộc tính well-known discretionary. Local Preference là một yếu tố để xác định sự so sánh giữa các route đến cùng một đích. Route có Local Preference cao hơn sẽ được chọn làm đường đi tối ưu. Cũng như tên của thuộc tính này, nó chỉ chuyển đổi nội bô giữa các IBGP peer . Local Preference không quảng cáo sang EBGP peer.

a. Router trong một multihomed AS có thể học rằng, nó có thể đến cùng đích bằng các neighbor theo hai hay nhiều AS khác nhau. Có thể có hai hay nhiều điểm rởi khỏi AS nội bộ để đến được một đích nào đó. Sử dụng thuộc tính Local Preference để ép BGP router sử dụng route tối ưu hơn các route khác đến cùng một đích. Bởi vì thuộc tính này chỉ được thông tin giữa các BGP trong cùng một AS, tất cả các router có cùng một quyết định chung để đến một route bên ngoài.
b.Ví dụ:

- Theo ví dụ này thì công ty ANET đã mua kết nối đến internet từ hai nhà cung cấp, XNET và YNET. ANET được kết nối đến YNET bằng T3 và đến XNET bằng đường backup T1.
- Một điều quan trong cho ANET là quyết định đường đẫn nào để cho tải ra ngoài internet. Tuy nhiên admin của ANET thích sử dụng kết nối T3 theo đường của YNET. LA có thể gán route đến từ YNET một giá trị Local Prefernece 300, và San Jose gán cho route đến từ YNET một giá trị thấp hơn là 200. Bởi vì cả hai router LA và San Jose đều chuyển đổi thông tin định tuyến cập nhật bằng IBGP, chúng đều đồng ý rằng điểm ra khỏi AS bằng đường qua YNET. Vì ở đây có giá trị Local Preference cao hơn
-NET học route đến 128.213.0.0/16 bằng đường qua XNET và YNET. Router LA và San Jose sẽ đồng ý sử dụng YNET là điểm để đến đích vì gía trị Local Preference cao hơn là 300.
c. Vận dụng Local Preference:

- Ta thấy AS 256 nhận cập nhật mạng 170.10.0.0 từ AS 100 và từ AS 300. Có hai cách để thiết lập thuộc tính Local Preference trên các router thuộc AS 256.
> Sử dụng lệnh bgp default local-preference
> Sử dụng route map để thiết lập local preference
-Sử dụng lệnh bgp default local-preference, thiết lập thuộc tính Local Preference trên RTC và RTD như sau:

RTC(config)#router bgp 256
RTC(config-router)#neighbor 1.1.1.1 remote-as 100
RTC(config-router)#neighbor 128.213.11.2 remote-as 256
RTC(config-router)#bgp default local-preference 150
RTD(config)#router bgp 256
RTD(config-router)#neighbor 3.3.3.4 remote-as 300
RTD(config-router)#neighbor 128.213.11.1 remote-as 256
RTD(config-router)#bgp default local-preference 200

-Cấu hình trên RTC làm cho nó sẽ thiết lập tất cả các cập nhật từ AS100 một giá trị Local Preference là 150. Và từ cấu hình trên RTD sể làm cho nó thiết lập Local Preference cho toàn bộ cập nhật từ AS 300 một giá trị là 200. Bởi vì Local Preferênc chỉ trao đổi trong nội bộ AS, nên cả hai RTC, và RTD đều xác định rằng cập nhật về mạng 170.10.0.0 có giá trị Local Preference cao hơn khi nó đến từ AS300 so với khi nó đến từ AS100. Kết quả là toàn bộ tải trong AS 256 đến mạng 170.10.0.0 đều được truyền qua RTD.

- Ta có thể cấu hình bằng cách sử dụng route map. Route Map cung cập một cơ chế uyển chuyển hơn so với việc sử dụng default như trên. Khi ta sử dụng lệnh bgp default local-preference cho RTD thì tất cả các cập nhật nhận được bởi RTD đều được thiết lập giá trị là 200. Điêu này gồm cả cập nhật từ AS34. Bây giờ ta sẽ cấu hình cho RTD sử dụng route map để thiết lập Local Preference trên RTD chỉ cho những cập nhật từ AS300.



RTD(config)#ip as-path access-list 1 permit _300$
RTD(config)#route-map LP permit 10
RTD(config-route-map)#match as-path 1
RTD(config-route-map)#set local-preference 200
RTD(config)#route-map LP permit 20
RTD(config)#router bgp 256
RTD(config-router)#neighbor 3.3.3.4 remote- as 300
RTD(config-router)#neighbor 3.3.3.4 route-map LP in


Giao thức BGP, phần 10 Thuộc tính weight và thuộc tính MED.doc

Thuộc tính Weight:

- Thuộc tính Weight tương tự như Local Preference, nó sẽ ưu tiên sử dụng route có giá trị weight cao hơn. Một điều khác ở đây là các thông số weight chỉ có ý nghĩa nội bộ trong router thôi mà nó sẽ không trao đổi với các router khác. Thuộc tính weight ảnh hưởng đến các route đến từ nhiều nhà cung cấp khác nhau tới một router, một router có nhiều kết nối tới hai hay nhiều nhà cung cấp. Thông số weight có tác động cao hơn bất kỳ thuộc tính nào khác.Nó là thuộc tính quan trọng nhất để xác định route nào ưu tiên được chọn hơn. Weight được cấu hình trên các router theo từng neighbor một. thuộc tính này sể không truyền sang cho bất kỳ một router BGP nào khác cả. Ta có minh hoạ sau :





Thuộc tính Multiple Exit Discriminator(MED)

- MED là một thuộc tính optional nontransitive. MED chỉ cho láng giềng external về đường đi nào tối ưu hơn để vào trong một AS có nhiều điểm vào. MED có giá trị thấp sẽ tốt hơn.


- Không giống Local Preference MED được trao đổi giữa các AS, nhưng MED vào trong một AS thì sẽ không rời khỏi AS này. Khi có một cập nhật vào trong một AS với một giá trị MED được thiết lập, thì giá trị này được sử dụng để quyết định chỉ trong nội bộ AS đó thôi. Khi BGP chuyển cập nhật cho một AS khác thì giá trị của MED được thiết lập về 0.
- MED có thể được sử dụng ở một AS và ảnh hưởng đến quyết đinh ra khỏi AS của một AS khác.
- Khi một route được khởi tạo bởi một AS, thì giá trị của MED thông thường là tuỳ theo metric IGP của route. Điều này trở nên hữu dụng khi một khách hàng có nhiều kết nối đến cùng một nhà cung cấp. IGP metric chỉ ra độ tiêu tốn đến một mạng để xác định điểm truyền. Một mạng gần điểm xuất A hơn điểm xuất B thì sẽ có giá trị IGP metric nhỏ hơn. Khi giá trị IGP metric được dịch sang MED, tải đến một AS có thể vào từ một kết nối gần đích hơn. Chính vì điều này mà MED có giá trị thấp hơn sẽ được ưu tiên hơn để đến đích. Điều này có thể được sử dụng cho cả nhà cung cấp và cả khách hàng để cân bằng tải giữa nhiều kết nối giữa hai AS khác nhau.
- Ta sẽ có một ví dụ minh hoạ như sau

- Từ hình vẽ trên ta thấy XNET nhận cập nhật định tuyến về mạng 128.213.0.0/16 từ 3 nguồn khác nhau. Đố là SJ có metric 120, LA có metric là 200, còn NY có metric là 50. SF sẽ so sánh hai giá trị metric từ ANET và sẽ ưu tiên chon SJ hơn vì nó quảng cáo giá trị metric nhỏ hơn. Khi Lệnh bgp always-compare-med được sử dụng trên router SF, nó sẽ tiếp tục so sánh các giá trị metric. Nó sẽ so sánh metric 120 với 50 đến từ NY và sẽ ưu tiên chọn NY hơn để đến mạng 128.213.0.0/16.

- Ví dụ về cấu hình:


- Theo ví dụ này thì ta thấy : AS 100 sẽ nhận cập nhật về mạng 180.10.0.0 từ RTB, RTC, và RTD. RTC và RTD xuất phát từ AS 300, và RTB xuất phát từ AS 400. Ta sử dụng route map để cấu hình MED cho router.



RTB(config)#route-map med permit 10
RTB(config-route-map)#set metric 50
RTB(config)#router bgp 400
RTB(config-router)#neighbor 4.4.4.4 route-map med out

-Mặc định thì BGP sẽ so sánh giá trị của thuộc tính MED của route đến từ các láng giềng có cùng một external AS. Như AS 300 là một ví dụ. Điều này có nghĩa là RTA sẽ so sánh giá trị của thuộc tính MED đến từ RTC có giá trị là 120 chỉ với RTD với giá trị là 200. Thậm chí dù cập nhật đến từ RTB có giá trị MED thấp hơn thì RTA cũng sẽ chọn RTC là đường đi tốt nhất đến mạng 180.10.0.0. Để ép RTA sử dụng luôn cả cập nhật về mạng 180.10.0.0 đến từ RTB trong bảng so sánh của nó thì ta sử dụng lệnh bgp always-compare-med.

- Lúc này thì RTA sẽ chọn RTB là next hop tốt nhất để đi đến mạng 180.10.0.0.0, trong trường hợp giả dụ là tất cả các thuộc tính khác đều như nhau.



Giao thức BGP, phần 11 Chọn lựa tuyến trong BGP.doc
BGP dựa trên giá trị của các thuộc tính để quyết định chọn tuyến. Khi gặp nhiều route đến cùng một đích, thì BGP sẽ chọn route tốt nhất để truyền tải đến đích. Quá trình chọn route như sau:

1. Next Hop không đến được thì route sẽ bị loại bỏ. Bở vì điều này mà ta biết tại sao phải có một IGP route đến next hop.


2. BGP router sẽ chọn path nào có weight lớn nhất.
3. Nếu các route có weight đều giống nhau thì BGP router sẽ chọn route có Local Preference lớn nhất.
4. Nếu Local Preference có gía trị bằng nhau cho tất cả các route thì BGP sẽ chọn route mà được khởi tạo bởi nội bộ router
5. Nếu Local Preference có giá trị như nhau thì BGP router sẽ chọn route có AS_path ngắn nhất.
6. Nếu AS_path có chiều dài bằng nhau, thì router BGP sẽ chọn route có loại origin thấp nhất. Tức là IGP thấp hơn EGP, và EGP thấp hơn Incomplete.
7. Nếu loại origin giống nhau, BGP router sẽ chọn route có MED nhỏ nhất.
8. Nếu MED có giá trị gống nhau thì BGP sẽ chọn route theo cách sau. External(EBGP) sẽ được ưu tiên hơn confederation external, nó lại được ưu tiên hơn so với IBGP.
9. Nếu tất cả những thuộc tính đã xét đến đều giống nhau, thì BGP sẽ chọn route mà có thể đến được theo đường của IGP láng giềng gần nhất. Tức bây giờ sẽ xét đến path để đến đích theo path ngắn nhất đến next hop.
10. Nếu tất cả cũng đều giống nhau thì BGP sẽ chọn route đến từ router có ID nhỏ nhất. Router ID thường là địa chỉ IP cao nhất của router hay là địa chỉ của cổng loopback


Giao thức BGP, phần 12: Lọc route trong BGP

Lọc tuyến và chính sách định tuyến

1. Lọc tuyến

Lọc tuyến cho phép router chọn route nào sẽ được trao đổi với BGP peer nào. Lọc tuyến là một phần của chính sách định tuyến. Một AS có thể kiểm soát route nào sẽ được chấp nhận từ láng giềng EBGP.

Các chính sách có thể được định nghĩa bằng việc lọc các route. BGP route truyền qua các bộ phận lọc (filter) có thể gồm có các thuộc tính của nó và các thuộc tính này được vận dụng vào trong việc quyết định chọn route.

Cả hai việc lọc tải (traffic) theo chiều inbound và chiều outbound đều được chấp nhận giữa các peer và cả giao thức định tuyến chạy trên cùng một router. Lọc inbound chỉ ra rằng BGP lọc cập nhật định tuyến đến từ một peer khác. Còn lọc outbound thì để hạn chế việc cập nhật định tuyến từ router này đến các router BGP peer khác.

Ở cấp độ giao thức thì : lọc inbound có tác dụng hạn chế cập nhật định tuyến được redistribution vào trong một giao thức. Còn lọc utbound hạn chế việc cập nhật định tuyến chèn vào từ giao thức này.Với BGP thì ta có một ví dụ sau: lọc inbound nghĩa là hạn chế cập nhật định tuyến được redistribution từ một giao thức định tuyến khác vào trong BGP, còn lọc outbound thì hạn chế cập nhật được redistribution từ BGP vào một giao thức khác (IGP)

2. Sử dụng distribute-list để lọc route

- Để hạn chế thông tin định tuyến mà router học hay quảng cáo. Áp dụng lọc tuyến từ hay đến một láng giềng nào đó sử dụng lệnh distribute-list. Như minh hoạ dưới đây:

Ta thấy RTD trong AS2 khởi tạo mạng 192.68.10.0 và truyền đến RTF. RTF sẽ truyền cập nhật đến RTA bởi IBGP, và từ đó nó sẽ truyền cập nhật đến AS1. Như vậy AS3 sẽ trở thành transit AS quảng cáo rằng nó có thể đến được mạng 192.68.10.0/24

Để ngăn tình trường hợp này xảy ra thì ta cấu hình trên RTA:

RTA(config)#router bgp 3
RTA(config-router)#neighbor 172.16.1.1 remote-as 3
RTA(config-router)#neighbor 172.16.20.1 remote-as 1
RTA(config-router)#neighbor 172.16.20.1 distribute-list 1 out
RTA(config)#access-list 1 permit ip 172.16.0.0 0.0.255.255

Distribute-list, được sử dụng là một phần của lệnh neighbor, nó ngăn RTA không quảng cáo mạng 192.68.10.0/24 đến RTC. Access list được sử dụng để nhận ra prefix để thực hiện lọc và distribute-list out áp dụng để lọc cập nhật ra bên ngoài.

Nhận thấy rằng khi cấu hình distribute líst dựa trên việc sử dụng một access list. Nếu sử dụng standard access list thì sẽ có một số chức năng bị hạn chế. RTA kết nối đến nhiều subnet trong mạng 172.16.0.0/16. Mục đích của việc quảng cáo một địa chỉ mạng tóm tắt 172.16.0.0/16, nhưng không quảng cáo bất kỳ subnet riêng nào của nó cả. Một standard access list sẽ không làm được điều này bởi vì nó sẽ cho phép (permit) nhiều hơn mong đợi. Nó sẽ lọc dự trên địa chỉ mạng. đây là một ví dụ về một access list mà nó sẽ permit không chỉ mạng 172.16.0.0/16 mà là tất cả các thành phần khác thuộc tóm tắt route này.

access-list 1 permit 172.16.0.0 0.0.255.255

Để hạn chế cập nhật chỉ 172.16.0.0/16 ta sử dụng extended access list. Thông thường thì một extended access list gồm cả source và destination. Trong trường hợp lọc route BGP , thì một extended access list chỉ gồm có network, tiếp theo là subnet mask. Cả network và mask đều chứa wildcard bitmask của nó, có cú pháp như sau:



router(config)#access-list number permit|deny network network-wildcard mask mask-wildcard

Để cho phép route tóm tắt như trong ví dụ trên thì ta cấu hình một extended access list để filter network và 16 bit mask của prefĩ. Với cấu hình này thì RTA sẽ không truyền subnet route như 172.16.0.0/17 hay 172.16.10/24 trong cập nhật của nó đến AS1.



RTA(config)#access-list 101 permit ip 172.16.0.0 0.0.255.255 255.255.0.0 0.0.0.0

- Ta có thể sử dụng ip prefix-list thay cho extended access list.



3. Lênh ip prefix-list:

sử dụng lệnh ip prefix-list có một số thuận lợi hơn so với việc sử dụng access-list là


- Hiệu suất được cải thiện khi loading và tìm route trong một danh sách lớn.
- Hỗ trợ cập nhật từng phần increment update. Lọc route với extended access list không hỗ trợ cho việc cập nhật từng phần.
- Dòng lệnh than thiện hơn
- Tính uyển chuyển cao,

Cú pháp của lệnh như sau:


router(config)#ip prefix-list list-name [seq seq-value] deny/permit network/len [ge ge-value] [le le-value].


Ví dụ về cấu hình bằng lênh ip prefix-list


RTA(config)#ip prefix-list GROVER permit 192.0.0.0/8 le 24
RTA(config)#ip prefix-list GROVER deny 192.0.0.0/8 ge 25
l. Theo ví dụ này thì ở câu lệnh đầu tiên chấp nhận tất cả các route có các chiều dài mask lên đến 24 bit với prefix 192.0.0.0/8, và từ chối (deny) tấ cả các route cụ thể hơn.

Ở câu lệnh thứ hai thì nó sẽ kiểm tra prefix bắt đầu với 192 ở octet đầu tiên. Sau đó quan tâm đến chỉ các route cụ thể hơn bằng cách kiểm tra chiều dài của mask. Vì thế cả 192.168.32.0/19 và 192.168.1.0/24 đều được ở trạng thái cho phép(permit), nhưng mạng prefix 192.168.1.32/27 thì không bởi vì chiều dài mask của nó lớn hơn 25. Cả ge và le có thể được sử dụng chung theo lệnh sau:



RTA(config)#ip prefix-list OSCAR permit 10.0.0.0/8 ge 16 le 24

Lệnh này permit tất cả prefix trong mạng 10.0.0.0/8 với chiều dài mask tử 16 cho đến 24 bits.

Mỗi prefix list được gán cho một số thứ tự, số này được gán mặc định hoặc được gán bằng tay. Bằng cách đánh số, một entry có thể đựơc chèn vào tại bất kỳ điểm nào của list. Điều này quan trọng vì router kiểm tra prefix list từ tuần tự từ nhỏ đến lớn. Khi có một match xảy ra thì router sẽ không tiếp tục tét đến các entry của các tuần tự sau nữa. Ta có thể sử dụng lênh show ip prefix-list để kiểm tra.

Số tuần tự này sẽ được tạo ra và tăng dần từng bậc +5. giá trị đầu tiên được tạo ra trong prefix list là 5 tiếp theo là 10, 15….. Nếu cấu hình bằng tay một giá trị và tiếp theo không xác định các giá trị thì số thứ tứ cho entry sẽ tự động tăng lên theo bâc +5. Ví dụ giá trị đầu tiên được xác định là 3 và sau đó thì không có tuần tự được chỉ định cho các entry khác thì số tuần tự sẽ được tao ra là 8, 13, 18….ví du:



RTA(config)#ip prefix-list ELMO seq 12 deny 192.168.1.0/24

Cuối cùng khi sử dụng prefix list thì ta phải theo một số luật sau


- Một prefix list trống sẽ mặc đinh là permit tất cả prefix
- Có một ngầm định deny được đưa ra nếu prefix không match bất kỳ entry nào của prefix.
- Khi có nhiều entry của prefix list match, thì tuần tự của entry nào nhỏ nhất sẽ được match thật sự

tải về 75.15 Kb.

Chia sẻ với bạn bè của bạn:




Cơ sở dữ liệu được bảo vệ bởi bản quyền ©hocday.com 2024
được sử dụng cho việc quản lý

    Quê hương