Bài viết chuyên đề

NAT: Lý thuyết tổng quan

04/01/2018 10:09:12

Bài số 1: Chuyên đề Network Address Translation

Giới thiệu

Như chúng ta đã biết, hiện nay không gian IPv4 trên toàn cầu đã cạn kiệt. Vào tháng 02/2011, IANA (Internet Assigned Numbers Authority) – tổ chức quản lý địa chỉ  IP và số hiệu mạng trên toàn thế giới đã công bố rằng địa chỉ IPv4 đã được cấp phát hết. Dải IPv4 còn sử dụng đến ngày nay đều nằm trong kho IP của các cơ quan quản lý IP cấp vùng hoặc các ISP; không còn IP mới để cấp phát. Việc sử dụng IPv4 hiện nay đều được các ISP quy hoạch hết sức cẩn thận để không gây lãng phí một tài nguyên mạng đã cạn kiệt.

Địa chỉ IPv4 dài 32 bit nhị phân, theo lý thuyết cung cấp cho thế giới khoảng hơn 4 tỉ địa chỉ IP, vào thời điểm ra đời được cho là một dải địa chỉ nhiều vô tận không thể sử dụng hết, đến thời điểm này đã cạn kiệt. Tốc độ phát triển của Internet cũng như các công nghệ chạy trên nền IP trong nhiều năm qua đã tăng đến chóng mặt, nằm ngoài dự liệu của các tổ chức xây dựng nên chồng giao thức TCP/IP ban đầu. Để giải quyết vấn đề hao tốn địa chỉ IP quá nhanh, nhiều biện pháp giúp hạn chế tốc độ tiêu thụ IP đã được đưa ra. Trong số đó, một số biện pháp tỏ ra rất hiệu quả và vẫn còn được sử dụng cho đến ngày nay:

  • CIDR (Classless InterDomain Routing): là một phương pháp cấp phát địa chỉ IP và định tuyến các gói tin IP, được IETF giới thiệu lần đầu tiên vào tháng 09/1993 với các tài liệu RFC – 1518 và RFC – 1519; tài liệu cập nhật mới nhất cho CIDR là RFC – 4632 được xuất bản vào năm 2006.

CIDR sử dụng hai kỹ thuật: VLSM (Variable Length Subnet Mask) – cho phép chia nhỏ một mạng lớn thành nhiều mạng nhỏ (subnet) và Aggregation, hay còn gọi là kỹ thuật summarization – tóm tắt địa chỉ, cho phép gom nhiều mạng nhỏ thành một mạng lớn đại diện. VLSM giúp cấp phát IP một cách hợp lý hơn, giảm thiểu tối đa việc tiêu tốn địa chỉ IP; Aggregation giúp giảm thiểu kích thước của bảng định tuyến của các router để hoạt động định tuyến trở nên hiệu quả hơn.

  • Chia không gian IP unicast thành hai không gian IP Private và IP Public: Dải IP Private là dải IP chỉ sử dụng trong mạng nội bộ, một IP Private có thể được  sử dụng đi sử dụng lại từ mạng nội bộ này qua mạng nội bộ khác; các IP Private không hiện diện trên bảng định tuyến của các router trên Internet và vì vậy không thể dùng để truy nhập thông tin trên Internet được. Dải IP Public là dải IP có thể định tuyến được trên môi trường Internet toàn cầu, được sử dụng để đặt cho các host trên Internet, có thể sử dụng để trao đổi thông tin trên Internet.

IP Private được quy định trong RFC – 1918, gồm 3 dải như sau:

  • 10.0.0.0 đến 10.255.255.255 (lớp A).
  • 172.16.0.0 đến 172.31.255.255 (lớp B).
  • 192.168.0.0 đến 192.168.255.255 (lớp C).

Việc có thể sử dụng đi sử dụng lại một IP nào đó từ mạng này qua mạng khác giúp tiết kiệm rất nhiều IP public phải cấp phát. Ví dụ: một dải 192.168.1.0/24 có thể được sử dụng trên hàng ngàn mạng nội bộ khác nhau cùng một lúc, trong khi nếu sử dụng IP Public, chúng ta phải cần hàng ngàn dải địa chỉ IP Public cho hàng ngàn mạng này.

Một vấn đề đặt ra là dù các IP Private không được định tuyến trên môi trường Internet toàn cầu nhưng các host được gán IP Private trong các mạng nội bộ vẫn có nhu cầu truy nhập Internet. Để giải quyết vấn đề này, chúng ta sử dụng một kỹ thuật có tên gọi là NAT – Network Address Translation. Kỹ thuật NAT sẽ thực hiện chuyển đổi địa chỉ IP của gói tin xuất phát từ vùng private thành địa chỉ IP Public khi gói tin này đi từ mạng nội bộ ra môi trường Internet bên ngoài và thực hiện chuyển đổi ngược lại các địa chỉ IP từ Public thành Private khi gói tin trả về đi từ Internet vào trong mạng nội bộ. Điều này được thực hiện một cách trong suốt hoàn toàn với người dùng cũng như với các thực thể mạng trên môi trường Internet.

Trong chuỗi bài viết tiếp theo, bắt đầu từ bài viết này, chúng ta sẽ cùng nhau tìm hiểu về hiện thực NAT trên IOS của router Cisco.

Hoạt động của NAT

Chúng ta cùng trao đổi các ý tưởng cơ bản về hoạt động của NAT thông qua ví dụ dưới đây (hình 1):

Hình 1 – Sơ đồ ví dụ.

Trên hình 1 là một sơ đồ mạng mô tả việc đấu nối đi Internet của một mạng nội bộ đơn giản. Trong mạng nội bộ này, router R sẽ là router gateway cung cấp đường ra Internet. Cổng F0/0 của router đấu nối xuống mạng LAN, cổng F0/1 đấu nối đến gateway của ISP. Mạng LAN của công ty này sử dụng subnet IP là 192.168.1.0/24 là một dải IP Private để quy hoạch IP cho các user của công ty. Router R đấu nối với ISP sử dụng subnet 200.0.0.0/30, địa chỉ trên cổng F0/1 của R là 200.0.0.1 và trên cổng giao tiếp của router ISP là 200.0.0.2.

Như ta thấy, router R là router đứng trung gian giữa vùng IP Private và vùng IP Public. Để đảm bảo các host Private có thể đi được Internet, hay nói cách khác là đi ra được vùng Public, router R phải thực hiện chức năng NAT.

Ta cùng phân tích hoạt động NAT diễn ra trên router R khi có một host ở khu vực Private muốn truy nhập đến một server public. Host private được xét có địa chỉ là 192.168.1.1 và server public được xét có địa chỉ là 6.8.6.8.

  1. Đầu tiên, host trong mạng đóng một gói tin với địa chỉ Source IP là 192.168.1.1 và Destination IP là 6.8.6.8.
  2. Tiếp theo, gói tin này để đi ra ngoài sẽ được chuyển đến router biên. Khi gói tin đi đến router biên để đi ra ngoài, router biên sẽ thực hiện thao tác NAT trên gói tin: nó đổi địa chỉ source private 192.168.1.1 thành địa chỉ source public 200.0.0.1 và đẩy gói tin này lên ISP. Việc chuyển đổi này sẽ được router ghi nhớ lại vào một bảng nhớ chuyên dùng cho hoạt động NAT được gọi là bảng chuyển đổi NAT (NAT translation table) (xem hình 1).
  3. Gói tin tiếp tục được vận chuyển trên môi trường Internet, qua các router của các ISP để cuối cùng đến được với server 6.8.6.8. Server này sẽ không biết địa chỉ thật của gói tin mà nghĩ rằng gói tin này xuất phát từ địa chỉ 200.0.0.1. Server sẽ trả kết quả truy xuất về host bằng một gói tin có source IP là 6.8.6.8 và destination IP là 200.0.0.1.
  4. Gói tin với destination IP là 200.0.0.1 sẽ được định tuyến bởi các router ISP trên môi trường Internet và được vận chuyển về đến router biên R. Router biên R sẽ tra bảng NAT và căn cứ vào thông tin đã lưu trước đó để chuyển đổi ngược lại địa chỉ từ 200.0.0.1 thành 192.168.1.1 rồi định tuyến trong nội bộ đẩy xuống host end user. Tiến trình hoàn tất.

Như vậy, nhờ có NAT mà các host với IP Private có thể truy nhập được đến các host Public trên môi trường Internet.

Những khái niệm cơ bản

Chúng ta cùng nhau điểm qua một vài khái niệm cơ bản thường được sử dụng trong kỹ thuật NAT.

Giả sử rằng router R và phần mạng nội bộ ở phía sau nó là chủ thể mà chúng ta xem xét, là phần mạng “của mình”; thì router của ISP, đám mây Internet, server public,… là các khách thể, là phần mạng “của họ”. Chúng ta có một số khái niệm như sau:

  • Inside interface: là cổng của router biên nối xuống phần mạng “của mình” – khu vực bên trong. Ví dụ: trên sơ đồ hình 1, cổng F0/0 của R là Inside interface.
  • Outside interface: là cổng của router biên nối đi phần mạng “của họ” – khu vực bên ngoài. Ví dụ: trên sơ đồ hình 1, cổng F0/1 của R là Outside interface.
  • Địa chỉ Inside local: là các IP thuộc về phần mạng “của mình” và đặt trên các host ở khu vực nội bộ bên trong.  Ví dụ: tất cả các IP thuộc dải 192.168.1.0/24 đặt trên các host nội bộ là các địa chỉ Inside local.
  • Địa chỉ Inside Global: là các IP thuộc về phần mạng “của mình”, nhưng không đặt trên các host bên trong mà được sử dụng trên các outside interface hoặc được sử dụng để đại diện cho các host bên trong đi Internet. Trong sơ đồ hình 1, địa chỉ 200.0.0.1 là địa chỉ Inside global.
  • Địa chỉ Outside Global: là các địa chỉ bên ngoài, thuộc về phần mạng “của họ”. Ví dụ: các địa chỉ 200.0.0.2 và 6.8.6.8 là các địa chỉ Outside global.
  • Địa chỉ Outside Local: là các địa chỉ thuộc về phần mạng “của mình” nhưng lại dùng để đại diện cho các IP khác thuộc về phần mạng “của họ”.

Ví dụ: có thể xảy ra trường hợp công ty cần dấu địa chỉ IP của một host bên ngoài trên Internet, chẳng hạn 100.0.0.1; lúc đó router R có thể được cấu hình để NAT địa chỉ bên ngoài cần dấu thành địa chỉ bên trong, ví dụ, 172.16.1.1; khi đó các host bên trong sẽ chỉ biết đến địa chỉ 172.16.1.1 mà không hề biết đến địa chỉ 100.0.0.1, cứ mỗi lần cần truy nhập đến 100.0.0.1, các host sẽ gửi gói đến 172.16.1.1; ta nói 172.16.1.1 là một địa chỉ Outside local - ở bên trong mà đại diện cho bên ngoài.

Các phương thức NAT cơ bản nhìn chung được chia thành hai dạng NAT: NAT one – to – one và NAT many – to – one. Chúng ta cùng xem xét từng loại.

NAT one – to – one

Phương thức NAT này sẽ thực hiện NAT một địa chỉ bên trong thành một địa chỉ bên ngoài. Có bao nhiêu địa chỉ bên trong thì cần bấy nhiêu địa chỉ bên ngoài làm đại diện để đảm bảo tất cả các địa chỉ bên trong có thể đi được Internet một cách đồng thời.

NAT one – to – one có hai dạng hoạt động: Static NAT và Dynamic NAT.

Static NAT

Với Static NAT, người quản trị phải cấu hình chỉ rõ từng cặp địa chỉ được NAT với nhau. Các cặp địa chỉ được NAT với nhau sẽ được lưu tĩnh vào trong bảng NAT. Các gói tin sau này đi ra Internet sẽ được router NAT theo các entry tĩnh đã cấu hình.

Ví dụ: Giả sử trong mạng nội bộ của sơ đồ hình 1 có 6 host cần đi Internet và được gán các địa chỉ từ 192.168.1.1 đến 192.168.1.6. Để phục vụ cho việc đi Internet của 6 host này, công ty sử dụng 6 IP tĩnh được cấp từ ISP là 199.99.9.1, 199.99.9.2,…, 199.99.9.6. Ta cần phải cấu hình các entry NAT tĩnh cho 6 cặp địa chỉ trong – ngoài để các host có thể đi được Internet.

Với Cisco IOS, câu lệnh để khai báo một entry NAT tĩnh có cú pháp:

Router(config)#ip nat inside source static inside_local inside_global

Trong đó: inside_local là địa chỉ bên trong còn inside_global là địa chỉ bên ngoài tương ứng với địa chỉ bên trong này.

Cấu hình cho yêu cầu của ví dụ trên:

R(config)#ip nat inside source static 192.168.1.1 199.99.9.1

R(config)#ip nat inside source static 192.168.1.2 199.99.9.2

R(config)#ip nat inside source static 192.168.1.3 199.99.9.3

R(config)#ip nat inside source static 192.168.1.4 199.99.9.4

R(config)#ip nat inside source static 192.168.1.5 199.99.9.5

R(config)#ip nat inside source static 192.168.1.6 199.99.9.6

Sau khi cấu hình xong các lệnh này, 6 entry NAT tĩnh tương ứng đã được điền vào bảng NAT của router. Các gói tin xuất phát từ các địa chỉ từ 192.168.1.1 đến 192.168.1.6 khi đi ra Internet sẽ được chuyển đổi địa chỉ IP thành các địa chỉ public từ 199.99.9.1 đến 199.99.9.6.

Một thao tác nữa phải được tiến hành trên router thực hiện NAT đó là cấu hình trên router chỉ rõ cổng nào là inside interface và cổng nào là outside interface. Để chỉ định các cổng inside hay outside, chúng ta vào trong cổng tương ứng và gõ lệnh:

Router(config-if)#ip nat {inside | outside}

Với sơ đồ hình 1, chúng ta cấu hình trên các cổng F0/0 và F0/1:

R(config)#interface f0/0

R(config-if)#ip nat inside

R(config-if)#exit

R(config)#interface f0/1

R(config-if)#ip nat outside

R(config-if)#exit

Kết quả cấu hình đã thực hiện được thể hiện trên hình 2:

Hình 2 – NAT tĩnh trên router biên.

Một câu hỏi được đặt ra ở đây là làm thế nào mà các ISP cấp cho chúng ta các địa chỉ IP public. Rất đơn giản, khi ISP cấp cho chúng ta một range IP nào đó, họ chỉ cần đảm bảo về mặt định tuyến để mọi gói tin trên Internet đi đến range này sẽ được chuyển tới router biên của chúng ta. Ví dụ, trong trường hợp này, mọi gói tin trên Internet đi đến subnet 199.99.9.0/29 sẽ được ISP sử dụng các kỹ thuật định tuyến để lái đến router R của chúng ta.

Thêm một câu hỏi nữa: vậy 6 địa chỉ IP Public này được đặt ở cổng nào trên router? Câu trả lời là chúng không được đặt trên cổng nào cả, chúng chỉ được sử dụng cho mục đích NAT và đại diện cho các host bên trong trên Internet. Khi router R tiếp nhận các gói tin trên Internet gửi đến các địa chỉ này, R sẽ căn cứ vào bảng NAT để thực hiện việc chuyển đổi địa chỉ cho phù hợp rồi chuyển gói đến các host tương ứng ở bên trong.

Cuối cùng, như chúng ta đã thấy ở trên, phương thức NAT một – một kiểu này không tiết kiệm được địa chỉ IP Public vì cứ một địa chỉ bên trong cần một địa chỉ bên ngoài. Thực ra phương thức này không được sử dụng để tiết kiệm địa chỉ IP mà được dùng để hosting một server bên trong ra môi trường mạng bên ngoài. Các địa chỉ public mua về sẽ được dùng làm địa chỉ đại diện cho các server bên trong trên môi trường public. Các host bên trong mạng nội bộ truy nhập đến các server này bằng các địa chỉ private nội bộ, các host bên ngoài truy nhập đến các server này bằng các địa chỉ public trên Internet.

Dynamic NAT

Cũng là phương thức NAT một – một, nhưng lần này hành động NAT được thực hiện một cách tự động. Trên router, người quản trị sẽ cấu hình một danh sách các địa chỉ bên trong cần đi Internet và một danh sách các địa chỉ bên ngoài đại diện cho các địa chỉ bên trong. Tiếp theo, người quản trị chỉ việc cấu hình yêu cầu router NAT danh sách bên trong thành danh sách bên ngoài. Bảng NAT của router sẽ không có bất kỳ một entry NAT nào được tạo sẵn trước giống như với Static NAT, các entry NAT sẽ chỉ được tạo ra khi có gói tin đi đến router để ra Internet.

Các bước để cấu hình dynamic NAT:

  • Viết một ACL liệt kê các địa chỉ bên trong cần đi Internet.
  • Viết một pool bao gồm các địa chỉ bên ngoài sẽ được NAT thành:

Router(config)#ip nat pool Tên_pool IP_đầu IP_cuối {netmask subnet_mask | prefix-length Prefix_length}

  • Yêu cầu router NAT list bên trong thành pool bên ngoài:

Router(config)#ip nat inside source list Số_hiệu_hoặc_tên_của_ACL pool Tên_pool

  • Cấu hình chỉ định các cổng inside và outside.

Ví dụ:

Trong mô hình ở sơ đồ 1, bây giờ chúng ta sử dụng dynamic NAT. Các bước cấu hình được tiến hành như sau:

Viết ACL bao hàm các địa chỉ bên trong cần đi Internet:

R(config)#access-list 1 permit 192.168.1.0 0.0.0.7

Viết pool bao hàm các địa chỉ bên ngoài:

R(config)#ip nat pool NET199 199.99.9.1 199.99.9.6 prefix-length 29

Hoặc:

R(config)#ip nat pool NET199 199.99.9.1 199.99.9.6 netmask 255.255.255.248

Yêu cầu router NAT list 1 thành pool NET199:

Router(config)#ip nat inside source list 1 pool NET199

Cấu hình các cổng inside và outside:

R(config)#interface f0/0

R(config-if)#ip nat inside

R(config-if)#exit

R(config)#interface f0/1

R(config-if)#ip nat outside

R(config-if)#exit

Phương thức NAT động một – một này như đã nói, không tạo sẵn entry NAT trong bảng NAT mà chỉ tạo entry khi có gói tin xuất phát từ các địa chỉ bên trong đi Internet. Việc chuyển đổi cũng không bị fix cố định như NAT tĩnh mà được thực hiện theo cơ chế còn địa chỉ nào trong pool mà chưa được dùng thì sử dụng địa chỉ ấy. Ví dụ: đầu tiên, giả sử máy 192.168.1.1 đi Internet, pool còn đủ 6 địa chỉ, lấy địa chỉ đầu tiên là 199.99.9.1 cho máy đi Internet; tiếp theo máy 192.168.1.6 đi Internet, pool còn 5 địa chỉ, lấy địa chỉ đầu tiên là 199.99.9.2 để máy đi Internet,.v.v… nghĩa là các máy nội bộ có thể sử dụng bất kỳ địa chỉ nào trong pool, không bị gắn cố định 192.168.1.1 phải đi với 199.99.9.1, 192.168.1.2 phải đi với 199.99.9.2,.v.v… như với NAT tĩnh.

Mỗi khi một máy nội bộ lấy một địa chỉ trong pool để đi Internet, entry NAT được tạo ra tương ứng trong bảng NAT. Các entry này được tạo động và có một khoảng thời gian timeout. Hết khoảng thời gian timeout mà máy không sử dụng entry để đi Internet, entry sẽ bị xóa khỏi bảng NAT, địa chỉ public tương ứng trong pool được giải phóng và có thể được sử dụng bởi một máy khác.

Như vậy, chúng ta thấy rằng các phương thức NAT one – to – one sẽ thực hiện NAT một IP bên trong thành một IP bên ngoài. Để các IP bên trong có thể đi Internet một cách đồng thời, bắt buộc số lượng địa chỉ IP public cần mua hoặc thuê bên ngoài phải bằng với số lượng địa chỉ private bên trong. Phương thức NAT một – một này không nhắm đến việc tiết kiệm IP mà được sử dụng để public các server trong mạng lên môi trường Internet. Để tiết kiệm IP thực sự, chúng ta phải sử dụng phương thức NAT many – to – one: nhiều host bên trong có thể đi ra bên ngoài bằng một địa chỉ public duy nhất.

NAT many – to – one

Còn được gọi là NAT overload hay PAT (Port Address Translation). NAT overload cho phép NAT cùng một lúc nhiều địa chỉ private bên trong thành một địa chỉ public bên ngoài. Ý tưởng của phương thức này có thể được diễn giải như sau:

Xét lại mạng ví dụ ở trên, lần này ta chỉ sử dụng một IP đấu nối lên ISP (200.0.0.1) để cho mọi host bên trong sử dụng để đi ra ngoài, mọi IP bên trong đều được NAT thành IP đấu nối này để đi Internet.

Giả sử có hai host 192.168.1.1 và 192.168.1.2 cùng truy nhập web đến địa chỉ 6.8.6.8 trên Internet và cùng được NAT thành 200.0.0.1. Lúc này, để có thể phân biệt giữa hai thực thể này, cơ chế NAT sử dụng thêm tham số port của TCP hoặc UDP trong hoạt động NAT của mình. Ta quan sát các gói tin được NAT:

 

Inside local

Inside global

Host 1

Source: 192.168.1.1:1024

Destination: 6.8.6.8:80

Source: 200.0.0.1:1024

Destination: 6.8.6.8:80

Host 2

Source: 192.168.1.2:1024

Destination: 6.8.6.8:80

Source: 200.0.0.1:1025

Destination: 6.8.6.8:80

 

Ta thấy rằng, lần này bên cạnh chuyển đổi địa chỉ, router NAT còn thực hiện chuyển đổi cả port được sử dụng. Ta cùng phân tích:

  • Host 1 truy nhập web đến server 6.8.6.8 nên destination port sẽ là 80, source port sử dụng một port ngẫu nhiên lớn hơn hoặc bằng 1024, giả sử là port 1024.  Host 2 cũng truy nhập web đến server 6.8.6.8 với destination port là 80 và giả sử cũng sử dụng source port là 1024.
  • Khi hai gói tin TCP xuất phát từ hai host này được NAT thành các gói tin có cùng source IP là 200.0.0.1, source port sẽ được chuyển đổi thành các port khác nhau để phân biệt giữa hai gói; ví dụ, gói của host 1 thì đổi thành port 1024, còn gói của host 2 thì đổi thành port 1025. Các entry chuyển đổi với thông số port đi kèm sẽ được lưu vào bảng NAT của router, để từ đó, các gói tin trả về sẽ phân biệt được giữa hai đối tượng khác nhau có cùng địa chỉ IP 200.0.0.1. Nếu trả về port 1024 → host 1, nếu trả về port 1025 → host 2. Như vậy, hai host đã có thể sử dụng cùng một địa chỉ để đi Internet.
  • Ta cũng biết rằng trường TCP hoặc UDP port dài tới 16 bit, cung cấp 65536 port, nên có thể cho phép rất nhiều host nội bộ cùng sử dụng chung một địa chỉ IP public trong hoạt động NAT để đi Internet. Tuy nhiên, cần phải lưu ý rằng, giá trị port không phải được dùng để phân biệt giữa các host với nhau mà port được sử dụng để phân biệt các session của các ứng dụng. Do đó, nếu một host mở đồng thời 10 kết nối đi Internet chẳng hạn, thì khi đó sẽ có 10 port khác nhau được sử dụng để NAT 10 session này ra Internet. Port trong NAT dùng cho các session của các ứng dụng, không phải dùng cho phân biệt các host.

Ta cùng điểm qua các bước cấu hình cho NAT overload:

  • Đầu tiên, ta viết một access – list mô tả các địa chỉ nào bên trong sẽ được NAT đi Internet.
  • Tiếp theo, ta viết một dòng lệnh yêu cầu router NAT toàn bộ list đã khai báo thành địa chỉ của một cổng do ta chọn. Tất nhiên, địa chỉ của cổng này phải là địa chỉ public:

Router(config)#ip nat inside source list ACL interface tên_cổng overload

  • Ta cũng đừng quên chỉ định các cổng inside và outside:

Router(config-if)#ip nat {inside | outside}

Với ví dụ của chúng ta, giả sử toàn bộ mạng nội bộ 192.168.1.0/24 được phép đi Internet, chúng ta sẽ thực hiện cấu hình như sau:

Viết ACL đề cập đến toàn bộ mạng nội bộ này:

Rconfig)#access-list 1 permit 192.168.1.0 0.0.0.255

Cấu hình để NAT toàn bộ các địa chỉ trong ACL 1 thành địa chỉ public trên cổng F0/1 của router:

R(config)#ip nat inside source list 1 interface f0/1 overload

Khai báo các interface inside và outside:

R(config)#interface f0/0

R(config-if)#ip nat inside

R(config-if)#exit

 

R(config)#interface f0/1

R(config-if)#ip nat outside

R(config-if)#exit

Sau khi cấu hình xong như trên, toàn bộ mạng nội bộ 192.168.1.0/24 đã đi được Internet bằng cách sử dụng chung 1 địa chỉ public 200.0.0.1.

Bên cạnh việc NAT overload thành một địa chỉ trên một cổng outside nào đó, chúng ta có thể thực hiện NAT overload thành một pool. Ta thực hiện điều này khi số lượng địa chỉ bên trong nhiều hơn số lượng địa chỉ của pool bên ngoài và chúng ta muốn dùng các địa chỉ của một pool để NAT cho tất cả các địa chỉ bên trong đi Internet một cách đồng thời. Câu lệnh NAT pool overload:

Router(config)#ip nat inside source list Số_hiệu_hoặc_tên_của_ACL pool Tên_pool overload

Như vậy, điểm chính cần lưu ý trong thao tác cấu hình là ta nhớ sử dụng thêm từ khóa “overload” ở cuối các câu lệnh NAT. Nếu không có từ khóa này, các hành động NAT sẽ chỉ là NAT một – một.

Trên đây chúng ta đã cùng nhau trao đổi về những điểm chung nhất của kỹ thuật NAT. NAT là một kỹ thuật chuyển đổi địa chỉ IP khi gói tin đi từ vùng inside qua vùng outside và ngược lại. NAT được sử dụng rộng rãi trên mọi router biên của các mạng nội bộ phục vụ cho việc đi Internet. Nắm vững hoạt động và cấu hình thành thạo NAT là một yêu cầu cần thiết với các kỹ sư mạng cũng như với các bạn đang có ý định tìm hiểu sâu cũng như tham dự các kỳ thi lấy các chứng chỉ quốc tế về lĩnh vực networking. Trong các bài viết tới, chúng ta sẽ cùng khảo sát tiếp về NAT thông qua các bài lab ví dụ để nắm rõ hơn về kỹ thuật quan trọng này.

TRUNG TÂM WAREN