I. LÝ THUYẾT TÓM TẮT
1. NAT (Network Address Translation) là gì?
- Định nghĩa: Kỹ thuật chuyển đổi địa chỉ IP giữa các mạng
- Giải quyết: Vấn đề thiếu IPv4 public và bảo mật mạng nội bộ
- Nguyên lý: Router thay đổi IP header khi packet đi qua
2. Các Thuật Ngữ Quan Trọng
- Inside Local: IP thật của device trong mạng LAN (VD: 192.168.1.10)
- Inside Global: IP public đại diện ra ngoài (VD: 203.0.113.100)
- Outside Global: IP thật của device trên internet
Trong Thực Tế – ISP Sẽ Cấp Inside Global:
Kịch Bản 1: Doanh Nghiệp Có Nhiều IP Public
ISP cấp: 203.0.113.0/28 (16 IP: 203.0.113.1 - 203.0.113.15)
Sử dụng:
- 203.0.113.1 → Gateway (router outside interface)
- 203.0.113.2 → Web Server (static NAT)
- 203.0.113.3 → Mail Server (static NAT)
- 203.0.113.4-15 → Reserved/Dynamic NAT
Kịch Bản 2: Chỉ Có 1 IP Public (Home/Small Business)
ISP cấp: 1 IP public duy nhất (VD: 203.0.113.1)
Sử dụng:
- 204.0.113.1 → Vừa là gateway, vừa dùng PAT cho tất cả
- Static NAT qua port forwarding
Trong Lab GNS3 – Chúng Ta Tự Chọn:
Lý Do Dùng 203.0.113.0/24:
- Dải TEST-NET trong RFC 5737 – dành cho documentation và lab
- Không trùng với IP thật trên internet
- Có thể tùy ý sử dụng mà không ảnh hưởng mạng thật
3. Các Loại NAT
| Loại NAT | Mục Đích | Cú Pháp |
|---|---|---|
| Static NAT | 1 IP private → 1 IP public (server) | ip nat inside source static [private IP] [public IP] |
| Dynamic NAT | Nhiều IP private → Pool IP public | ip nat inside source list [acl] pool [pool-name] |
| PAT | Nhiều IP private → 1 IP public (users) | ip nat inside source list [acl] interface [if] overload |
II. CÚ PHÁP LỆNH NAT QUAN TRỌNG
1. Cấu Hình Interface
! Chỉ định inside interface
interface GigabitEthernet0/0
ip nat inside
! Chỉ định outside interface
interface GigabitEthernet0/1
ip nat outside
2. Static NAT
! Ánh xạ 1-1 IP private → IP public (ảo, ISP cấp)
ip nat inside source static 192.168.1.100 203.0.113.2
! Ánh xạ theo port (port forwarding)
ip nat inside source static tcp 192.168.1.100 80 203.0.113.2 80
3. Dynamic NAT
! Tạo NAT pool
ip nat pool MY_POOL 203.0.113.2 203.0.113.15 netmask 255.255.255.0
! Tạo ACL xác định IP được NAT
access-list 1 permit 192.168.1.0 0.0.0.255
! Áp dụng NAT động
ip nat inside source list 1 pool MY_POOL
4. PAT (NAT Overload)
! Sử dụng ACL + interface + overload
ip nat inside source list 1 interface GigabitEthernet0/1 overload
5. Kiểm Tra
show ip nat translations
show ip nat statistics
show access-lists
debug ip nat
NAT PAT Đóng Góp Cho Bảo Mật:
*** Ẩn Danh Infrastructure
- Che giấu IP thật và topology mạng nội bộ
- Attacker chỉ thấy IP public, không biết cấu trúc mạng bên trong
*** Giới Hạn Kết Nối Trực Tiếp
- Với PAT: Internet không thể khởi tạo kết nối vào devices inside
- Với Static NAT: Chỉ mở port cần thiết cho server
*** Network Obfuscation
- Khó thực hiện network scanning và enumeration
- Tăng độ phức tạp cho reconnaissance attacks
*** Access Control Hỗ Trợ
- Kết hợp với ACL để filter traffic
- Chỉ cho phép traffic từ inside ra outside theo policy
*** Session Tracking
- Theo dõi được connections qua NAT translations
- Phát hiện suspicious activity qua monitoring
Chú ý:
- NAT/PAT KHÔNG phải firewall – chỉ là lớp bảo vệ bổ sung
- Cần kết hợp với ACL, firewall rules để bảo mật toàn diện
- Áp dụng principle of least privilege khi cấu hình NAT rules
Video Hướng dẫn: https://youtu.be/y9cGO49IW7k
III. THỰC HÀNH TỪNG LOẠI NAT
TOPOLOGY SỬ DỤNG:
Mạng nội bộ [PC1, PC2, Server] — Switch –192.168.1.0/24– (.1)Router (.1) —203.0.113.0/24)—- (.200)PC ngoài Internet
CẤU HÌNH CƠ BẢN TRƯỚC KHI VÀO NAT:
Trên Router:
enable
configure terminal
! Inside interface
interface GigabitEthernet1/0
ip address 192.168.1.1 255.255.255.0
ip nat inside
no shutdown
exit
! Outside interface
interface GigabitEthernet2/0
ip address 203.0.113.1 255.255.255.0
ip nat outside
no shutdown
exit
Cấu hình các máy: (video trước, video này)
# Server (inside)
ip 192.168.1.100 192.168.1.1 24
# PC1 (inside)
ip 192.168.1.10 192.168.1.1 24
# PC2 (inside)
ip 192.168.1.11 192.168.1.1 24
# Internet-PC (outside) - kết nối trực tiếp vào G2/0 của router
ip 203.0.113.200 203.0.113.1 24
PHẦN 1: STATIC NAT – CHO SERVER
MỤC TIÊU:
- Làm gì: Cho phép truy cập web server từ internet
- Ứng dụng: Host dịch vụ public (web, mail, FTP)
- Kết quả: Server có IP public cố định
BƯỚC 1: Cấu Hình Static NAT
! Ánh xạ IP server ra IP public
ip nat inside source static 192.168.1.100 203.0.113.2
! Hoặc chi tiết hơn - chỉ mở port 80 (web)
ip nat inside source static tcp 192.168.1.100 80 203.0.113.2 80
BƯỚC 2: Kiểm Tra Static NAT
# Trên router, kiểm tra bảng NAT
show ip nat translations
# Kết quả mong đợi:
Pro Inside global Inside local Outside local Outside global
--- 203.0.113.2 192.168.1.100 --- ---
tcp 203.0.113.2:80 192.168.1.100:80 --- ---
# Từ Internet-PC (outside) ping đến IP public của server
ping 203.0.113.2
203.0.113.2 icmp_seq=1 timeout
84 bytes from 203.0.113.2 icmp_seq=2 ttl=63 time=13.583 ms
84 bytes from 203.0.113.2 icmp_seq=3 ttl=63 time=11.634 ms
84 bytes from 203.0.113.2 icmp_seq=4 ttl=63 time=13.481 ms
84 bytes from 203.0.113.2 icmp_seq=5 ttl=63 time=12.764 ms
GIẢI THÍCH KẾT QUẢ:
- Inside Local: 192.168.1.100 (IP thật của server trong LAN)
- Inside Global: 203.0.113.2 (IP public của server)
- Kết nối thành công từ internet vào server qua IP public
PHẦN 2: DYNAMIC NAT – CHO USERS
MỤC TIÊU:
- Làm gì: Cho nhiều users ra internet với IP public ngẫu nhiên
- Ứng dụng: Department trong doanh nghiệp
- Kết quả: Mỗi user được gán IP public từ pool
BƯỚC 1: Xóa Static NAT Trước (Hoặc tạo lại Topo mới)
!Xóa
no ip nat inside source static 192.168.1.100 203.0.113.2
BƯỚC 2: Cấu Hình Dynamic NAT
! Tạo pool IP public (10 IP từ 203.0.113.2 đến 203.0.113.12)
ip nat pool USER_POOL 203.0.113.2 203.0.113.12 netmask 255.255.255.0
! ACL xác định users được NAT
access-list 1 permit 192.168.1.0 0.0.0.255
! Áp dụng NAT động
ip nat inside source list 1 pool USER_POOL
BƯỚC 3: Kiểm Tra Dynamic NAT
# Từ PC1 ping ra internet (Internet PC giả lập)
ping 203.0.113.200
# Từ PC2 ping ra internet
ping 203.0.113.200
# Kiểm tra bảng NAT
show ip nat translations
# Kết quả mong đợi:
Pro Inside global Inside local Outside local Outside global
icmp 203.0.113.3:12738 192.168.1.10:12738 203.0.113.200:12738 203.0.113.200:12738
icmp 203.0.113.3:12994 192.168.1.10:12994 203.0.113.200:12994 203.0.113.200:12994
icmp 203.0.113.3:13250 192.168.1.10:13250 203.0.113.200:13250 203.0.113.200:13250
icmp 203.0.113.3:13762 192.168.1.10:13762 203.0.113.200:13762 203.0.113.200:13762
icmp 203.0.113.3:14018 192.168.1.10:14018 203.0.113.200:14018 203.0.113.200:14018
--- 203.0.113.3 192.168.1.10 --- ---
icmp 203.0.113.2:10178 192.168.1.11:10178 203.0.113.200:10178 203.0.113.200:10178
icmp 203.0.113.2:10434 192.168.1.11:10434 203.0.113.200:10434 203.0.113.200:10434
icmp 203.0.113.2:10690 192.168.1.11:10690 203.0.113.200:10690 203.0.113.200:10690
icmp 203.0.113.2:10946 192.168.1.11:10946 203.0.113.200:10946 203.0.113.200:10946
icmp 203.0.113.2:11202 192.168.1.11:11202 203.0.113.200:11202 203.0.113.200:11202
--- 203.0.113.2 192.168.1.11 --- ---
# Kiểm tra NAT statistics
show ip nat statistics
GIẢI THÍCH KẾT QUẢ:
- PC1 (192.168.1.10) → 203.0.113.3 (IP từ pool)
- PC2 (192.168.1.11) → 203.0.113.2 (IP từ pool)
- Mỗi user có IP public riêng nhưng thay đổi theo session
PHẦN 3: PAT (NAT OVERLOAD) – TIẾT KIỆM NHẤT
MỤC TIÊU:
- Làm gì: Cho tất cả users dùng chung 1 IP public
- Ứng dụng: Home network, small office
- Kết quả: Nhiều devices dùng chung 1 IP public
BƯỚC 1: Xóa Dynamic NAT
no ip nat inside source list 1 pool USER_POOL
no ip nat pool USER_POOL
BƯỚC 2: Cấu Hình PAT
! Sử dụng ACL đã tạo + interface outside + overload
ip nat inside source list 1 interface GigabitEthernet2/0 overload
BƯỚC 3: Kiểm Tra PAT
# Từ PC1 ping đến Internet-PC
ping 203.0.113.200
# Từ PC2 ping đến Internet-PC
ping 203.0.113.200
# Trên Router kiểm tra NAT
show ip nat translations
# Kết quả đúng:
Pro Inside global Inside local Outside local Outside global
icmp 203.0.113.1:53186 192.168.1.10:53186 203.0.113.200:53186 203.0.113.200:53186
icmp 203.0.113.1:53442 192.168.1.10:53442 203.0.113.200:53442 203.0.113.200:53442
icmp 203.0.113.1:53698 192.168.1.10:53698 203.0.113.200:53698 203.0.113.200:53698
icmp 203.0.113.1:53954 192.168.1.10:53954 203.0.113.200:53954 203.0.113.200:53954
icmp 203.0.113.1:54210 192.168.1.10:54210 203.0.113.200:54210 203.0.113.200:54210
icmp 203.0.113.1:54466 192.168.1.11:54466 203.0.113.200:54466 203.0.113.200:54466
icmp 203.0.113.1:54722 192.168.1.11:54722 203.0.113.200:54722 203.0.113.200:54722
icmp 203.0.113.1:54978 192.168.1.11:54978 203.0.113.200:54978 203.0.113.200:54978
icmp 203.0.113.1:55234 192.168.1.11:55234 203.0.113.200:55234 203.0.113.200:55234
icmp 203.0.113.1:55490 192.168.1.11:55490 203.0.113.200:55490 203.0.113.200:55490
GIẢI THÍCH KẾT QUẢ:
- Tất cả devices dùng chung IP: 203.0.113.1
- Phân biệt bằng port numbers: 53186 , 53698,,,,,
- Tiết kiệm IP public nhất
Phần 4. KẾT HỢP STATIC NAT VÀ PAT
MỤC TIÊU: Vừa có Server public, vừa có Users ra internet
BƯỚC 1: Cấu Hình Kết Hợp
configure terminal
! Static NAT cho Server
ip nat inside source static 192.168.1.100 203.0.113.2
! PAT cho Users (ACL 1 đã tạo ở trên)
ip nat inside source list 1 interface GigabitEthernet0/1 overload
exit
BƯỚC 2: Kiểm Tra Toàn Diện
# Kiểm tra từ Internet-PC vào Server
ping 203.0.113.2 # THÀNH CÔNG
# Kiểm tra từ PC1 ra Internet-PC
ping 203.0.113.200 # THÀNH CÔNG
# Kiểm tra bảng NAT đầy đủ
show ip nat translations
Pro Inside global Inside local Outside local Outside global
icmp 203.0.113.1:58563 192.168.1.11:58563 203.0.113.200:58563 203.0.113.200:58563
icmp 203.0.113.1:58819 192.168.1.11:58819 203.0.113.200:58819 203.0.113.200:58819
icmp 203.0.113.1:59075 192.168.1.11:59075 203.0.113.200:59075 203.0.113.200:59075
icmp 203.0.113.1:59331 192.168.1.11:59331 203.0.113.200:59331 203.0.113.200:59331
icmp 203.0.113.1:59587 192.168.1.11:59587 203.0.113.200:59587 203.0.113.200:59587
--- 203.0.113.2 192.168.1.100 --- ---
******* TÓM TẮT CÂU LỆNH QUAN TRỌNG
# Static NAT
ip nat inside source static [inside_local] [inside_global]
# PAT
access-list 1 permit [network] [wildcard]
ip nat inside source list 1 interface [outside_interface] overload
# Kiểm tra
show ip nat translations
show ip nat statistics
clear ip nat translation *
