PDA

View Full Version : NAT again



BlackTSB
14-07-2004, 10:26 AM
Mình đã đọc các bài về NAT trong diễn đàn, tuy nhiên minh chưa thấy ai nói về các nhược điểm của NAT trong router cisco. Mình đã làm việc nhiều với các kiểu NAT trên các hệ điều hành Linux và Window, tuy nhiên khi mình sử dụng NAT trên router cisco thì mình thật sự thất vọng. Khả năng tùy biến các kiểu NAT trên router Cisco rất hạn chế khiến người quản trị khó có sự sáng tạo riêng cho các kiểu NAT của mình.
Mình xin đơn cử 1 ví dụ:
Mình có 1 mạng trong, minh muốn NAT toàn bộ các địa chỉ mạng trong nếu đi đến cổng 25 thì sẽ được redirect về 1 địa chỉ public nào đó(của mail server), còn nếu vào các cổng khác thì vẫn định tuyến bình thường. Điều này nếu là trong Linux thì bạn sẽ dễ dàng cấu hình với Iptables, tuy nhiên trong router của Cisco thì hình như không được. Trong router chỉ cho phép duy nhất 1 kiểu NAT theo port gọi là PAT. Tuy nhiên PAT chỉ cho phép redirect từ 1 socket (IP:port) đến 1 socket khác (dùng NAT static). Còn nếu bạn muốn redirect nhiều socket đến 1 socket thì không được. Đây chỉ là một trong những ví dụ điển hình về sự yếu kém của NAT trên router Cisco.

itmansaigon
14-07-2004, 01:34 PM
Theo tôi nghĩ tốt nhất thì BlackTSB nên đặt ra câu hỏi để nhờ mọi người giúp đỡ chứ không nên viết như vậy.

Cisco Router giải quyết tốt tình huống như BlackTSB thắc mắc: vừa PAT và vừa redirect specific port ra một server khác bên ngoài bằng cách dùng ip policy route-map

Dưới đây là ví dụ minh họa cho cách làm trên, chỉ cần thay port 80 thành port 25 là đáp ứng được các yêu cầu mà BlackTSB còn vướng mắc trên Cisco router

http://www.grape-info.com/doc/cisco/router/contents/example-tproxy.html

imported_ipsec
14-07-2004, 01:57 PM
BlackTSB có thể compare giữa NAT của CISCO với NAT của windows được không?

mình cũng muốn mở rộng tầm mắt.

14-07-2004, 05:17 PM
Hi, mình đang làm về NAT/NAT-PT.

Iptables/netfilter là công cụ rất mạnh nhưng chưa giải quyết được NAT-PT cho IPv6?!

Có ai có kinh nghiệm làm nat trên unix, mình đang tìm sự tương quan giữa ipfw/divert và iptables.

Cheers,

itmansaigon
14-07-2004, 05:45 PM
Thực ra cái project NAT-PT trên linux cũng đã được implement để bắc cầu giữa IP v4 và IP v6, một vài protocol translation đã chạy tốt trên NAT-PT linux, thế support đang quan tâm đến protocol nào cần translate trên NAT-PT linux?

14-07-2004, 08:12 PM
Hi itmansg, vấn đề như vầy nè:

Example:

NAT: 10.18.0.4[80]-121.232.1.2[80] => 67.89.1.4[80]-121.232.1.2[80]
NAT-PT: 2001 ::4[80]-121.232.1.2[80] => 67.89.1.4[80]-121.232.1.2[80]

So when the remote host sends an answer to 67.89.1.4[80] there is no way to know whether it is for NAT or for NAT-PT.

=> If NAT-PT makes a systematic source port translation, we have: NAT: 10.18.0.4[80]-121.232.1.2[80] => 67.89.1.4[80]-121.232.1.2[80]

NAT-PT: 2001 ::4[80]-121.232.1.2[80] => 67.89.1.4[32001]-121.232.1.2[80]

Answers to 67.89.1.4[80] are for NAT, and answers to 67.89.1.4[32001] are for NAT-PT.

Điều mình quan tâm là liệu iptables có giải quyết được vấn đề này hay ko?

itmansaigon
14-07-2004, 09:20 PM
Hello,

Điều quan trọng đầu tiên là cái vấn đề support đưa ra không có phần nhập đề (ví dụ đó ở đâu ra?, trên thiết bị gì?, muốn đạt được mục đích gì?), cái nữa là nếu muốn mọi người đưa ra ý kiến thì phài mô tả rõ ràng, còn nếu trích dẫn ở đâu đó thì gởi luôn thêm cái link cho dễ tham khảo

15-07-2004, 08:56 AM
Ah, mình đang thực hiện porting NAT/NATPT vào router sử dụng Linux kernel, mục đích là thay thế ipfw (Unix) bằng iptables (Linux). Còn vấn đề implement sẽ tùy thuộc vào quá trình trên.

itmansaigon
15-07-2004, 10:24 AM
Hello,

Có thể mô tả chi tiết hơn được không?

15-07-2004, 10:52 AM
Ví dụ về routing, dưới góc nhìn của developer thì

Đối với cisco router, gõ lệnh show ip route sẽ xem được bảng định tuyến của router. Trên linux, nếu sử dụng zebra thì khi gõ lệnh show ip route cũng sẽ thấy được bảng định tuyến.
Hay trên router, gõ lệnh ip address thì sẽ gán địa chỉ ip. Còn trên linux sẽ sử dụng ifconfig để gán ip cho interface.
Bây giờ trên linux mình sẽ viết 1 framework để khi gõ lệnh ip address trên framework đó sẽ tự động gọi đến lệnh ifconfig để gán interface, hay khi gõ lệnh show ip route sẽ thấy bảng định tuyến mà zebra tạo ra.

Đối với NAT cũng vậy, ví dụ khi anh gõ lệnh show nat sẽ gọi đến lệnh "iptables -L -t nat" để xem bảng NAT.
Do đó, cần phải viết, sửa đổi các script/code ở mức kernel và application để làm được điều trên.

Xin lỗi mọi người vì mình đã làm phức tạp vấn đề hơn.

itmansaigon
15-07-2004, 11:12 AM
Hello,

Những vấn đề như vậy chỉ cần thao tác ở mức userspace (script coding) chứ có cần gì đụng chạm tới kernel level đâu nhỉ


Hi, mình đang làm về NAT/NAT-PT.

Iptables/netfilter là công cụ rất mạnh nhưng chưa giải quyết được NAT-PT cho IPv6?!

Có ai có kinh nghiệm làm nat trên unix, mình đang tìm sự tương quan giữa ipfw/divert và iptables.

Cheers,

Và cũng chẳng thấy có liên quan gì đến NAT-PT cả như ban đầu support đã đề cập