0
Tải bản đầy đủ (.doc) (87 trang)

Khi nào sử dụng và không sử dụng BGP

Một phần của tài liệu TÌM HIỂU VỀ GIAO THỨC ĐỊNH TUYẾN (Trang 37 -37 )

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 <AS-number>

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 <address> remote-as <AS-number>

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)#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 <address> update-source <interface>

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

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 e BGP 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á.

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)#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 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

Hoặc: clear ip bgp <số AS> 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:

1. R1 quảng bá route cho R2.

2. R2 học route và lưu vào bảng định tuyến. 3. R2 quảng bá route cho R3.

4. R3 học và lưu route.

5. 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ách hoạt động của route reflector:

 Khi reflector nhận được route từ peers không phải là client của nó: Quảng bá lại cho tất cả client của nó.

 Khi reflector nhận được route từ peers là client của nó:

Gửi cho các peers và các peers là client ngoại trừ client nó học route đó.  Khi reflector nhận route từ eBGP peers:

Gửi cho tất cả client và non-client của nó, giống như không sử dụng route reflection.

Hình 16 1. R1 quảng bá route đến R2. 2. R2 học route. 3. R2 quảng bá route đến R3. 4. R3 học và lưu route. 5. R3 quảng bá route đến R4. 6. R4 học và lưu route. Nhược điểm:

Khi sử dụng route reflection thay vì full mesh iBGP sẽ tạo điểm chết. Điểm đó chính là route reflector, nếu route reflector down thì các client sẽ không tới được các client khác.

Khắc Phục:

Để khắc phục nhược điểm này ta có thể đặt nhiều reflector trong cùng 1 cluster.

Khi có nhiều reflector trong cùng một cluster, chúng ta gán chúng có cluster id

giống nhau để chúng không học các route từ reflector khác nhằm tránh việc loop route(vì các reflector sẽ quảng bá route đến các client và neighbor của nó.

III.1. 2. Cấu hình Route Reflection cho iBGP: Command sử dụng trên reflector:

neighbor peer-address route-reflector-client

Peer-address là địa chỉ mà bạn muốn làm client của reflector cấu hình. Khi cấu hình nhiều reflector, ta cần cấu hình cluster id:

bgp cluster-id cluster-ID.

Cluster-ID: ID của cluster. Ví dụ:

Hình 17

Trong ví dụ này R1 và R2 sẽ là reflector. Cluster ID là 1. Các interface: R1 Lo0-1.1.1.1

R2 Lo0-2.2.2.2 R3 Lo0-3.3.3.3 R4 Lo0-4.4.4.4 R5 Lo0-5.5.5.5 Ta cấu hình như sau: R1#conf t

Enter configuration commands, one per line. End with CNTL/Z.

R1(config)#router bgp 100

R1(config-router)#no synchronization

R1(config-router)#neighbor 2.2.2.2 remote-as 100 R1(config-router)#neighbor 2.2.2.2 update-source Lo0 R1(config-router)#neighbor 3.3.3.3 remote-as 100

R1(config-router)#neighbor 3.3.3.3 update-source Lo0 R1(config-router)#neighbor 4.4.4.4 remote-as 100 R1(config-router)#neighbor 4.4.4.4 update-source Lo0 R1(config-router)#neighbor 5.5.5.5 remote-as 100 R1(config-router)#neighbor 5.5.5.5 update-source Lo0 R1(config-router)#bgp cluster-id 1 R1(config-router)#neighbor 3.3.3.3 route-reflector- client R1(config-router)#neighbor 4.4.4.4 route-reflector- client R1(config-router)#neighbor 5.5.5.5 route-reflector- client R2#conf t

Enter configuration commands, one per line. End with CNTL/Z.

R2(config)#router bgp 100

R2(config-router)#no synchronization

R2(config-router)#neighbor 1.1.1.1 remote-as 100 R2(config-router)#neighbor 1.1.1.1 update-source Lo0 R2(config-router)#neighbor 3.3.3.3 remote-as 100 R2(config-router)#neighbor 3.3.3.3 update-source Lo0 R2(config-router)#neighbor 4.4.4.4 remote-as 100 R2(config-router)#neighbor 4.4.4.4 update-source Lo0 R2(config-router)#neighbor 5.5.5.5 remote-as 100 R2(config-router)#neighbor 5.5.5.5 update-source Lo0 R2(config-router)#bgp cluster-id 1 R2(config-router)#neighbor 3.3.3.3 route-reflector- client R2(config-router)#neighbor 4.4.4.4 route-reflector- client R2(config-router)#neighbor 5.5.5.5 route-reflector- client R3#conf t

Enter configuration commands, one per line. End with CNTL/Z.

R3(config)#router bgp 100

R3(config-router)#no synchronization

R3(config-router)#neighbor 1.1.1.1 remote-as 100 R3(config-router)#neighbor 1.1.1.1 update-source Lo0 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)#^Z

R4#conf t

Enter configuration commands, one per line. End with CNTL/Z.

R4(config)#router bgp 100

R4(config-router)#no synchronization

R4(config-router)#neighbor 1.1.1.1 remote-as 100 R4(config-router)#neighbor 1.1.1.1 update-source Lo0 R4(config-router)#neighbor 2.2.2.2 remote-as 100 R4(config-router)#neighbor 2.2.2.2 update-source Lo0 R4(config-router)#^Z

R5#conf t

Enter configuration commands, one per line. End with CNTL/Z.

R5(config)#router bgp 100

R5(config-router)#no synchronization

R5(config-router)#neighbor 1.1.1.1 remote-as 100 R5(config-router)#neighbor 1.1.1.1 update-source Lo0 R5(config-router)#neighbor 2.2.2.2 remote-as 100 R5(config-router)#neighbor 2.2.2.2 update-source Lo0 R5(config-router)#^Z

III.1. 3. Confederations:

Confederation nằm trong rfc 1965 và rfc 3065. Nó chia AS ra thành nhiều AS con(mini-AS) để giảm bớt lượng kết nối để full mesh AS.

Ví dụ: chia AS Texas ra làm các AS con là :Dallas,Austin và Houston. Mặc dù AS bên ngoài đi vào ko thấy được sự thay đổi này. iBGP sẽ chạy trong AS con(mini- AS) và eBGP sẽ đảm nhận việc giao tiếp giữa các AS con(mini-AS) này.

Confederation giúp giảm bớt lượng kết nối iBGP trong AS và nếu cần thì thiết lập policies trong AS con. Một số thuật ngữ chúng ta cần nắm:

AS confederation là tập hợp các AS mà từ bên ngoài nhìn vô chỉ thấy là một AS lớn.

AS confederation identifier (ID) là số AS biểu thị cho AS lớn, dùng nó để giao tiếp với các AS khác.

Member-AS là một mini-AS nằm trong AS lớn.

Member-AS number là số AS biểu thị cho mini-AS nằm trong AS lớn.

Một phần của tài liệu TÌM HIỂU VỀ GIAO THỨC ĐỊNH TUYẾN (Trang 37 -37 )

×