PDA

View Full Version : NAT



LoS
04-09-2003, 02:53 PM
Theo tôi được biết NAT (Network Address Translation) hoạt động để dịch địa chỉ từ mạng LAN ra địa chỉ Internet và ngược lại. Khi một gói tin từ mạng LAN ra ngoài Internet thì địa chỉ nguồn gói tin được chuyển thành địa chỉ của NAT server. Ở NAT server có một cái bảng chứa thông tin về gói tin đó cổng nguồn là bao nhiêu để khi nhận được gói tin từ Internet về nó còn bít là gửi cho máy nào trong mạng LAN. Tui nói thế có đúng ko nhỉ??? Nhưng tôi có một thắc mắc là khi tôi dùng lệnh Ping từ một máy ở trong LAN ví dụ PING WWW.FPT.COM.VN chẳng hạn thì tôi thấy vẫn ping bình thường, cứ như là máy tui được nối trực tiếp với Internet vậy, mà tôi bít là lệnh ping sử dụng gói tin ICMP để request và reply hoàn toàn chỉ thực hiện ở lớp 3 (mô hình OSI), chẳng có port number gì sất thế sao NAT server lại trả được gói tin ICMP reply về đúng máy của mình nhỉ??? Thắc mắc zá!!! Anh em giúp tôi với nhé!!!

alovend
08-09-2003, 10:27 AM
Trên nó , ứng dụng vẫn phải mở Raw socket, UDP , do đó vẫn phải có Port chứ !
Đúng hông dậy ta !!

sskkb
08-09-2003, 11:50 AM
ping ko chỉ ở lớp 3 đâu, nó gần như dùng để test 4 lớp dưới và cả 3 lớp trên nữa. vì nó có thực hiện cả ở lớp 2 nên nó có thể trả về đúng máy của cậu.

Hơn nữa, hình như NAT ko liên quan gì đến vụ ping-pong này thì phải

LoS
09-09-2003, 11:08 AM
alovend nói có lý đấy, ứng dụng vẫn phải mở cổng để nhận gói tin.

:!: :!: :!: :!: :!: :!: :!: :!: :!: :!: :!:

Raw Socket
A raw socket, a socket that was created with the type SOCK_RAW, allows an application to send and receive datagrams without using the common Internet protocols UDP or TCP. Raw sockets are typically used to send and receive ICMP (Internet Control Message Protocol) datagrams, and used by applications such as ping and traceroute.

:?: :?: :?: :?: :?: :?: :?: :?: :?: :?: :?: :?:

sskkb nói thế là sai rùi, nếu ai đã từng xem CCNA thì có những câu hỏi là PING đúng để test tầng nào thì câu trả lời đúng là tầng 3 (Network). Còn để test cả 7 tầng là telnet cơ

18-03-2004, 09:49 PM
Cho hỏi nếu một mạng nội bộ sử dụng PAT/NAT thì làm sao co thể ping được từ bên ngoài vì PAT/NAT sử dụng port number, trong khi ping thi không?

imported_D_D
19-03-2004, 08:34 AM
Bạn ko thể ping được từ bên ngoài nếu ko dùng 1 địa chỉ thực mapping vào 1 địa chỉ ảo tương ứng.







www.vn-experts.net.vn

leminhkhoi
19-03-2004, 10:00 AM
Bạn chỉ có thể ping từ ngoài vào khi bạn dũng Static NAT, nếu bạn dùng Dynamic NAT hay PAT thì không thể ping từ ngoài vào đâu.
Thân chào

cvo15303
19-03-2004, 11:00 AM
Oz mến!
ICMP Ping vẫn có port number cho nó đấy chứ bạn.Hình như đó là port 8 thì phải.
Mình nghĩ việc ping từ ngoài vào trong rất cần 1 VIP(Virtual IP),map 1 public IP với 1 local IP.Bạn có thể chọn chế độ static NAT để cho phép tất cả các service hoặc PAT chỉ cho phép 1 service nào đấy(nếu service này không có trong database của NAT server,nó sẽ hỗ trợ bạn xây dựng định nghĩa mới).
Bạn sẽ không thể ping trực tiếp inside IP đâu,mọi giao dịch sẽ được thông qua Virtual IP.
Mong được trao đổi thêm

titanevn
07-04-2004, 12:35 PM
Hi all, PING dùng giao thức ICMP, nó là giao thức tầng Network nhưng không phải IP, --> nó không có port.

hailua
08-04-2004, 01:55 AM
Theo link này: http://www.iana.org/assignments/port-numbers thì Lúa thấy ICMP cũng có port mà (port 7). Không biết có đúng không

Lúa

titanevn
08-04-2004, 10:03 AM
Có lẽ vậy, nhưng port đó không được hiểu là TCP hay UDP Port.

mmx
25-05-2004, 02:42 PM
Đây là đoạn định nghĩa về Ping:

Packet InterNet Groper - (ping, originally contrived to match submariners' term for the sound of a returned sonar pulse) A program written in 1983 by Mike Muuss (who also wrote TTCP) used to test reachability of destinations by sending them one, or repeated, ICMP echo requests and waiting for replies. Since ping works at the IP level its server-side is often implemented entirely within the operating system kernel and is thus the lowest level test of whether a remote host is alive. Ping will often respond even when higher level, TCP-based services cannot.

Trước hết, Ping theo tên, đến WWW.FPT.COM.VN chẳng hạn, chương trình Ping phải request đến DNS server để tìm IP nhé mà DNS based on UDP nên có lẽ port được mở để phục vụ cho mục đích này. Còn bản thân gói tin ICMP thì không cần port gì đâu, vì nó là một giao thức lớp ba nhưng dẫn xuất từ IP nên không có port đâu, yên tâm đi (nếu có port thì phải kết nối được với đích để mở cổng, mà nếu thế thì ping làm gì nữa cho mệt).

Mọi người thử nghiên cứu về lịch sử PING xem: http://ftp.arl.mil/~mike/ping.html

mmx
25-05-2004, 02:55 PM
Đây là đoạn định nghĩa về Ping:

Packet InterNet Groper - (ping, originally contrived to match submariners' term for the sound of a returned sonar pulse) A program written in 1983 by Mike Muuss (who also wrote TTCP) used to test reachability of destinations by sending them one, or repeated, ICMP echo requests and waiting for replies. Since ping works at the IP level its server-side is often implemented entirely within the operating system kernel and is thus the lowest level test of whether a remote host is alive. Ping will often respond even when higher level, TCP-based services cannot.

Trước hết, Ping theo tên, đến WWW.FPT.COM.VN chẳng hạn, chương trình Ping phải request đến DNS server để tìm IP nhé mà DNS based on UDP nên có lẽ port được mở để phục vụ cho mục đích này. Còn bản thân gói tin ICMP thì không cần port gì đâu, vì nó là một giao thức lớp ba nhưng dẫn xuất từ IP nên không có port đâu, yên tâm đi (nếu có port thì phải kết nối được với đích để mở cổng, mà nếu thế thì ping làm gì nữa cho mệt).

Mọi người thử nghiên cứu về lịch sử PING xem: http://ftp.arl.mil/~mike/ping.html

Cũng chẳng phải thế, thằng này ăn nói ba lăng nhăng quá. Có lẽ mọi người nên đọc kỹ về ứng dụng PING xem. Một điều duy nhất bên trên đúng là PING là một ứng dụng viết để chạy trong kernel của hệ điều hành.

hieuha
25-05-2004, 04:46 PM
Minh dong y voi mmx

qtnhan
24-06-2004, 04:33 PM
Thân chào,

Em không biết có lệnh nào dùng để xem các thông số của các NAT translation entry như : dns-timeout, finrst-timeout, icmp-timeout , max-entries, port-timeout , syn-timeout tcp-timeout , timeout , udp-timeout. ?

Cảm ơn,

admin
24-06-2004, 09:36 PM
hi

thử lệnh

#show ip nat translation timeout
#show ip nat translation icmp-timeout
.....

cảm ơn

24-06-2004, 11:47 PM
Không biết có ngoài lề không nhưng các bác thủ giải thíc đoạn này nhé:

Troubleshoot
To verify the above sh arpconfiguration, enable debug ip nat detail and generate some traffic from the client. In this case, we initiated a Telnet session from the PC with IP address 10.1.1.2 to a server behind the CMTS with an address 172.16.135.11.

ubr904#deb ip nat detailed
IP NAT detailed debugging is on
ubr904#
06:25:18: NAT: Allocated Port for 10.1.1.2 -> 172.16.30.20: wanted 7435 got 7435
06:25:18: NAT: i: icmp (10.1.1.2, 7435) -> (172.16.135.11, 7435) [245]
06:25:18: NAT*: o: icmp (172.16.135.11, 7435) -> (172.16.30.20, 7435) [245]
06:25:18: NAT: Allocated Port for 10.1.1.2 -> 172.16.30.20: wanted 7436 got 7436
06:25:18: NAT: i: icmp (10.1.1.2, 7436) -> (172.16.135.11, 7436) [246]
06:25:18: NAT*: o: icmp (172.16.135.11, 7436) -> (172.16.30.20, 7436) [246]
06:25:18: NAT: Allocated Port for 10.1.1.2 -> 172.16.30.20: wanted 7437 got 7437
06:25:18: NAT: i: icmp (10.1.1.2, 7437) -> (172.16.135.11, 7437) [247]
06:25:18: NAT*: o: icmp (172.16.135.11, 7437) -> (172.16.30.20, 7437) [247]
06:25:18: NAT: Allocated Port for 10.1.1.2 -> 172.16.30.20: wanted 7438 got 7438
06:25:18: NAT: i: icmp (10.1.1.2, 7438) -> (172.16.135.11, 7438) [248]
06:25:18: NAT*: o: icmp (172.16.135.11, 7438) -> (172.16.30.20, 7438) [248]
06:25:18: NAT: Allocated Port for 10.1.1.2 -> 172.16.30.20: wanted 7439 got 7439
06:25:18: NAT: i: icmp (10.1.1.2, 7439) -> (172.16.135.11, 7439) [249]
06:25:18: NAT*: o: icmp (172.16.135.11, 7439) -> (172.16.30.20, 7439) [249]
ubr904#
Notice in the debug that the client (10.1.1.2) is sending icmp packets to the destination of the ping (172.16.135.11). In this case the router is allocating ports to do the NAT.

We can also enable sh ip nat translation to see how NAT did its job.

ubr904#sh ip nat translation
Pro Inside global Inside local Outside local Outside global
icmp 172.16.30.20:7435 10.1.1.2:7435 172.16.135.11:7435 172.16.135.11:7435
icmp 172.16.30.20:7436 10.1.1.2:7436 172.16.135.11:7436 172.16.135.11:7436
icmp 172.16.30.20:7437 10.1.1.2:7437 172.16.135.11:7437 172.16.135.11:7437
icmp 172.16.30.20:7438 10.1.1.2:7438 172.16.135.11:7438 172.16.135.11:7438
icmp 172.16.30.20:7439 10.1.1.2:7439 172.16.135.11:7439 172.16.135.11:7439
ubr904#

qtnhan
25-06-2004, 08:56 AM
hi Admin,

Cảm ơn anh đã quan tâm,

Nhưng trong con 2620 của em đang dùng IOS Version 12.1(15) không có những lệnh này.

Chỉ có 2 lệnh sau thôi:
#show ip nat translations
#show ip nat translations verbose

Không biết còn có lệnh nào khác không ?

danguyennhi
26-06-2004, 10:49 PM
chào,

quả thật là mình cũng có tìm lệnh để hiển thị các timers trong NAT nhưng không thấy. Không biết có cao thủ nào biết lệnh / biết cách nào để hiển thị các thông số timers trên hay không?

cám ơn

danguyennhi
04-07-2004, 07:49 PM
Một vài gói ICMP có mang thông tin IP header do không phải tất cả các thông điệp ICMP đều mang thông tin về IP này.
Nếu thông tin về IP trong thông điệp ICMP trùng với các entry cần NAT trong bảng NAT, Cisco NAT cũng sẽ chuyển đổi thông tin IP trong thông điệp ICMP nêu trên. Ngoài ra, checksum cho ICMP cũng sẽ được tính toán lại.

http://www.vnpro.org/forum/download.php?id=747

tamly75
03-08-2004, 10:41 AM
Mình không nắm rõ lắm thế nào là Inside local, outside local, Inside Global, outside Global. mình có đọc sách nhưng mà không hiểu rõ. Mong các nào có tài liệu chi tiết hơn hoặc giải thích dùm mình với. Xin cám ơn các bạn nhiều nhiều nhiều.

nhanh
03-08-2004, 12:44 PM
Vấn đề này đã nói rất rất nhiều trong các mục thảo luận. Bạn dùng chức năng tìm kiếm của diễn đàn xem sao, để mọi người không phải trả lời lại nữa.

Chúc may mắn!

Thân

dangquangminh
01-08-2007, 11:16 AM
Cấu hình NAT động mà không dùng PAT

NAT động (không có PAT) cũng giống như NAT tĩnh, nghĩa là cũng tạo ra một ánh xạ một-một giữa một địa chỉ cục bộ bên trong Inside Local và một địa chỉ toàn cục bên ngoài Inside Global. Tuy nhiên, không giống cơ chế NAT tĩnh, cơ chế NAT động thực hiện điều này bằng cách định nghĩa một tập hợp hoặc một dãy địa chỉ Inside Local và một dãy các địa chỉ Inside Global. Sau đó, nó sẽ ánh xạ động các cặp địa chỉ khi cần thiết.

Ví dụ trong hình dưới đây mô tả một dãy năm địa chỉ Inside Global từ 200.1.1.1 đến 200.1.1.5. NAT cũng được cấu hình để thông dịch bất cứ địa chỉ Inside Local nào bắt đầu bằng 10.1.1.X. Các số 1,2 và 3 trong hình muốn chỉ đến thứ tự các sự kiện.

Máy 10.1.1.2 bắt đầu gửi gói tin đầu tiên đến máy chủ ở địa chỉ 170.1.1.1
Khi gói tin đi vào router NAT, router sẽ áp dụng một vài thuật toán so sánh để quyết định xem gói tin có nên áp dụng NAT hay không. Bởi vì thuật toán đã được cấu hình để “chuyển đổi địa chỉ Inside Local bắt đầu bằng 10.1.1.X”, router sẽ thêm vào một hàng trong bảng NAT cho địa chỉ 10.1.1.2 là địa chỉ Inside Local.
Router NAT cần phải cấp phát một địa chỉ tương ứng từ một dãy các địa chỉ Inside Global hợp lệ. Nó chọn địa chỉ đầu tiên có sẵn (200.1.1.1) trong trường hợp này và thêm nó vào bảng NAT để hoàn tất hàng đó.

http://www.wimaxpro.org/Hinh_upload/hinh_blog/NAT2.JPG

Với việc hoàn tất bước 3, các router NAT có thể thực sự dịch địa chỉ nguồn IP và chuyển gói tin đi. Lưu ý rằng khi có các khi có các phiên NAT tồn tại trong bảng NAT, chỉ có máy 10.1.1.2 có thể dùng địa chỉ Inside Global 200.1.1.1.