NAT và máy chủ "vượt" NAT

Admin 10-01-2015, 9:37 am 1846

NAT và máy chủ "vượt" NAT Với một địa chỉ IP "thật", sử dụng router, bạn có thể chia sẻ kết nối Internet cho hàng chục đến hàng trăm máy tính khác nhau trong mạng nội bộ. Router làm điều đó như thế nào?

Với một địa chỉ IP "thật" (Public IP hay Registered IP), sử dụng router, bạn có thể chia sẻ kết nối Internet cho hàng chục đến hàng trăm máy tính khác nhau trong mạng nội bộ. Router làm điều đó như thế nào? Bài viết sẽ giúp bạn hiểu rõ quá trình biên dịch địa chỉ mạng (NAT) bên trong router (router ADSL), và hướng dẫn xây dựng máy chủ dịch vụ nằm sau NAT, phục vụ nhu cầu chia sẻ.

NAT là gì?

Các máy tính cần địa chỉ IP để giao tiếp với nhau trên mạng. Mỗi máy tính phải có địa chỉ IP phân biệt nhau - như địa chỉ nhà. Tuy nhiên hiện nay, Internet ngày càng được sử dụng rộng rãi, các dịch vụ web, tương tác trực tuyến ngày càng phát triển, số lượng máy tính kết nối Internet ngày càng nhiều dẫn đến số lượng địa chỉ IPv4 thiếu hụt. IPv6 ra đời giúp tăng thêm số lượng địa chỉ IP tuy nhiên còn phải mất thêm nhiều thời gian để được sử dụng rộng rãi. Và NAT đã xuất hiện để giải quyết bài toán thiếu hụt IPv4.

NAT (Network Address Translation) cho phép thiết bị như bộ định tuyến (router), tường lửa (firewall) - nằm giữa mạng nội bộ (LAN) và mạng Internet (Public Network) - chuyển đổi địa chỉ mạng, ghi lại bảng thông tin những máy tính trong mạng nội bộ (client) đã gởi gói tin (packet) ra ngoài Internet trên mỗi cổng (port) dịch vụ và gởi trả những gói tin nhận được về đúng máy tính đó. NAT có nhiều dạng:

Hình 1: Trong Static NAT, máy tính có địa chỉ IP 192.168.1.10 luôn được router biên dịch đến địa chỉ IP 222.253.144.219

- NAT tĩnh (Static NAT): ánh xạ "một-một" giữa 1 địa chỉ IP nội bộ (Private IP hay Unregistered IP) với 1 địa chỉ IP thật. Nghĩa là một máy tính trong mạng nội bộ sẽ có tương ứng một địa chỉ IP thật để truy cập Internet và các máy tính từ mạng Internet có thể truy cập trực tiếp vào máy tính này trong mạng nội bộ thông qua địa chỉ IP thật.

- NAT động (Dynamic NAT): ánh xạ 1 địa chỉ IP nội bộ đến 1 địa chỉ IP thật trong nhóm địa chỉ IP thật. Bạn không phải cấu hình ánh xạ từng địa chỉ IP nội bộ đến địa chỉ IP thật như Static NAT. Ví dụ bạn có một nhóm 3 địa chỉ IP thật, thì tương ứng mỗi máy tính trong mạng nội bộ sẽ được gán tự động 1 trong 3 địa chỉ IP thật này. Tuy nhiên nếu 3 máy tính trong mạng nội bộ đang sử dụng hết 3 địa chỉ IP thật thì máy tính thứ 4 sẽ không thể truy cập Internet, do đó bạn cần có đủ địa chỉ IP thật cho các máy tính trong mạng truy cập Internet.

Hình 2: Trong Dynamic NAT, máy tính có địa chỉ IP 192.168.1.10 luôn được router biên dịch đến địa chỉ đầu tiên 222.253.144.219 trong dãy địa chỉ IP từ 222.253.144.219 đến 222.253.144.221

- NAT Overload (là dạng NAT được sử dụng phổ biến): ánh xạ "nhiều-một" giữa các địa chỉ IP nội bộ đến một địa chỉ IP thật bằng cách sử dụng các cổng khác nhau. NAT Overload là sự kết hợp của Static NAT, Dynamic NAT và PAT (Port Address Translation) hay còn gọi là NAPT (Network Address Port Translation) giúp bạn chia sẻ kết nối Internet cho nhiều máy tính trong mạng nội bộ chỉ với một địa chỉ IP thật.

Hình 3: Trong NAT Overload, các máy tính trong mạng nội bộ được router biên dịch đến cùng một địa chỉ IP 222.253.144.219 nhưng với các cổng giao tiếp khác nhau.

Cơ chế hoạt động NAT

Ví dụ, client (192.168.1.10) gửi yêu cầu truy cập đến máy chủ ftp (203.162.101.19) qua cổng 21 (cổng ftp mặc định) ngoài Internet.

Hình 4: Máy tính gửi gói tin yêu cầu đến máy chủ ftp

Khi gói tin từ client gửi đến router, router kiểm tra tính đúng đắn của gói tin (gói tin không bị sửa đổi và trong IP header có một địa chỉ IP đích hợp lệ), sau đó router tạo một "ô thông tin" và ghi nhận vào bảng NAT - địa chỉ IP nguồn (Source IP Address) nội bộ và cổng nguồn 3000 (cổng do máy tính cấp phát).

Hình 5: Gói tin của máy tính trước khi đến router..
Hình 6: Quá trình xử lý gói tin trong router

Tiếp theo router thay đổi địa chỉ IP nguồn nội bộ của client từ 192.168.1.10 thành địa chỉ IP nguồn thật của router là 222.253.144.219 - địa chỉ IP nguồn của client phải bị thay đổi vì chỉ có các địa chỉ IP thật trên Internet mới có thể giao tiếp với nhau - và cổng nguồn vẫn giữ nguyên là 3000 - khi một client gửi gói tin đến client khác, cổng nguồn của gói tin gửi đi sẽ được chuyển thành cổng đích của gói tin trả lời. (Ví dụ: client A gửi gói tin cho client B với cổng nguồn là 3000, khi client B trả lời thì cổng đích của nó cũng là 3000. Bằng cách này client A biết được đây là gói tin trả lời cho yêu cầu mà nó vừa gửi đi). Và đây cũng là lý do mà router không thay đổi cổng nguồn gói tin gửi ra Internet cũng như cổng đích của gói tin nhận về. Cổng truy cập dịch vụ 21 và địa chỉ IP đích 203.162.101.19 không bị thay đổi trong quá trình router biên dịch và gửi gói tin.

Hình 7: Gói tin sau khi router đã thay đổi IP nguồn.

Máy chủ ngoài Internet nhận được gói dữ liệu sẽ phản hồi lại cho router. Router kiểm tra bảng thông tin NAT và gửi gói tin phản hồi này đến đúng máy tính đã yêu cầu.

Hình 8: Thông tin trả lời từ máy chủ dịch vụ ngoài Internet.

Router xử lý gói tin phản hồi từ máy chủ ngoài Internet như thế nào?

Máy chủ ngoài Internet gửi thông tin trả lời đến router qua địa chỉ IP thật 222.253.144.219, cổng truy cập 3000 không đổi. Router tìm thông tin trong bảng NAT, nhận thấy máy tính A cũng có cổng 3000 và có địa chỉ IP đích, cổng truy cập đích trùng với địa chỉ IP nguồn, cổng nguồn của gói tin trả lời. Vì vậy router sẽ chuyển gói tin đến cho client.

Hình 9: NAT xử lý các gói tin từ 3 client khác nhau. Chỉ địa chỉ IP gốc thay đổi trong quá trình router biên dịch.

Hình 9 với ba client trong mạng nội bộ cùng truy cập Internet sẽ giúp chúng ta hiểu rõ hơn về NAT Overload.

Hình 10: Hai máy tính gửi gói tin cùng cổng nguồn

Máy tính 1, máy tính 2 trong mạng nội bộ thực hiện yêu cầu truy cập máy chủ chia sẻ tập tin ngoài Internet có địa chỉ IP thật 203.162.101.19, với cổng truy cập dịch vụ 21. Máy tính 3 trong mạng nội bộ thực hiện lệnh telnet đến một máy chủ khác có địa chỉ IP thật 203.113.120.120, cổng truy cập mặc định 23. Router ghi nhận thông tin vào bảng NAT và thay đổi địa chỉ IP nguồn nội bộ thành địa chỉ IP nguồn thật 222.253.144.219, nó vẫn giữ nguyên các cổng nguồn 3000, 2600, 3850, cổng truy cập dịch vụ 21, 23 và địa chỉ đích trong quá trình router biên dịch, gửi gói tin.

Vậy NAT xử lý như thế nào với trường hợp hai máy tính trong mạng nội bộ - có cùng cổng nguồn khi gửi gói tin đến router - truy cập máy chủ dịch vụ ngoài Internet?

Hình 11: Gói tin của máy tính 2 trước khi đến router.

Giả sử, máy tính 1 (địa chỉ 192.168.1.10) có cổng nguồn 3000, đang chờ thông tin trả lời từ máy chủ FTP ngoài Internet. Máy tính 2 (địa chỉ IP 192.168.1.14) cũng có cổng nguồn 3000, truy cập máy chủ web địa chỉ IP thật 203.113.120.121.

Hình 12: Router xử lý hai gói tin cùng cổng nguồn

Khi gói tin từ máy tính 2 gửi đến router, router kiểm tra tính đúng đắn của gói, sau đó router tạo một thêm "ô thông tin" và ghi nhận vào bảng NAT - địa chỉ IP nguồn nội bộ và cổng nguồn 3000 (cổng do máy tính 2 cấp phát).

Trong bảng NAT, bạn thấy rằng cả hai gói tin đều có cùng cổng nguồn 3000. Trong đó, router đang sử dụng cổng nguồn 3000 biên dịch cho gói tin thứ 1 - và vẫn chưa nhận thông tin trả lời từ máy chủ dịch vụ cho gói tin này - vì vậy router không thể giữ nguyên cổng nguồn 3000 khi biên dịch cho gói tin thứ 2 nên nó sẽ gán cổng nguồn mới là 7200 (NAT Overload có thể gán số cổng nguồn trong khoảng từ 1025 đến 65500).


Hình 13: Gói tin của máy tính 2 sau khi router đã thay đổi địa chỉ IP nguồn, cổng nguồn.

Khi có thông tin trả lời gói tin thứ 2 - router sẽ đối chiếu vào bảng NAT và chuyển dữ liệu về đúng máy tính 2.

Ưu điểm của NAT

Ngoài việc giúp giải quyết thiếu hụt IPv4, NAT còn có ưu điểm khác như:

- Bảo mật mạng: NAT bảo vệ các máy tính trong mạng nội bộ tránh sự xâm nhập trái phép từ Internet (trừ khi bạn thiết lập luật cho phép truy cập). Bạn có thể truy cập web, tải tập tin từ Internet về máy tính trong mạng nội bộ nhưng những người ngoài Internet không thể sử dụng địa chỉ IP thật trên router để truy cập vào máy bạn.

- Quản trị mạng dễ dàng: Bạn có thể thay đổi cài đặt ứng dụng dịch vụ web, ftp... trên các máy tính khác nhau mà không phải lo lắng việc mất kết nối. Đơn giản chỉ thay đổi việc ánh xạ đến máy tính chạy ứng dụng dịch vụ mới. Bạn có thể thay đổi địa chỉ mạng nội bộ dễ dàng vì các địa chỉ này riêng biệt, độc lập với địa chỉ IP thật.

NAT và máy chủ nằm sau

Một số cổng truy cập thông dụng
Dịch vụ, Ứng dụng Giao thức Cổng số
File Transfer Protocol (FTP) TCP 21
SSH Remote Login Protocol UDP 22
Telnet TCP 23
Simple Mail Transfer Protocol (SMTP) TCP 25
Domain Name Server (DNS) UDP 53
WWW Server (HTTP) TCP 80
Post Office Protocol ver.3 (POP3) TCP 110
Point-to-Point Tunneling Protocol (PPTP) TCP 1723

NAT giúp các máy tính trong mạng nội bộ có thể truy cập Internet chỉ bằng một địa chỉ IP thật. Tuy nhiên, điều này gây khó khăn cho việc xây dựng máy chủ web, ftp trong mạng nội bộ. Chẳng hạn, bạn dựng một máy chủ ftp trong mạng nội bộ. Máy tính bên ngoài Internet gửi yêu cầu truy cập dịch vụ đến router, router nhận yêu cầu nhưng không biết chuyển đến máy tính nào trong mạng nội bộ vì trong bảng NAT không ghi nhận bất kỳ thông tin liên quan đến cổng 21 máy chủ ftp, do đó router hủy yêu cầu. Một số ứng dụng chia sẻ tập tin ngang hàng P2P (như eMule, BitTorrent) và các dịch vụ trực tuyến như video game (Xbox 360, PlayStation) cũng yêu cầu máy tính trong mạng nội bộ hoạt động như một máy chủ.

Giải pháp chuyển tiếp cổng dịch vụ (Port Forwarding) giúp giải quyết việc dựng máy chủ dịch vụ sau NAT. Chúng ta biết rằng mỗi máy tính có một địa chỉ IP duy nhất để phân biệt nhau. Một địa chỉ IP (giao thức TCP/IP) có nhiều cổng truy cập nhằm giúp máy tính sử dụng nhiều chương trình gửi nhận dữ liệu trong cùng một thời điểm. Dữ liệu được gửi từ máy tính này đến máy tính khác thông qua địa chỉ IP và cổng truy cập. Tuy nhiên để đảm bảo việc truy xuất dữ liệu từ máy tính bên ngoài Internet vào đúng máy chủ dịch vụ trong mạng nội bộ, một cổng truy xuất dịch vụ chỉ được sử dụng bởi một chương trình vào một thời điểm. Các router khi thiết lập chuyển tiếp cổng luôn yêu cầu xác định thêm địa chỉ IP nội bộ của máy chủ dịch vụ.

Chuyển tiếp cổng dựa trên cổng truy cập của máy tính nhằm hướng dẫn router chuyển dữ liệu đến đúng máy tính trong mạng nội bộ. Chẳng hạn với ví dụ máy chủ ftp ở trên, khi bạn thiết lập luật chuyển tiếp cổng (hay mở cổng) trên router, router nhận yêu cầu truy cập ftp từ máy tính bên ngoài Internet sẽ chuyển ngay đến cổng 21 - của máy chủ ftp trong mạng nội bộ.

Hình 14: Mô hình kết nối, truy cập máy chủ ftp, web

Mô hình giới thiệu ở đây sẽ giúp bạn hiểu rõ hơn cách một máy tính với một địa chỉ IP nội bộ có thể phục vụ nhiều chương trình ứng dụng khác nhau dựa trên cổng truy cập: một máy tính chạy hệ điều hành Windows XP có địa chỉ IP nội bộ 192.168.1.10. Máy tính này được cấu hình thành hai máy chủ dịch vụ ftp (phần mềm miễn phí, nguồn mở File Zilla) và dịch vụ web (phần mềm miễn phí, nguồn mở Vertrigo) cho phép các máy tính bên ngoài Internet tải tập tin, truy cập web. Chúng ta sử dụng router ADSL DrayTek Vigor2700, địa chỉ IP cố định 222.253.144.219 (IP tĩnh) để thực hiện mô hình này.

Cài đặt máy chủ dịch vụ FTP

Hình 15

Tải chương trình FTP Server File Zilla ở http://filezilla-project.org. Sau đó tiến hành cài đặt chương trình vào máy tính và chạy File Zilla. Bạn sẽ thấy giao diện đầu tiên như sau:

Hình 16

Cổng 14147 là cổng phục vụ việc quản trị FileZilla trên máy tính.

Bạn nhấn OK để vào giao diện chính của chương trình.

Hình 17

Máy chủ FTP File Zilla có cổng truy cập mặc định là 21 - cổng này giúp các máy tính trong mạng nội bộ, ngoài mạng Intenet truy cập, chia sẻ tập tin (chọn trình đơn Edit/Server Option để xem thông tin tổng quát, nhấn OK để xác nhận thông tin).

Hình 18

Tiếp theo, bạn chọn biểu tượng để tạo tài khoản truy cập: nhấn "add" và tạo tài khoản với tên truy cập là test.

Chọn Shared folders để chỉ nơi lưu trữ các tập tin. Cấp quyền truy cập (Read, Write, Delete...) cho tài khoản test. Nhấn OK để xác nhận.

Bạn tiến hành truy cập thử máy chủ ftp. Từ máy tính, mở trình duyệt web, nhập địa chỉ ftp://localhost (hoặc ftp://192.168.1.10 hay ftp://127.0.0.1) sẽ xuất hiện bảng yêu cầu đăng nhập

Hình 19

Bạn nhập User name là test và nhấn Log On. Bạn sẽ thấy thư mục dùng chia sẻ tập tin.

Vậy là bạn đã xây dựng thành công máy chủ dịch vụ ftp có cổng truy cập mặc định 21 trên máy tính địa chỉ IP 192.168.1.10

Hình 20

Cài đặt máy chủ dịch vụ web

Tải chương trình Vertrigo ở http://vertrigo.sourceforge.net. Sau đó tiến hành cài đặt chương trình vào máy tính. Khi hoàn thành việc cài đặt, xem như bạn đã xây dựng thành công máy chủ dịch vụ web - quá đơn giản phải không nào! Chạy Vertrigo, bạn sẽ thấy giao diện đầu tiên như hình 22


Hình 21

Nhấn "Hide this windows and start server" để bắt đầu khởi động máy chủ dịch vụ web

Hình 23

Bạn nhấn phải chuột trên thanh biểu tượng nằm ở khay hệ thống (system tray).

Xuất hiện thanh trình đơn với đầy đủ thông số để bạn tùy chỉnh cấu hình.

Hình 22

Vào mục "Help and readme", bạn sẽ thấy máy chủ web Vertrigo có cổng truy cập mặc định là 80 - cổng này giúp các máy tính trong mạng nội bộ, ngoài mạng Intenet truy cập vào máy chủ dịch vụ web.

Tiếp theo, bạn cần có một trang chủ để thử nghiệm. Bạn tạo một tập tin text có tên "index.txt" và nhập nội dung như hình 26. Sau đó đổi đuôi .txt thành .php

Hình 24

Trên thanh trình đơn của Vertrigo, chọn mục "WWW folder", bạn sẽ được dẫn đến thư mục lưu trữ các trang web. Bạn chép đè tập tin "index.php" có nội dung ở trên vào thư mục này.

Hình 25

Bạn mở trình duyệt web và nhập địa chỉ http://localhost để mở ra trang web với nội dung trong tập tin index.php vừa tạo.

Vậy là bạn đã xây dựng thành công máy chủ dịch vụ web và một trang chủ có cổng truy cập mặc định 80 trên máy tính địa chỉ IP 192.168.1.10.

Cấu hình chuyển tiếp cổng trên router ADSL Vigor2700

Từ máy tính, cắm dây mạng kết nối trực tiếp vào Vigor2700. Mở trình duyệt web, nhập địa chỉ 192.168.1.1 (mặc định của router), nhấn OK để đăng nhập (ID mặc định trống). Sau khi đăng nhập thành công, bạn sẽ thấy giao diện như hình 29

Hình 26

Thiết lập các thông số trên Vigor2700 để máy tính truy cập Internet.

Vigor2700 có 3 chế độ thiết lập luật chuyển tiếp cổng (hình 30):

Hình 27

- Chuyển hướng cổng (Port Redirection): thường sử dụng cho máy chủ web, ftp, email với cổng truy xuất cụ thể. Mục đích chính là chuyển tất cả yêu cầu truy cập từ các máy tính ngoài Internet đến trực tiếp máy chủ dịch vụ.

Hình 28

- Vùng truy cập tự do (DMZ host): thường sử dụng cho các ứng dụng game, hội nghị truyền hình với các cổng truy xuất không xác định. Máy tính trong vùng này "phơi bày" toàn bộ các cổng ra Internet.

- Cổng mở (Open Ports): cho phép bạn thiết lập luật chuyển tiếp cổng trên dãy các cổng liên tiếp nhau. Thường sử dụng cho các ứng dụng chia sẻ tập tin ngang hàng, IP Camera.

Hình 29

Chúng ta sẽ sử dụng chế độ chuyển hướng cổng (Port Redirection) cho phép các máy tính ngoài Internet truy cập vào máy tính vừa xây dựng máy chủ dịch vụ ftp, web ở trên.

Bạn chọn mục NAT/ Port Redirection và xác lập thông số như sau:

Hình 30

- Service Name: tên dịch vụ (bạn tự đặt tên để dễ nhớ).

- Protocol: giao thức cổng sử dụng (ftp, web sử dụng giao thức TCP).

- Public port: cổng giao tiếp với bên ngoài Internet, giúp router "lắng nghe" các yêu cầu truy cập (mặc định ftp cổng 21, web cổng 80).

Hình 31

- Private IP: địa chỉ IP nội bộ của máy tính chạy máy chủ dịch vụ ftp, web (địa chỉ 192.168.1.10).

- Private Port: cổng giao tiếp của máy chủ dịch vụ ftp, web (mặc định ftp cổng 21, web cổng 80).

- Active: kích hoạt luật chuyển tiếp cổng trên router.

Hình 32

Sau đó bạn nhấn OK để chấp thuận toàn bộ luật chuyển tiếp cổng đã thiết lập.

Tiếp tục bạn chọn mục "System Maintenance/Management" để mở tính năng cho phép quản lý Vigor2700 từ xa qua web trên Internet. Nhấn chuột chọn "Allow management from Internet", lưu ý thông số HTTP Port: 80 trong Management Port Setup.

Vậy bạn đã cấu hình, thiết lập xong luật chuyển tiếp cổng trên router - có địa chỉ IP thật cố định là 222.253.144.219 - cho phép các máy tính từ Internet có thể truy cập vào máy chủ ftp, web trong mạng nội bộ. Đồng thời, bạn cũng đã mở tính năng cho phép quản lý Vigor2700 từ xa trên Internet.

Bây giờ, bạn sử dụng máy tính từ bên ngoài mạng nội bộ. Mở trình duyệt, nhập địa chỉ ftp://222.253.144.219, sẽ xuất hiện bảng yêu cầu đăng nhập. Bạn nhập User name là test và nhấn Log On, vậy là bạn đã truy cập thành công vào máy chủ ftp trong mạng nội bộ.

Hình 33

Tiếp theo, bạn muốn truy cập website vừa xây dựng trong mạng nội bộ, bạn nhập địa chỉ http://222.253.144.219. Bạn thấy xuất hiện bảng yêu cầu đăng nhập vào router Vigor2700, thật kỳ lạ!

Thật sự, do cả Vigor2700 và máy chủ dịch vụ web đều sử dụng cùng một cổng truy cập 80. Do đó, khi router xử lý các đề nghị truy cập từ Internet trên cổng 80, nó sẽ ưu tiên chuyển tiếp vào phần quản lý Vigor2700 từ xa qua web trên Internet mà bạn đã cấu hình.

Vậy làm cách nào để bạn có thể truy cập được máy chủ web trong mạng nội bộ với cổng truy cập mặc định 80? Bạn hãy dùng máy tính trong mạng nội bộ, cắm dây mạng kết nối trực tiếp vào router Vigor2700. Mở trình duyệt web, nhập địa chỉ 192.168.1.1 và đăng nhập vào router, bạn vào mục "System Maintenance/Management", chỉnh sửa HTTP Port là 8080 trong phần Management Port Setup. Nhất OK để xác nhận.

Lúc này, cổng truy cập của máy chủ web và quản lý Vigor2700 từ xa khác nhau, vì vậy bạn có thể truy cập máy chủ web bằng địa chỉ http://222.253.144.219, để quản lý từ xa Vigor2700 bạn cần nhập địa chỉ http://222.253.144.219:8080.

Hiện nay hầu hết mạng Internet ADSL dùng cho gia đình đều sử dụng địa chỉ IP thật dạng động (thay đổi mỗi khi router ADSL bị mất kết nối và thực hiện kết nối lại với nhà cung cấp dịch vụ Internet). Do đó các máy tính truy cập từ Internet sẽ gặp khó khăn khi không biết được chính xác địa chỉ IP thật của router ADSL để có thể truy cập vào máy chủ web, ftp trong mạng nội bộ. Để giải quyết vấn đề IP thật dạng động bạn có thể tham khảo bài viết đăng ký dịch vụ DNS miễn phí (ID: A0308_106).
-----------------------------------------------
Tham khảo
http://computer.howstuffworks.com
http://www.firewall.cx
http://www.cisco.com/en

 

Tin tức mới

Để được tư vấn hoặc hỗ trợ tốt nhất, bạn vui lòng để lại thông tin cần thiết bằng cách điền vào form dưới đây:

Dịch vụ quan tâm

Thêm sản phẩm vào giỏ hàng thành công!