Khảo sát hoạt động của IBGP

Một phần của tài liệu Giao thức định tuyến BGP (Border Gateway Protocol) (Trang 38 - 49)

Để khảo sát sự hoạt động của IBGP ta khảo sát topo dưới đây

Hình 19 : Kết nối IBGP và EBGP

Việc cấu hình EBGP và IBGP cho việc quảng bá tuyến tương đối giống nhau trên các thiết bị của cisco. Tuy nhiên sự hoạt động của EBGP và IBGP có phần khác nhau. Để khảo sát ta xem xét các thông tin trên router D và E khi E quảng bá các tuyến kết nối trực tiếp với nó:

Router D router bgp 1

neighbor 172.16.15.162 remote-as 2 no auto-summary

router bgp 2

redistribute connected

neighbor 172.16.15.161 remote-as 1 no auto-summary

Khảo sát bảng routing table và bảng BGP routing table của router D ta thu được kết quả

D#show ip bgp

BGP table version is 4, local router ID is 172.16.15.254 Status codes: s suppressed, d damped, h history, *

valid, > best, i - internal

Origin codes: i - IGP, e - EGP, ? - incomplete

Network Next Hop Metric LocPrf Weight Path *> 172.16.15.160/30 172.16.15.162 0 0 2 ? *> 172.16.16.164/30 172.16.15.162 0 0 2 ? *> 172.16.16.254/32 172.16.15.162 0 0 2 ? D#show ip route

172.16.0.0/16 is variably subnetted, 6 subnets, 3 masks B 172.16.16.164/30 [20/0] via 172.16.15.162, 00:27:23 C 172.16.15.160/30 is directly connected, Serial0/0 C 172.16.15.128/27 is directly connected, Ethernet0/0 C 172.16.15.254/32 is directly connected, Loopback0

C 172.16.15.64/27 is directly connected, Ethernet0/1

Việc thiết lập sự hoạt động của IBGP giữa các router trong AS 1 tương đối giống so với việc thiết lập sự hoạt động của EBGP ngoại trừ việc thay đổi số AS. Trong topo trên để thiết lập sự hoạt động của IBGP giữa router C và D ta sử dụng cấu hình sau :

Router C router bgp 1 neighbor 172.16.15.130 remote-as 1 no auto-summary Router D router bgp 1 neighbor 172.16.15.129 remote-as 1 neighbor 172.16.15.162 remote-as 2 no auto-summary

Sau khi thiết lập được sự hoạt động của IBGP trong AS 1 giữa router D và C tao có thể xác nhận quan hệ giữa chúng là IBGP. Các thông tin chỉ ra bởi router D cho chúng ta thấy rõ điều này:

D#show ip bgp neighbors 172.16.15.129

BGP neighbor is 172.16.15.129, remote AS 1, internal link

BGP version 4, remote router ID 172.16.15.253 BGP state = Established, up for 00:28:24

Last read 00:00:24, hold time is 180, keepalive interval is 60 seconds

Các thông tin đầu ra trên cho thấy router C và router D đã tồn tại mối quan hệ IBGP hàng xóm. Thuật ngữ “internal link” trong thông tin đầu ra chỉ rõ mối quan hệ này. Các tuyến được quảng bá từ router E đến router C qua router D như sau :

C#show ip bgp

BGP table version is 1, local router ID is 172.16.15.253 Status codes: s suppressed, d damped, h history, * valid, > best, i - internal

i - IGP, e - EGP, ? - incomplete

Network Next Hop Metric LocPrf Weight Path * i172.16.15.160/30 172.16.15.162 0 100 0 2 ? * i172.16.16.164/30 172.16.15.162 0 100 0 2 ? * i172.16.16.254/32 172.16.15.162 0 100 0 2 ?

Tiếp tục khảo sát bảng định tuyến trên router C ta nhận thấy : C#show ip route

172.16.0.0/16 is variably subnetted, 5 subnets, 3 masks C 172.16.15.128/27 is directly connected, Ethernet2/0 C 172.16.15.253/32 is directly connected, Loopback0 C 172.16.15.32/27 is directly connected, Ethernet0/0

C 172.16.9.0/30 is directly connected, Serial0/1 C 172.16.15.96/27 is directly connected, (adsbygoogle = window.adsbygoogle || []).push({});

Dựa vào thông tin trong bảng định tuyến trên ta nhận thấy một số tuyến trong bảng BGP trên router không được chuyển vào bảng định tuyến trên router C. Tuy nhiên khảo sát kĩ bảng định tuyến BGP trên router C và D ta thấy :

Router D *> 172.16.15.160/30 172.16.15.162 0 0 2 ? Router C * i172.16.15.160/30 172.16.15.162 0 100 0 2 ?

Các tuyến có cùng next hop cho mạng 172.16.15.160/30 nhưng router D xem tuyến đó là một tuyến hợp lệ và là tuyến tốt nhất (* >) còn router C cũng coi tuyến đó là tuyến hợp lệ ( * ) nhưng không phải là tuyến tốt nhất. Các thông tin đầu ra dưới đây trên router C cho ta thấy điều này

C#show ip bgp 172.16.15.160

BGP routing table entry for 172.16.15.160/30, version 0 Paths: (1 available, no best path)

Not advertised to any peer 2

172.16.15.162 (inaccessible) from 172.16.15.130 (172.16.15.254)

rigin incomplete, metric 0, localpref 100, valid, internal, not synchronized

Địa chỉ mạng 172.16.15.160 và các địa chỉ khác được nhận từ router D là không thể truy cập. Điều này có nghĩa là router C không biết làm thế nào để đạt được đến NEXT_HOP do BGP không thay đổi NEXT_HOP khi thông tin được nhận và quảng bá từ các EBGP hàng xóm tới một IBGP router. Router D không thay đổi NEXT_HOP 172.16.15.162 khi tuyến 172.16.15.160 được quảng bá tới router C. Tuyến đó được xem như không thể truy cập vì nó không tồn tại trong bảng routing table. Để giải quyết vấn đề này ta có thể sử dụng một giao thức IGP cho không những cho việc quảng bá

sử dụng một vùng đơn trên router A, B, C, D. Có thể xây dựng một vùng OSPF và định danh vùng AS 1 sử dụng cấu hình sau để quảng bá NEXT_HOP :

router ospf 1

network 172.16.0.0 0.0.255.255 area 51

Sau khi đã giải quyết vấn đề quảng bá NEXT_HOP. Các thông tin trong bảng định tuyên, bảng BGP sẽ thay đổi như sau :

C#show ip route | include 172.16.15.160

O 172.16.15.160/30 [110/74] via 172.16.15.130, 00:05:45, Ethernet2/0

C#show ip bgp 172.16.15.160

BGP routing table entry for 172.16.15.160/30, version 2 Paths: (1 available, best #1, table Default-IP-Routing- Table)

Not advertised to any peer 2

172.16.15.162 (metric 74) from 172.16.15.130 (172.16.15.254)

Origin incomplete, metric 0, localpref 100, valid, internal, synchronized, best

Tiếp đó các tuyến BGP đã được chuyển vào bảng routing table : C#show ip route

172.16.0.0/16 is variably subnetted, 12 subnets, 3 masks

O 172.16.15.160/30 [110/74] via 172.16.15.130, 00:08:45, Ethernet2/0

O 172.16.15.164/30 [110/50] via 172.16.15.97, 00:08:45, FastEthernet1/0

O 172.16.15.254/32 [110/11] via 172.16.15.130, 00:08:45, Ethernet2/0

C 172.16.15.253/32 is directly connected, Loopback0 O 172.16.15.252/32 [110/2] via 172.16.15.97,

00:08:46, FastEthernet1/0

C 172.16.15.32/27 is directly connected, Ethernet0/0 O 172.16.15.0/27 [110/2] via 172.16.15.97, 00:08:46, FastEthernet1/0

C 172.16.9.0/30 is directly connected, Serial0/1 C 172.16.15.96/27 is directly connected,

FastEthernet1/0 (adsbygoogle = window.adsbygoogle || []).push({});

O 172.16.15.64/27 [110/12] via 172.16.15.97, 00:08:46, FastEthernet1/0

Mạng 172.16.15.160 trong bảng routing table là một tuyến OSPF. Một câu hỏi được đặt ra là tại sao tuyến đó không phải là một tuyến IBGP ? Câu trả lời là do router C học về tuyến 172.16.15.160 thông qua OSPF và IBGP tuy nhiên OSPF có Administrative distance (AD) là 110 còn IBGP là 200 vì thế tuyến OSPF được sử dụng . Nhìn vào bảng routing table ta không thấy bất cứ tuyến BGP nào tuy nhiên khi quan sát thông tin đầu ra trên bảng BGP của router C ta nhận thấy :

C#show ip bgp

BGP table version is 2, local router ID is 172.16.15.253 tatus codes: s suppressed, d damped, h history, * valid, > best, i - internal

Origin codes: i - IGP, e - EGP, ? - incomplete

Network Next Hop Metric LocPrf Weight Path

*>i172.16.15.160/30 172.16.15.162 0 100 0 2 ?

* i172.16.16.254/32 172.16.15.162 0 100 0 2 ?

Tuyến 172.16.15.160, 172.16.16.164, 172.16.16.254 là các tuyến hợp lệ tuy nhiên 2 tuyến 172.16.16.164 và 172.16.16.254 không phải là các tuyến có đường tối ưu. Nhận định trên được kiểm chứng với tuyến 172.16.16.164 .

C#show ip bgp 172.16.16.164

BGP routing table entry for 172.16.16.164/30, version 0 Paths: (1 available, no best path)

Not advertised to any peer 2

172.16.15.162 (metric 74) from 172.16.15.130 (172.16.15.254)

Origin incomplete, metric 0, localpref 100, valid, internal, not synchronized

Các tuyến không hợp lệ trên là các tuyến không được đồng bộ. Đồng bộ là một đặc tính của IBGP. Luật đồng bộ qui định một tuyến BGP nhận từ một IBGP hàng xóm không được coi là hợp lệ nếu như tuyến đó không nằm trong bảng định tuyến.

Tuyến 172.16.15.160 trong topo trên đã được đồng bộ bởi tuyến đó đã nằm trong bảng IP routing table với vai trò của một tuyến OSPF. Các tuyến BGP 172.16.16.164 và 172.16.16.254 không nằm trong bảng định tuyến vì thế chúng được xem là không đồng bộ. Để nói rõ hơn về luật đồng bộ này ta khảo sát topo dưới đây

Hình 20 : Đồng bộ trong IBGP

Router A và B thực hiện một kết nối EBGP, Router A quảng bá tuyến 172.16.1.0/24 đến router B. Trong AS 2 một đường kết nối vật lí tồn tại giữa router B và D thông qua router C. IBGP không yêu cầu một kết nối vật lí và các Router B, D đã thực hiện được một kết nối IBGP. Các thông tin trao đổi giữa router B và D được thực hiện qua kết nối vật lí với router C tuy nhiên router C không biết được những nội dung của thông tin trao đổi này .

Router B và D phải biết được làm cách nào có thể đến được các tuyến khác. AS 2 chạy OSPF để quảng bá tất cả các tuyến trong AS 2. Tất cả những điều trên nhằm thực hiện một kết nối IBGP giữa các hai router. Giả sử đồng bộ không phải là đặc tính của IBGP chúng ta khảo sát các sự kiện sau :

1, Router A quảng bá tuyến 172.16.1.0/24 đến router B thông qua EBGP

2, Router B chấp nhận tuyến vì nó biết NEXT_HOP (NEXT_HOP được biết do tuyến được kết nối trực tiếp ). Tiếp đó tuyến được đặt vào trong bảng routing trên router B.

3, Router B quảng bá tuyến đến router D thông qua IBGP mà không thay đổi NEXT_HOP.

6, Router E chấp nhận tuyến vì biết NEXT_HOP và đặt tuyến này vào bảng routing table của nó.

7, Giả sử một host trong AS 3 gửi một gói tin đến host trên mạng 172.16.1.0/24. Host gửi gói đến router E và router E chuyển tiếp gói đến router D sau khi nó khảo sát bảng định tuyến của nó.

8, Router D nhận gói và kiểm tra địa chỉ đích để đưa ra quyết định chuyển tiếp gói tin. Gói được chuyển tới router C.

9, Router C không biết được tuyến 172.16.1.0/24 vì tuyến không được học qua OSPF hay BGP vì thế router C hủy gói.

Mặc định các router Cisco cho phép đồng bộ, câu lệnh no synchronization cho

phép tắt chế độ này. Khi đó các tuyến quảng bá bởi router D sẽ được chuyển đến bảng IP routing table trên router C.

C#show ip bgp

BGP table version is 4, local router ID is 172.16.15.253 tatus codes: s suppressed, d damped, h history, * valid, > best, i - internal (adsbygoogle = window.adsbygoogle || []).push({});

Origin codes: i - IGP, e - EGP, ? - incomplete

Network Next Hop Metric LocPrf Weight Path *>i172.16.15.160/30 172.16.15.162 0 100 0 2 ? *>i172.16.16.164/30 172.16.15.162 0 100 0 2 ? *>i172.16.16.254/32 172.16.15.162 0 100 0 2 ? C#show ip route | i B B 172.16.16.164/30 [200/0] via 172.16.15.162, 00:02:28

Tiếp tục khảo sát việc quảng bá tuyến từ router C đến router B.

Để quảng bá các tuyến từ router C đến router B, 2 router cần thiết lập một tiến trình BGP, mối quan hệ hàng xóm giữa chúng :

Router C router bgp 1 no synchronization neighbor 172.16.15.97 remote-as 1 neighbor 172.16.15.130 remote-as 1 no auto-summary Router B router bgp 1 neighbor 172.16.15.98 remote-as 1

Khảo sát thông tin đầu ra về mối quan hệ giữa các router và bảng định tuyến của router B

B#show ip bgp neighbors 172.16.15.98 | include Established

BGP state = Established, up for 00:04:22 B#show ip bgp

!no output

Từ các thông tin đầu ra ta nhận thấy router C không quảng bá bất kì tuyến BGP nào tới router B. Đặc tính này minh họa sự hoạt động khác nhau giữa IBGP và EBGP. Tất cả các router chạy IBGP không được quảng bá các tuyến học được từ một IBGP hàng xóm đến một IBGP hàng xóm khác. Sở dĩ IBGP hoạt động như vậy là do đặc tính chống loop của BGP. Do Thuộc tính AS_PATH được sử dụng để chống loop nên nó không quảng bá tuyến khi thấy AS của chính nó. Vì thế các tuyến IBGP không được quảng bá. Chính điều này khiến các IBGP routers cần một cấu hình full mesh , tất cả các routers chạy IBGP đều cần có kết nối đến tất cả các router khác chạy IBGP trong cùng

Như đã nói ở trên các IBGP hàng xóm không cần một kết nối vật lí để thiết lập mối quan hệ. Yêu cầu cần thiết ở đây chỉ là một kết nối IP giữa chúng. Tuy nhiên chúng ta sử dụng địa chỉ ở các giao diện vật lí để thiết lập mối quan hệ hàng xóm giữa các router vì thế khi các giao diện vật lí gặp lỗi cũng sẽ khiến cho kết nối BGP lỗi theo. Để giải quyết vấn đề này BGP cũng như các giao thức IGPs đưa ra giải pháp về địa chỉ loopback

Một phần của tài liệu Giao thức định tuyến BGP (Border Gateway Protocol) (Trang 38 - 49)