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

BGP CƠ BẢN ppt

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (164.71 KB, 14 trang )

BGP CƠ BẢN
Tác giả: Đng Quang Minh
BGP CƠ BẢN
Sự cần thiết của BGP
BGP là một giao thức khá phức tạp được dùng nhiều trên Internet và trong các công ty
đa quốc gia. Mục đích chính của BGP là kết nối các mạng rất lớn hoặc các
Autonomous-System. Các công ty lớn có thể dùng BGP như là một kết nối giữa các
mạng ở các quốc gia khác nhau. Mục đích của các giao thức ngoại như BGP là không
chỉ tìm ra một đường đi về một mạng nào đó mà còn cho phép người quản trị tìm ra các
AS của các network. Các giao thức nội như EIGRP, RIP, OSPF và ISIS sẽ tìm ra
network mà người quản trị cần.
Một số tính chất của BGP
BGP là một giao thức định tuyến dạng path-vector nên việc chọn lựa đường đi tốt nhất
thông thường dựa trên một tập hợp các thuộc tính được gọi là ATTRIBUTE. Do sử
dụng metric khá phức tạp, BGP được xem là một giao thức khá phức tạp. Nhiệm vụ của
BGP là đảm bảo thông tin liên lạc giữa các AS, trao đổi thông tin định tuyến giữa các
AS, cung cấp thông tin về trạm kế cho mỗi đích đến. BGP sử dụng giao thức TCP cổng
179. Như các chương trước đã đề cập, các giao thức nhóm distance vector thường quảng
bá thông tin hiện có đến các router láng giềng, còn path vector chỉ ra chính xác danh
sách toàn bộ đường dẫn đến đích. Ngoài ra các giao thức định tuyến hoạt động dùng
path vector giúp việc xác định vòng lặp trên mạng rất tốt bằng cách xem xét các con
đường mà các router khác gởi về xem có chính bản thân AS trong đó hay không, nếu có
sẽ biết được ngay là lặp, và sẽ loại bỏ.
BGP hỗ trợ cho các địa chỉ CIDR (Classless Interdomain Routing). BGP cho phép dùng
xác thực và BGP có các cơ chế keepalive định kỳ nhằm duy trì quan hệ giữa các BGP
peers.
Trong giai đoạn ban đầu của của phiên thiết lập quan hệ BGP, toàn bộ các thông tin
routing-update sẽ được gửi. Sau đó, BGP sẽ chuyển sang cơ chế dùng trigger-update.
Bất kỳ một thay đổi nào trong hệ thống mạng cũng sẽ là nguyên nhân gây ra trigger-
update.
Một trong các đặc điểm khác biệt nhất của BGP là trong các routing-update của nó. Khi


ta xem xét các BGP update, ta sẽ nhận thấy các routing update này là khá chính xác.
BGP không quan tâm đến việc giao tiếp để có đầy đủ kiến thức của tất cả các subnet bên
trong một công ty mà BGP quan tâm đến việc chuyển tải đầy đủ thông tin để tìm một
AS khác. Các BGP update thực hiện quá trình summarization đến một mức tối đa bằng
cách cho phép một số AS, cho phép một số prefix và một vài thông tin định tuyến. Tuy
nhiên, một phần nhỏ của BGP update là khá quan trọng. BGP đảm bảo rằng lớp
transport đã truyền các update và các cơ sở dữ liệu về đường đi đã được đồng bộ. BGP
có thể được hiện thực bao gồm giữa các AS khác nhau hay trong cùng 1 AS. Khi dùng
BGP để kết nối các AS khác nhau, BGP được gọi là eBGP. Giao thức này cũng có thể
được dùng để mang thông tin giữa các router eBGP trong một AS. Khi đó BGP được
gọi là iBGP.
Trong một AS ta sử dụng giao thức định tuyến nội IGP (ví dụ như RIP, ISIS, EIGRP,
OSPF) nhưng khi ra ngoài một AS thì phải sử dụng một giao thức khác. Vấn đề ở đây
chính là mục đích của các IGP và EGP không giống nhau. Các IGP thực hiện định tuyến
gói đi từ nguồn đến đích mà không cần quan tâm đến chính sách định tuyến (policy).
Trong khi ra khỏi phạm vi một AS thì chính sách định tuyến lại là vấn đề quan trọng .
Xét ví dụ sau:
AS4 AS1 AS2 AS3 (C Company)
| |
| |
B Company A Company
Giả sử A muốn truyền dữ liệu đến AS4. A và B là 2 đối thủ của nhau. B không muốn
chuyển dữ liệu cho công ty A nên A chỉ có thể chuyển dữ liệu thông qua AS3, AS2,
AS1 để đến được AS4, mặc dù con đường thông qua công ty B có thể là tối ưu nhất. Giả
sử C thuộc AS3 cũng muốn đến AS4 nhưng C là đối tác của B nên B sẵn sàng cho quá
giang. Như vậy A và C có cùng một đích đến nhưng phải đi theo những cách khác nhau.
Các IGP không thể làm được điều này vì một nguyên nhân chủ yếu chính là các giao
thức đó đều liên quan đến metric hay là cost mà hoàn toàn không quan tâm đến chính
sách định tuyến. Nó chỉ biết cố gắng làm sao chuyển được các gói dữ liệu đến đích một
cách hiệu quả và tối ưu nhất.

Các thuật ngữ BGP
STT THUẬT NGỮ ĐỊNH NGHĨA
1 Aggregation Là quá trình tóm tắt các route – (summarization)
2 Attribute
Tương tự như metric. Các biến này sẽ mô tả các đặc điểm của đường
đi tới một địa chỉ đích nào đó. Khi được định nghĩa, các đặc điểm này
có thể được dùng để ra quyết định về nên đi theo đường đi nào.
3 Autonomous
System
Định nghĩa mạng của một tổ chức. Trong một AS, các
router sẽ có cùng giao thức định tuyến. Nếu ta kết nối ra
Internet, chỉ số AS này phải là duy nhất và được cung cấp
bởi các ủy ban Internet.
4 Exterior
Gateway
Protocol (EGP)
Thuật ngữ chung cho một giao thức được chạy giữa các
AS khác nhau. Cũng có một giao thức có tên là EGP là
tiền thân của BGP
5 EBGP
Gửi thông tin định tuyến giữa các AS khác nhau
6 Interior
Gateway
Protocol (IGP)
Đây là các giao thức định tuyến chạy bên trong một AS.
Trong quá khứ, thuật ngữ gateway thường được dùng để
định nghĩa một router.
7 IBGP Giao thức này được dùng bên trong một AS. Các router
không yêu cầu phải là láng giềng của nhau về phương
diện kết nối vật lý và thường ở ngoài rìa của một AS.

IBGP được dùng giữa các router chạy BGP trong cùng
một AS.
8 Originator-ID Đây là thuộc tính của BGP. Nó là một thuộc tính tùy
chọn. Thuộc tính này sẽ chứa giá trị routerID của router
đã phát sinh ra đường đi đó. Mục đích của thuộc tính này
là ngăn ngừa routing loop. Nếu một router nhận được một
update từ chính nó, router đó sẽ bỏ qua update đó.
9
policy-based
Cơ chế này cho phép người quản trị lập trình giao thức
routing
định tuyến bằng cách định nghĩa traffic sẽ được route như
thế nào. Đây là một dạng của định tuyến tĩnh. PBR độc
lập với các giao thức định tuyến và dùng route-map để tạo
ra các quá trình riêng lẽ để áp đặt các quyết định định
tuyến.
10 prefix list Prefix list được dùng như một thay thế cho distribute-list
để kiểm soát BGP học hoặc quảng bá các cập nhật như thế
nào. Prefix-list thì nhanh hơn, uyển chuyển hơn và ít tốn
tài nguyên của hệ thống hơn.
11 Route-reflector
Đây là router được cấu hình để chuyển các routes từ các router iBGP
khác. Khi cấu hình route-reflector, các iBGP không cần phải fully-
mesh nữa. Một mạng fully-mesh thì không có khả năng mở rộng.
12
Route-Reflector
Client
Một client là một router có một TCP session với một
router khác hoạt động như một route-reflector-server.
Client không cần thiết phải thiết lập peer với các client

khác.
13
Route_reflector
Clustor
Một cluster là một nhóm bao gồm một route-reflector và
clients. Có thể có nhiều hơn một route-reflector server
trong một cluster.
14
transit autonomous
system
Là AS được dùng để mang các BGP traffic qua các AS
khác.
Khi nào thì dùng BGP?
Khi mạng của một công ty kết nối đến nhiều ISP hoặc các AS khác và đang dùng các
kết nối này. Nhiều công ty dùng các kết nối khác nhau nhằm mục đích dự phòng. Chi
phí có thể giảm thiểu nếu tất cả các kết nối đều được dùng. Trong trường hợp này, PBR
có thể cần thiết để triển khai trên từng kết nối. BGP còn được dùng khi chính sách định
tuyến của nhà cung cấp dịch vụ và của công ty khác nhau. Hoặc traffic trong công ty
cần phải được phân biệt với traffic của ISP. Mạng của hai tổ chức không thể xuất hiện
như một AS. Một trường hợp khác phải dùng BGP là khi mạng của ta là một ISP. Nếu
là một ISP, hệ thống mạng này phải cho phép các traffic khác đi qua AS của mình. Lúc
này nó hoạt động như một transit domain.
Khi nào thì không dùng BGP?
Một hệ thống mạng đơn giản là một hệ thống mạng dễ dàng quản lý và bảo trì. Đây là lý
do chính để tránh dùng BGP trong một hệ thống mạng. Vì vậy, nếu hệ thống mạng có
các đặc điểm sau, nên dùng những cách thức khác, chẳng hạn như static hoặc default-
routing.
- Mạng của ISP và mạng của công ty có chung một chính sách định tuyến
- Mặc dù công ty của bạn có nhiều kết nối đến ISP, các kết nối này là dự phòng
và vì vậy không cần một kế hoạch để kích hoạt nhiều hơn một kết nối đến

Internet.
- Tài nguyên mạng là có giới hạn, chẳng hạn như bộ nhớ và CPU của router.
- Băng thông giữa các AS là thấp và các phí tổn cho định tuyến sẽ ảnh hưởng đến
quá trình chuyển dữ liệu.
Một số thuộc tính quan trọng của BGP
BGP định tuyến traffic bằng cách sử dụng các thuộc tính. Việc sử dụng các thuộc tính
ám chỉ đến việc sử dụng các biến trong quá trình chọn lựa đường đi trong BGP. Các
thuộc tính của BGP không chỉ là danh sách các biến mà qua đó route được chọn lựa.
Một vài thông tin được mang trong các thông điệp cập nhật là quan trọng hơn các thông
tin khác. Một số thông tin khác là rất quan trọng cho hoạt động của BGP, vì vậy các
thông tin này phảI được mang đến tất cả các router BGP trong mạng. Quá trình chọn lựa
đường đi dựa trên những thuộc tính và các giá trị của nó. Các thuộc tính được chia
thành hai nhóm: nhóm nổI tiếng (well-known) và nhóm tùy chọn (optional). Cả hai
nhóm này sẽ được tiếp tục chia ra làm các nhóm con.
NHÓM MÔ TẢ
Well-known mandatory
Các thuộc tính này là bắt buộc và được công nhận bởi tất cả các
router BGP
Well-known Discretionary Không yêu cầu các thuộc tính này tồn tại trong các cập nhật
nhưng nếu chúng tồn tại, tất cả các router sẽ công nhận và sẽ có
hành động tương ứng dựa trên thông tin được chứa bên trong
thuộc tính này.
Optional Transitive Router có thể không công nhận các thuộc tính này
nhưng nếu router nhận được thuộc tính này, nó sẽ
đánh dấu và gửi đầy đủ cập nhật này đến router kế
tiếp. Các thuộc tính sẽ không thay đổi khi đi qua
router nếu thuộc tính này không được công nhận bởi
router.
Optional Nontransitive Các thuộc tính này bị loại bỏ nếu cập nhật mang
thuộc tính này đi vào router mà router không hiểu

hoặc không công nhận thuộc tính. Các thuộc tính này
sẽ không truyền tới các BGP.
1. Thuộc tính AS_PATH: Đây là thuộc tính quan trọng trong việc xác định đường đi tối
ưu, mang 2 chức năng. Thứ nhất, AS_PATH càng ngắn càng được router ưu tiên hơn.
(ví dụ từ AS3 đến AS4 có 2 con đường khác nhau: AS3 - B - AS4, hoặc AS3 - AS2 -
AS1 – AS4 thì router sẽ ưu tiên con đường ngắn hơn là qua B). Chức năng thứ hai là
ngăn ngừa vòng lặp. Bởi vì thuộc tính AS_PATH rất quan trọng cho quá trình hoạt động
của BGP nên tất cả các nhà cung cấp phải hỗ trợ nó và là một thuộc tính mang tính bắt
buộc, nghĩa là tất cả các bộ định tuyến phải chuyển thuộc tính này đến tất cả các láng
giềng trong mọi thông điệp cập nhật của BGP.
2. Thuộc tính nguồn gốc (Origin-attribute): là một thuộc tính xác định nguồn gốc của
các routing thông tin cập nhật định tuyến. Nếu là “i ” thì chỉ rằng routing thông tin cập
nhật định tuyến được biết thông qua một IGP (RIP, OSPF…). Nếu giá trị “e” thì routing
thông tin cập nhật định tuyến được biết thông qua một EGP. Nếu giá trị “?”
(incomplete) thì chỉ rằng không biết nguồn gốc của routing thông tin cập nhật định
tuyến. (Điều này có thể xuất hiện nếu routing thông tin cập nhật định tuyến được biết
thông qua IGP rồi sau đó lại được thông báo qua EGP.). Khi nó học đường bằng lệnh
network thì nó để thuộc tính này là: i. Khi nó học đường qua các lệnh như redistribute
v.v thì nó để thuộc tính là: “?”.Còn sau đó các mạng này được quảng bá tới các EGP
router láng giềng thì thuộc tính này được đổi thành e vì router mới học được các tuyến
đường này nhờ EGP. Thuộc tính origin không thay đổi qua giao thức EBGP mà vẫn giữ
nguyên. Thuộc tính origin là e khi tuyến được học từ giao thức EGP (đây là giao thức
định tuyến giữa các AS, được sử dụng nhiều trên Internet khi BGP chưa ra đời nhưng
hiện nay hầu như không còn được sử dụng)
Next-Hop attribute:
Trong eBGP, giá trị next-hop là địa chỉ IP của router từ bên ngoài của vùng tự trị AS
quảng bá vào bên trong AS. Địa chỉ IP được chỉ ra bởi lệnh neighbor. Tuy nhiên trong
môi trường multiaccess, nếu một route đến từ một router, sẽ là không khôn ngoan nếu
một router quảng bá địa chỉ của nó như là địa chỉ nguồn vì điều này sẽ dẫn đến việc các
packets bị gửi đến vài router trên mạng multiacess trước khi có thể tìm ra được nguồn

gốc xuất phát thật sự. Vì vậy, có một luật rằng, địa chỉ của router xuất phát gói tin BGP
sẽ vẫn giữ như địa chỉ nguồn.
Khi BGP khai báo một mạng, router tự định rõ bản thân router đó như là Next Hop. Tuy
nhiên, nếu router đó gởi thông điệp update cho một router láng giềng khác trong cùng
một AS thì nó lại tiếp tục dùng router ngoài AS làm Next hop. Do đó ta phải cấu hình
cho các router còn lại trong AS biết được chính router ở biên cùng AS với nó là router
Next Hop chứ không phải là router khác AS.
Bước 1: Router A gửi cập nhật về mạng 192.33.33.0
Bước 2: Router D nhận update và truyền. Tuy nhiên nếu routerD thay đổi địa chỉ
source-address thành địa chỉ địa chỉ của chính nó, sẽ có một sự nhầm lẫn xảy ra vì trong
môi trường multiaccess, mọi router sẽ công bố nó là next-hop. Để tránh tình huống này,
địa chỉ nguồn của update không thay đổi.
Bước 3: Router B biết routerA là next-hop của mạng 192.33.33.0
The Next-Hop Attribute and a Nonbroadcast Multiaccess Network
Cũng giống như trong môi trường multiaccess, một mạng NBMS cũng tuân theo cùng
một qui luật. Tuy nhiên sẽ có tiềm ẩn một vấn đề vì các router khác sẽ không có khả
năng kết nối trực tiếp với router nguồn nếu đám mây NBMA có cấu hình hub-and-
spoke.
Thuộc tính Nexthopself trong BGP
150.10.0.0 (AS 100)
RouterA (150.10.3.1) IBGP RouterB |
|(170.10.20.1)
|
| (170.10.20.2)
RouterC
|_ 170.10.0.0 (AS 300)
Thuộc tính BGP nexthop là một địa chỉ next hop IP mà nó sẽ được dùng để đi đến một
số mạng đích. Đối với EBGP, next hop luôn luôn là địa chỉ IP của router láng giềng đã
được khai báo trong câu lệnh neighbor. Theo ví dụ trên, RouterC sẽ quảng cáo network
170.10.0.0 cho RouterA với một next hop là 170.10.20.2 và ngược lại RouterA sẽ quảng

cáo lại 150.10.0.0 cho RouterC với một next hop là 170.10.20.1. Đối với IBGP, có một
nguyên tắc là: “the next hop advertised by EBGP should be carried into IBGP”. Chính
vì quy luật này, nên Router A sẽ quảng cáo lại 170.10.0.0 cho các IBGP peer của nó,
trong trường hợp này là RouterB với một next hop là 170.10.20.2. Vì thế, lúc này
RouterB sẽ có next hop để đi đến network 170.10.0.0 sẽ là 170.10.20.2 chứ KHÔNG
phải là 150.10.30.1
Lúc này thì bạn phải đảm bảo rằng RouterB có thể reach 170.10.20.2 thông qua IGP,
nếu không RouterB sẽ drop những packet có dest. là 170.10.0.0 vì lúc này địa chỉ next
hop address trở nên inaccessible. Đến đây thì bạn hãy hình dung nếu như trong môi
trường NBMA, và có thêm một RouterD (network 180.20.0.0) được thêm vào trong AS
300, mà RouterA không có PVC kết nối trực tiếp đến RouterD thì lúc này nexthop của
RouterD quãng cáo cho RouterA mà RouterA sẽ không reach được. Lúc này routing sẽ
fail. Để khắc phục tình trạng này thì NEXT-HOPE-SELF được sử dụng.
neighbor {ip-address| peer-group-name1 } next-hop-self
Câu lệnh này sẽ cho phép áp đặt BGP dùng địa chỉ mình khai báo thành next hop thay
vì để BGP tự chọn next hop.
RouterC#
router bgp 300
neighbor 170.10.20.1 remote-as 100
neighbor 170.10.20.1 next-hop-self
RouterC sẽ qủang cáo 180.20.0.0 với NextHop = 170.10.20.2. Next-hop-self chỉ có lợi
trong môi trường nonmeshed.
Local-Preference attribute: Đây là thuộc tính không bắt buộc (tức là không cần phải
xuất hiện trong thông điệp Update), chỉ mang ý nghĩa cục bộ trong phạm vi AS mà
không bao giờ gởi ra khỏi AS đó. Nó được truyền đến các local BGP neighbors. Thuộc
tính Local-Preference cho phép chúng ta chọn con đường mong muốn nhất ra khỏi một
AS.
Weight attribute: Đây cũng là thuộc tính không bắt buộc, các nhà cung cấp không cần
phải hỗ trợ cho nó. Thực tế thuộc tính chỉ được cung cấp cho một bộ định tuyến đơn và
không gởi trong bất kỳ thông điệp Update nào. Thuộc tính Weight được dùng để điều

khiển hướng truyền các local packet đến router khi router đó có hai route khác nhau ra
khỏi AS(multihomed).
Thuộc tính MULTI_EXIT_DISC (MED)
Đây là thuộc tính được AS dùng để tham chiếu cho việc nên chọn router nào để đi đến
cùng một đích trong một AS. Trong BGP cũng có một ATTRIBUTE được gọi là metric,
đó là MED (Multiexit Discrimination). Tuy nhiên MED này có ý nghĩa hơi khác so với
metric trong các IGP. BGP dùng MED (metric) để hướng dẫn cho các router láng giềng
lựa chọn đường đi tốt nhất. MED(multiple-exit-discriminator) là 1 attribute của BGP, nó
giới thiệu về những router láng giềng bên ngoài về 1 mạng được chọn vào 1 AS có
nhiều exit point, cái nào có MED thấp hơn sẽ được chọn (do đó có lẽ nó giống với
metric), không giống như Local Preference, MED được trao đổi giữa các AS nhưng nó
sẽ không ra khỏi AS đó nếu nó đã vào (khi 1 thông tin cập nhật định tuyến vào 1 AS với
giá trị MEd xác định thì nó sẽ được sử dụng để thực hiện quyết định trong nội bộ AS đó
.Nếu 1 route xuất phát từ chính AS thì MED sẽ được tính theo metric của IBGP. MED
là một attribute yếu (trong thứ tự route-selection của BGP), nên để control được nó cần
phải care được các thuộc tính có mức ưu tiên cao hơn (weight-localpreference-
originate-ASpath-origin code). Hơn nữa, originated AS không thể điều khiển quá trình
đặt MED trên các originating AS (neighbor AS), hoặc ngược lại, nên hiếm khi được
dùng trong thực tế. Ngoài ra, với nhiều Customer với các yêu cầu chính sách chọn
outgoing traffic khác nhau, MED không hiệu quả. Người ta hay sử dụng community
attribute để giải quyết vấn đề chọn incomming traffic thay cho as-path prepending hoặc
MED.
Communtity attribute:
Đây là một thuộc tính không bắt buộc. Thuộc tính này được dùng để cung cấp chính
sách cho một nhóm các router đi qua các AS. Do đó các router này có cùng một tính
chất và có chung chính sách. Nếu một router nhận được một thông điệp Thông tin cập
nhật định tuyến với thuộc tính Community được thiết lập,nó sẽ xử lý thông điệp này
một cách hợp lí. Nếu nó không hiểu thông điệp này thì sẽ gửi thuộc tính đó cho router
láng giềng router xử lý. (Tuy nhiên, nếu nó hiểu thì sẽ không bao giờ gửi thuộc tính đó
cho láng giềng router trừ khi được chỉ định làm thêm điều gì đó).

Tổng quan hoạt động của BGP
BGP là một giao thức hướng kết nối. Khi thiết lập một quan hệ neighbor, một phiên làm
việc TCP sẽ được thiết lập và duy trì. BGP sẽ gửi ra các thông điệp keepalive để kiểm
tra đường truyền và duy trì phiên làm việc TCP này. Các thông điệp keepalive này chỉ là
những header có giá trị 19-bytes. Sau đó các router sẽ gửi các cập nhật định kỳ chỉ khi
có thay đổi xảy ra. Sau khi đã điều chỉnh bảng BGP, quá trình BGP sẽ truyền đến tất cả
các láng giềng các thay đổi.
Có 4 kiểu thông điệp được dùng trong BGP:
Thông điệp Open: được dùng để thiết lập kết nối với các router BGP khác.
Thông điệp keepalive: được gửi định kỳ giữa các BGP peers để duy trì kết nốI và để
kiểm tra đường đi. Các thông điệp keepalive này được gửi theo cơ chế không tin cậy.
Nếu khoảng thời gian định kỳ được gán về bằng 0, sẽ không có thông điệp keepalive
nào được gửi.
Thông điệp cập nhật: chứa các đường đi về các địa chỉ đích và các thuộc tính của
đường đi. Các cập nhật bao gồm các route không còn tồn tại. Thông tin chứa trong các
cập nhật bao gồm các thuộc tính về đường dẫn, bao gồm thuộc tính origin, AS_PATH,
neighbor.
Thông điệp Notification: được dùng để thông báo cho các router khác về những
nguyên nhân gây ra kết nối bị ngắt.
CIDR và Route Aggregation
BGP cần phải truyền một số thông tin giữa các AS nhưng có lẽ không phải tất cả các
thông tin là cần thiết. Nếu hệ thống mạng được thiết kế để hỗ trợ quá trình
summarization, tổng số tài nguyên mạng sẽ được giảm đi bởi vì có rất ít bộ nhớ, băng
thông và CPU được dùng để gửi bảng định tuyến. Thật ra, bằng cách tóm tắt các lớp địa
chỉ IANA, mạng Internet sẽ trở thành một một môi trường nhanh hơn và tin cậy hơn.
Cách dùng CIDR là một trong những giải pháp được dùng nhiều trong những năm gần
đây. Các địa chỉ sẽ được hợp nhất lại thành một số địa chỉ dạng summary. Thay vì một
địa chỉ có một giá trị netmask để nhận ra phần địa chỉ network, nó sẽ có một giá trị
prefix mask. Giá trị này đơn giản là một con số chỉ ra số bit đã dành cho phần network.
Quá trình summarization sẽ giảm thiểu số prefix. Nếu một mạng được cấp tám địa chỉ

lớp C, nó có thể được quảng bá như một network.
BGP sẽ truyền các prefix và các prefix mask. Một router có thể truyền route đã được
tóm tắt, các route riêng lẽ chưa được summarize hoặc truyền cả hai.


Cơ chế hoạt động của IBGP
IBGP không thay đổi thuộc tính AS-PATH của một tuyến do đó để chống loop, sử dụng
qui luật split-horizon: một BGP peer sẽ không gởi các tuyến được học từ IBGP đến một
BGP peer khác. Như vậy, để có thể forward dữ liệu cho các AS khác, các router của
transit AS phải thực hiện:
- Giải pháp thứ nhất: phân phối lại các tuyến BGP vào IGP để thỏa mãn qui luật đồng
bộ, nhưng phương pháp này không nên sử dụng trong các mạng core của ISP do số
tuyến trên Internet rất lớn, các IGP được thiết kế không phải để có thể quản lý số tuyến
quá lớn như vây, ngoài ra, nếu dùng phương pháp này thì khi có sự thay đổi về 1 tuyến
trên Internet sẽ làm các IGP phải thực hiện giải thuật tìm đường -> chiếm nhiều CPU và
bộ nhớ gây mất ổn định.
- Giải pháp thứ hai: các BGP peer được full-mesh để đảm bảo các router đều có
đủ thông tin định tuyến để forward packet. Khi này có thể tắt chức năng đồng bộ
của IBGP. Nhưng full-mesh dẫn đến việc khó quản lý, tốn băng thông để cập
nhật định tuyến, tốn CPU,mem. Có 2 cách để giải quyết vần đề này. Sử dụng
Route Reflector: thay đổi qui luật split-horizon của IBGP. Các RR có thể gởi các
tuyến IBGP đến các BGP peer khác. Để chống lặp vòng, các RR thêm vào các
thuộc tính: cluster-id và originator. Sử dụng Confederation: thay đổi cách xử lý
AS-PATH của IBGP: Chia một AS thành nhiều member-AS. BGP giữa các BGP
peer thuộc các member-AS khác nhau sẽ là EBGP (tức là sẽ thêm member-AS
vào AS-PATH để chống loop) nhưng các thuộc tính khác như Local Preference,
MED, Next-hop sẽ không thay đổi. Ưu điểm của giải pháp này là các member-
AS có thể được quản lý độc lập, tăng khả năng chính sách định tuyến routing.
Các member-AS có thể sử dụng các IGP khác nhau. Nhưng quản lý một
Confederation thì có thể sẽ rất phức tạp do đó nó chỉ thích hợp cho các ISP cực

lớn (các ISP kết nối trực tiếp vào các điểm trung chuyển quốc tế như NAP, )
hoặc các công ty đa quốc gia cần có sự linh động và độc lập giữa các thành phần
của hệ thống. Để lựa chọn tuyến cho các Incoming traffic, có thể sử dụng các
cách sau. Sử dụng thuộc tính MED: cách này ít sử dụng do MED là một thuộc
tính yếu và non-transitive. Sử dụng community: phương pháp này đòi hỏi phải
được upstream ISP hỗ trợ, chỉ ảnh hưởng đến ISP trực tiếp, trong nhiều trường
hợp không làm việc tốt. Sử dụng AS-Prepend: phương pháp này được sử dụng
thông dụng hơn do có thể làm việc tốt trong tất cả các mô hình. Nhưng một điều
cần phải nhớ, quyết định tuyến cho Incoming traffic rất khó thực hiện chính xác
do các AS khác có thể thay đổi các attribute.
Để set metric, bạn có thể dùng lệnh default-metric
Router(config-router)#default-metric number
hoặc có thể dùng route-map:
router bgp 100
neighbor 1.1.1.1 route-map freddy out
!
ip as-path access-list 1 permit ^690_
ip as-path access-list 2 permit .*
!
route-map freddy permit 10
match as-path 1
set metric 127
!
route-map freddy permit 20
match as-path 2
trong ví dụ trên, các route ở as 690 sẽ được set metric là 127.

Tóm tắt giải thuật tìm đường đi tốt nhất của BGP.
BGP sẽ gán đường đi hợp lệ đầu tiên như là đường đi tốt nhất hiện có. Sau đó BGP sẽ
so sánh đường đi tốt nhất này vớI đường đi kế tiếp trong danh sách cho đến khi nào

hoàn tất tất cả các đường trong danh sách các đường đi hợp lệ. DướI đây là danh sách
các luật được dùng để xác định đường đi tốt nhất.
* Ưu tiên đường đi có trọng số WEIGHT cao nhất. WEIGHT là một thông số do Cisco
đưa ra. Thông số này chỉ có ảnh hưởng trong phạm vi nội bộ của router được cấu hình
dùng thông số này.
* Ưu tiên đường đi có LOCAL_PREF cao nhất. Những đường đi không có thuộc tính
LOCAL_PREF sẽ có giá trị mặc định là 100.
* Ưu tiên những đường đi có nguồn gốc từ lệnh network hoặc lệnh aggregate hoặc
thông qua quá trình redistribution từ một IGP. Các đường đi có nguồn gốc từ lệnh
network hoặc lệnh redistribution được ưu tiên hơn những đường đi có nguồn gốc từ lệnh
aggregate.
* Ưu tiên những đường đi có thuộc tính AS_PATH ngắn nhất. Bước này sẽ bị bỏ qua
nếu biến bgp bestpath as-path được cấu hình. Một tập hợp AS_SET sẽ được đếm từ 1,
bất chấp có bao nhiêu AS bên trong tập hợp. Các biến AS_CONFED_SEQUENCE và
AS_CONFED_SET sẽ không bao gồm trong AS_PATH.
* Ưu tiên các đường đi có nguồn gốc thấp nhất. IGP thì thấp hơp EGP và EGP thì thấp
hơn INCOMPLETE.
* Ưu tiến những đường đi có giá trị MED nhỏ nhất. Sự so sánh này chỉ được thực hiện
nếu AS đầu tiên là giống nhau cho cả hai đường đi. Bất cứ một AS con nào của
confederation sẽ bị bỏ qua. Nói cách khác, MED được so sánh chỉ nếu giá trị AS đầu
tiên trong AS_SEQUENCE là giống nhau. Nếu lệnh bgp always-compare-med được cấu
hình, MED được so sánh cho tất cả các đường đi có thể. Nếu dùng chọn lựa này, tất cả
các router trong AS phảI được cấu hình vớI chọn lựa bgp always-compare-med, nếu
không routing loop sẽ xảy ra. Nếu thông số bgp bestpath med-confed được cấu hình,
MED sẽ được so sánh trên tất cả các đường đi mà chỉ chứa biến
AS_CONFED_SEQUENCE ( là những đường đi xuất phát từ local confederation).
Những đường đi được nhận từ một router láng giềng có giá trị MED là 4,294,967,295 sẽ
có giá trị MED thay đổI đến 4,294,967,294 trước khi được chèn vào bảng BGP. Những
đường đi được nhận mà không có MED được cấu hình sẽ được gán giá trị MED bằng 0.
* Ưu tiên những đường đi eBGP so vớI iBGP. Nếu đường đi tốt nhất được chọn lựa,

qua bước 9.
* Ưu tiên những đường đi có IGP metric thấp nhất đến BGP next-hop.
* Kiểm tra xem có nhiều đường đi dự phòng cần phải cài đặt vào bảng routing hay
không. Nếu cả hai đường đi là từ bên ngoài, ưu tiên đường đi được nhận trước (đường
đi cũ nhất). Bước này sẽ bị bỏ qua nếu
-Lệnh bgp best path compare-routerid được dùng
-RouterID là giống nhau cho nhiều đường đi vì các routes được nhận từ cùng 1 router.
-Hiện tại không có một đường đi tốt nhất.
* Ưu tiên những đường đi đến từ BGP router có routerID nhỏ nhất. Giá trị routerID là
địa chỉ IP cao nhất trên router. Giá trị này cũng có thể được gán bằng lệnh bgp router-id.
Nếu một đường đi chứa 1 route-reflector, thuộc tính Originator ID của Route-Reflector
sẽ thay thế cho routerID.
* Nếu RouterID là giống nhau cho nhiều đường đi, ưu tiên đường đi có số cluster là ít
nhất. Điều này chỉ đúng trong môi trường BGP route-reflector. Nó cho phép những
thành viên trong Route-Reflector thiết lập quan hệ peer vớI các thành viên trong các RR
khác.
* Ưu tiên những đường đi đến từ những láng giềng có địa chỉ thấp nhất. Địa chỉ này là
địa chỉ được dùng trong lệnh neighbor.

Tài liệu bạn tìm kiếm đã sẵn sàng tải về

Tải bản đầy đủ ngay
×