root

Leader IT/Architect
Dec 31, 2012
1,153
72
48
Tìm hiểu về BGP
Internet được tạo ra từ rất nhiều AS (autonomous system) và BGP được sinh ra để kết nối (định tuyến) các AS đó lại với nhau. BGP là một giao thức dạng path-vertor nên việc lựa chọn đường đi tốt nhất không phụ thuộc vào metric hay cost nhưu các giao thức định tuyến khác mà phụ thuộc vào tập hợp các thuộc tính Attribute.


Tài liệu lý thuyết BGP tiếng việt Download

1. Enterprise-to-ISP connectivity

Một vài kiểu kết nối từ Enterprise đến ISP.
Có 2 kiểu thiết lập Session:


  • One-WAY: Nghĩa là bên trong Enterprise có thể truy cập ra ngoài Internet và Internet không thể truy cập ngược lại bên trong của Enterprise. Sử dụng địa chỉ IP private bên trong Enterprise để truy cập internet.
  • Two-WAY: Enterprise và Internet có thể truy cập lẫn nhau. Bên trong Enterprise sẽ sử dụng IP public để kết nối với Internet.

Có 4 kiểu kết nối:



  • Single Home: Enterprise chỉ có 1 đường kết nối đến ISP. Thường dùng Static Route.




  • Dual-Home: Một Enterprise có 2 đường đi đến 1 ISP. Thuê 2 đường 1 ISP nên cũng thường dùng Static Route




  • Multi-Home: Một Enterprise có 2 đường đi đến 2 ISP khác nhau.




  • Dual Multi Home: 1 công ty thuê 4 đường đến 2 ISP.

Ngày nay thì những đường Internet quốc tế như AAG đã được lắp camera theo dõi.

Reachability:



  • Circuit emulation: ISP sẽ có hạ tầng CORE chạy MPLS và nó sẽ tạo cho mình 1 đường dây ảo (tunnel) nối từ chi nhánh này sang chi nhánh khác Circuit là layer 2 và chạy trên nền MPLS nên được gọi là Layer 2 VPN (MPLS L2VPN). Ở layer 2 chúng ta có rất nhiều kiểu Encapsulation như Ethernet (thường được sử dụng nhất), ppp(sử dụng nhiều cho Internet pppoe vì PPPoE có chứng thực và QoS), Frame relay, ATM…

    • E.PM (VNPT vẫn còn sử dụng nhưng sắp chết, thường dùng trong modem ADSL cáp số với tốc độ thấp).
    • Circuit là point-to-point còn VPLS là multipoint. Lúc này Enterprise coi ISP như một Switch-emulation.





    • Đường màu đỏ: là những đường Circuit (layer 2)

    • Đường màu xanh: Là những tunnel chạy trên các Circuit.

  • MPLS L3 VPN: ISP sẽ chạy chung 1 giao thức định tuyến với enterprise. Tương tự như Circuit Emulation nhưng MPLS VPN này chạy trên Layer 3. Nên bắt buộc ISP và Enterprise phải chạy cùng một giao thức định tuyến. ISP sẽ biết trong mạng của Enterprise có những route nào. Lúc này, mạng ISP sẽ có những con P và PE(provider Equipment), còn khách hàng sẽ có những Router CE (customer Equipment).
  • Giữa PE và CE sẽ chạy chung giao thức IGP (Static route, OSPF, Eigrp, BGP…)



  • Static Router: thường dùng cho các Enterprise



  • BGP (inter-AS Routing): thường dùng giữa các ISP và inter-AS routing.

 
Last edited:
II. BGP
2.1. Các thuật ngữ trong BGP.
AS: Là 1 tổ chức thường đại diện cho ISP, thường là các ISP và có 1 số AS Number.
Internal Routing (IGP) là routing giữa các khác hàng với ISP hoặc giữa các ISP với nhau. Thường sử dụng OSPF hoặc IS-IS.
External Routing (EGP) sử dụng giao thức BPG để chạy định tuyến giữa các AS với nhau. EGP có 2 kiểu triển khai:

  • iBgp (Internal BGP) là BPG chạy trong cùng 1 AS.
  • eBGP (external BGP) là BGP chạy giữa các AS.

ASN – Autonomous system number
Gồm 16 bit nằm trong range 1→ 65635 gồm có:


  • Private: 64512-65535 → chỉ sử dụng trong một AS local và bị remove khi đi qua AS khác. Do IANA cấp. (hiện tại VPNT vẫn đang sử dụng AS private cho 64 tỉnh thành và chỉ có 1 AS kết nối ra bên ngoài, ở VN thì chỉ có 5 sô AS).

Lưu ý: để trong BGP thì trong AS phải chạy IGP trước.

2.2 Basic
BGP là một giao thức policy base routing. Nghĩa là nó routing dựa vào policy là chính chứ không phải dựa vào metric. Nó có rất nhiều thuộc tính để mình xử lý route.
BGP có chức năng Path Vector, mỗi lần nó đi qua 1 AS nào đó nó sẽ thêm giá trị AS của mình vào trước cái route đó. Để Router nhận được biết được gói tin đã đi qua những AS nào (Giá trị AS phải nằm ngoài giá trị AS private, nếu không gói đó sẽ bị drop).

- BPG là giao thức reliable update chạy trên TCP port 179.
- Có Keep-Alive để duy trì TCP Connection
- Có nhiều Attribute (9 atttributes)
- BGP thiết kế cho mạng lớn (ISP, internet).
- Khi nào sử dụng BGP:

  • Khi AS là một AS transit. Nghĩa là các ISP có các kết nối với nhau để có thể cho đi nhờ qua lẫn nhau.
  • Khi AS là multihomed.
  • Inter-AS routing: khi các AS chạy chung với nhau.

2.3. BGP Database
- BGP neighbor table: chứa các BGP table
- BGP table:

  • chứa tất cả các Network được học từ các BGP neighbor
  • prefix được học từ BGP
- Routing table

2.4. BGP message Types

- Packet Open: Thiết lập neighbor, TCP connection. Gói open chứa

  • Hold time: 2 Router gửi gói Open mà bị miss match timer thì nó sẽ chọn giá trị timer thấp nhất.
  • BGP router ID
- Keep Alive: Duy trì kết nối TCP connection.
- Update: chứa các network được quảng bá đi và attribute của các network được quảng bá đi.
- Notification: Khi có lỗi xảy ra hoặc đóng kết nối BGP.

2.5. iBGP và eBGP
- BGP neighbor cũng được gọi là BGP peer.
- eBGP sử dụng BGP chạy giữa các AS khác nhau.
- iBGP sử dụng BGP chạy trong cùng 1 AS (local)



a. Cấu hình
- Định nghĩa BGP process lệnh: #router bgp <ASN>
- Thiết lập neighbor (iBGP hoặc eBGP) lệnh: Neighbor

  • iBGP thường sử dụng card loopback để thiết lập kết nối vì nó không hay bị up/down như interface physical. Nó chỉ chết khi Router đó chết.
  • eBGP: thường sử dụng physical interface để thiết lập kết nối.
- Quảng bá Network lênh: network… chỉ dùng để quảng bá network chứ không dùng để thiết lập neighbor



Thiết lập Neighbor
R2(config)#router bgp 65010
// iBGP thường sử dụng loopback để thiết lập kết nối.
R2(config-router)# neighbor 1.1.1.1 remote-as 65010
//eBGP thường sử dụng physical interface
R2(config-router)# neighbor 172.16.23.3 remote-as 65020
R2(config-router)# neighbor 172.1.1.6 remote-as 300

//Thường sử dụng khi dùng card loopback để thiết lập kết nối
R2(config-router)# neighbor 1.1.1.1 update-source loopback0

//Khi R3 và R2 muốn sử dụng card loopback để thiết lập neighbor thì không chỉ cần thêm lệnh update-source loopback0 mà còn phải thêm ebgp_multihop vì gói tin ở eBGP chỉ có TTL=1 nên chúng ta cần tăng TTL=2 để gói tin có thể đi tới loopback.
R2(config-router)# neighbor 3.3.3.3 ebgp_multihop [hop]

Chú ý:

  • 1 Router sẽ kiểm tra source IP trong gói open message của neighbor với neighbor command. Khi Router R2 gửi gói open message cho R1 nó sẽ lấy source IP là 172.16.12.2. Lúc này, trên R1 sẽ so sánh source IP trong gói open message của R2 gửi qua với neighbor command (#neighbor 2.2.2.2 remote-as 65010) là không giống nhau nên R1 và R2 không lên neighbor được với nhau. Nên trong iBGP khi chúng ta sử dụng loopback thì cần có thêm lệnh sau để R2 update lại Source IP của nó trong gói open message sử dụng source IP của card loopback 0.
R2(config-router)# neighbor 1.1.1.1 update-source loopback0
Lúc này, R2 gửi gói open message với source IP chính là loopback 0 (2.2.2.2).

  • Packet trong iBGP có TTL = 225 và eBGP có TTL = 1. Nên ở bên ngoài (eBGP) thường sử dụng kết nối trực tiếp 2 Router với nhau.
  • Giá trị Next-hop sẽ không đổi trong iBGP và thay đổi khi là eBGP. Để 1 network có thể sử dụng được thì Next-hop phải reachable.
- Khi R3 quảng bá mạng X sang cho R2 thì route X trên R2 sẽ có next-hop là 172.16.23.3
- Khi R2 quảng bá mạng X nào vào cho R1 thì route X trên R1 sẽ có next-hop là 172.16.23.3 (vì giá trị next-hop không đổi trong iBGP). Như vậy, R1 sẽ không đi tới mạng X được mặc dù nó có route của mạng X bởi vì nó R1 không hiểu được next-hop 172.16.23.3 là gì.
- Nên chúng ta cần có lệnh sau:
R2(config-route)#neighbor 1.1.1.1 next-hop-self
- Lúc này route X trên R1 sẽ có next-hop là 172.16.12.2
Next-hop self chính là chuyển next-hop sang cho chính mình và quảng bá cho neighbor.


  • Trong IBGP các Router nên chạy full-mesh.

Network
- Network là lệnh dùng để thiết lập neighbor và quảng bá. Nhưng đối với BGP thì lệnh Network chỉ là quảng bá và Router sẽ tìm network đó trong bảng định tuyến (vì vậy trong bảng định tuyến không chứa host)
R2(config-router)#network 10.1.1.0 mask 255.255.255.0
- Nếu không để mash thì mặc định nó là classfull.
- Đối với ISP ít khi sử dụng lệnh network này mà sử dụng redistribute là chính vì nó có số lượng route rất lớn chúng ta không thể gõ network hết. Sau đó chúng ta sẽ phải dùng route-map để chặn những network không cần thiết.

Chú ý:

  • AS-path: để chống loop giữa các AS. Một Router sẽ không sử dụng 1 prefix có AS-patch chứa AS của nó
  • 1 Router khi quảng bá prefix sang AS khác nó sẽ thêm ASN của nó vào trước as-path

- Với network 10.0.0.0/8 được quảng bá từ AS1 đến AS3 nó sẽ thêm AS_Path là AS1
- Network 10.0.0.0/8 tiếp tục được quảng bá từ AS3 đến AS5 nó sẽ thêm AS3 vào trước AS_Path là AS3, AS1.
- Network 10.0.0.0/8 tiếp tục được quảng bá vòng lại từ AS5 đến AS1 nó sẽ thêm AS5 vào trước AS_Path là thành AS5, AS2, AS1.
- Lúc này, trên Router của AS1 nó sẽ thấy trong AS_Path có số AS1 của nó nên prefix 10.0.0.0/8 nó sẽ không nhận.
=> đây là cơ chế chống loop sử dụng AS_Path trong BGP

Các lệnh kiểm tra BGP
- Show bảng neighbor
#show ip bgp summary



- Show bảng bgp

#show ip bgp



- Show bảng routing

#show ip route

- Kiểm tra BGP peering



Reset BGP session
//reset toàn bộ các neighbor
#clear ip bgp *
// chỉ reset lại 1 neighbor
# clear ip bgp 10.1.1.2
Soft reset outbound
//những route được học từ neighbor sẽ không bị mất
// Router sẽ gửi lại toàn bộ thông tin BGP cho neighbor mà không cần phải reset lại session
//soft out thì không có tác dụng khi bạn thay đổi các inbound policy
#clear ip bgp 10.1.1.2 soft out
Inbound soft reset
// Router sẽ lưu trữ toàn bộ các thông tin update từ neighbor này trong trường hợp inbound policy bị thay đổi
#neighbor 10.1.1.2 soft-reconfiguration inbound


Debug kiểm tra thông tin kết nối BGP

 
  • Like
Reactions: cuongpm
font chữ của diễn đàn mình hơi nhỏ. Viết tiếp lý thuyết routing đi admin ơi.
 
Last edited:

About us

  • Securityzone.vn là một trang web chuyên về an ninh mạng và công nghệ thông tin. Trang web này cung cấp các bài viết, tin tức, video, diễn đàn và các dịch vụ liên quan đến lĩnh vực này. Securityzone.vn là một trong những cộng đồng IT lớn và uy tín tại Việt Nam, thu hút nhiều người quan tâm và tham gia. Securityzone.vn cũng là nơi để các chuyên gia, nhà nghiên cứu, sinh viên và người yêu thích an ninh mạng có thể trao đổi, học hỏi và chia sẻ kiến thức, kinh nghiệm và giải pháp về các vấn đề bảo mật trong thời đại số.

Quick Navigation

User Menu