• If this is your first visit, be sure to check out the FAQ by clicking the link above. You may have to register before you can post: click the register link above to proceed. To start viewing messages, select the forum that you want to visit from the selection below.
Xin chào ! Nếu đây là lần đầu tiên bạn đến với diễn đàn, xin vui lòng danh ra một phút bấm vào đây để đăng kí và tham gia thảo luận cùng VnPro.

Announcement

Collapse
No announcement yet.

Tips: BGP - Chủ đề khó nhất của BSCI

Collapse
X
 
  • Filter
  • Time
  • Show
Clear All
new posts

  • Tips: BGP - Chủ đề khó nhất của BSCI

    BGP - Chủ đề khó nhất của BSCI

    1. Sự cần thiết của BGP

    Trong một AS ta sử dụng giao thức định tuyến nội IGP (thông thường là OSPF) nhưng khi ra ngoài một AS thì phải sử dụng một giao thức khác.Tại sao như vậy? 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 policy. Trong khi ra khỏi phạm vi một AS thì policy lại 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 policy. 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. BGP ra đời vì lí do đó!

    2. Một số tính chất của BGP
    - Đả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
    - Thực thi các policy (Đây là vấn đề lớn sẽ nói sau)
    - BGP sử dụng TCP port 179 để trao đổi thông tin liên lạc nên việc chuyển tải là đáng tin cậy.
    - Thuật toán định tuyến của BGP là path vector routing. Distance vector quảng bá thông tin hiện có đến các neighbor, còn path vector chỉ ra chính xác danh sách toàn bộ đường dẫn đến đích. Ngoài ra 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ó nó 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
    - BGP giúp tiết kiệm băng thông của mạng bằng cách gửi đi chỉ một lần thông tin về các tuyến đường nhưng thể hiện nhiều đích đến.
    - BGP cho phép nơi nhận chứng thực thông điệp, kiểm chứng tên của nơi gửi.

    Như đã nói, khi ra khỏi phạm vi một AS thì policy là vấn đề quan trọng. Ở đây ta xem xét kỹ hơn về vấn đề thực thi chính sách.

    3. Thực thi chính sách:
    Cơ bản có 3 cách tiếp cận để thực thi chính sách.

    Cách tiếp cận đơn giản nhất là sử dụng băng thông. Giả sử, B muốn A không được sử dụng nhiều hơn 56Kbps băng thông của B, thì B có thể giới hạn kết nối giữa 2 mạng đến 56Kbps. Thậm chí B có thể ngắt kết nối với A bằng cách giới hạn băng thông xuống 0. Rõ ràng A phải chịu các chính sách ràng buộc của công ty B.

    Một cách tiếp cận khác là thực thi chính sách trong tiến trình forwarding các gói. Khi mỗi gói đi qua công ty B thì sẽ chịu sự kiểm soát của router công ty B thông qua cơ chế là packet filter. Packet filter cho phép người quản trị định nghĩa chính xác loại gói nào router sẽ cho phép đi qua và gói nào không được phép đi qua. Nhưng những bộ lọc như vậy làm tiêu tốn rất nhiều tài nguyên của router, đòi hỏi tính “thông minh” hiểu được các thông điệp và các giao thức ứng dụng trên router.

    Cách thứ ba để thực thi chính sách là sử dụng BGP. Giả sử B xem thông tin về con đường đến AS4 là thông tin mật và từ chối quảng bá nó cho A. Khi đó, với ý tưởng là nếu A không đảm bảo rằng sẽ đến được đích thông qua công ty đối thủ B thì nó sẽ không chuyển dữ liệu đi trên con đường đó. Cách tiếp cận này không yêu cầu một sự tính toán đặc biệt cho mỗi gói IP. Thay vào đó, router chỉ đơn giản thực thi việc forwarding bình thường. A sẽ tự tìm một con đường khác để đến AS4(qua AS3, AS2, AS1) và forwarding gói tin theo con đường đó.

    4. Một số thuộc tính quan trọng của BGP

    Để hiểu hơn về BGP, chúng ta sẽ tìm hiểu một số thuộc tính quan trọng của BGP để xác định con đường tối ưu nhất

    1. AS_Path attribute: Đây là thuộc tính quan trọng nhất trong việc xác định đường đi tối ưu, mang 2 chức năng: Một là AS Path càng ngắn càng được router quan tâm 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 cty B). Hai là ngăn ngừa vòng lặp (đã đề cập ở trên).
    Bởi vì Path-attributes 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 attributes này đến tất cả các láng giềng trong mọi thông điệp Update!!!

    2. Origin-attribute: là một thuộc tính quan trọng, xác định nguồn gốc của các routing update.
    a. Nếu là “i ” thì chỉ rằng routing update được biết thông qua một IGP (RIP, OSPF…).
    b. Nếu giá trị “e” thì routing update được biết thông qua một EGP.
    c. Nếu giá trị “?” (incomplete) thì chỉ rằng không biết nguồn gốc của routing update. (Điều này có thể xuất hiện nếu routing update được biết thông qua IGP rồi sau đó lại được thông báo qua EGP.)

    3. Next-Hop attribute: Thuộc tính quan trọng cuối cùng. Khi BGP khai báo một mạng, router tự định rõ như là Next Hop. Tuy nhiên, nếu router đó gởi thông điệp Update cho một neighbor 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 (tất nhiên là chỉ đúng với nó). Do đó ta phải cấu hình cho nó biết được là chính router cùng AS với nó là Next Hop chứ không phải là router khác AS!!!

    4. 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.

    5. 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).

    6. MULTI_EXIT_DISC attribute: (MED attribute) Đâ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.

    7. 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 Update 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 neighbor router xử lý. (Tuy nhiên, nếu nó hiểu thì sẽ không bao giờ gửi thuộc tính đó cho neighbor router trừ khi được chỉ định làm thêm điều gì đó).

    Còn một số thuộc tính khác, thứ tự ưu tiên các thuộc tính, các loại thông điệp BGP, trạng thái và cơ chế hoạt động của BGP và rất nhiều vấn đề khác liên quan… mời mọi người tiếp tục thảo luận!:D

    Cheers,

  • #2
    Re: Tips: BGP - Chủ đề khó nhất của BSCI

    From my private mess:
    --------------------
    Chao anh,
    May mon hoc tren lop em co hoc qua BGP nhung khong hieu lam. Cam on bai viet cua anh ve BGP. Anh co the noi ro hon cho em ve viec ngan ngua vong lap va cach thuc route filtering trong mot mang nho chi su dung cac giao thuc dinh tuyen thong thuong ma khong can phai su dung giao thuc BGP duoc khong?
    Thanks
    ---------------------

    Chào bạn, trong một môi trường sử dụng nhiều giao thức định tuyến khác nhau bạn có thể thực hiện redistribute để trao đổi các routing update khi sử dụng các giao thức định tuyến khác nhau. Bạn có thể thực hiện route filtering bằng cách thực hiện: passive interface, distribution lists, route maps. Và bạn có thể điều khiển các route bằng cách thực hiện floating static route, policy routing, default route.

    Xét ví dụ cụ thể sau:

    10.1.2.0/24--------R3------R1-------R2----10.1.1.0/24.

    Trong đó R1, R3 chạy IGRP, R1, R2 chạy RIP.

    Để mạng này hoạt động bạn cần thực hiện redistribute trên router R1. Nghĩa là mỗi giao thức định tuyến định nghĩa metric khác nhau, nên bạn cần phải thực hiện chuyển đổi metric bằng cách thực hiện redistribution để R1, R3 có thể trao đổi routing update được với nhau.

    Để R2 thấy R3 bạn thực hiện redistribute IGRP => RIP với hop count là 1

    R1(config)#router rip
    R1(config-router)#redistribute igrp 234 metric 1
    Redistribute RIP

    Để R3 thấy R2 bạn thực hiện redistribute RIP => IGRP

    R1(config)#router igrp 234
    R1(config-router)#redistribute rip metric 128 1000 255 1 1500

    Passive interface nghĩa là bạn chỉ cho phép router chỉ nhận mà không gửi các thông tin định tuyến ra ngoài interface. Ví dụ:

    R1(config)#router rip
    R1(config-router)#passive interface serial0

    Distribution list sẽ thực hiện lọc các routing update, yêu cầu phải định nghĩa access-list. Ví dụ: bạn không muốn nhận route đến từ mạng 10.0.0.0 và nhận tất cả các route khác.

    R1(config)#router igrp 234
    R1(config-router)#distribute-list 1 in
    R1(config-router)#exit
    R1(config)#access-list 1 deny 10.0.0.0
    R1(config)#access-list 1 permit any

    Sau khi filter xong, bạn sẽ mất kết nối với mạng (10.1.2.0/24) trên R1 (bạn biết vì sao ko ;)) nên cần phải cấu hình static route với R3:

    R1(config)#ip route 10.1.2.0 255.255.255.0 serial0


    Cheers!

    P/S: Bạn có thể xem phần passive interface trong cuốn CCNA LabPro Vol1 mà bạn đã có. Redistribute sẽ được đề cập đến trong cuốn CCNA LabPro Vol2 & các tài liệu khác mà bạn hiện có.

    Comment


    • #3
      Re: Tips: BGP - Chủ đề khó nhất của BSCI

      Hi NeO, halh tham gia chút nhé ;)
      Bài viết của Neo khá công phu và mang nhiều thông tin giới thiệu về BGP: một giao thức định tuyến thiết kế để hoạt động trên môi trường Exterior Gateway (Core Network ;)). Các vấn đề về định tuyến nói chung và BGP nói riêng thực sự hấp dẫn và rộng mở, không chỉ trong môi trường TCP/IP mà còn được recomend như một giao thức chuẩn trong mô hình mạng NGN sử dụng Optical Core...
      Originally posted by Neo
      Trong một AS ta sử dụng giao thức định tuyến nội IGP (thông thường là OSPF) nhưng khi ra ngoài một AS thì phải sử dụng một giao thức khác.Tại sao như vậy? Vấn đề ở đây chính là mục đích của các IGP và EGP không giống nhau
      Đứng trên khía cạnh cách thức thực hiện, định tuyến được phân thành hai loại là định tuyến tập trung và định tuyến phân tán. Trong định tuyến tập trung, cơ sở dữ liệu về các tuyến đường được cập nhật và lưu trữ tại một Server Farm nào đó trên mạng. Sự thực mô hình định tuyến này chỉ được dùng trong mạng nhỏ, và về sau ứng dụng như một phần của định tuyến phân tán, bởi không có khả năng mở rộng.

      Giao thức định tuyến BGP hay OSPF mà Neo đề cập thuộc về mô hình định tuyến phân tán. Tính hiệu quả của mô hình này được chứng minh trên thực tế, qua nhiều công nghệ khác nhau (mô hình thoại chẳng hạn). Trong TCP/IP, người ta triển khai mô hình này bằng cách phân ra các vùng mạng thực hiện các nhiệm vụ sau:

      (*) Host duy trì các thông tin định tuyến đủ để chuyển tiếp gói tin tới các host khác hoặc tới Interior Gateway kết nối cùng SubNetwork

      (*) Interior Gateways duy trì các thông tin định tuyến để có thể chuyển tiếp gói tin tới các host hoặc Interior Gateway khác trong cùng AS.

      (*) Exterior Gateways duy trì các thông tin định tuyến để chuyển tiếp gói tin, hoặc tới một Interior Gateway, nếu gói tin cùng AS, hoặc ra ngoài nếu gói tin không cùng AS.

      Với từng cấp độ định tuyến, người ta tạo ra các giao thức tương ứng. ARP được thiết kế để định tuyến trong SubNetwork, RIP, IGRP, OSPF,...được thiết kế để hoạt động trong AS, và BGP giữa các AS với nhau.

      (Please link to http://www.cisco.com/en/US/tech/tk36...otes_list.html for more information)


      Originally posted by Neo
      - Thuật toán định tuyến của BGP là path vector routing. Distance vector quảng bá thông tin hiện có đến các neighbor, còn path vector chỉ ra chính xác danh sách toàn bộ đường dẫn đến đích. Ngoài ra 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ó nó trong đó hay không, nếu có sẽ biết được ngay là lặp, và sẽ loại bỏ.
      Định tuyến kiểu Neo đề cập còn có tên khác là định tuyến hiện (Explicit Routing). Định tuyến hiện cung cấp khả năng triển khai các giao thức đảm bảo chất lượng dịch vụ, nhưng hạn chế sự linh hoạt trong việc sự dụng tài nguyên mạng. Trên thực tế, người ta đang tìm cách tạo ra các giao thức cho phép thực hiện chức năng Routing động, vừa có khả năng hiện, vừa linh hoạt trong sử dụng băng thông.

      Tính năng xác định vòng lặp định tuyến?? Không hiểu có phải nhờ khả năng multi-path Routing không hả Neo??

      Vấn đề Policy trong BGP có thể phức tạp. Halh muốn Neo cụ thể hơn chút được không??

      Vài nhận xét,

      Comment

      Working...
      X