Remote Access
Truy cập từ xa MikroTik sau CGNAT
Tìm hiểu CGNAT là gì, vì sao nó chặn truy cập đến vào bộ định tuyến MikroTik và cách quản lý đội thiết bị từ xa bằng đường hầm đi ra.
Tóm tắt CGNAT (Carrier-Grade NAT) cho phép một ISP chia sẻ một địa chỉ IPv4 công cộng duy nhất cho nhiều thuê bao, giúp tiết kiệm các địa chỉ khan hiếm nhưng làm hỏng các kết nối đến — nên việc chuyển tiếp cổng tới một bộ định tuyến MikroTik nằm sau nó đơn giản là không hoạt động. Vì bộ định tuyến không có địa chỉ công cộng có thể truy cập, cách khắc phục đáng tin cậy là đảo chiều: để bộ định tuyến tự quay số ra một điểm hẹn mà bạn kiểm soát. Hướng dẫn này giải thích CGNAT là gì, cách phát hiện nó, và cách quản lý các bộ định tuyến MikroTik nằm sau nó bằng đường hầm đi ra.
CGNAT là gì?
CGNAT là một lớp dịch địa chỉ mạng thứ hai chạy bên trong mạng của ISP, ánh xạ nhiều khách hàng vào một nhóm nhỏ các địa chỉ IPv4 công cộng dùng chung, thường cấp cho mỗi thuê bao một địa chỉ riêng từ dải nhà mạng 100.64.0.0/10 thay vì một IP công cộng thực sự. Nó tồn tại vì thế giới đã cạn kiệt các khối IPv4 trống từ nhiều năm trước: thay vì mua các địa chỉ ngày càng đắt đỏ, hầu hết các nhà cung cấp không dây cố định, di động, cáp quang và vệ tinh hiện nay đặt thuê bao sau một cổng chia sẻ. MikroTik của bạn vẫn có quyền truy cập internet và có thể khởi tạo kết nối đi ra bình thường — nhưng từ góc nhìn của internet công cộng, bộ định tuyến của bạn không có địa chỉ riêng. (Carrier-grade NAT — Wikipedia)
CGNAT làm hỏng truy cập đến vào MikroTik như thế nào?
Việc chuyển tiếp cổng thông thường giả định rằng giao diện WAN của bạn giữ một IP công cộng mà phần còn lại của internet có thể tiếp cận. Dưới CGNAT, giả định đó thất bại đến hai lần. Thứ nhất, địa chỉ WAN của bạn là riêng tư (thường là 100.64.x.x), nên một cổng được chuyển tiếp trên MikroTik của bạn trỏ tới một địa chỉ mà không ai bên ngoài nhà mạng có thể định tuyến tới. Thứ hai, IP công cộng thực sự nằm trên thiết bị NAT chính của ISP, được chia sẻ với hàng chục thuê bao khác và sẽ không chuyển tiếp một cổng đến tùy ý cho bạn — bạn không kiểm soát nó. (Open Port Checkers — Why port forwarding fails with CGNAT)
Hệ quả thực tế đối với bất kỳ ai vận hành một đội bộ định tuyến là nghiêm trọng: bạn không thể Winbox, WebFig, SSH hay API vào MikroTik của khách hàng từ văn phòng, vì không có đường vào tới nó. Một tên máy chủ DNS động cũng không giúp được — nó sẽ phân giải về IP dùng chung của nhà mạng, chứ không phải về bộ định tuyến của bạn. Đây chính là bức tường mà người dùng Starlink gặp phải, điều mà chúng tôi trình bày chi tiết trong nghiên cứu điển hình về thay đổi IP của Starlink.
Làm sao biết một MikroTik có nằm sau CGNAT không?
Kiểm tra địa chỉ trên giao diện WAN và so sánh với IP công cộng mà kết nối thực sự hiển thị ra internet. Trong một terminal Winbox hoặc WebFig:
/ip address printNếu giao diện WAN giữ một địa chỉ trong khoảng 100.64.0.0 – 100.127.255.255 (dải dùng chung 100.64.0.0/10), 10.0.0.0/8, hoặc một dải riêng RFC1918 khác, gần như chắc chắn bạn đang ở sau CGNAT. Xác nhận bằng cách so sánh địa chỉ đó với những gì một dịch vụ “what is my IP” bên ngoài báo cáo: nếu chúng khác nhau, một NAT nhà mạng đang nằm giữa bạn và internet. Một lệnh traceroute hiển thị một hoặc nhiều bước nhảy riêng tư trước bước nhảy công cộng đầu tiên là một dấu hiệu mạnh khác. (oneuptime — How to detect if you are behind CGNAT)
Làm sao quản lý các bộ định tuyến MikroTik nằm sau CGNAT?
Cách khắc phục bền vững là ngừng cố gắng kết nối vào trong và thay vào đó để bộ định tuyến kết nối ra ngoài tới một điểm hẹn có địa chỉ công cộng ổn định. Vì kết nối đi ra được khởi tạo từ phía sau CGNAT, NAT của nhà mạng vui vẻ cho phép nó — giống như cách trình duyệt của bạn tiếp cận bất kỳ trang web nào. Một khi đường hầm đó được thiết lập, bạn tiếp cận ngược lại bộ định tuyến qua nó. Có bốn cách phổ biến để xây dựng điều này, mỗi cách được ghi lại trong hướng dẫn riêng:
Một VPN tự lưu trữ tới một VPS là cách tiếp cận cổ điển: một VPS Linux giá rẻ có IP công cộng đóng vai trò điểm gặp gỡ, và mỗi MikroTik quay số vào. WireGuard là lựa chọn mặc định hiện đại — nhanh, tiêu tốn ít CPU, và chịu được các thay đổi địa chỉ đi kèm với CGNAT và IP động. Hướng dẫn rộng hơn về quản lý dựa trên VPS đề cập cùng một ý tưởng với các loại đường hầm khác.
Một mesh VPN được quản lý loại bỏ phần lớn công việc đấu nối thủ công. Tailscale và ZeroTier đều cung cấp một mặt phẳng điều khiển xử lý việc xuyên NAT và phân phối khóa giúp bạn, nên một bộ định tuyến nằm sau CGNAT tham gia mạng với gần như không cần cấu hình cho từng thiết bị.
Một nền tảng TR-069 / ACS là lựa chọn theo chuẩn nhà mạng viễn thông khi bạn vận hành ở quy mô lớn: CPE mở một phiên đi ra tới một máy chủ tự động cấu hình, sau đó máy chủ đẩy cấu hình và phần mềm cơ sở xuống. Nó được thiết kế chuyên dụng để quản lý các thiết bị thuê bao sống sau NAT nhà mạng.
Một đám mây quản lý được xây dựng chuyên dụng kết hợp ý tưởng đường hầm đi ra với giám sát và kiểm soát truy cập tại một nơi, đó là mô hình mà NATCloud của MKController sử dụng.
Mẹo
- IPv6 thường tránh hoàn toàn CGNAT. Nếu ISP của bạn gán một tiền tố IPv6 có thể định tuyến, bạn có thể tiếp cận bộ định tuyến qua IPv6 ngay cả khi IPv4 bị mắc kẹt sau NAT nhà mạng — nhưng chỉ khi mọi bước nhảy trong đường quản lý của bạn cũng có IPv6.
- Luôn đặt keepalive trên các đường hầm đi ra (ví dụ
persistent-keepalive=25trên WireGuard) để nhà mạng không âm thầm hủy ánh xạ NAT đang nhàn rỗi. - Một số ISP bán địa chỉ IPv4 tĩnh hoặc công cộng như một tùy chọn trả phí. Đối với một địa điểm quan trọng duy nhất, điều đó có thể đơn giản hơn một đường hầm; đối với một đội thiết bị, nó không tối ưu về chi phí khi mở rộng.
- Đừng bao giờ phơi bày Winbox, WebFig hay SSH trực tiếp ra internet như một “giải pháp tạm”. Sau CGNAT thì dù sao nó cũng không hoạt động, và trên một IP công cộng thực sự thì đó là lời mời thường trực cho kẻ tấn công.
Câu hỏi thường gặp
Dịch vụ DNS động có khắc phục được CGNAT không? Không. DNS động chỉ cập nhật một tên máy chủ để trỏ tới bất kỳ IP công cộng nào bạn có. Sau CGNAT, IP công cộng đó thuộc về nhà mạng và được chia sẻ, nên tên máy chủ không thể tiếp cận bộ định tuyến của bạn.
CGNAT có giống NAT trên bộ định tuyến của riêng tôi không? Không. NAT của bộ định tuyến của bạn dịch LAN riêng của bạn sang địa chỉ WAN của bạn, và bạn kiểm soát các quy tắc chuyển tiếp cổng của nó. CGNAT thêm một NAT thứ hai bên trong ISP mà bạn không kiểm soát, đó là lý do việc chuyển tiếp đến bị hỏng.
Tôi có thể chỉ cần yêu cầu ISP tắt nó đi không? Đôi khi. Nhiều nhà cung cấp cung cấp một địa chỉ IPv4 công cộng hoặc tĩnh với một khoản phí hoặc theo yêu cầu. Tính khả dụng và giá cả khác nhau rất nhiều theo nhà mạng và khu vực.
Thực hiện bước tiếp theo
Xây dựng đường hầm của riêng bạn cho một bộ định tuyến là đơn giản. Làm điều đó trên hàng chục hay hàng trăm MikroTik — mỗi cái sau một nhà mạng CGNAT khác nhau, với khóa cần xoay vòng và cấu hình VPS cần chăm sóc — đó là nơi chi phí vận hành chồng chất lên.
NATCloud của MKController được xây dựng đúng cho việc này. Mỗi MikroTik trực tuyến qua một đường hầm đi ra tới mặt phẳng điều khiển, không cần IP công cộng, không cần chuyển tiếp cổng, và không cần chỉnh sửa VPS cho từng thiết bị. Bạn có được giám sát tập trung và truy cập từ xa an toàn tới mọi bộ định tuyến, kể cả những cái bị chôn sâu sau NAT nhà mạng.