🌐 Dynamic NAT là gì?
Trong khi Static NAT gán một địa chỉ IP cục bộ với một địa chỉ IP công cộng cố định (one-to-one), thì Dynamic NAT sử dụng một nhóm (pool) các địa chỉ IP công cộng để phân phát tạm thời cho các máy trong mạng nội bộ khi chúng cần kết nối ra ngoài. Điều này giúp tiết kiệm địa chỉ và tăng tính linh hoạt.
🧠 Cách Dynamic NAT hoạt động (Giải thích kèm ví dụ)
Giả sử bạn có 2 máy nội bộ:
Router biên sẽ thực hiện NAT như sau:
➡️ Mỗi lần host nội bộ mở kết nối mới, router sẽ cấp phát một IP từ pool (nếu còn).
🛠️ Cấu hình Dynamic NAT trên Cisco IOS XE
Bước 1: Tạo pool địa chỉ công cộng
R1(config)# ip nat pool NatPool 198.51.100.100 198.51.100.149 netmask 255.255.255.0
Bước 2: Định nghĩa các IP nội bộ sẽ được NAT bằng access list
R1(config)# access-list 10 permit 10.10.1.0 0.0.0.255
Bước 3: Liên kết ACL với NAT pool
R1(config)# ip nat inside source list 10 pool NatPool
Bước 4: Gán vai trò cho các interface
R1(config)# interface e0/0 R1(config-if)# ip nat inside R1(config)# interface e0/3 R1(config-if)# ip nat outside
💡 Ghi nhớ:
🔍 Kiểm tra và xác minh
Kiểm tra bảng ánh xạ NAT
R1# show ip nat translations
Ví dụ:
Pro Inside global Inside local Outside local Outside global icmp 198.51.100.100 10.10.1.10 203.0.113.30 203.0.113.30 icmp 198.51.100.101 10.10.1.20 203.0.113.30 203.0.113.30
Kiểm tra thống kê hoạt động NAT
R1# show ip nat statistics
Kết quả sẽ hiển thị:
Ví dụ:
Total active translations: 4 (0 static, 4 dynamic; 2 extended) Hits: 112 Misses: 0 Dynamic mappings: [Id: 1] access-list 10 pool NatPool refcount 4 pool NatPool: total addresses 50, allocated 2 (4%)
❓ Câu hỏi ôn tập
Câu hỏi: Mục đích của câu lệnh access-list trong cấu hình Dynamic NAT là gì?
✅ Đáp án đúng: To define the addresses to be translated
(Định nghĩa các địa chỉ nội bộ nào sẽ được dịch NAT)
📌 Kết luận
Dynamic NAT là lựa chọn tối ưu khi bạn có một nhóm IP công cộng muốn phân bổ linh hoạt cho nhiều thiết bị nội bộ. Nó đơn giản, không quá phức tạp như PAT (Port Address Translation), và đặc biệt phù hợp với các môi trường yêu cầu mỗi kết nối ra ngoài phải có một địa chỉ công cộng riêng biệt (ví dụ: ứng dụng yêu cầu IP riêng để định danh, hoặc bảo mật nâng cao).
👉 Nếu bạn đang học CCNA/CCNP, đừng quên thực hành phần này với lệnh show, ping, debug ip nat để hiểu sâu hơn hoạt động bên trong của NAT!
Trong khi Static NAT gán một địa chỉ IP cục bộ với một địa chỉ IP công cộng cố định (one-to-one), thì Dynamic NAT sử dụng một nhóm (pool) các địa chỉ IP công cộng để phân phát tạm thời cho các máy trong mạng nội bộ khi chúng cần kết nối ra ngoài. Điều này giúp tiết kiệm địa chỉ và tăng tính linh hoạt.
🧠 Cách Dynamic NAT hoạt động (Giải thích kèm ví dụ)
Giả sử bạn có 2 máy nội bộ:
- Host A: 10.1.1.101
- Host B: 10.1.1.100
Cả hai đều muốn truy cập máy chủ công cộng tại IP 209.165.202.131.
Router biên sẽ thực hiện NAT như sau:
- Host A gửi gói đầu tiên ra ngoài:
- Router kiểm tra bảng NAT.
- Không có ánh xạ tĩnh ⇒ cần dịch động.
- Chọn IP từ pool, ví dụ: 209.165.201.5, ánh xạ tạm thời cho 10.1.1.101.
- Host B cũng gửi gói tin:
- Router chọn IP khác từ pool, ví dụ: 209.165.201.6 cho 10.1.1.100.
- Gói tin được thay đổi địa chỉ nguồn:
- 10.1.1.101 → 209.165.201.5
- 10.1.1.100 → 209.165.201.6
- Khi máy chủ công cộng phản hồi:
- Gửi về địa chỉ 209.165.201.5, router dịch ngược về 10.1.1.101.
- Gửi về địa chỉ 209.165.201.6, router dịch ngược về 10.1.1.100.
➡️ Mỗi lần host nội bộ mở kết nối mới, router sẽ cấp phát một IP từ pool (nếu còn).
🛠️ Cấu hình Dynamic NAT trên Cisco IOS XE
Bước 1: Tạo pool địa chỉ công cộng
R1(config)# ip nat pool NatPool 198.51.100.100 198.51.100.149 netmask 255.255.255.0
Bước 2: Định nghĩa các IP nội bộ sẽ được NAT bằng access list
R1(config)# access-list 10 permit 10.10.1.0 0.0.0.255
Bước 3: Liên kết ACL với NAT pool
R1(config)# ip nat inside source list 10 pool NatPool
Bước 4: Gán vai trò cho các interface
R1(config)# interface e0/0 R1(config-if)# ip nat inside R1(config)# interface e0/3 R1(config-if)# ip nat outside
💡 Ghi nhớ:
- Interface kết nối LAN (bên trong): ip nat inside
- Interface kết nối ra Internet: ip nat outside
🔍 Kiểm tra và xác minh
Kiểm tra bảng ánh xạ NAT
R1# show ip nat translations
Ví dụ:
Pro Inside global Inside local Outside local Outside global icmp 198.51.100.100 10.10.1.10 203.0.113.30 203.0.113.30 icmp 198.51.100.101 10.10.1.20 203.0.113.30 203.0.113.30
Kiểm tra thống kê hoạt động NAT
R1# show ip nat statistics
Kết quả sẽ hiển thị:
- Số bản dịch đang hoạt động
- Số gói đã dịch thành công (hits)
- Số địa chỉ trong pool, đã cấp phát bao nhiêu
Ví dụ:
Total active translations: 4 (0 static, 4 dynamic; 2 extended) Hits: 112 Misses: 0 Dynamic mappings: [Id: 1] access-list 10 pool NatPool refcount 4 pool NatPool: total addresses 50, allocated 2 (4%)
❓ Câu hỏi ôn tập
Câu hỏi: Mục đích của câu lệnh access-list trong cấu hình Dynamic NAT là gì?
✅ Đáp án đúng: To define the addresses to be translated
(Định nghĩa các địa chỉ nội bộ nào sẽ được dịch NAT)
📌 Kết luận
Dynamic NAT là lựa chọn tối ưu khi bạn có một nhóm IP công cộng muốn phân bổ linh hoạt cho nhiều thiết bị nội bộ. Nó đơn giản, không quá phức tạp như PAT (Port Address Translation), và đặc biệt phù hợp với các môi trường yêu cầu mỗi kết nối ra ngoài phải có một địa chỉ công cộng riêng biệt (ví dụ: ứng dụng yêu cầu IP riêng để định danh, hoặc bảo mật nâng cao).
👉 Nếu bạn đang học CCNA/CCNP, đừng quên thực hành phần này với lệnh show, ping, debug ip nat để hiểu sâu hơn hoạt động bên trong của NAT!