Giới thiệu
Sự phát triển không ngừng của Internet đã làm cho những nhà nghiên cứu bất ngờ.
Một trong những nguyên nhân làm cho Internet phát triển nhanh chóng như vậy là do sự linh hoạt, uyển chuyển của thiết kế ban đầu. Nếu chúng ta không có các biện
pháp phân phối địa chỉ IP thì sự phát triển của Internet sẽ làm cạn kiệt nguồn địa chỉ IP. Để giải quyết vấn đề thiếu hụt địa chỉ IP, nhiều biện pháp đã được triển khai. Trong đó, một biện pháp đã được triển khai rộng rãi là chuyển đổi địa chỉ mạng
(Network Address Translation – NAT).
NAT là một cơ chế để tiết kiệm địa chỉ IP đăng kí trong một mạng lớn và giúp đơn
giản hóa việc quản lý địa chỉ IP. Khi một gói dữ liệu được định tuyến trong một
thiết bị mạng, thường là firewall hoặc các router biên, địa chỉ IP nguồn sẽ được
chuyển đổi từ địa chỉ mạng riêng thành địa chỉ IP công cộng định tuyến được. Điều
này cho phép gói dữ liệu được truyền đi trong trong mạng công cộng, ví dụ như Internet. Sau đó, địa chỉ công cộng trong gói trả lời lại được chuyển đổi thành địa
chỉ riêng để phát vào trong mạng nội bộ. Một dạng của NAT, được gọi là PAT (Port Address Translation), cho phép nhiều địa chỉ riêng được dịch sang một địa chỉ công
Router, server và các thiết bị quan trọng khác trong mạng thường đòi hỏi phải được
cấu hình bằng tay địa chỉ IP cố định. Trong khi đó, các máy tính client không cần
thiết phải đặt cố định một địa chỉ mà chỉ cần xác định một dải địa chỉ cho nó. Dải địa chỉ này thường là một subnet IP. Một máy tính nằm trong subnet có thể được
phân phối bất kì địa chỉ nào nằm trong subnet đó.
Sau khi hoàn tất chương này, các bạn có thể:
Xác định địa chỉ IP riêng được mô tả trong RFC 1918.
Nắm được các đặc điểm của NAT và PAT. Phân tích các lợi điểm của NAT.
Phân tích cách cấu hình NAT và PAT, bao gồm cả chuyển đổi cố định, chuyển đổi động và chuyển đổi overloading.
Xác định các lệnh dùng để kiệm tra cấu hình NAT và PAT. Liệt kê các bước xử lý sự cố NAT và PAT.
Nắm được các ưu điểm và nhược điểm của NAT. Chia địa chỉ mạng với NAT và PAT
- Địa chỉ riêng
RFC 1918 dành riêng 3 dải địa chỉ IP sau: 1 địa chỉ lớp A: 10.0.0.0/8.
16 địa chỉ lớp B: 172.16.0.0 – 172.31.255.255 (172.16.0.0/12).
256 địa chỉ lớp C: 192.168.0.0-192.168.255.255 (192.168.0.0/16).
Những địa chỉ trên chỉ dùng cho mạng riêng, mạng nội bộ. Các gói dữ liệu có địa
chỉ như trên sẽ không định tuyến được trên Internet.
Địa chỉ Internet công cộng phải được đăng ký với một công ty có thẩm quyền
Internet, ví dụ như American Registry for Internet Numbers (ARIN) hoặc Réseaux
IP Européens (RIPE) và The Regional Internet Registry phụ trách khu vực Châu Âu
và Bắc Phi. Địa chỉ IP công cộng còn có thể được thuê từ một nhà cung cấp dịch vụ Internet (ISP). Địa chỉ IP riêng được dành riêng và có thể được sử dụng bởi bất kỳ ai. Điều này có nghĩa là có thể có 2 mạng hoặc 2 triệu mạng sử dụng cùng một địa
chỉ mạng riêng. Router trên Internet sẽ không định tuyến các địa chỉ RFC 1918.ISP
cấu hình Router biên ngăn không cho các lưu lượng của địa chỉ riêng được phát ra
ngoài.
NAT mang đến rất nhiều lợi ích cho các công ty và Internet. Trước đây, khi không
có NAT, một máy tính không thể truy cập Internet với địa chỉ riêng. Bây giờ, sau
khi có NAT, các công ty có thể cấu hình địa chỉ riêng cho một hoặc tất cả các máy
tính và sử dụng NAT để truy cập Internet.
NAT được thiết kế để tiết kiệm địa chỉ IP và cho phép mạng nội bộ sử dụng địa chỉ IP riêng. Các địa chỉ IP riêng sẽ được chuyển đổi sang địa chỉ công cộng định tuyến được bằng cách chạy phần mềm NAT đặc biệt trên thiết bị mạng. Điều này giúp cho mạng riêng càng được tách biệt và giấu được địa chỉ IP nội bộ.
NAT thường được sử dụng trên Router biên của mạng một cửa. Mạng một cửa là mạng chỉ có một kết nối duy nhất ra bên ngoài. Khi một host nằm trong mạng một
cửa muốn truyền dữ liệu cho một host nằm bên ngoài nó sẽ truyền gói dữ liệu đến
Router biên giới. Router biên giới sẽ thực hiện tiến trình NAT, chuyển đổi địa chỉ
riêng của host nguồn sang một địa chỉ công cộng định tuyến được. Trong thuật ngữ
NAT, mạng nội bộ có nghĩa là tập hợp các địa chỉ mạng cần chuyển đổi địa chỉ.
Mạng bên ngoài là tất cả các địa chỉ khác còn lai. Mạng cục bộ chỉ có một cửa ra mạng bên ngoài.
Cisco định nghĩa các thuật ngữ NAT như sau:
Địa chỉ cục bộ bên trong (Inside local address): là địa chỉ được phân phối cho các
host bên trong mạng nội bộ. Các địa chỉ này thường không phải là địa chỉ được
cung cấp bởi InterNIC (Internet Network Information Center) hoặc bởi nhà cung cấp dịch vụ Internet. Địa chỉ này thường là địa chỉ riêng RFC 1918.
Địa chỉ toàn cục bên trong (Inside global address): là địa chỉ IP hợp pháp được cung
cấp bởi InterNIC hoặc bởi nhà cung cấp dịch vụ Internet. Địa chỉ này đại diện cho
một hoặc nhiều địa chỉ nội bộ bên trong đối với thế giới bên ngoài.
Địa chỉ cục bộ bên ngoài (Outside local address): là địa chỉ riêng của host nằm bên ngoài mạng nội bộ
Địa chỉ toàn cục bên ngoài (Outside global address): là địa chỉ công cộng hợp pháp
của host nằm bên ngoài mạng nội bộ.
128.23.2.2. Gói dữ liệu được gửi tới router biên giới RTA.
RTA nhận thấy gói dữ liệu này đươc gửi ra ngoài internet nên nó thực hiên tiến
trình NAT, chuyến đổi địa chỉ nguồn 10.0.0.3 thành địa chỉ công cộng là 179.9.8.80. Sauk hi thực hiện NAT xong, gói dữ liệu từ RTA đi ra sẽ có địa chỉ nguồn là một địa chỉ công cộng hợp pháp 179.9.8.80.
Sau đó server 128..23.2.2 có thể gửi lại một gói trả lời. Khi đó gói
trả lời sẽ có địa chỉ đích là 179.9.8.80.
RTA nhận thấy gói dữ liệu này được gửi từ bên ngoài vào trong mạng nội bộ. RTA
sẽ tìm trong bảng NAT để ánh xạ từ địa chỉ đích công cộng sang địa chỉ riêng tương ứng. Sau khi thực hiên NAT xong, gói dữ liệu từ RTA phát vào trong mạng nội bộ
Địa chỉ nội bộ bên trong là 10.0.0.3.
Địa chỉ toàn cục bên trong là: 179.9.8.80.
Địa chỉ toàn cục bên ngoài là: 128.23.2.2.
Các đặc điểm của NAT và PAT
Chuyển đổi NAT rất hữu ích cho nhiều mục đích khác nhau và có thể chuyển đổi động hoặc cố định. NAT cố định được thiết kế để ánh xạ một-một, từ một địa chỉ
nội bộ sang một địa chỉ công cộng tương ứng duy nhất. Điều này rất tốt đối với
những host cần phải có địa chỉ nhất định để truy cập từ Internet. Những host này có thể là các server toàn hệ thống hoặc các thiết bị mạng.
NAT động được thiết kế để ánh xạ một địa chỉ IP riêng sang một địa chỉ công cộng
một cách tự động. Bất kỳ địa chỉ IP nào nằm trong dải địa chỉ IP công cộng đã được định trước đều có thể được gán cho một host bên trong mạng. Overloading hoặc
PAT có thể ánh xạ nhiều địa chỉ IP riêng sang một địa chỉ IP công cộng vì mỗi địa
chỉ riêng được phân biệt bằng số port.
PAT sử dụng số port nguồn cùng với địa chỉ IP riêng bên trong để phân biệt khi
chuyển đổi. Số port được mã hóa 16 bit. Do đó có tới 65.536 địa chỉ nội bộ có thể được chuyển đổi sang một địa chỉ công cộng. Thực tế thì số lượng port có thể gán
cho một địa chỉ IP là khoảng 4000 port. PAT sẽ cố gắng giữ nguyên số port nguồn ban đầu. Nhưng nếu số port này đã bị sử dụng thi PAT sẽ lấy số port còn trống đầu
tiên trong các nhóm port 0-511, 512-1023, 1024-65535. Khi không còn số port nào còn trống và vẫn còn địa chỉ IP công cộng khác đã được cấu hình thì PAT sẽ chuyển
sang địa chỉ IP công cộng kế tiếp và bắt đàu xác định số port nguồn như trên. Quá
trình này sẽ được thực hiện cho đến khi nào hết số port và địa chỉ IP công cộng còn trống.
Host 10.0.0.3 gửi gói dữ liệu ra internet. Trong gói dữ liệu này, địa
chỉ IP nguồn là 10.0.0.3, port là 1444
Router thực hiện chuyển đổi địa chỉ IP nguồn từ 10.0.0.3 sang địa
chỉ 179.9.8.80, port nguồn vẫn giữ nguyên là 1444.
Bây giờ Host 10.0.0.4 cũng gửi gói dữ liệu ra internet với địa chỉ
Router thực hiện chuyển đổi địa chỉ IP nguồn từ 10.0.0.4 sang179.9.8.80. Port
nguồn là 1444 lúc này phải đổi sang 1445. Như vậy theo như bảng NAT trong hình ta thấy địa chỉ công cộng 179.9.8.80: 1444 là tương ứng với 10.0.0.3:1444,
179.9.8.80:1445 tương ứng với 10.0.0.4:1444. Bằng cách sử dụng kết hợp với số port như vậy, PAT có thể ánh xạ một địa chỉ IP công cộng cho nhiều địa chỉ riêng bên trong.
NAT cung cấp những lợi điểm sau:
Không cần phải gán địa chỉ IP mới cho từng host khi thay đổi sang một ISP mới.
Nhờ đó có thể tiết kiệm được thời gian và tiền bạc.
Tiết kiệm địa chỉ thông qua ứng dụng ghép kênh cấp độ port. Với PAT, các host bên trong có thể chia sẻ một địa chỉ IP công cộng để giao tiếp với bên ngoài. Với cách
cấu hình này, chúng ta cần rất ít địa chỉ công cộng, nhờ đó có thể tiết kiệm địa chỉ
IP.
Bảo vệ mạng an toàn vì mạng nội bộ không để lộ địa chỉ và cấu trúc bên trong ra ngoài.
Cấu hình NAT và PAT
- Static NAT - Chuyển đổi cố định
Để cấu hình chuyển đổi cố định địa chỉ nguồn bên trong, chúng ta cấu hình các
bước như sau: Bước thực
hiện
Cấu hình Ghi chú
1 Thiết lập mối quan hệ chuyển đổi giữa địa chỉ nội bộ bên trong và địa chỉ đại
diện bên ngoài
Router (config) # ip nat inside source static local-ip global-ip
Trong chế độ cấu hình toàn cục, bạn dùng câu lệnh no ip nat inside source static để xóa sự
chuyển đổi địa chỉ cố định.
trong.
Router (config) # interface type number
interface, dấu nhắc của
dòng lệnh sẽ chuyển từ
(config) # sang (config-if) #
3 Đánh dấu cổng này là cổng kết nối vào mạng nội bộ bên trong.
Router (config-if) # ip nat inside 4 Thóat khỏi chế độ cấu hình cổng hiện
tại.
Router (config-if) # exit
5 Xác định cổng kết nối ra mạng công
cộng bên ngoài.
Router (config) # interface type number
6 Đánh dấu cổng này là cổng kết nối ra
mạng công cộng bên ngoài.
Router (config-if) # ip nat outside
Sự chuyển đổi địa chỉ sẽ được thưc hiện giữa hai cổng inside và outside
chỉ nguồn 10.1.1.2 của gói dữ liệu sang địa chỉ 192.168.1.2 trước khi phát gói ra
cổng s0.
- Dynamic NAT - Chuyển đổi động
Để Chuyển đổi động địa chỉ nguồn bên trong, chúng ta cấu hình theo các bước như
sau:
Bước thực
hiện
Cấu hình Ghi chú
1 Xác định dải địa chỉ đại diện bên ngoài Rourter (config) # ip nat pool name start-ip end-ip [netmask netmask /prefix-length prefix-length]
Trong chế độ cấu hình toàn cục, gõ lệnh no ip
nat pool name để xóa dải địa chỉ đại diên bên ngoài.
2 Thiết lập ACL cơ bản cho phép những địa chỉ nội bộ bên trong nào được
chuyển đổi.
Router (config) # access-list access- list-number permit source [source- wildcard]
Trong chế độ cấu hình toàn cục, gõ lệnh no
access-list access-list-
number để xóa ACL đó.
3 Thiết lập mối liên quan giữa địa chỉ
nguồn đã được xác định trong ACL ở bước trên với dải địa chỉ đại diện bên ngoài:
Router (config) # ip nat inside source list access-list-number pool name
Trong chế độ cấu hình toàn cục, gõ lênh no ip
nat inside source để xóa
sự chuyển đổi động này
4 Xác định cổng kết nối vào mạng nội bộ
Router (config) # interface type number
Sau khi gõ xong lệnh
interface, dấu nhắc của
dòng lệnh sẽ chuyển đổi
từ (config)# sang (config- if)#
5 Đánh dấu cổng này là cổng kết nối vào mạng nội bộ.
Router (config-if) # ip nat inside 6 Thoát khỏi chế độ cổng hiện tại.
Router (config) # exit
7 Đánh dấu cổng này là cổng kết nối ra
Router (config) # ip nat outside 8 Đánh dấu cổng này là cổng kết nối ra
bên ngoài.
Router (config) # ip nat outside
Danh sách điều khiển truy cập (ACL – Access Control List) cho phép khai báo những địa chỉ nào được chuyển đổi. Bạn nên nhớ là kết thúc một ACL luôn có câu
lệnh ẩn cấm tuyệt đối để tránh những kết quả không dự tính được khi một ACL có
quá nhiều điều kiện cho phép. Cisco khuyến cáo là không nên dùng điều kiện cho
phép tất cả permit any trong ACL sử dụng cho NAT vì câu lệnh này làm hao tốn
quá nhiều tài nguyên của Router và do đó có thể gây ra sự cố mạng.
Xét ví dụ trên: Dải địa chỉ công cộng đại diện bên ngoài có tên là nat-pool1, bao gồm các địa chỉ từ 179.9.8.80 đến 179.9.95. Địa chỉ nội bộ bên trong được phép
chuyển đổi được định nghĩa trong access-list 1 là 10.1.0.0 – 10.1.0.255. Như vậy,
gói dữ liệu nào trong mạng nội bộ đi ra ngoài Internet có địa chỉ nguồn nằm trong
dải địa chỉ 10.1.0.0 – 10.1.0.255 sẽ được chuyển đổi địa chỉ nguồn sang một trong
bất kỳ địa chỉ nào còn trống trong dải địa chỉ công cộng 179.9.8.80 – 179.9.8.95. Host 10.1.1.2 sẽ không được chuyển đổi địa chỉ vì địa chỉ của nó không được
cho phép trong acces-list 1, do đó nó không truy cập được Internet.
Overloading hay PAT
Overloading được cấu hình theo hai cách tùy theo địa chỉ IP công cộng được cấp phát như thể nào. Một ISP có thể cho một hệ thống mạng của khách hàng sử dụng
chung một địa chỉ IP công cộng duy nhất, địa chỉ IP công cộng này chính là địa chỉ
Router (config) # access-list 1 permit 10.0.0.0 0.0.255.255
Router (config) ip nat inside source list 1 interface serial0/0 overload
Bước thực
hiện
Cấu hình Ghi chú
1 Tạo ACL để cho phép những địa chỉ
nội bộ nào được chuyển đổi.
Router(config) # access-list acl- number permit source [source- wildcard]
Trong chế độ cấu hình toàn cục, gõ lệnh no
access-list access-list-
number để xóa access-list
tương ứng.
2 Thiết lập mối liên quan giữa địa chỉ
nguồn đã được xác định trong access- list ở bước trên với địa chỉ đại diện là
địa chỉ của cổng kết nối với bên ngoài.
Router (config) # ip nat inside source
list acl-number interface interface overload
Trong chế độ cấu hình toàn cục, gõ lệnh no ip nat inside source để xóa
sự chuyển đổi động
này.Từ khóa overload để
cho phép chạy PAT
3 Khai báo dải địa chỉ đại diện bên ngoài dùng overload.
Router (config) ip nat pool name start- ip end-
ip [netmask netmask / prefix-length prefix-
length]
Thiết lập chuyển đổi overload giữa địa
chỉ nội bộ đã được xác định trong ACL ở bước 1 với dải địa chỉ đại diện bên ngoài mới khai báo ở trên.
Router (config) # ip nat inside source
list acl-number pool name overload 4 Xác định cổng kết nối với mạng nội bộ.
Router (config) # interface type number
Router (config-if) # ip nat inside
Sau khi gõ lệnh interface,
dấu nhắc của dòng lệnh
sẽ được đổi từ (config)#
sang (config-if)# 5 Xác định cổng kết nối với bên ngoài.
Router (config) # interface type number
Router (config-if) # ip nat outside.
Một cách khác để cấu hình Overload là khi ISP cung cấp một hoặc nhiều địa chỉ IP
công cộng để cho hệ thống mạng khách hàng sử dụng làm dải địa chỉ chuyển đổi
PAT. Cấu hình ví dụ cho tình huống này như sau:
Xác định địa chỉ nội bộ được phép chuyển đổi là 10.0.0.0/16: Router (config) # access-list 1 permit 10.0.0.0.0.0.255.255