KNOWLEDGE

Định tuyến AS / ASN / BGP — hiểu bộ khung của Internet

Internet không phải một mạng duy nhất mà là hơn 87.000 hệ thống tự trị (AS) kết nối với nhau qua giao thức BGP. Số AS là gì? BGP hoạt động thế nào? Rò rỉ và chiếm đoạt định tuyến xảy ra ra sao?

Tóm tắt

"Internet" thực chất là hơn 87.000 mạng độc lập (AS, Autonomous System) kết nối với nhau, mỗi mạng có một số hiệu duy nhất (ASN, ví dụ AS13335 = Cloudflare). Các AS này trao đổi định tuyến với nhau qua BGP, quảng bá "đây là các khối IP tôi có thể đi tới", tạo thành bảng định tuyến toàn cầu (khoảng 1 triệu prefix IPv4 và 200.000 prefix IPv6). Một gói tin từ nhà bạn tới Google thường đi qua 4-15 AS. Hãy cùng phân tích từng bước.

I. AS là gì — Autonomous System

AS (Autonomous System — hệ thống tự trị) là một mạng hoặc một nhóm mạng chịu chung một chính sách định tuyến do một bên quản lý. Bên trong AS dùng giao thức định tuyến nào (OSPF / IS-IS) là việc riêng của nó, nhưng giữa các AS thì dùng BGP để quảng bá công khai các prefix IP.

  • Một ISP lớn tự nó là một AS (China Telecom AS4134, China Unicom AS4837, China Mobile AS9808)
  • Một nhà cung cấp đám mây lớn là một AS (Google AS15169, Cloudflare AS13335, AWS AS16509)
  • Trường đại học, cơ quan chính phủ và doanh nghiệp lớn có thể sở hữu AS riêng
  • IP của người dùng băng thông rộng gia đình thông thường được cắt ra từ AS của ISP — người dùng cuối không cần AS riêng

1.1 Ai cấp phát ASN

ASN (số hiệu AS) do 5 cơ quan đăng ký Internet khu vực (RIR) quản lý:

RIRKhu vựcDải ASN điển hình
ARINBắc MỹAS1-AS6655 + một phần
RIPE NCCChâu Âu / Trung ĐôngAS6656-AS9215 + một phần
APNICChâu Á – Thái Bình DươngAS17676-AS18431 + một phần
LACNICMỹ LatinhAS27648-AS28671 + một phần
AFRINICChâu PhiAS36864-AS37887 + một phần

ASN ban đầu là 16 bit (0-65535, bắt đầu khan hiếm sau năm 1996); ngày nay là 32 bit (0-4294967295, RFC 6793). Hiện có khoảng 120.000 ASN đang thực sự được sử dụng trên toàn thế giới.

1.2 Cách đọc ASN — các định dạng

AS13335 // định dạng cũ (16 bit)
AS393227 // định dạng số thuần mới (32 bit)
AS6.10 // định dạng dấu chấm cũ (= 6×65536+10 = 393226; RFC 5396 chọn asplain làm cách viết ưu tiên)

Hiện nay chỉ cần dùng định dạng số thuần. Có thể bỏ tiền tố "AS", nhưng viết đầy đủ sẽ rõ ràng hơn.

II. BGP — "hệ thống mã bưu chính" của Internet

BGP (Border Gateway Protocol), RFC 4271, là giao thức định tuyến duy nhất được dùng giữa các AS. Mỗi AS dùng BGP để quảng bá tới các AS lân cận: "Tôi đi tới được các prefix IP này, và qua tôi bạn có thể tới các AS phía sau."

2.1 Cốt lõi của một thông báo BGP: prefix + AS-PATH

Bảng định tuyến BGP (trích từ RIPE RIS)
Prefix                Next Hop          AS-PATH
104.16.0.0/13    203.0.113.1   AS3356 AS13335   ← qua Lumen tới Cloudflare
104.16.0.0/13    198.51.100.5   AS6939 AS13335   ← qua HE.net tới Cloudflare
8.8.8.0/24      203.0.113.1   AS3356 AS15169   ← tới Google DNS
202.106.0.0/16  198.51.100.5   AS6939 AS4847 AS4134 ← tới China Telecom Bắc Kinh

AS-PATH liệt kê mọi AS đã đi qua từ origin AS (chủ sở hữu prefix) đến router hiện tại. Đọc từ phải sang trái — AS ngoài cùng bên phải là origin, ngoài cùng bên trái là AS lân cận.

2.2 BGP chọn đường đi tốt nhất như thế nào

Khi cùng một prefix có nhiều đường đi, BGP chọn một đường theo thứ tự ưu tiên sau (tóm tắt):

  1. LOCAL_PREF: càng cao càng tốt — mức ưu tiên nội bộ trong AS (đường nào được dùng trước)
  2. AS-PATH càng ngắn càng tốt — đi qua ít AS hơn sẽ thắng
  3. Origin: IGP (nội bộ) > EGP > Incomplete
  4. MED (Multi-Exit Discriminator): càng thấp càng tốt — gợi ý truyền giữa các AS
  5. eBGP > iBGP
  6. IGP cost: càng thấp càng tốt
  7. Router ID: càng thấp càng tốt (tiêu chí phân định cuối cùng)

Lưu ý: BGP không nhất thiết chọn đường nhanh nhất. AS-PATH ngắn hơn không có nghĩa độ trễ vật lý thấp hơn. Một tuyến liên lục địa qua 1 AS có thể chậm hơn một tuyến nội thành qua 3 AS.

III. Tier 1 / Tier 2 / Tier 3 — phân tầng ISP

Mọi AS được chia thành ba tầng tùy theo việc có phải trả tiền mua transit upstream hay không:

TầngĐịnh nghĩaVí dụ điển hình
Tier 1Không trả tiền cho ai — đi tới toàn cầu hoàn toàn nhờ peeringAT&T AS7018, Verizon AS701, Lumen/Level3 AS3356, NTT AS2914, Telia AS1299, Tata AS6453, GTT AS3257, China Telecom AS4134 (theo một số định nghĩa), China Unicom AS4837
Tier 2Peering với một số Tier 1, nhưng phải trả tiền cho một phần truy cậpPhần lớn ISP cấp quốc gia / nhà cung cấp đám mây lớn (Google AS15169, Microsoft AS8075, Cloudflare AS13335)
Tier 3Phải trả tiền cho nhà cung cấp upstream để tới các mạng khácISP địa phương nhỏ / nhà mạng truy nhập

Đường đi điển hình của gói tin băng thông rộng gia đình: nhà bạn → ISP nhỏ tại địa phương (Tier 3) → mạng cấp tỉnh / mạng đô thị (Tier 2) → backbone China Telecom (Tier 1) → Tier 1 ở nước ngoài → mạng đích.

IV. Tự kiểm chứng — từ nhà bạn tới Google đi qua những AS nào

Dùng mtr -bz (BSD: traceroute -A) để xem số AS của từng hop:

mtr -bz www.google.com (Linux)
HOST: xxx                Loss%   Snt   Last  Avg   ASN
1.  192.168.1.1                0.0%   10   0.5  0.6   (mạng riêng, không có ASN)
2.  61.183.x.x                 0.0%   10   3.2  3.5   AS4134  China Telecom
3.  202.97.x.x                 0.0%   10   5.1  5.4   AS4134  backbone China Telecom
4.  202.97.x.x                 0.0%   10  15.2  16.1  AS4134
5.  202.97.x.x                 0.0%   10  45.3  46.0  AS4134  node trước lối ra quốc tế
6.  211.95.x.x                 0.0%   10 156.4 158.2  AS4134  cổng quốc tế
7.  72.14.215.x                0.0%   10 158.1 159.8  AS15169 mạng Google
8.  142.250.x.x                0.0%   10 159.8 161.2  AS15169 Google
9.  142.250.x.x (www.google.com)  0.0%   10 160.2 162.0  AS15169

Từ kết quả mtr này có thể thấy:

  • Nhà → mạng nội hạt China Telecom (AS4134, hop 2-3): < 10ms
  • Backbone China Telecom (AS4134, hop 4-6): 5-150ms
  • Hop từ cổng quốc tế tới Google (AS15169, hop 7): tăng vọt lên 150+ms ← độ trễ tại lối ra quốc tế
  • Bên trong Google (AS15169, hop 8-9): < 5ms

Từ băng thông rộng gia đình ở Trung Quốc tới Google chỉ đi qua 2 AS — AS-PATH cực ngắn — nhưng độ trễ vật lý lại cao. Đó chính là điều chúng tôi muốn nói: "độ dài BGP không phải độ trễ vật lý".

V. Hai cơn ác mộng bảo mật của BGP — rò rỉ định tuyến và chiếm đoạt định tuyến

5.1 Rò rỉ định tuyến

Một AS truyền nhầm các route lẽ ra không được gửi lên upstream cho upstream hoặc AS lân cận, khiến lưu lượng toàn cầu đi sai đường. Ví dụ điển hình: một ISP nhầm route của khách hàng là route của chính mình và quảng bá chúng cho tất cả.

Sự cố đáng chú ý: tháng 11/2017, một vụ rò rỉ định tuyến của Level3 (AS3356) đã làm gián đoạn một lượng lớn khách hàng hạ nguồn của Comcast và Verizon.

5.2 Chiếm đoạt BGP

Một AS độc hại quảng bá các prefix IP không thuộc về nó. Khi các AS khác chấp nhận thông báo này, lưu lượng bị chuyển hướng tới kẻ chiếm đoạt, cho phép tấn công MITM, từ chối dịch vụ hoặc đầu độc DNS.

Sự cố đáng chú ý:

  • 2008: PTCL của Pakistan quảng bá prefix của YouTube, chuyển hướng lưu lượng YouTube toàn cầu về Pakistan trong 2 giờ
  • 2018: eNet (AS10297) quảng bá các prefix DNS của Amazon Route 53, chiếm đoạt lưu lượng người dùng MyEtherWallet trong khoảng 2 giờ
  • 2022: RTCOMM của Nga chiếm đoạt một prefix của Twitter trong thời gian ngắn

5.3 Phòng thủ — RPKI ký số cho route

RPKI (Resource Public Key Infrastructure), bộ RFC 6480, cho phép chủ sở hữu hợp pháp của một prefix IP ký mật mã khẳng định "prefix này chỉ được phép bắt nguồn từ AS này". Các router BGP hỗ trợ RPKI sẽ loại bỏ những route không được ký hoặc ký sai.

Hiện khoảng một nửa số prefix IPv4 toàn cầu đã được ký RPKI, và tỷ lệ này vẫn tiếp tục tăng. Khi bạn tra cứu một IP trên cleanip.io, thẻ "Thông tin AS" sẽ hiển thị trạng thái RPKI của nó: valid / invalid / not-found.

VI. Cách tra cứu một IP hoặc tên miền thuộc ASN nào

6.1 Tra cứu trực tiếp trên cleanip.io

Chỉ cần truy cập https://cleanip.io/8.8.8.8 hoặc https://cleanip.io/AS15169 — chúng tôi hiển thị đầy đủ thông tin ASN, ngày đăng ký, các dải IP, upstream/downstream và phân bố địa lý.

6.2 Trực quan hóa BGP trên cleanip.io

/asn-graph vẽ topo BGP cho bất kỳ ASN nào — từ Origin qua Tier 2 tới Tier 1, giúp bạn nhìn qua là biết ai đang peering với ai.

/asn-history hiển thị lịch sử sở hữu của một IP / CIDR — một CIDR từng thuộc những AS nào theo thời gian, và thay đổi khi nào.

6.3 Công cụ dòng lệnh

terminal — ASN lookup
$ whois -h whois.cymru.com " -v 8.8.8.8"
AS      | IP        | BGP Prefix    | CC | Registry | Allocated  | AS Name
15169   | 8.8.8.8   | 8.8.8.0/24    | US | arin     | 1992-12-01 | GOOGLE, US

$ curl https://api.bgpview.io/ip/8.8.8.8 | jq
{
  "data": {
    "ip": "8.8.8.8",
    "prefixes": [{
      "asn": { "asn": 15169, "name": "Google LLC" },
      "prefix": "8.8.8.0/24"
    }]
  }
}

VII. Tra cứu nhanh các ASN phổ biến

ASNTênLoại
AS13335CloudflareCDN / DNS
AS15169GoogleĐám mây / Tìm kiếm
AS16509Amazon AWSĐám mây
AS8075Microsoft / AzureĐám mây
AS32934Facebook (Meta)Mạng xã hội
AS13414Twitter / XMạng xã hội
AS2906NetflixVideo
AS4134China TelecomISP (một phần Tier 1)
AS4837China UnicomISP
AS9808China MobileISP
AS37963Alibaba / Alibaba CloudĐám mây
AS45102Alibaba Cloud quốc tếĐám mây
AS132203Tencent CloudĐám mây
AS9009M247 (nhà cung cấp backbone VPN lớn)IDC
AS62371Proton AG (ProtonVPN)VPN
AS24940HetznerVPS Đức
AS16276OVHVPS Pháp
AS20473Choopa (Vultr)VPS
AS14061DigitalOceanVPS

VIII. Vì sao điều này cũng quan trọng với người dùng thông thường

  • Hệ thống kiểm soát rủi ro xem ASN khi chấm điểm uy tín IP — ASN datacenter (nhà cung cấp đám mây/VPN) thường bị chấm điểm thấp hơn; ASN băng thông rộng dân cư (China Telecom / Unicom) được chấm cao hơn
  • Khi chọn CDN cho lưu lượng xuyên biên giới, hãy xem khoảng cách AS giữa ASN của người dùng mục tiêu và các node CDN — cleanip.io cho biết một IP thuộc AS nào chỉ với một lần tra cứu
  • Khi bị tấn công DDoS, ASN là manh mối đầu tiên để truy vết nguồn — ví dụ "phần lớn lưu lượng tấn công đến từ datacenter AS46562 Performive"
  • Khi chọn VPN, hãy xem nó được đặt trên ASN của IDC nào — xem truy vết VPN để biết chi tiết

Đọc thêm

mimetic
mimetic
mimetic