I Autonomous Systems
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 H1
> 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
Hoạt Động cơ bản của BGP
Cập nhật bảng định tuyến
Chức năng của BGP là để trao đổi thông tin định tuyến giữa các AS và đảm bảo lựa chọn tuyến thông suốt(loop free path ‘LFP’)
BGP cập nhật sử dụng TCP cổng 179. TCP là một kết nối mà phải có sự thoả thuận trước khi cập nhật được chuyển đổi đi, do đó BGP thừa kế tính tin cậy, kết nối có định hướng của TCP.
Để đảm bảo lựa chọn tuyến không loop(LFP ) thì , BGP xây dựng một biểu đồ của các AS dựa trên thông tin trao đổi giữa các BGP láng giềng. BGP xem toàn bộ mạng như là một biểu đồ hay một cây. Kết nối giữa bất kỳ hai AS nào cũng được định nghĩa là đường Path.
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ó the thay đổi nó được.
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.
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.
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.
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:
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.
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.
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.
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 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 :
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.
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.
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ị.
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.
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.
Established: Đay 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.
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 H1
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 : thong 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:
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.
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.
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.
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. H1
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 được sử dụng trong IGP nhu RIP, 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 BTP 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
Đố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
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 BG 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 sẻ 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.
1. 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 da 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 tì 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:
Đối với RTC ta sử dụng lệnh như sau :
4. 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ẻ them số AS của nò và truyền di 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 them 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. Và danh sách này có mang tuần tự các số AS mà route đã đi qua.
- 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à AS sẻ 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 them 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.
Ví dụ:
- 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.
5. 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 cho họ được ấn định cho các AS không hợp lê. Vì thế nếu khách hang 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 hang 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 sẻ đượ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:
Thuộc tính Atomic Aggregate : là một thuộc tính well-known discretionary. Thuôc tính Atomic Aggregate được thiết lập một trong hai giá trị hoặc là True hoặc là False. Nếu là True, thì thuộc tính này sẻ cảnh báo cho BGP router biết rằng có nhiều đích đã được nhóm lại trong một cập nhật duy nhất. Hay nói cách khác thì, BGP router gởi có nhiều route cụ thẻ hơn đến đích nhưng không được gởi đi. Bỏi vì điều này cho nên gây ra môt vấn đề, Atomic Aggregate cảnh báo cho router nhận rằng thông tin mà chúng đã nhận là không cần thiết cho tất cả các thông tin về route hiện có.
BGP có thể được cấu hình tóm tắt route bằng lênh aggregate-address.
Lệnh này không nhất thiết BGP phải tạo một route aggregate trong bảng định tuyến của nó. Mà điều này chỉ xảy ra khi mà router nhận biết được là có ít nhất một route thuộc về supernet này. Vì thế mà nếu router biết được chỉ một route, nó có thể coi là biết được hàng trăm route khác. Đặc điểm này được sử dụng để cảnh báo . Aggregate route được quảng cáo đi khi nó đến từ AS mà thuộc tính Atomic aggregate được thiết lập là True. Điều này cho biết được thông tin có thể bí mất. Mặc định thì Atomic aggregate được thiết lập là True, trừ khi as-set được xác định.
Nếu router chỉ quảng bá supernet, và không quảng bá các route cụ thể hơn thì sử dụng summary-only. Khi cấu hình sử dụng key word này thì router sẻ truyền supernet route và sẻ loại bỏ(suppress) các route cụ thẻ hơn .
Ví dụ:
Nếu RTA loại bỏ các route cụ thể hơn supernet thì ta cấu hình:
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.
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.
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:
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.
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 dó 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.
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.
.
Thuộc tính Origin
Origin là một thuộc tính well-known mandatory. Nó chỉ ra nguồn của định tuyến cập nhật. BGP cho phép 3 loại origin sau:
IGP được khởi tạo nội bộ trong AS
EGP học được từ BGP
Incomplete học được từ một số cách khác như redistribution…
- BGP xem xet các thuộc tính Origin trong quyết định route nào tối ưu hơn trong nhiều route. BGP chọn loại origin thấp nhất. IGP thấp hơn EGP, EGP thấp hơn Incomplete
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 H1
> 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
Hoạt Động cơ bản của BGP
Cập nhật bảng định tuyến
Chức năng của BGP là để trao đổi thông tin định tuyến giữa các AS và đảm bảo lựa chọn tuyến thông suốt(loop free path ‘LFP’)
BGP cập nhật sử dụng TCP cổng 179. TCP là một kết nối mà phải có sự thoả thuận trước khi cập nhật được chuyển đổi đi, do đó BGP thừa kế tính tin cậy, kết nối có định hướng của TCP.
Để đảm bảo lựa chọn tuyến không loop(LFP ) thì , BGP xây dựng một biểu đồ của các AS dựa trên thông tin trao đổi giữa các BGP láng giềng. BGP xem toàn bộ mạng như là một biểu đồ hay một cây. Kết nối giữa bất kỳ hai AS nào cũng được định nghĩa là đường Path.
H1
BGP láng giềngkhi 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.
H2
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ó the thay đổi nó được.
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.
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.
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.
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:
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.
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.
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.
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 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 :
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.
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.
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ị.
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.
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.
Established: Đay 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.
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 H1
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 : thong 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:
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.
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.
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.
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. H1
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 được sử dụng trong IGP nhu RIP, 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 BTP 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
Code:
RTB(config)#[B]router bgp 200[/B] RTB(config-router)#[B]neighbor 172.16.1.2 remote-as 200[/B] RTB(config-router)#[B]neighbor 172.16.1.2 update-source loopback 0[/B]
Đố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
Code:
RTB(config-router)#[B]network 172.16.1.0 mask 255.255.255.252[/B] RTB(config-router)#[B]network 10.1.1.0 mask 255.255.255.252[/B] RTB(config-router)#[B]network 192.168.1.0[/B]
- Well-known mandatory là thuộc tính mà phải tồn tại trong cập nhật của BG 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 sẻ 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.
1. 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 da 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 tì 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:
Code:
Router(config-router)#[B]neighbor[/B] ip-address [B]next-hop-self[/B]
Code:
RTC(config-router)#[B]neighbor[/B] 10.10.10.1 [B]next-hop-self[/B]
4. 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ẻ them số AS của nò và truyền di 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 them 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. Và danh sách này có mang tuần tự các số AS mà route đã đi qua.
- 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à AS sẻ 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 them 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.
Ví dụ:
- 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.
5. 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 cho họ được ấn định cho các AS không hợp lê. Vì thế nếu khách hang 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 hang 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 sẻ đượ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:
Code:
[FONT=Tahoma]RTB(config)#[B]router bgp 1[/B] RTB(config-router)#[B]neighbor 172.16.20.2 remote-as 65001[/B] RTB(config-router)#[B]neighbor 192.168.6.3 remote-as 7[/B] RTB(config-router)#[B]neighbor 192.168.6.3 remove-private-as[/B] [/FONT]
BGP có thể được cấu hình tóm tắt route bằng lênh aggregate-address.
Lệnh này không nhất thiết BGP phải tạo một route aggregate trong bảng định tuyến của nó. Mà điều này chỉ xảy ra khi mà router nhận biết được là có ít nhất một route thuộc về supernet này. Vì thế mà nếu router biết được chỉ một route, nó có thể coi là biết được hàng trăm route khác. Đặc điểm này được sử dụng để cảnh báo . Aggregate route được quảng cáo đi khi nó đến từ AS mà thuộc tính Atomic aggregate được thiết lập là True. Điều này cho biết được thông tin có thể bí mất. Mặc định thì Atomic aggregate được thiết lập là True, trừ khi as-set được xác định.
Nếu router chỉ quảng bá supernet, và không quảng bá các route cụ thể hơn thì sử dụng summary-only. Khi cấu hình sử dụng key word này thì router sẻ truyền supernet route và sẻ loại bỏ(suppress) các route cụ thẻ hơn .
Ví dụ:
Code:
RTA(config)#[B]router bgp 300[/B] RTA(config-router)#[B]neighbor 3.3.3.3 remote-as 200[/B] RTA(config-router)#[B]neighbor 2.2.2.2 remote-as 100[/B] RTA(config-router)#[B]network 160.10.0.0[/B] RTA(config-router)#[B]aggregate-address 160.0.0.0 255.0.0.0[/B]
Nếu RTA loại bỏ các route cụ thể hơn supernet thì ta cấu hình:
Code:
RTA(config-router)#[B]aggregate-address 160.0.0.0 255.0.0.0 summary-only[/B]
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.
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.
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:
Code:
RTC(config)#[B]router bgp 256[/B] RTC(config-router)#[B]neighbor 1.1.1.1 remote-as 100[/B] RTC(config-router)#[B]neighbor 128.213.11.2 remote-as 256[/B] RTC(config-router)#[B]bgp default local-preference 150[/B] RTD(config)#[B]router bgp 256[/B] RTD(config-router)#[B]neighbor 3.3.3.4 remote-as 300[/B] RTD(config-router)#[B]neighbor 128.213.11.1 remote-as 256[/B] RTD(config-router)#[B]bgp default local-preference 200[/B]
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.
Code:
RTD(config)#[B]ip as-path access-list 1 permit _300$[/B] RTD(config)#[B]route-map LP permit 10[/B] RTD(config-route-map)#[B]match as-path 1[/B] RTD(config-route-map)#[B]set local-preference 200[/B] RTD(config)#[B]route-map LP permit 20[/B] RTD(config)#[B]router bgp 256[/B] RTD(config-router)#[B]neighbor 3.3.3.4 remote- as 300[/B] RTD(config-router)#[B]neighbor 3.3.3.4 route-map LP in[/B]
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 dó 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.
Code:
RTB(config)#[B]route-map med permit 10[/B] RTB(config-route-map)#[B]set metric 50[/B] RTB(config)#[B]router bgp 400[/B] RTB(config-router)#[B]neighbor 4.4.4.4 route-map med out[/B]
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.
.
Thuộc tính Origin
Origin là một thuộc tính well-known mandatory. Nó chỉ ra nguồn của định tuyến cập nhật. BGP cho phép 3 loại origin sau:
IGP được khởi tạo nội bộ trong AS
EGP học được từ BGP
Incomplete học được từ một số cách khác như redistribution…
- BGP xem xet các thuộc tính Origin trong quyết định route nào tối ưu hơn trong nhiều route. BGP chọn loại origin thấp nhất. IGP thấp hơn EGP, EGP thấp hơn Incomplete