1. NAT là gì?
NAT đã là một phần không thể thiếu khi triển khai mạng IP diện rộng do không gian địa chỉ IPv4 đã bắt đầu co hẹp. Về cơ bản, NAT cho phép một (hay nhiều) địa chỉ IP nội miền được ánh xạ với một (hay nhiều) địa chỉ IP ngoại miền. Điều này cho phép sử dụng dải địa chỉ IP riêng theo chuẩn RFC 1918 trên các mạng nội bộ trong khi chỉ sử dụng một hoặc một số ít các địa chỉ IP công cộng.
Bởi vì địa chỉ IP riêng chỉ được dành cho các mạng nội bộ và được coi là "không thể định tuyến chung trên Internet công cộng, NAT chuyển các địa chỉ riêng thành các địa chỉ public , địa chỉ có khả năng định tuyến khi máy chủ mạng nội bộ cần phải kết nối tới được với máy chủ bên ngoài của mạng tư nhân. Thêm vào đó, nhiều tổ chức có thể khai triển cùng IP với nhau, NAT sẽ được sử dụng để giải quyết vấn đề khi các tổ chức này muốn giao tiếp trao đổi với nhau qua mạng.
2. Lợi ích của NAT
Một trong những lợi ích chính của NAT là việc thoải mái sử dụng số lượng địa chỉ ip private rộng lớn, hơn 17 triệu địa chỉ/ Điều này bao gồm 1 lớp địa chỉ mạng lớp A, 16 địa chỉ mạng lớp B và 256 địa chỉ mạng lớp C. Khi bạn sử dụng địa chỉ Ip private dù cho bạn có đổi nhà cung cấp dịch vụ, bạn sẽ không cần phải đánh lại địa chỉ cho các thiết bị trong mạng cục bộ mà bạn chỉ phải thay đổi cấu hình NAT trên firewall để trùng với địa chỉ IP public mới. Có nhiều loại NAT khác nhau có thể được thực hiện bởi Firewall. Trong đó có 2 loại tiêu biểu là NAT và PAT.
3. Ví dụ về NAT
Như được nói trước đó, NAT thực hiện việc dịch chuyển từ 1 địa chỉ đến 1 địa chỉ. Bạn thường sử dụng NAT tĩnh khi bạn có một Server, và bạn muốn mọi người trên Internet có thể truy cập Server này. Tuy nhiên, đối với các User trên mạng cục bộ bạn sẽ tạo một pool địa chỉ IP và để thiết bị NAT ngẫu nhiên chỉ định các địa chỉ IP public cho các thiết bị bên trong mạng cục bộ. Trong ví dụ này User bên trong mạng cục bộ đang truy cập nguồn tài nguyên bên ngoài Internet (User có địa chỉ 192.168.1.5 đang cố gắng truy cập 201.201.201.2)
Ở hình 1, bạn có thể nhìn thấy thực sự việc truyền dữ liệu từ 192.168.1.5. Firewall nhận gói tin từ 192.168.1.5 và quyết định xem nó có cần thực hiện NAT hay không và chuyển tiếp gói tin tới đích. Firewall nhận thấy gói tin đến nó và so sánh với rule NAT. Bởi vì gói tin trùng với rule trong chính sách NAT, Firewall sẽ dịch chuyển địa chỉ nguồn trong gói tin từ 192.168.1.5 thành 200.200.200.1, đây là địa chỉ IP public. Tiếp theo bạn có thể thấy địa chỉ đích 201.201.201.2 nhận gói tin. Nó nhận thấy địa chỉ nguồn là 200.200.200.1.
Khi đó máy đích gửi gói tin trả lời trở lại cho User, nó sử dụng địa chỉ IP public mà nó thấy được sau khi NAT là 200.200.200.1 Tiếp theo Firewall nhận gói tin và kiểm tra chính sách NAT của nó. Sau khi quyết định cần thiết dịch chuyển lại địa chỉ ban đầu. Nó thấy địa chỉ 200.200.200.1 và thay đổi địa chỉ IP public này trở lại địa chỉ IP private ban đầu là 192.168.1.5, sau đó chuyển tiếp gói tin này vào địa chỉ User trong mạng cục bộ.
4. Ví dụ về PAT
Với PAT, firewall sẽ thay đổi địa chỉ IP và TCP/UDP port của gói tin. Ví dụ này nhà cung cấp dịch vụ ISP chỉ định cho bạn một địa chỉ IP public và bạn cần phải sử dụng địa chỉ này cho tất cả các kết nối của người dùng ra ngoài Internet.
Trong hình trên User ở địa chỉ 192.168.1.5 telnet đến 201.201.201.2. Firewall nhận gói tin và nó so sánh thông tin của gói tin với chính sách NAT và quyết định xem nó có cần thực hiện NAT hay không. Do nó trùng với chính sách vì thế firewall thực hiện việc NAT và thay đổi địa chỉ private 192.168.1.5 thành 200.200.200.1. Trong trường hợp này, thông số port nguôn là 1024 không được sử dụng trong bảng NAT nên nó vấn được giữ nguyên mà không thay đổi số Port.
Chú ý rằng firewall thêm địa chỉ NAT này vào trong bảng NAT để mà nó có thể giải quyết vấn đề traffic quay trở lại mạng cục bộ. Máy đích nhận được gói tin sau khi NAT. Khi máy địch gửi gói tin trả về, nó sẽ sử dụng địa chỉ IP đích là 200.200.200.1 và port đích là 1024. Khi firewall nhận gói tin đến, nó quyết định xem có thực hiện NAT hay không và sau đó nó tìm kiếm xem có thuộc rule nào trong bảng NAT không. Khi thấy trùng, nó thay đổi địa chỉ đích từ 200.200.200.1 thành 192.168.1.5 và để lại port nguồn như ban đầu. Một ví dụ khác, giả sử có một máy cục bộ có địa chỉ 192.168.1.6 cũng telnet đến 201.201.201.2 với địa chỉ port nguồn là 1024
Firewall nhận gói tin, và gói tin trùng với chính sách NAT đã thiết lập. Firewall tạo một đối tượng NAT trong bảng NAT cho kết nối của User. Trong trường hợp này địa chỉ IP public 200.200.200.1 được sử dụng. Tuy nhiên bởi vì port nguồn 1024 đã tồn tại trong bảng NAT, nên firewall chỉ định một port khác là 1025 cho kết nối của User. Port nguồn khác nhau nhằm giúp cho thiết bị đích nhận biết, phân biệt giữa các kết nối là của 192.168.1.5 hay 192.168.1.6 và cũng cho phép Firewall dịch chuyển gói tin trả về từ 201.201.201.2
Văn Công Thắng – VnPro
NAT đã là một phần không thể thiếu khi triển khai mạng IP diện rộng do không gian địa chỉ IPv4 đã bắt đầu co hẹp. Về cơ bản, NAT cho phép một (hay nhiều) địa chỉ IP nội miền được ánh xạ với một (hay nhiều) địa chỉ IP ngoại miền. Điều này cho phép sử dụng dải địa chỉ IP riêng theo chuẩn RFC 1918 trên các mạng nội bộ trong khi chỉ sử dụng một hoặc một số ít các địa chỉ IP công cộng.
Bởi vì địa chỉ IP riêng chỉ được dành cho các mạng nội bộ và được coi là "không thể định tuyến chung trên Internet công cộng, NAT chuyển các địa chỉ riêng thành các địa chỉ public , địa chỉ có khả năng định tuyến khi máy chủ mạng nội bộ cần phải kết nối tới được với máy chủ bên ngoài của mạng tư nhân. Thêm vào đó, nhiều tổ chức có thể khai triển cùng IP với nhau, NAT sẽ được sử dụng để giải quyết vấn đề khi các tổ chức này muốn giao tiếp trao đổi với nhau qua mạng.
2. Lợi ích của NAT
Một trong những lợi ích chính của NAT là việc thoải mái sử dụng số lượng địa chỉ ip private rộng lớn, hơn 17 triệu địa chỉ/ Điều này bao gồm 1 lớp địa chỉ mạng lớp A, 16 địa chỉ mạng lớp B và 256 địa chỉ mạng lớp C. Khi bạn sử dụng địa chỉ Ip private dù cho bạn có đổi nhà cung cấp dịch vụ, bạn sẽ không cần phải đánh lại địa chỉ cho các thiết bị trong mạng cục bộ mà bạn chỉ phải thay đổi cấu hình NAT trên firewall để trùng với địa chỉ IP public mới. Có nhiều loại NAT khác nhau có thể được thực hiện bởi Firewall. Trong đó có 2 loại tiêu biểu là NAT và PAT.
3. Ví dụ về NAT
Như được nói trước đó, NAT thực hiện việc dịch chuyển từ 1 địa chỉ đến 1 địa chỉ. Bạn thường sử dụng NAT tĩnh khi bạn có một Server, và bạn muốn mọi người trên Internet có thể truy cập Server này. Tuy nhiên, đối với các User trên mạng cục bộ bạn sẽ tạo một pool địa chỉ IP và để thiết bị NAT ngẫu nhiên chỉ định các địa chỉ IP public cho các thiết bị bên trong mạng cục bộ. Trong ví dụ này User bên trong mạng cục bộ đang truy cập nguồn tài nguyên bên ngoài Internet (User có địa chỉ 192.168.1.5 đang cố gắng truy cập 201.201.201.2)
Hình 1: Ví dụ về NAT (a)
Ở hình 1, bạn có thể nhìn thấy thực sự việc truyền dữ liệu từ 192.168.1.5. Firewall nhận gói tin từ 192.168.1.5 và quyết định xem nó có cần thực hiện NAT hay không và chuyển tiếp gói tin tới đích. Firewall nhận thấy gói tin đến nó và so sánh với rule NAT. Bởi vì gói tin trùng với rule trong chính sách NAT, Firewall sẽ dịch chuyển địa chỉ nguồn trong gói tin từ 192.168.1.5 thành 200.200.200.1, đây là địa chỉ IP public. Tiếp theo bạn có thể thấy địa chỉ đích 201.201.201.2 nhận gói tin. Nó nhận thấy địa chỉ nguồn là 200.200.200.1.
Hình 2: Ví dụ về NAT (b)
Khi đó máy đích gửi gói tin trả lời trở lại cho User, nó sử dụng địa chỉ IP public mà nó thấy được sau khi NAT là 200.200.200.1 Tiếp theo Firewall nhận gói tin và kiểm tra chính sách NAT của nó. Sau khi quyết định cần thiết dịch chuyển lại địa chỉ ban đầu. Nó thấy địa chỉ 200.200.200.1 và thay đổi địa chỉ IP public này trở lại địa chỉ IP private ban đầu là 192.168.1.5, sau đó chuyển tiếp gói tin này vào địa chỉ User trong mạng cục bộ.
4. Ví dụ về PAT
Với PAT, firewall sẽ thay đổi địa chỉ IP và TCP/UDP port của gói tin. Ví dụ này nhà cung cấp dịch vụ ISP chỉ định cho bạn một địa chỉ IP public và bạn cần phải sử dụng địa chỉ này cho tất cả các kết nối của người dùng ra ngoài Internet.
Hình 3: Ví dụ về PAT (a)
Trong hình trên User ở địa chỉ 192.168.1.5 telnet đến 201.201.201.2. Firewall nhận gói tin và nó so sánh thông tin của gói tin với chính sách NAT và quyết định xem nó có cần thực hiện NAT hay không. Do nó trùng với chính sách vì thế firewall thực hiện việc NAT và thay đổi địa chỉ private 192.168.1.5 thành 200.200.200.1. Trong trường hợp này, thông số port nguôn là 1024 không được sử dụng trong bảng NAT nên nó vấn được giữ nguyên mà không thay đổi số Port.
Chú ý rằng firewall thêm địa chỉ NAT này vào trong bảng NAT để mà nó có thể giải quyết vấn đề traffic quay trở lại mạng cục bộ. Máy đích nhận được gói tin sau khi NAT. Khi máy địch gửi gói tin trả về, nó sẽ sử dụng địa chỉ IP đích là 200.200.200.1 và port đích là 1024. Khi firewall nhận gói tin đến, nó quyết định xem có thực hiện NAT hay không và sau đó nó tìm kiếm xem có thuộc rule nào trong bảng NAT không. Khi thấy trùng, nó thay đổi địa chỉ đích từ 200.200.200.1 thành 192.168.1.5 và để lại port nguồn như ban đầu. Một ví dụ khác, giả sử có một máy cục bộ có địa chỉ 192.168.1.6 cũng telnet đến 201.201.201.2 với địa chỉ port nguồn là 1024
Hình 4: Ví dụ về PAT (b)
Firewall nhận gói tin, và gói tin trùng với chính sách NAT đã thiết lập. Firewall tạo một đối tượng NAT trong bảng NAT cho kết nối của User. Trong trường hợp này địa chỉ IP public 200.200.200.1 được sử dụng. Tuy nhiên bởi vì port nguồn 1024 đã tồn tại trong bảng NAT, nên firewall chỉ định một port khác là 1025 cho kết nối của User. Port nguồn khác nhau nhằm giúp cho thiết bị đích nhận biết, phân biệt giữa các kết nối là của 192.168.1.5 hay 192.168.1.6 và cũng cho phép Firewall dịch chuyển gói tin trả về từ 201.201.201.2
Văn Công Thắng – VnPro