MỤC LỤC
Trang
Danh mục hình vẽ I
Danh mục bảng biểu II
Danh mục các từ viết tắt III
Chương I: Khái niệm và hoạt động của BGP 01
I.1. Khái niệm 01
I.1.1. Khái niệm Border Gateway Protocol 01
I.1.2. Các khái niệm liên quan 01
I.1.3. Thuật ngữ trong BGP 02
I.2. Hoạt động của BGP 04
I.2.1. Định dạng phần đầu thông điệp 04
I.2.2. Thông điệp OPEN 05
I.2.3. Thông điệp UPDATE 08
I.2.4. Thông điệp KEEPALIVE 13
I.2.5. Thông điệp NOTIFICATION 13
I.2.6. Thương lượng với Neighbor Router 15
I.2.7. Chọn tuyến đường 19
I.2.8. Đồng bộ hoá BGP 24
I.2.9. Tổng hợp các tuyến đường 24
I.3. Khi nào sử dụng và không sử dụng BGP 26
I.3.1. Khi nào dùng BGP 26
I.3.2. Khi nào khôn dùng BGP 26
CHƯƠNG II: Cấu hình và kiểm tra hoạt động của BGP 27
II.1. Cấu hình BGP 27
II.1.1. Cấu hình Minimal BGP 27
II.1.2. Cấu hình iBGP and eBGP 29
II.1.3. Cấu hình eBGP Multihop 32
II.1.4. Thêm Routes vào BGP 34
II.2. Kiểm tra và khắc phục hoạt động của BGP 37
II.2.1. Xem thông tin định tuyến 37
II.2.2. Xem thông tin của Router láng giềng 38
CHƯƠNG III: BGP NÂNG CAO 40
III.1 Khắc phục khả năng mở rộng giới hạn của iBGP 40
III.1.1. Route Reflection 40
III.1.2. Cấu hình Route Reflection cho iBGP 44
III.1.3. Confederations 48
III.1.4. Cấu hình Confederations 51
III.2. Lọc BGP 55
III.2.1. Phân loại danh sách 55
III.2.2. Thêm vào danh sách (Prefix Lists) 58
III.2.3. Bản đồ định tuyến 59
III.3. Các tác động 61
III.4. Các nhóm ngang hàng 64
III.5. Đa kết nối internet trong BGP 67
III.6. Giải quyết vấn đề Next-Hop 68
III.7. Tổng hợp tuyến đường 69
CHƯƠNG IV: MÔ HÌNH THỰC NGHIỆM 71
CHƯƠNG V: KẾT LUẬN 76
TÀI LIỆU THAM KHẢO 77
88 trang |
Chia sẻ: netpro | Lượt xem: 4049 | Lượt tải: 1
Bạn đang xem trước 20 trang tài liệu Tiểu luận Tìm hiểu về giao thức định tuyến border gateway protocol, để xem tài liệu hoàn chỉnh bạn click vào nút DOWNLOAD ở trên
peaker sẽ gửi một bản tin KEEPALIVE tới remote BGP speaker, thiết lập các giá trị keepalive timer và hold timer. BGP speaker sẽ đàm phán để điều chỉnh giá trị hold time. Nếu hold time giá trị là 0, có nghĩa là keepalive timer và hold timer sẽ không bao giờ bị reset. Sau quá trình đàm phán về hold timer, BGP speaker sẽ xác định kết nối là iBGP hay eBGP.
Nếu 2 BGP speaker cùng trong một autonomous system, loại BGP sẽ là iBGP.
Nếu chúng thuộc 2 autonomous system khác nhau, loại BGP sẽ là eBGP.
Khi loại BGP đã được xác định, trạng thái của nó sẽ chuyển sang OpenConfirm. Trong suốt trạng thái này, có thể BGP speaker sẽ nhận được một TCP disconnect message. Nếu điều này xảy ra, BGP speaker sẽ chuyển trạng thái sang Active. Nếu bất kỳ event khác nào gây ra lỗi, BGP speaker sẽ đóng kết nối TCP và chuyển trạng thái sang Idle. Tất cả các start event sẽ bị lờ đi trong trạng thái OpenSent.
OpenConfirm state: ở trạng thái này, BGP speker đợi để nhận một KEEPALIVE message từ remote BGP speaker. Khi KEEALIVE message được nhận, BGP speaker sẽ thiết lập lại hold timer và chuyển trạng thái sang Established. Tại thời điểm này mối quan hệ peer giữa chúng đã được thiết lập. Nếu một NOTIFICATION message được nhận thay vì KEEPALIVE message , BGP speaker sẽ thay đổi trạng thái sang Idle. Trong trường hợp hold timer hết hạn trước khi nhận được KEEPALIVE message từ remote BGP speaker, nó hủy kết nối TCP chuyển trạng thái sang Idle. BGP speaker có thể nhận được TCP disconnect từ peer của nó. Nếu điều này xảy ra, BGP speaker chuyển trạng thái sang Idle.BGP speaker cũng chuyển sang Idle nếu nó nhận đc 1 stop event tự động sinh ra hoặc từ người quản trị. Bất cứ loại event nào gây lên lỗi, BGP speaker sẽ đóng kết nối TCP và chuyển trạng thái sang Idle. Tất cả các start event sẽ bị lờ đi trong trạng thái này.
Established state: Khi một BGP speaker đạt đến trạng thái Established, tất cả các quá trình đàm phán với neigbor đã hoàn tất. Ở trạng thái này BGP peer sẽ trao đổi UPDATE message và KEEPALIVE message. Mỗi lận BGP speaker nhận được một UPDATE message hay KEEPALIVE message, nó sẽ thiết lập lại hold timer của nó. Nếu hold timer hết hạn trước khi nhận được một UPDATE message hay KEEPALIVE message, BGP speaker sẽ gửi một NOTIFICATION message tới peer của nó, ngắt phiên kết nối TCP và chuyển trạng thái sang Idle. Bất cứ event: “nhận được NOTIFICATION message, lỗi ở UPDATE message, TCP disconnect message, stop event, hay các event khác khiến cho BGP speaker tạo ra một bản NOTIFICATION” thì BGP speaker sẽ chuyển trạng thái về Idle. Tất cả Start event sẽ bị lờ đi trong trạng thái Established.
Khi BGP peer đạt đến trạng thái Established, chúng sẽ bắt đầu quá trình trao đổi thông tin định tuyến.
I.2.7. Chọn tuyến đường (Route Selection):
Routing Information Bases:
Khi BGP speaker học 1 route, route đó cần phải qua Routing Information Base(RIB) của BGP speaker. RIB có 3 phần:
Adj-RIBs-In: Chỉ có 1 Adj-RIBs-In cho một BGP speaker. Nó chứa các route đi vào RIB.Khi BGP routes chứa vào đây, chúng sẽ đi qua cơ chế inbound policy. Cơ chế inbound policy là nơi các routes bị filter hoặc các thuộc tính của route được sao chép, tùy thuộc vào policy của người quản trị router. Qua phần này route sẽ đi ddeens Loc-RIB.
Loc-RIB: nó được router sử dụng để đưa ra quyết định lựa chọn routing. Router sau đó sẽ gửi tất cả các routes có trong Loc-RIB đến cơ chế outbound policy. Cơ chế này được đưa ra từ người quản trị router mục đích để filter hoặc sao chép BGP route trước khi đưa chúng qua Adj-RIBs-Out.
Adj-RIBs-Out:Các routes qua được cơ chế outbound policy sẽ được ở đây. Chỉ một Adj-RIBs-Out tồn tại với 1 BGp speaker, các routes trong nó sẽ được quảng bá đến peers.
Một route sẽ tiếp tục qua các bước này nếu nó được quảng bá đến BGp speaker khác. Sau đây là trình tự quá trình:
Hình 8
BGp speaker nhận routes.
Routes sẽ nằm trong Adj-RIBs-In.
BGP route được gửi đến cơ chế inbound policy.
Cơ chế inbound policy sẽ filter hay sao chép routes tùy thuộc vào policy được set bởi người quản lý router. BGP route bị filter sẽ bị drop tại đây.
Các route còn lại được chuyển đến Loc-RIB.
Router sử dụng route để đưa ra quyết định BGP routing.
BGp routes được đưa đến cơ chế outbound policy.
Cơ chế outbound policy sẽ filter hoặc sao chép routes tùy thuộc vào policy. Các route bị filter drop tại đây.
Các routes còn lại được đưa đến Adj-RIBs-Out.
BGp routes được chứa ở Adj-RIBs-Out.
Tất cả các routes chứa ở Adj-RIBs-Out sẽ được quảng bá tới peers.
Chúng ta hãy cùng qua phần quá trình quyết định routing(Decision Proccess) để hiểu rõ hơn.
Decision Process:
Quá trình này thực ra là lựa chọn các routes, các routes sẽ được sử dụng trong local, routes sau đó sẽ được quảng bá tới peers. Có 3 giai đoạn:
Giai đoạn 1: tính toán mức ưu tiên của một route học từ một AS kế nó. Giai đoạn này cũng chịu trách nhiệm quảng bá các route có mức ưu tiên cao nhất tới BGP speaker trong cùng AS.
Giai đoạn 2: lựa chọn route nào tới đích là tốt nhất. Sau đó đưa route đó vào Loc-RIB của BGP speaker. BGP speaker sử dụng routes đó để đưa ra quyết định BGP routing.
Giai đoạn 3: bắt đầu khi Loc-RIB được update. Trong giai đoạn này, speaker sẽ dựa vào policy trong cơ chế outbound policy để quyết định route nào sẽ quảng bá tới peers nằm ở AS kế. Sum route cũng được thực hiện ở giai đoạn này.
Chúng ta sẽ đi chi tiết vào từng giai đoạn:
Giai đoạn 1:
Được gọi là Giai đoạn tính toán độ ưu tiên. Khi BGP speaker nhận được UPDATE message từ một peers ở AS kế, phase 1 sẽ bắt đầu. Khi nhận được UPDATE, speaker sẽ khóa Adj-RIBs-In và nó sẽ mở khóa sau khi hoàn thành phase 1. Với mỗi route mà BGP speaker nhận được, nó tính độ ưu tiên dựa trên policy đã được định sẵn.
Giai đoạn 2:
Được gọi là giai đoạn lựa chọn routes.Ở giai đoạn này BGP speaker sẽ khóa Adj-RIBs-In và mở khóa chúng khi giai đoạn này hoàn thành. Nếu route nào có thuộc tính NEXT_HOP là một địa chỉ IP mà speaker không thể đi tới địa chỉ đó thì route đó sẽ bị loại bỏ. BGP speaker sẽ chọn route mà chỉ có duy nhất route đó có thể tới địa chỉ đích. Nếu có nhiều route cùng tới địa chỉ đích thì BGP speaker sẽ lựa chọn route có độ ưu tiên cao nhất. Route này sẽ được chứa trong Loc-RIB của speaker. Nếu các route trùng địa chỉ đích mà có độ ưu tiên bằng nhau, thì speaker sẽ xử lí theo rules sau:
Nếu BGP speaker được cấu hình để sử dụng MULTI_EXIT_DISC(MED) và MED của các routes khác nhau, BGP sẽ chọn route với MED nhỏ nhất.
Nếu BGP speaker không được cấu hình để sử dụng MED hoặc MED của các route không khác nhau,
Nếu cost của routes không khác nhau, BGP speaker sẽ chọn route được quảng bá bởi speaker ở AS kế, với giá trị BGP identifier nhỏ nhất.
Nếu route không được quảng bá bởi speaker ở AS kế thì BGP speaker sẽ chọn route được quảng bá ở iBGP peers với giá trị BGP identifier nhỏ nhất.
Giai đoạn 3:
Được gọi là giai đoạn phổ biến route. Giai đoạn này sẽ bắt đầu khi những event sau xảy ra:
Khi giai đoạn 2 hoàn tất.
Khi route được chứa trong Loc-RIB, thay đổi địa chỉ đích local.
Khi bất kì routes đã được tạo ra, không được học bởi BGP, thay đổi.
Khi một kết nối BGP được thiết lập.
Trong giai đoạn 3, routes chứa trong Loc-RIB sẽ được đưa vào cơ chế outbound policy.Các route qua được cơ chế outbound policy sẽ được vào Adj-RIBs-Out. Những route này sẽ được quảng bá tới peers. BGP speaker có thể summarized routes ở giai đoạn này.
Cơ chế làm việc của BGP trong thiết bị của Cisco:
Nếu route có chứa next hop mà không thể tới được, drop quá trình update.
Ưu tiên route có weight lớn nhất.
Nếu cùng số weight, sẽ xét tới độ ưu tiên local(local preference) lớn nhất.
Nếu cùng độ ưu tiên local(local preference), ưu tiên các route được tạo bởi BGP chạy trên router đang xét, với những route được tạo bởi lệnh network hay redistributeưu tiên các route được tạo bởi lệnh aggregate-address.
Nếu không có route nào được tạo ở router đang xét, ưu tiên các route có AS_PATH nhỏ nhất. Tất cả các AS_SET đếm cùng lúc, không quan tâm đến kích cỡ và việc đếm các liên AS không được sử dụng.
Nếu route có cùng AS, ưu tiên các route có loại origin nhỏ nhất, IGP nhỏ hơn EGP, EGP nhỏ hơn INCOMPLETE. INCOMPLETE route thường là được quảng bá lại mà có.
Nếu origin code giống nhau, ưu tiên route có MED nhỏ nhất.
Nếu route có cùng MED, ưu tiên route học từ eBGP hơn route học từ iBGP.
Nếu route vẫn giống nhau, ưu tiên route đi đến BGP next hop với IGP metric nhỏ nhất.
Ưu tiên route được quảng bá bởi BGP router với BGP router ID nhỏ nhất
Ưu tiên path có chiều dài cluster list nhỏ nhất.
Ưu tiên path được quảng bá bởi neighbor có địa chỉ IP nhỏ nhất.
Route Filtering:
Nó được dùng để chỉnh sửa các thuộc tính của một BGP, permit hoặc deny một route.
BGP route filtering có 2 loại:
Ingress filtering: xảy ra khi một route được nhận bởi 1 speaker và đi qua cơ chế inbound policy.Người quản trị sẽ đặt policy để permit hoặc deny một route cụ thể hoặc đặt policy để chỉnh sửa 1 thuộc tính của BGP. Ví dụ: chỉnh sửa local preference của route. Như vậy sẽ quản lý các route chứa trong Loc-RIB của speaker tốt hơn.
Egress filtering: khi một route đi vào cơ chế oubound policy. Cách hoạt động Egress filtering cũng giống như Ingress filtering. Chỉ khác là BGP speaker đưa ra quyết định về 1 route được quảng bá và chỉnh sửa thuộc tính của route đó.
Có nhiều cách để sử dụng BGP route filtering. Ba kĩ thuật filtering được sử dụng phổ biến là: route maps, distribute lists, prefix lists.
Route maps: kĩ thuật này cho phép user có thể quản lý cơ chế lựa chọn routing. Route maps là một chuỗi các lệnh set và match. Lệnh matchdùng để quyết định IP route nào được permit hay deny.Lệnh setđược dùng để chỉnh sửa thuộc tính của path.Route maps có thể được sử dụng như là ingress hay egress filters.
Distribute lists: là filters có thể sử dụng như là ingress hoặc egress filter. Không giống nhưu route maps cho phép bạn chỉnh sử thuộc tính của route, distribute lists chỉ cho phép bạn permit hay deny route. Distribute lists thường đi cùng với access list hay prefix list.
Prefix lists: giống như access list. Nó có thể dùng để hạn chế thông tin được quảng bá đến router hoặc từ router quảng bá đi. Ưu điểm của prefix list là chứa một chuỗi số cho mỗi dòng của prefix list. Nó cho phép add, remove, và modify dòng trong prefix list mà không cần delete và tạo lại routenhư access list.
I.2.8. Đồng bộ hoá BGP (BGP Synchronization):
Để hiểu về nó, ta cần phân biệt sự khác nhau giữa transit AS và stub AS.
Transit AS: là AS kết nối với nhiều AS khác và cho phép route học từ AS này được vận chuyển tới AS khác.
Hình 9
AS 200 ở trong hình là transit AS. Những routes học từ AS 300 sẽ được chuyển qua AS 200 và AS 100 sẽ nhận qua các route đó và ngược lại.
Stub AS : là AS không cho phép thông tin truyền qua nó tới AS khác. Trong hình trên AS 300 và AS 100 là Stub AS. AS 100,300 là single-homed AS. Một single-homed AS là một AS chỉ có một đường đến AS khác. Tất cả các single-home AS là Stub AS.
BGP synchronization yêu cầu BGP phải được đồng bộ với IGB trước khi thông tin được vận chuyển. Nói cách khác eBGP speaker sẽ đợi để nhận quảng bá về một route nó học qua iBGP từ IGB chạy trong AS, trước khi quảng bá route cho một eBGP neighbor.
Hình 10
Trong hình, R1 và R2 là eBGP peers, R2 và R4 là iBGP peers, R4 và R5 là eBGP peers, R3 không chạy BGP. Chuyện gì sẽ xảy ra nếu R1 gửi 1 packet đi đến R5? R2 sẽ nhận packet và gửi cho R3 bởi vì R3 là IGP next hop để R2 đi đến R4, BGP next hop. Vì R3 không chạy BGP nên không biết làm sao để đến R5. Nên R3 sẽ drop packet. Cách giải quyết:
Bạn có thể quảng bá BGP routes đến IGP nhưng cách này không hiệu quả vì BGP routes rất nhiều có thể gây router chạy IGP treo.
Chạy iBGp trên R3, nó cho phép disable đồng bộ BGP. Làm như vậy R3 sẽ biết làm sao để đến R5 là qua R4. Trở thành iBGP thì R3 sẽ được R4 thông báo nó là BGP next hop để tới R5 và R2 cũng học được như vậy.
Có 2 điều kiện để tắt đồng bộ là:
AS là stub AS.
Tất cả các router trong AS chạy iBGP và được cấu hình TCP full mesh với một router khác. Bởi vì full mesh iBGP có yêu cầu cao và thường được điều chỉnh, những thiết bị chạy BGP trên thế giới đều tắt BGP synchronization. Để tắt nó ta gõ lệnh sau ở trong mode configuration :
no synchronization
I.2.9. Tập hợp các tuyến đường (Route Aggregation):
Được hiểu như là route summarization, ta có thể kết hợp nhiều route thành một route. Sử dụng nó thì số route trong routing table sẽ ít đi và tiêu tốn ít bộ nhớ hơn. Nó xảy ra trong giai đoạn 3 của BGP decision process.
Nếu routes có thuộc tính MED và NEXT_HOP thì hai thuộc tính này phải giống nhau để routes được summarized.
Paths với các thuộc tính type code khác nhau thì không thể gộp lại.
Paths với các thuộc tính type code giống nhau thì có thể được gộp lại.
I.3. Khi nào sử dụng và không sử dụng BGP:
I.3.1. Khi nào thì dùng BGP?
Khi bạn cần phải thiết lập policies cho inbound hay outbound.
Khi network có nhiều kết nối đến các AS khác nhau, và bạn muốn AS của bạn truyền các thông tin từ AS này đến AS khác(Transit AS).
Khi bạn kết nối các ISP với nhau.
I.3.2. Khi nào thì không dùng BGP?
Router trong network của bạn không đủ bộ nhớ. Số lượng route tồn tại trong Internet lớn.
AS của bạn chỉ kết nối với 1 AS khác và không cần policy để quản lí.
Network không đủ bandwidth để hỗ trợ traffic BGP.
CHƯƠNG II: CẤU HÌNH, KIỂM TRA HOẠT ĐỘNG BGP
II.1. Cấu hình BGP
II.1.1. Cấu hình Minimal BGP:
Hình 11
Để enable BGP trên thiết bị ta cần sử dụng các command trong mode configuration sau:
router bgp
Hãy sử dụng câu lệnh trên và enable BGP trên các router:
R1#conf t
Enter configuration commands, one per line. End with CNTL/Z.
R1(config)#router bgp 100
R1(config-router)#^Z
R1#
R2#conf t
Enter configuration commands, one per line. End with CNTL/Z.
R2(config)#router bgp 200
R2(config-router)#^Z
R2#
R3#conf t
Enter configuration commands, one per line. End with CNTL/Z.
R3(config)#router bgp 300
R3(config-router)#^Z
R3#
Sau khi enable BGP trên router chúng ta cần add các router để lập peers relationship. BGP yêu cầu chúng ta phải set neighbor bằng command.
neighbor remote-as
address – địa chỉ router.
AS-number – chỉ số AS của router.
Cấu hình trên các thiết bị:
R1#conf t
Enter configuration commands, one per line. End with CNTL/Z.
R1(config)#router bgp 100
R1(config-router)#neighbor 10.10.10.2 remote-as 200
R1(config-router)#^Z
R1#
R2#conf t
Enter configuration commands, one per line. End with CNTL/Z.
R2(config)#router bgp 200
R2(config-router)#neighbor 10.10.10.1 remote-as 100
R2(config-router)#neighbor 20.20.20.1 remote-as 300
R2(config-router)#^Z
R2#
R3#conf t
Enter configuration commands, one per line. End with CNTL/Z.
R3(config)#router bgp 300
R3(config-router)#neighbor 20.20.20.2 remote-as 200
R3(config-router)#^Z
R3#
II.1.2. Cấu hình iBGP và eBGP:
Khi cấu hình iBGP và eBGP. Địa chỉ loopback của mỗi router tham gia iBGP được sử dụng trong lệnh neighbor. Các interface kết nối trực tiếp được sử dụng cho kết nối eBGP.
Sử dụng địa chỉ loopback cho iBGP session là một ý hay vì nó không bao giờ down. Nếu một speaker có nhiều đường để đến iBGP neighbor và một trong số chúng down thì kết nối luôn được up vì có 1 route khác cũng đi đến địa chỉ đích đó. Khi sử dụng loopback interface cho BGP session, chúng ta cần enter lệnh sau:
neighbor update-source
address – địa chỉ IP của thiết bị cần đến.
interface – interface để làm source cho BGP session.
Không có lệnh này, BGP speaker sẽ không bao giờ trở thành peers với 1 speaker khác. Lí do là BGP speaker kia chờ để nhận packet từ địa chỉ loopback của BGP speaker, nhưng nếu không có từ khóa update-source, BGP packet sẽ sử dụng địa chỉ outbound interface của BGP speaker. Remote BGP speaker nhận packet và sẽ drop gói vì đó không phải địa chỉ IP nguồn nó đợi nhận packet.Với từ khóa update-source , packet sẽ lấy địa chỉ của Loopback interface.
Ở hình trên chúng ta không muốn BGP đồng bộ với IGP nên để tắt đồng bộ, chúng ta sẽ gõ câu lệnh no synchronization trên mỗi router của AS 200.
Các loopback:
R2 Lo0-2.2.2.2
R3 Lo0-3.3.3.3
R4 Lo0-4.4.4.4
Hình 12
R1#conf t
Enter configuration commands, one per line. End with CNTL/Z.
R1(config)#router bgp 100
R1(config-router)#neighbor 10.10.10.2 remote-as 200
R1(config-router)#^Z
R1#
R2#conf t
Enter configuration commands, one per line. End with CNTL/Z.
R2(config)#router bgp 200
R2(config-router)#neighbor 10.10.10.1 remote-as 100
R2(config-router)#neighbor 3.3.3.3 remote-as 200
R2(config-router)#neighbor 4.4.4.4 remote-as 200
R2(config-router)#neighbor 3.3.3.3 update-source Lo0
R2(config-router)#neighbor 4.4.4.4 update-source Lo0
R2(config-router)#no synchronization
R2(config-router)#^Z
R2#
R3#conf t
Enter configuration commands, one per line. End with CNTL/Z.
R3(config)#router bgp 200
R3(config-router)#neighbor 2.2.2.2 remote-as 200
R3(config-router)#neighbor 4.4.4.4 remote-as 200
R3(config-router)#neighbor 2.2.2.2 update-source Lo0
R3(config-router)#neighbor 4.4.4.4 update-source Lo0
R3(config-router)#no synchronization
R3(config-router)#^Z
R3#
R4#conf t
Enter configuration commands, one per line. End with CNTL/Z.
R4(config)#router bgp 200
R4(config-router)#neighbor 20.20.20.1 remote-as 300
R4(config-router)#neighbor 3.3.3.3 remote-as 200
R4(config-router)#neighbor 2.2.2.2 remote-as 200
R4(config-router)#neighbor 3.3.3.3 update-source Lo0
R4(config-router)#neighbor 2.2.2.2 update-source Lo0
R4(config-router)#no synchronization
R4(config-router)#^Z
R4#
R5#conf t
Enter configuration commands, one per line. End with CNTL/Z.
R5(config)#router bgp 300
R4(config-router)#neighbor 20.20.20.2 remote-as 200
R5(config-router)#^Z
R5#
Chúng ta thấy eBGP và iBGP không khác nhau nhiều, cái quyết định giữa eBGP và iBGP là remote BGP speaker có cùng AS hay không mà thôi.
II.1.3. Cấu hình eBGP multihop:
Đây là phương pháp được dùng khi remote BGP speaker mà router của bạn muốn kết nối đến không phải là kết nối trực tiếp(tức là kết nối giữa local BGP speaker ergess interface và remote BGP speaker ingress interface không phải là kết nối trực tiếp).Có các trường hợp sau:
Có một router nằm giữa local BGP speaker và remote BGP speaker, mà router đó không chạy BGP.
Bạn đang tìm nguồn cung ứng BGP từ một loopback interface mà trong BGP có hơn một speaker tham gia.
Một vài chú ý: Khi 2 BGP speaker tham gia thì phải có có 1 route để connect. Route này có thể được học từ IGPs. Route này không là default route. Nếu route này không tồn tại thì các BGP speaker không thể trở thành peers của nhau bởi vì chúng không thể thấy nhau. Để cấu hình eBGP multihop, bạn phải gõ lệnh trên cả 2 speaker như sau:
neighbor address ebgp-multihop [ttl]
address – địa chỉ IP của thiết bị kia.
ttl – số router đi qua tối đa để đến remote BGP speaker.
Hình 13
R1#conf t
Enter configuration commands, one per line. End with CNTL/Z.
R1(config)#router bgp 100
R1(config-router)#neighbor 3.3.3.3 update-source Lo0
R1(config-router)#neighbor 3.3.3.3 ebgp-multihop
R1(config-router)#^Z
R1#
R3#conf t
Enter configuration commands, one per line. End with CNTL/Z.
R3(config)#router bgp 200
R3(config-router)#neighbor 1.1.1.1 update-source Lo0
R3(config-router)#neighbor 1.1.1.1 ebgp-multihop
R3(config-router)#^Z
R3#
II.1.4. Thêm route vào bgp:
Có 2 cách:
Bạn có thể redistribute IGP vào BGP. Redistribute là quá trình đưa các route được học từ 1 routing protocol này vào 1 routing protocol khác.
Tự cấu hình routes cho BGP để quảng bá.
Tùy số route mà bạn muốn thêm vào BGP mà chọn giải pháp phù hợp. Nếu chỉ thêm vài route vào BGP, thì nên chọn tự cấu hình, ngược lại bạn nên redistribute IGP vào BGP.
Nhưng tốt nhất thì bạn nên chọn cách tự cấu hình. Bởi vì nếu bạn có một route flaps( up down liên tục) thì sẽ bị routers trên Internet cấm và bị remove khỏi bảng định tuyến như vậy sử dụng redistribute là không phù hợp.
Manually Injecting Route:
Giúp bạn lựa chọn được route nào sẽ được BGP speaker quảng bá tới peers.
network network-address mask subnet-mask
network-address – địa chỉ của network muốn quảng bá.
subnet-mask – subnet mask của network muốn quảng bá
Hình 14
Trong hình chúng ta sẽ cấu hình eBGP giữa R2 và R3. Loopback của R2 và R3 được sử dụng cho BGP session. R1 và R2 chạy IGP giữa chúng. R2 biết Ethernet segment của R1, R1 không chạy BGP. Chúng ta muốn R2 quảng bá các kết nối của nó tới R1 và quảng bá Ethernet segment của R1 tới R3, R3 quảng bá Ethernet segment của nó tới R2.
R2-Loopback0 2.2.2.2
R3-Loopback0 3.3.3.3
R2#conf t
Enter configuration commands, one per line. End with CNTL/Z.
R2(config)#router bgp 100
R2(config-router)#neighbor 3.3.3.3 remote-as 200
R2(config-router)#neighbor 3.3.3.3 update-source Lo0
R2(config-router)#neighbor 3.3.3.3 ebg-multihop
R2(config-router)#network 10.10.10.0 mask 255.255.255.252
R2(config-router)#network 192.168.24.0 mask 255.255.255.0
R2(config-router)#^Z
R2#
R3#conf t
Enter configuration commands, one per line. End with CNTL/Z.
R3(config)#router bgp 200
R3(config-router)#neighbor 2.2.2.2 remote-as 100
R3(config-router)#neighbor 2.2.2.2 update-source Lo0
R3(config-router)#neighbor 2.2.2.2 ebg-multihop
R3(config-router)#network 192.168.100.0 mask 255.255.255.0
R3(config-router)#^Z
R3#
Phải đảm bảo route bạn thêm vào phải có trong routing table của BGP speaker.
Redistribute Routes into BGP:
Giúp bạn thêm một lượng lớn routes vào BGP và quảng bá, đỡ tốn thời gian nhập từng route.
redistribute protocol process-id
protocol – routing protocol quảng bá.
process-id – nếu protocol là IGRP hoặc EIGRP thì nó là số AS.
- nếu là OSPF nó sẽ là process-id.
- nếu là RIP hoặc IS-IS thì process-id không cần thiết.
Nếu một speaker không có chạy một IGP nào mà ta muốn quảng bá tất cả các route nó có:
redistribute connected
II.2. Kiểm tra và khắc phục hoạt động của BGP
II.2.1. Xem thông tin định tuyến (Route information):
Ta sử dụng các câu lệnh:
show ip route
Chỉ có một số route học được từ BGP được đưa lên bảng routing. Nếu bạn muốn xem tất cả các route học từ BGP:
show ip bgp
Dấu * biểu thị đó là một route có thể tới. Nếu route có > ở trước thì nó đã được đặt vào bảng định tuyến. Chữ I biểu thị route được học từ iBGP.
II.2.2. Xem thông tin Router láng giềng:
show ip bgp summary
Chỉ ra các thông tin cơ bản về bgp trên thiết bị. Nếu bạn muốn xem chi tiết hơn:
show ip bgp neighbor
Ngoài ra bạn có thể restart BGP peering session bằng lệnh :
clear ip bgp
Hoặc: clear ip bgp số AS của peers mà bạn muốn restart BGP session.
Nếu bạn dùng clear ip bgp * nó sẽ restart tất cả BGP peers session.
CHƯƠNG III: BGP NÂNG CAO
Ở chương này, chúng ta sẽ giải quyết vấn đề khả năng mở rộng của iBGP và cách khắc phục những hạn chế của nó. Đồng thời trong chương này, chúng ta cùng tìm hiểu sâu về policy trong BGP.
III.1. Khắc phục khả năng mở rộng giới hạn của iBGP
Khi một network được mở rộng, iBGP sẽ có vấn đề vì cách hoạt động của BGP là phải full mesh trong AS.Vì thiết bị chạy iBGP sẽ không quảng bá route chúng học được tới iBGP neighbor nên BGP yêu cầu network phải full mesh.
Khi một network có n BGP speaker, chúng ta cần n(n-1)/2 session để đảm bảo network được full mesh. Vậy khi có 16 iBGP speaker chúng ta cần 120 session. Với một mạng cỡ lớn thì đây là vấn đề rất khó xử lý vì chúng ta không thể quản lý hết được số session này.
Có các giải pháp để full mesh iBGP network được sử dụng đến nay:
Route reflection.
Confederation.
III.1.1. Route Reflection:
Route reflection được định nghĩa trong rfc 1966 và rfc 2796. Cơ chế này cho phép BGP speaker(route reflector) quảng bá route học được từ iBGP đến một số iBGP speaker khác. Điều này khắc phục được hạn chế không quảng bá route học được từ iBGP đến iBGP speaker khác của BGP speaker.
Một số thuật ngữ:
Route reflection: là hoạt động quảng bá route học được từ iBGP đến iBGP speaker khác của BGP speaker.
Route reflector : chính là BGP speaker đã quảng bá route học từ iBGP đến các iBGP peers khác.
Reflected route: là route được quảng bá.
Client peers: là các BGP speaker được nhận route từ route reflector và nằm trong cluster của route reflector đó.
Non-client peers: là BGP speaker phải được full mesh và không có trong cluster của route reflector.
Cluster: là route reflector và các client peers của nó.
Có 3 tiêu chí cụ thể mà Route Reflector phải có:
Simplicity (đơn giản): cách full mesh iBGP phải đơn giản và dễ cấu hình.
Easy Transition(dễ dàng chuyển đổi): khi sử dụng route reflector để chuyển đổi mạng full mesh iBGP, nó phải không làm thay đổi cấu trúc mạng hay AS.
Compatibility(Khả năng tương thích): Một BGP peers không liên quan vẫn phải tham gia trong AS mà không mất một thông tin định tuyến BGP nào.
Hỉnh 15
Hình ở trên là một iBGP network chưa được full mesh.Chuyện gì sẽ xảy ra nếu có một route được học bởi R2 từ R1:
R1 quảng bá route cho R2.
R2 học route và lưu vào bảng định tuyến.
R2 quảng bá route cho R3.
R3 học và lưu route.
R4 không được quảng bá route(do iBGP speaker không quảng bá route học từ iBGP đến iBGP speaker khác)
Sau đây là một số
Các file đính kèm theo tài liệu này:
- [Final] TimHieuVeGiaoThucDinhTuyenBGP.doc
- [TLCN] BGP.pptx