Để truy cập các dịch vụ nội bộ tại nhà hoặc công ty từ Internet, chúng ta có thể cấu hình Destination NAT (NAT Port) trên router để chuyển tiếp truy cập thông qua địa chỉ IP Public. Bạn cũng nên thiết lập thêm Dynamic DNS (DDNS) để truy cập bằng tên miền tùy chọn (miễn là chưa có ai đăng ký), giúp tránh việc phải ghi nhớ địa chỉ IP Public. Lưu ý, tên miền DDNS mặc định của MikroTik là số serial (S/N) của thiết bị, khá khó nhớ.
Tuy nhiên, có một hạn chế: bạn sẽ không thể truy cập dịch vụ bằng IP Public hoặc tên miền DDNS nếu đang ở cùng mạng LAN với máy chủ (server). Việc truy cập chỉ khả thi từ các thiết bị bên ngoài mạng nội bộ.
Để khắc phục vấn đề này, bạn cần cấu hình thêm Hairpin NAT (còn gọi là NAT Loopback) trên router. Trong bài viết này, mình sẽ hướng dẫn cách cấu hình Destination NAT và Hairpin NAT trên router MikroTik, giúp bạn truy cập dịch vụ nội bộ bằng tên miền hoặc IP Public, không cần gõ địa chỉ IP của máy chủ.
NAT là gì? Destination NAT là gì? Hairpin NAT là gì?
NAT là gì?
NAT (Network Address Translation) là một kỹ thuật mạng cho phép các thiết bị trong mạng nội bộ (LAN) giao tiếp với nhau bằng địa chỉ IP riêng (Private IP), đồng thời có thể truy cập mạng bên ngoài (Internet) thông qua một hoặc nhiều địa chỉ IP công cộng (Public IP). NAT thường được cấu hình trên router/gateway – thiết bị kết nối giữa mạng nội bộ và mạng diện rộng (WAN).
Có ba hình thức NAT phổ biến:
- Source NAT
- Destination NAT
- Hairpin NAT (ít được biết đến hoặc ít khi cần dùng trong các mạng thông thường)
Source NAT (Masquerade)
Source NAT, còn gọi là NAT ra Internet, là hình thức phổ biến nhất, được áp dụng trên hầu hết các router để cho phép các thiết bị trong mạng LAN truy cập Internet thông qua cổng WAN của router. Gói tin đi ra sẽ bị thay đổi địa chỉ nguồn thành IP Public.
Destination NAT (Port Forwarding)
Destination NAT, còn gọi là NAT port hoặc Port Forwarding, cho phép truy cập từ Internet vào các dịch vụ nội bộ (web server, camera, NAS…) thông qua IP Public của router. Đây là cấu hình bắt buộc nếu bạn muốn truy cập dịch vụ tại nhà hoặc công ty khi đang kết nối từ mạng bên ngoài.
Hairpin NAT (NAT Loopback)
Hairpin NAT, hay còn gọi là NAT Loopback, là một biến thể của Source NAT. Nó cho phép các thiết bị trong cùng mạng LAN truy cập dịch vụ nội bộ thông qua địa chỉ IP Public của router hoặc tên miền đã trỏ về IP Public đó. Đây là giải pháp để tránh lỗi “không truy cập được dịch vụ nội bộ bằng tên miền hoặc IP Public” khi đang ở cùng mạng.
Ví dụ:
Trong sơ đồ trên, chúng ta có 4 thiết bị:
- WORK PC: nằm ngoài mạng LAN, có Public IP là 1.54.147.115 (truy cập mạng qua IP Public)
- Router có Public IP là 113.190.72.100 và LAN IP là 192.168.1.1
- Home PC: nằm trong LAN, có LAN IP là 192.168.1.100
- Server: nằm trong LAN có LAN IP là 192.168.1.11
Khi sử dụng một thiết bị bên ngoài mạng LAN, ví dụ như WORK PC (địa chỉ IP: 1.54.147.115), để truy cập đến server nội bộ qua tên miên hoặc địa chỉ Public, router MikroTik sẽ xử lý gói tin như sau:
- WORK PC gửi gói tin với:
– Destination IP: 113.190.72.100 (Public IP)
– Destination Port: 443 (dịch vụ HTTPS)
– Source IP: 1.54.147.115 - Router sẽ thực hiện:
– Destination NAT: chuyển Destination IP từ 113.190.72.100 sang 192.168.1.111 (địa chỉ LAN của Server).
– Source IP vẫn giữ nguyên là 1.54.147.115.
– Gói tin được chuyển thành: Source IP: 1.54.147.115 → Destination IP: 192.168.1.111 - Server nhận gói tin và phản hồi: Source IP: 192.168.1.111 → Destination IP: 1.54.147.115
- Router nhận gói phản hồi và:
– Nhận biết đây là gói tin thuộc kết nối NAT đã tạo.
– Thực hiện reverse NAT: thay Source IP thành 113.190.72.100.
– Gói tin phản hồi: Source IP: 113.190.72.100 → Destination IP: 1.54.147.115 - WORK PC nhận gói tin phản hồi và kết nối hoàn tất thành công. Kết nối từ ngoài Internet hoạt động bình thường nhờ Destination NAT.
Vấn đề nảy sinh khi Home PC muốn truy cập đến Server (cả hai nằm trong cùng mạng LAN) thông qua Public IP của Router, kết nối sẽ bị lỗi.
- Home PC gửi gói tin:
– Source IP: 192.168.1.100
– Destination IP: 113.190.72.100
– Port: 443
→ Gói tin đi ra qua router. - Router sẽ thực hiện:
– Destination NAT: đổi đích đến thành 192.168.1.111 (IP nội bộ của server).
– Source IP vẫn là 192.168.1.100.
– Gói tin được chuyển thành: Source IP: 192.168.1.100, Destination IP: 192.168.1.111 - Server (192.168.1.111) nhận được gói tin và phản hồi:
– Source IP: 192.168.1.111
– Destination IP: 192.168.1.100 - Tuy nhiên, gói phản hồi này không đi qua router nữa — vì cả Source và Destination đều nằm trong cùng subnet, nên server gửi trực tiếp về Home PC qua từ layer 2 (L2 switch).
- Home PC nhận gói tin có: Source IP: 192.168.1.111. Trong khi nó đang chờ phản hồi từ 113.190.72.100, nên sẽ bỏ qua hoặc huỷ gói tin này vì không đúng chuỗi kết nối ban đầu. Truy cập từ Home PC đến Server sẽ báo lỗi không truy cập được.
Để giải quyết vấn đề này, chúng ta cần thiết lập Hairpin NAT trên Router.
Cấu hình Destination NAT và Hairpin NAT:
Có nhiều phương pháp để cấu hình Destination NAT và Hairpin NAT trên MikroTik. Dưới đây là cách cấu hình mình đang sử dụng, đảm bảo hoạt động ổn định cho cả hai hình thức NAT này.
1. Tạo danh sách địa chỉ WAN (WAN-IP Address List)
Trước tiên, chúng ta cần tạo một Address List để đại diện cho địa chỉ IP Public của router (WAN IP). Cách này giúp cấu hình NAT rõ ràng và ổn định hơn so với phương pháp NAT theo giao diện (interface), vốn có thể hoạt động không ổn định hoặc không tương thích với Hairpin NAT.
Trường hợp không có IP tĩnh bạn có thể tham khảo bài viết này.
- Mở Winbox và kết nối đến Router MikroTik.
- Vào menu IP > Firewall > Address Lists.
- Nhấn New [+] để tạo mục mới.
- Tại ô List, nhập tên: WAN-IP (hoặc tên khác tùy chọn dễ nhớ).
- Tại ô Address, nhập địa chỉ IP Public hiện tại của router (ví dụ: 113.190.72.100).
- Nhấn OK để lưu.
Mục đích của bước này là giúp bạn sử dụng tên WAN-IP trong các rule NAT thay vì phải gõ thủ công địa chỉ IP mỗi lần — điều này đặc biệt hữu ích nếu về sau bạn muốn thay đổi cấu hình nhanh chóng.
2. Cấu hình Destination NAT
Trong bước này, chúng ta sẽ cấu hình NAT để chuyển tiếp cổng 5555 từ IP Public về cổng 5001 địa chỉ IP nội bộ của thiết bị Synology NAS (ví dụ: 192.168.1.111) — mục đích là để có thể truy cập giao diện web của NAS từ Internet.
Vẫn trong cửa sổ IP > Firewall, chuyển sang tab NAT, sau đó Nhấn Add [+] để tạo một rule NAT mới:
- Ô Comment, nhập Synology Web (hoặc ghi chú tuỳ chọn để dễ quản lý)
- Ô Chain: Chọn dstnat
- Ô Dst. Address List: Chọn WAN-IP (Address List đã tạo ở bước trước)
- Ô Protocol: tcp (hoặc udp nếu dịch vụ yêu cầu, ở đây truy cập web nên dùng tcp)
- Ô Dst. Port: 5555 (cổng bạn muốn mở từ bên ngoài, nên chọn khác mặc định để tăng bảo mật)
- Ô Action: chọn dst-nat
- Ô To Address: 192.168.1.111 (IP nội bộ của Synology NAS hoặc dịch vụ khác bạn muốn NAT tới)
- Ô To Ports: 5001 (cổng dịch vụ nội bộ, ở đây là giao diện web HTTPS của Synology). Lưu ý: Nếu bạn muốn dùng cùng một cổng ngoài và trong (ví dụ: 5001 → 5001), có thể để trống trường
- Nhấn OK để lưu lại rule.
Sau khi cấu hình thành công, mỗi khi bạn truy cập từ mạng bên ngoài (Internet) đến địa chỉ: https://113.190.72.100:5555, Router MikroTik sẽ tự động chuyển hướng (NAT) truy cập này về địa chỉ nội bộ: https://192.168.1.111:5001. Giúp bạn kết nối đến giao diện quản lý Synology NAS từ xa một cách an toàn và tiện lợi.
3. Cấu hình Hairpin NAT
Để có thể truy cập vào máy chủ trong cùng mạng LAN bằng chính tên miền hoặc IP Public, bạn cần cấu hình thêm một rule Hairpin NAT.
Điều này giải quyết vấn đề các thiết bị trong mạng LAN không truy cập được dịch vụ nội bộ qua IP Public (do NAT bị bỏ qua).
Vẫn trong menu IP > Firewall > NAT, nhấn New [+]:
- Ô Comment: Hairpin NAT (ghi chú tùy ý)
- Ô Chain: chọn srcnat
- Ô Src. Address: 192.168.1.0/24 (mạng nội bộ – chỉnh theo sơ đồ mạng của bạn)
- Ô Dst. Address: 192.168.1.111 (IP nội bộ của NAS Synology, hoặc dùng 192.168.1.0/24 nếu có nhiều máy chủ)
- Ô Action: chọn masquerade
- Nhấn OK để lưu lại cấu hình
Sắp xếp thứ tự rule NAT:
Sau khi tạo rule Hairpin NAT, bạn nên kéo rule này lên gần đầu danh sách, đặt ngay sau rule NAT truy cập Internet. Điều này quan trọng vì thứ tự của rule trong bảng NAT ảnh hưởng trực tiếp đến việc xử lý gói tin. Rule NAT xử lý từ trên xuống dưới, nên nếu Hairpin NAT nằm sau Destination NAT hoặc filter không phù hợp, có thể khiến nó không hoạt động đúng.
Kiểm tra kết nối:
Sau khi cấu hình thành công, khi bạn truy cập tên miền hoặc IP Public từ một thiết bị trong mạng LAN, ví dụ như: https://113.190.72.100:5555
Quy trình xử lý gói tin sẽ diễn ra như sau:
- Home PC (192.168.1.100) gửi gói tin đến 113.190.72.100:5555 – đây là địa chỉ Public của router.
- Router sẽ thực hiện:
– Destination NAT: đổi Destination IP từ 113.190.72.100 thành 192.168.1.111 (Synology NAS), và port từ 5555 sang 5001.
– Hairpin NAT (masquerade): đổi Source IP từ 192.168.1.100 thành địa chỉ IP của interface LAN (ví dụ: 192.168.1.1).
– Gói tin sau khi NAT: Source IP: 192.168.1.1 → Destination IP: 192.168.1.111 (port 5001) - Server (NAS) nhận được gói tin và phản hồi về IP 192.168.1.1 (tức router).
- Router:
– Nhận ra đây là gói phản hồi của kết nối NAT trước đó
– Thực hiện NAT ngược: đổi Source IP thành 113.190.72.100, Đổi Destination IP thành 192.168.1.100
– Gói tin phản hồi về PC: Source IP: 113.190.72.100 → Destination IP: 192.168.1.100 - Home PC nhận đúng gói phản hồi và kết nối được thiết lập thành công như thể đang truy cập từ Internet.
Giờ đây, bạn có thể truy cập dịch vụ nội bộ bằng tên miền hoặc IP Public ở bất kỳ đâu: Tại nhà (trên cùng mạng LAN) hoặc tại quán cafe, văn phòng, hoặc từ xa. Việc quản lý trở nên đơn giản và tinh gọn hơn rất nhiều.
Hướng dẫn Hairpin NAT đến đây là hết. Chúc bạn thực hiện thành công!
Tài liệu tham khảo: