BGP v4
MỤC LỤC
I. Giới thiệu chung:. 4
II. Hoạt động của BGP:. 4
III. Các gói tin:. 5
1.Gói mở (Open Message):5
2. Gói cập nhật ( Update):7
3. Gói còn tồn tại (Keep Alive):8
4. Gói thông báo (Notification):8
IV. Chọn tuyến đường:. 10
1.Cơ sở thông tin định tuyến RIB( Routing Information Bases):10
2. Quá trình quyết định (Decision Process). 10
3. Lọc tuyến (Route Filtering):11
V. Các thuật ngữ sử dụng:. 11
I. Giới thiệu chung:
BGPv4 (Border Gateway Protocol version 4) là một giao thức định tuyến thông minh được sử dụng trên mạng Internet hoặc trên các mạng của các tổ chức đa quốc gia. Mục đích chính của giao thức này là kết nối rất nhiều mạng lớn hoặc các mạng riêng lẻ với nhau một cách tự động, giúp phân tải đường truyền, kết nối đa hướng và tối ưu hóa đường đi trên mạng.
Hiện nay, giao thức BGPv4 được coi là giao thức chuẩn, cốt lõi chạy trong các hệ thống định tuyến dữ liệu trên toàn bộ mạng Internet. Cũng giống như các nhà cung cấp dịch vụ đường truyền trên thế giới, các nhà cung cấp dịch vụ Internet (IXP) tại Việt Nam như VDC hay FPT cũng phải kết nối cùng một lúc đến rất nhiều các nhà cung cấp dịch vụ đường truyền Internet ở các nước khác nhau. Trên các hệ thống định tuyến ngoại biên (border gateway router) đi các hướng kết nối, các IXP phải sử dụng giao thức BGPv4 để kết nối với các hệ thống định tuyến khác. Điều này giúp đảm bảo tối đa việc kết nối đa hướng, đồng thời chia sẻ băng thông, phân tải trong các trường hợp một hoặc nhiều đường truyền bị ngắt hoặc tắc nghẽn. Để có thể sử dụng được giao thức BGP, các doanh nghiệp phải đăng ký với Trung tâm Internet Quốc gia (VNNIC) hai thông số mạng. Thứ nhất là số hiệu mạng riêng, hay còn được gọi là ASN. Số hiệu mạng này là duy nhất và giúp cho một mạng phân biệt với các mạng trên Internet. Thông số thứ hai là các giải IP thật dùng riêng. Các giải địa chỉ IP này sẽ được chia nhỏ, phân lớp và cấp phát tiếp cho các đơn vị hoặc người dùng trong mạng. Những địa chỉ IP này là duy nhất và được phép định tuyến trên Internet, điều này cũng giống như những số điện thoại của doanh nghiệp, có nghĩa là khách hàng hoặc người dùng Internet từ bất kỳ đâu trên thế giới đều có thể truy cập được đến máy chủ của doanh nghiệp được gán địa chỉ IP này. Sau đó, một gói tin khi đi ra hoặc vào mạng sẽ được tính toán để chọnhướng đi tốt nhất để đến đích, các yếu tố thời gian, độ tin cậy... sẽ được tự động tính toán.
Trong trường hợp một đường truyền bị ngắt, giao thức BGPv4 sẽ tự động chuyển sang hướng kết nối còn lại, điều này cho phép người dùng Internet có thể truy cập vào hoặc ra một cách tự động và trong suốt, đồng thời hệ thống sẽ tự cập nhật trở lại khi kết nối kia được khôi phục.
II. Hoạt động của BGP:
BGP cho phép truyền thông thông tin định tuyến giữa các hệ thống tự trị khác nhau trải khắp thế giới, cho biết rất nhiều hệ thống tự trị và sử dụng BGP để chia sẻ thông tin đinh tuyến giữa các hệ thống tự trị khác nhau. Chúng sử dụng 2 dạng BGP để thực hiện điều đó:
- External BGP (eBGP): kết nối vùng biên của các hệ thống tự trị.
- Internal BGP (iBGP): kết nối các BGP-speaker trong cùng một hệ thống tự trị.
* Phân biệt iBGP và eBGp.
- Tất cả cách thức BGP-speaker cùng trong một chính sách sẽ sử dụng iBGP để liên lạc với một BGP-speaker khác. Và đối với các BGP-speaker trong cùng chính sách sẽ phải thiết lập lân cận với các BGP-speaker khác. Điều đó có nghĩa là chúng ta phải cấu hình mạng đầy đủ cho iBGP để hoạt động đúng cách. Hay nói cách khác tất cả các thiết bị phải thiết lập kết nối TCP với thiết bị khác.
- eBGP được sử dụng giữa BGP-speaker của các hệ thống tự trị khác nhau. Giống như iBGP, BGP-speaker tham gia phải có kết nối tam giác giữa chúng. Sau đó TCP sẽ được sử dụng bởi eBGP để thiết lập lân cận.
- Sau khi đã thiết lập được lân cận, BGP-speaker sẽ sử dụng thông tin mà chúng có được từ những trao đổi để tạo một biểu đồ BGP.
- Chỉ một lần BGP-speaker thiết lập được lân cận cũng như tạo được biểu đồ BGP, thì chúng mới bắt đầu quá trình trao đổi thông tin định tuyến. Lúc khởi tạo BGP-speaker sẽ trao đổi toàn bộ bảng định tuyến BGP của nó. Sau đó chúng sẽ trao đổi thông tin cập nhật từng phần giữa các lân cận với nhau và trao đổi bản tin còn tồn tại để duy trì kết nối.
III. Các gói tin:
Giao thức BGP sử dụng 4 loại gói khác nhau bao gồm: Gói mở (Open Message), Gói cập nhật (update), Gói còn tồn tại (Keep Alive) và Gói thông báo (Notification).
1. Gói mở (Open Message):
Để tạo mối quan hệ lân cận, bộ định tuyến chạy giao thức BGP mở một kết nối TCP với lân cận và gửi một gói mở. Nếu lân cận chấp nhận quan hệ lân cận, nó trả lời bằng gói còn tồn tại, nghĩa là mối quan hệ lân cận đã được thiết lập giữa hai bộ định tuyến .
* Định dạng gói mở:
Tiêu đề BGP (BGP header)
Phiên bản (Version)
Hệ thống tự trị (Autonomous System)
Thời gian đợi (Hold Time)
Số hiệu nhận dạng BGP (BGP Identifier)
Chiều dài tham số tùy chọn (Optional Parameters Length)
Tham số tùy chọn (Optional Parameters)
Loại thông số (Parameter Type)
Chiều dài thông số (Parameter Length)
Biến thông số (Parameter Value)
- Phiên bản: Trường này có chiều dài 1 byte và được sử dụng để xác định phiên bản của các BGP-speaker từ kết quả của quá trình thăm dò với các nút lân cận. Cụ thể quá trình này như sau: BGP-speaker sẽ thử thăm dò với giá trị số phiên bản cao nhất mà cả 2 cùng hỗ trợ. Nếu giá trị số phiên bản được xác định trong trường phiên bản mà BGP-speaker khác không hỗ trợ, một bản tin lỗi sẽ được gửi về cho nơi gửi và phiên kết nối TCP sẽ bị ngắt. Quá trình trên sẽ tiếp tục cho đến khi có một giá trị số phiên bản chung được thiết lập.
- Hệ thống tự trị: Trường này có độ dài 2 byte và nó chứa đựng số hệ thống tự trị của BGP-speaker gửi. Trường này sẽ thông báo cho BGP-speaker nhận biết được giá trị của số hệ thống tự trị lân cận của nó. Và giá trị đó cũng được sử dụng để tạo nên biểu đồ BGP của BGP-speaker.
- Thời gian đợi: Trường này có độ dài 2 byte. Nó thông báo cho BGP-speaker nhận giá trị đề nghị đợi của BGP-speaker gửi. Sau khi BGP-speaker nhận được giá trị thời gian đợi từ nút lân cận nó sẽ tính toán và đưa ra giá trị thời gian đợi trong trường thời gian đợi. Nó sẽ xác định thời gian tối đa mà nơi nhận phải đợi một thông điệp từ nơi gửi (gói tồn tại hay gói cập nhật). Mỗi lần một bản tin được nhận giá trị thời gian đợi được khởi tạo về 0.
- Số hiệu nhân dạng BGP: Trường này có độ dài 4 byte và chứa đựng giá trị số hiệu BGP của BGP-speaker gửi. số hiệu BGP xác định duy nhất một BGP-speaker. Số hiệu BGP chính là địa chỉ IP cao nhất của loopback. Nếu loopback không được cấu hình thì nó chính là địa chỉ IP cao nhất của bất kỳ giao diện nào của bộ định tuyến . Giá trị này được xác định chỉ một lần và giá trị này không thay đổi trừ phi khởi động lại quy trình BGP.
- Tham số tùy chọn: Trường này có độ dài biến đổi và chứa đựng một danh sách các tham số tuỳ chọn (optional parameters) mà chúng sẽ được sử dụng trong quá trình thăm dò với nút lân cận.
- Chiều dài tham số tùy chọn: Trường này có độ dài 1 byte và nó thể hiện tổng độ dài của trường tham số tùy chọn. Nếu giá trị trường này là 0 cho biết tham số tùy chọn không được thiết lập.
- Loai thông số: Trường này có độ dài 1 byte và nhận ra từng thông số riêng lẻ.
- Chiều dài thông số: có độ dài 1 byte và chứa đựng độ dài của trường biến thông số.
- Biến thông số: Trường này có độ dài thay đổi và giải thích dựa trên giá trị của trường loại thông số.
2. Gói cập nhật ( Update):
Gói cập nhật là phần quan trọng của giao thức BGP. Nó được bộ định tuyến sử dụng để rút lại các đích đã quảng bá trước đó, thông báo một tuyến tới đích mới hoặc để thực hiện cả hai chức năng này. Chú ý rằng BGP có thể rút lại nhiều đích đã được quảng bá trước đó, nhưng nó chỉ có thể quảng bá một đích mới trong một thông báo cập nhật.
* Định dạng gói cập nhật:
Tiêu đề (BGP Header)
Chiều dài đường đi không thể tới được
(Unfeasible Routers Length)
Các tuyến rút lại
(Withdrawn Routers)
Tổng chiều dài các thuộc tính đường đi
(Total Path Attribute Length)
Các thuộc tính đường đi
(Path Attribute)
Thông tin về khả năng vươn tới tầng mạng
(Network Layer Reachability Information)
- Chiều dài đường đi không thể tới được: Trường này có độ dài 2 byte và chứa đựng độ dài của trường Các tuyến rút lại. Giá trị của nó là 0 cho biết trường Các tuyến rút lại không được thể hiện trong gói tin cập nhật.
- Các tuyến rút lại: Trường này có chiều dài biến thiên liệt kê tất cả các tuyến phải xoá khỏi danh sách được quảng bá trước đó.
- Tổng chiều dài các thuộc tính đường đi: trường này có độ dài 2 byte và chứa đựng độ dài của trường thuộc tính đường đi.
- Thuộc tính đường đi: Trường có chiều dài biến thiên này định nghĩa các thuộc tính của đường đi tới mạng được quảng bá trong gói này
- Thông tin về khả năng vươn tới tầng mạng: Trường này cũng có chiều dài biến thiên dùng để định nghĩa mạng được thực sự quảng bá trong gói này. Nó gồm 2 trường con là trường chiều dài và một tiền tố địa chỉ IP. Tiền tố định nghĩa phần địa chỉ mạng. Ví dụ, nếu mạng là mạng lớp B với phần địa chỉ mạng là 153.18 thì giá trị trường chiều dài sẽ là 16 (tương ứng 16 bít) và tiền tố là 153.18.
3. Gói còn tồn tại (Keep Alive):
Các bộ định tuyến chạy giao thức BGP trao đổi đều đặn các gói còn tồn tại (trước khi thời gian giữ của chúng hết hạn) để báo cho các bộ định tuyến khác biết rằng chúng vẫn tồn tại. Chu kỳ gửi bản tin tồn tại có giá trị bằng 1/3 giá trị thời gian đợi. Bản tin tồn tại không được gửi nếu một bản tin cập nhật trong suốt khoảng chu kỳ này.
Tiêu đề BGP (BGP Header)
4. Gói thông báo (Notification):
Gói thông báo được bộ định tuyến gửi mỗi khi có lỗi hoặc bộ định tuyến muốn đóng kết nối. Định dạng của gói thông báo này như sau:
Tiêu đề BGP (BGP header)
Mã lỗi (Error Code)
Mã lỗi phụ (Error Subcode)
Dữ liệu lỗi (Error Data)
Các trường chức năng trong gói thông báo:
- Mã lỗi: Trường 1 byte này định nghĩa loại lỗi.
- Mã lỗi phụ: Trường 1 byte này định nghĩa thêm về các kiểu lỗi trong mỗi loại mã lỗi.
- Dữ liệu lỗi: Trường có chiều dài biến thiên này được sử dụng để cung cấp thêm thông tin dùng để chuẩn đoán lỗi.
* Các loại lỗi cùng với các mã lỗi phụ:
Mã lỗi
Miêu tả mã lỗi
Miêu tả mã lỗi phụ
1
Lỗi tiêu đề gói
Có 3 mã lỗi phụ được định nghĩa cho loại lỗi này:
+ Vấn đề đồng bộ.
+ Chiều dài gói không đúng.
+ Loại gói không đúng.
2
Lỗi gói mở
Có 6 loại lỗi phụ cho loại lỗi này:
+ Phiên bản không được hỗ trợ.
+ AS không đúng.
+ Số hiệu BGP không đúng.
+ Tham số tuỳ chọn không được hỗ trợ.
+ Lỗi xác thực.
+ Thời gian giữ không thể chấp nhận.
3
Lỗi gói cập nhật
Có 11 loại lỗi phụ:
+ Danh sách thuộc tính không đúng.
+ Không nhận ra thuộc tính thông dụng.
+ Thiếu thuộc tính thông dụng.
+ Lỗi cờ thuộc tính.
+ Lỗi chiều dài thuộc tính.
+ Thuộc tính nguồn không hợp lệ.
+ Vòng lặp định tuyến.
+ Thuộc tính NEXT_HOP không hợp lệ.
+ Lỗi thuộc tính tuỳ chọn.
+ Trường mạng không hợp lệ.
+ Thuộc tính AS_PATH không đúng.
4
Bộ định thời giữ hết hạn
Không định nghĩa mã phụ
5
Lỗi máy trạng thái hết hạn
Không định nghĩa mã phụ
6
Dừng kết nối
Không định nghĩa mã phụ
IV. Chọn tuyến đường:
1. Cơ sở thông tin định tuyến RIB( Routing Information Bases):
Khi BGP-speaker đọc được một tuyến đường thì tuyến đường đó phải đi qua cơ sở thông tin định tuyến (Routing Information Base - RIB ) của nó. Tất cả BGP-speaker đều có một cơ sở thông tin định tuyến, nó bao gồm ba phần chính sau:
- Adj-Ribs-In: BGP-speaker sẽ có một Adj-RIB-In cho một lân cận của nó. Đây là nơi mà tuyến đường BGP đến được lưu giữ.
- Loc-Rib: đây là cái mà router cần dựa vào để đưa ra những quyết định định tuyến.
- Adj-Ribs-Out: Nếu một tuyến đường BGP đã lọt qua chính sách ra (outbound policy engine), thì tuyến đường đó sẽ được đưa ra Adj-RIB-Out. BGP-speaker có một Adj-RIB-Out tương ứng với một lân cận của nó. Những tuyến đường mà được đưa ra Adj-RIB-Out sẽ được quảng bá tới BGP-speaker là lân cận của nó.
* Các bước minh hoạ một quá trình xử lý BGP route:
- Bước 1: BGP-speaker nhận một tuyến đường BGP.
- Bước 2: Tuyến đường đó được đưa vào Adj-RIBs-In sau khi được nhận.
- Bước 3:Tuyến đường BGP được gửi tới chính sách vào (inbound policy engine).
- Bước 4: Chính sách vào sẽ lọc và điều khiển (manipulate) tuyến đường dựa trên chính sáchđược thiết lập bởi người quản trị bộ định tuyến. Những tuyến đường BGP được lọc sẽ bị rớt tại điểm này.
- Bước 5: những tuyến đường BGP còn lại được đưa tới Loc-RIB.
- Bước 6: BGP-speaker lưu những tuyến đó trong Loc-RIB. Router sử dụng những tuyến đó để đưa ra những quyết định định tuyến.
- Bước 7: Tuyến đường BGP được đẩy ra Chính sách ra.
- Bước 8: Chính sách ra lọc và điều khiển những tuyến đường này bởi chính sách được thiết lập bởi quản trị bộ định tuyến. Những tuyến đường bị lọc bởi chính sách ra sẽ bị rớt tại điểm này.
- Bước 9: Những tuyến đường còn lại sẽ được đẩy ra Adj-RIBs-Out.
- Bước 10: Được lưu trong Adj-RIBs-Out.
- Bước 11: Tất cả tuyến đường BGP được lưu trong Adj-RIB-Out sau đó sẽ được quảng bá tới tất cả BGP-speaker là lân cận của nó.
2. Quá trình quyết định (Decision Process):
Quá trình này sẽ quyết định những tuyến mà BGP-speaker sẽ đồng ý, rồi quảng bá chúng cho lân cận của nó. Chúng bao gồm 3 bước sau:
- Bước 1: có nhiệm vụ tính toán độ ưu tiên hơn cho mỗi tuyến học được từ một hệ thống tự trị lân cận. Bước này cũng giao nhiệm vụ quảng bá những tuyến với độ ưu tiên cao nhất tới BGP-speaker trong cùng hệ thống tự trị.
- Bước 2: diễn ra ngay sau khi bước một hoàn tất. Nhiệm vụ của bước 2 bao gồm:
+ Quyết định tuyến nào tới đích tốt nhất.
+ Sau đó lưu chúng trong Loc-RIB của BGP-speaker
+ BGP-speaker sử dụng những tuyến thiết lập trong bước này để đưa ra quyết định định tuyến.
- Bước 3: diễn ra khi một BGP-speaker quyết định dựa trên chính sách được thiết lập tại chính sách ra những tuyến mà nó sẽ quảng bá tới lân cận của nó trong các mạng lân cận . Bộ định tuyến tập hợp cũng có thể được thực hiện trong quá trình này.
3. Lọc tuyến (Route Filtering):
Lọc tuyến cho BGP có thể được vì nhiều lý do khác nhau. Nó có thể được sử dụng để tác chế thuộc tính của một tuyến BGP. Lọc tuyến cũng có thể được sử dụng để cho phép hay từ chối những tuyến được quảng bá bởi BGP-speaker khác.
Lọc tuyến có thể là lọc tuyến vào (Ingress filtering) hay lọc tuyến ra (Egress filtering).
- Lọc tuyến vào: Có thể xảy ra khi một tuyến được nhận bởi BGP-speaker và đưa tới chính sách đầu ra. Tại điểm này, quản trị hệ thống có thể tạo một cách thức mà nó sẽ đồng ý hay từ chối những bộ định tuyến nào đó. Quản trị hệ thống cũng có thể thiết lập các cách thức nào đó, mà nó sẽ tác chế thuộc tính của tuyến BGP.
Ví dụ: Quản trị hệ thống có thể tác chế sự ưu tiên của một tuyến. Bằng cách này quản trị hệ thống có thể điều khiển tốt hơn tuyến nào sẽ được lưu trong Loc-RIB của BGP-speaker.
- Lọc ra: Xảy ra khi một tuyến được đưa tới chính sách đầu ra. Chức năng của lọc ra tương tự như lọc vào. Chỉ có sự khác biệt là BGP-speaker đưa ra quyết định những tuyến sẽ được quảng bá tới lân cận của nó và tác chế những thuộc tính của những tuyến đó.
V. Các thuật ngữ sử dụng:
- BGP-speaker: bất cứ thiết bị nào mà chạy quy trình định tuyến BGP đều được coi là một BGP-speaker .
- eBGP (External Border Gateway Protocol): giao thức định tuyến được sử dụng để trao đổi thông tin định tuyến giữa các BGP lân cận của các hệ thống tự trị khác nhau.
- TCP (Transmission Control Protocol): Giao thức điều khiển chuyển đổi.
- iBGP (Internal Border Gateway Protocol): giao thức định tuyến sử dụng để trao đổi thông tin định tuyến giữa các BGP lân cận của cùng chung một hệ thống tự trị.
- Inter-AS routing: định tuyến xảy ra giữa các hệ thống tự trị khác nhau.
- Intra-AS routing: định tuyến xảy ra trong cùng một hệ thống tự trị.
Bạn đang đọc truyện trên: Truyen247.Pro