Tại sao nó là một ý tưởng tồi để sử dụng nhiều lớp NAT hoặc là nó?


19

Mạng máy tính của một tổ chức có NAT với dải địa chỉ IP 192.168 / 16. Có một bộ phận với một máy chủ có địa chỉ IP 192.168.xy và máy chủ này xử lý các máy chủ của bộ phận này với một NAT khác với dải địa chỉ IP là 172.16 / 16.

Như vậy có 2 lớp NAT. Tại sao họ không có mạng lưới thay thế. Điều này sẽ cho phép định tuyến dễ dàng.

Tôi cảm thấy nhiều lớp NAT có thể gây ra tổn thất hiệu suất. Bạn có thể vui lòng giúp tôi so sánh hai chiến lược thiết kế.

Cập nhật:

@Jon Một số thông tin

Khi thảo luận với một người bạn, chúng tôi nhận ra rằng việc thuê lại sẽ gây ra vấn đề sau. Các yêu cầu ARP của máy tính sẽ tràn ngập toàn bộ mạng của tổ chức. Nếu bộ định tuyến không chuyển tiếp các yêu cầu này thì PC trong một bộ phận sẽ không thể kết nối với PC ở các bộ phận khác mà không thể thực hiện được nếu chúng đứng sau các NAT khác nhau. Với một trình thám thính gói, chúng tôi thấy rằng có một số lượng lớn các yêu cầu ARP vì hầu hết các máy tính trong bộ phận đều có tính năng Chia sẻ tệp trên Windows.

Làm thế nào để giải quyết vấn đề này?

Ngoài ra nếu hai máy tính đứng sau các NAT khác nhau thì không có cách nào để chúng kết nối với nhau.


Vui lòng thay đổi câu hỏi của bạn thành: "Tại sao nên sử dụng nhiều lớp NAT?"

2
Một bài tập về nhà khác ...
Jon Rhoades

1
KHÔNG. nó là một vấn đề thực tế Tôi luôn đề cập đến bài tập về nhà.
Rohit Banga

3
@Jon (và upvoters của anh ấy), không có vấn đề với việc đặt câu hỏi bài tập về nhà ở đây. Đó là một chủ đề đã được thảo luận hàng chục lần tại meta.stackoverflow.com - mặc dù cá nhân tôi không thấy bất cứ điều gì trong câu hỏi chỉ ra CTNH.
Mark Henderson

@Fudeeker - toàn bộ câu hỏi là trừu tượng. Anh ta dường như không ở vị trí để thay đổi bất cứ điều gì, anh ta muốn chúng tôi "so sánh 2 chiến lược thiết kế" không có mục tiêu rõ ràng - nó chỉ có mùi như bài tập về nhà không phải là vấn đề của thế giới thực. Tất nhiên tôi rất vui khi chấp nhận rằng tôi sai và ai đó có thiết lập điên rồ này - trong trường hợp đó hãy hỏi họ tại sao họ phải có lý do chính đáng.
Jon Rhoades

Câu trả lời:


6

Vấn đề thực sự duy nhất khi thực hiện NATing nhiều lớp là nó làm cho cấu trúc liên kết mạng của bạn trở nên khó hiểu. Nếu bạn sử dụng nhiều lớp NAT thì bạn sẽ loại bỏ định tuyến đối xứng giữa tất cả các máy chủ trong tổ chức và bạn cũng có khả năng chồng lấp các không gian địa chỉ riêng tư trong mạng của mình. Hãy tưởng tượng nếu bạn đã sử dụng một phạm vi địa chỉ trong lớp NAT n + 1 đang được sử dụng trong lớp n NAT. Các mạng đó sẽ không bao giờ có thể định tuyến đến nhau, nhưng các máy chủ trong lớp n + 1 có thể có cùng địa chỉ với lớp n, khiến nhận dạng của máy chủ trở nên khó hiểu.

Nếu tôi đang đặt cấu trúc liên kết của một mạng lớn, tôi sẽ chỉ sử dụng địa chỉ 10. * hoặc 172.16-24. * Cho các máy chủ trên bất kỳ mạng con nào của chúng tôi. Sau đó, nếu một số bộ phận hoặc cá nhân muốn nhân đôi NAT, họ có thể (sử dụng mạng 192.168. *) Với sự hiểu rằng họ có trách nhiệm đối với mạng phía sau máy chủ NAT của họ. Tôi cũng sẽ có xu hướng tạo ra nhiều mạng con hơn là để cho bất kỳ mạng đôi nào của NAT trở nên quá lớn.


9

Các vấn đề với NAT đa cấp về cơ bản giống như đối với NAT một lớp nhưng được gộp lại. Nhu la:

  1. Độ trễ do công việc phụ được thực hiện trong vòng đời của gói (mặc dù điều này dường như không đáng kể trong hầu hết các trường hợp)

  2. Biết mọi thứ đến từ đâu. Nếu bạn đang cố gắng theo dõi nơi xuất phát một số yêu cầu (có lẽ tường lửa gửi đi của bạn đã ghi lại những gì trông giống như một cỗ máy bị xâm nhập đang cố gắng phun thư rác hoặc tìm kiếm các mục tiêu lây nhiễm khác), NAT sẽ khiến việc chẩn đoán như vậy khó khăn hơn nhiều.

  3. Chuyển tiếp cổng kết nối đến, nếu bạn cần kết nối đến, sẽ cần nhiều faf hơn để thiết lập và duy trì.

  4. Số lượng cổng hạn chế. NAT hoạt động bằng cách dịch địa chỉ nguồn sang chính nó trên các cổng khác nhau, ví dụ:

    • máy 1 nói chuyện với máy chủ web bên ngoài bằng cổng 1024 vì nguồn của nó được dịch sang địa chỉ của hộp NAT trên, ví dụ, cổng 10000.
    • cùng một máy thực hiện đồng thời hai yêu cầu hoặc máy chủ web khác (không phải bất thường) sử dụng cổng nguồn 1025 (hai kết nối đồng thời cần có các cổng nguồn khác nhau). Hộp NAT dịch điều này thành "tôi trên cổng nguồn 10001"
    • một cuộc đàm phán máy khác tạo ra ba kết nối đến các máy chủ bên ngoài. Tốt thôi, hộp NAT dịch chúng thành "tôi trên các cổng 10002, 10003 và 10004"
    • khi các gói trở lại dưới dạng các máy bên ngoài, hộp NAT biết rằng nó tự định sẵn cho cổng 10000 thực sự được chuyển đến máy 1 trên cổng 1024, v.v. đối với các kết nối hoạt động khác.

    Điều này hoàn toàn ổn và cho đến khi bạn có nhiều kết nối gửi đi - tức là một mạng lớn hoặc một mạng nhỏ hơn với các máy tạo ra nhiều kết nối (các ứng dụng P2P như các giao thức bittorrent có thể tạo ra nhiều kết nối đồng thời). Chỉ có 65536 cổng trong giao thức IP, ít hơn 1024 cổng được bảo lưu. Mặc dù 60.000 âm thanh có thể rất nhiều nhưng nó có thể được tiêu thụ nhanh chóng, nhưng hộp NAT cần phải quyết định loại bỏ ánh xạ cũ nào thường không đơn giản như "bỏ cái cũ nhất". Điều này có thể dẫn đến các lỗi kỳ lạ (kết nối ngẫu nhiên giảm vì lý do khó chẩn đoán) hoặc đơn giản là máy không thể tạo kết nối mới trong một thời gian.

  5. tải trên hộp NAT. Nếu bạn đang sử dụng các hộp năng lượng thấp (ví dụ: bộ định tuyến hỗ trợ NAT sẵn có, thay vào đó là một PC đầy đủ với CPU chunky) để thực hiện NAT công việc dịch thuật bổ sung (so với việc chuyển tiếp các gói theo bảng định tuyến cơ bản ) có thể làm chậm chuyển qua chúng xuống. Đối với truy cập Internet, điều này không có khả năng là một vấn đề (kết nối mạng của bạn sẽ là nút cổ chai) nhưng vì bạn đang NAT giữa các phân đoạn mạng cục bộ nên nó có thể trở nên khá đáng chú ý.


điểm 4 vấn đề này có giống nhau đối với bất kỳ số lớp NAT nào hay không!
Rohit Banga

Đúng, điểm 4 là cùng một vấn đề trên cả NAT đơn cấp và NAT đa cấp, nhưng NAT đa cấp làm trầm trọng thêm vấn đề tìm ra các kết nối nào đã chết (máy chủ bên ngoài có thể không biết nhiều ngữ cảnh như bên trong) và chẩn đoán khó hơn nếu giới hạn ánh xạ cổng trở thành một vấn đề. Nó cũng có thể khiến việc phân bổ băng thông hợp lý và việc định hình lưu lượng truy cập khác trở nên khó hiểu hơn khi thực hiện và giám sát (mặc dù có nhiều cách khác, đơn giản hóa cấu trúc liên kết mạng của bạn thường là lựa chọn tốt hơn).
David Spillett

6

Mất hiệu năng / tốc độ thực sự là do chất lượng của bộ định tuyến bạn sử dụng.

Đối với ý tưởng tốt / xấu, tôi chống lại nó khi có thể chỉ cần sử dụng định tuyến, tuy nhiên, nó thực sự phụ thuộc vào môi trường và những gì bạn đang cố gắng thực hiện.

Nếu các máy chỉ cần chạy một vài thứ được chia sẻ qua các cổng tiêu chuẩn, bạn có thể truy cập vào bộ định tuyến / thiết bị cung cấp và đặt quy tắc để cho phép những gì bạn muốn (1). Tuy nhiên, nếu bạn sắp thực hiện nhiều thiết bị cho các tác vụ của thiết bị, việc có một lộ trình phù hợp sẽ dễ dàng hơn rất nhiều với mỗi máy có IP duy nhất (2).

(1) Ví dụ: một đến nhiều - Một máy có máy chủ web và bạn muốn chia sẻ nó với người khác - bạn sẽ đặt quy tắc trong bộ định tuyến thành cổng 80 của máy, sau đó bất kỳ máy nào từ mạng bên ngoài (hoặc bên trong nếu nat-loopback được bật) có thể chỉ cần truy cập http: //router.ip và có thể truy cập.

(2) Tuy nhiên, nếu mọi máy đều có máy chủ web hoặc bạn sẽ sử dụng nhiều dịch vụ, bạn sẽ gặp ác mộng khi thiết lập tất cả các quy tắc (nhưng điều đó là không thể).

Đối với kịch bản của bạn - Nếu một bộ phận đang sử dụng 192.168.xx và 192.168.yx khác, tôi sẽ duyệt qua các thiết bị và nếu không có sự trùng lặp, có thể chỉ cần thay đổi mạng con từ / 24 thành / 16 (hoặc ngược lại), sau đó thay thế các bộ định tuyến bằng các bộ chuyển mạch / hoặc tương tự và không bị mất dịch vụ.

Thật sự rất khó để giúp đỡ mà không biết thêm về mạng của bạn, không có gì "sai" với gấp đôi NAT, miễn là nó được thiết lập chính xác. Tuy nhiên, trừ khi bạn thực sự cần nó, hoặc có một lý do rất tốt cho nó, tôi sẽ xem xét việc di chuyển đi nếu bạn có thể (ý kiến ​​cá nhân)


@iamrohitbanga - Trả lời câu hỏi của bạn (rất nhiều cho ý kiến).

So sánh là khó - Định tuyến hoạt động tốt cho các mạng riêng nơi mọi máy đều có khả năng truy cập mọi máy. Nat hoạt động tốt, nhưng nó được sử dụng chủ yếu cho các mạng không cần định tuyến vì bạn thường phải thiết lập thủ công các quy tắc / tuyến đến.

Ví dụ: nếu bạn có kết nối internet và vô hiệu hóa NAT, thì hãy thiết lập thủ công các tuyến đường hoặc chế độ cầu nối - máy của bạn sẽ trực tiếp trên internet - tất cả các cổng có thể truy cập và bất kỳ máy nào cũng có thể làm những gì nó muốn.

Nếu bạn có một bộ định tuyến mặt khác với NAT, nó sẽ lấy IP bên ngoài và cung cấp "Nat-ed?" (không chắc chắn về thuật ngữ ...) internet - tất cả các máy bên trong đều có IP không thể truy cập từ internet, nhưng, bạn có thể thiết lập quy tắc thủ công - ví dụ: cổng 80 đến một máy ... Nó hoạt động rất tốt cho các kết nối đi (tường lửa quy tắc cho phép), nhưng có thể là một cơn ác mộng khi thiết lập quy tắc đến nếu bạn lưu trữ nhiều dịch vụ ... và nếu bạn làm bất cứ điều gì cần cổng động (ftp, Windows AD, v.v.) thì đó có thể là một cơn ác mộng.

Hy vọng điều này sẽ giúp, nếu bạn muốn biết bất cứ điều gì khác, hãy hỏi.


bạn có thể so sánh hai chiến lược mạng được sử dụng để cung cấp truy cập Internet cho máy chủ.
Rohit Banga

@iamrohitbanga - cập nhật câu trả lời
William Hilsum

5

Vấn đề chính với NAT (nói chung và với nhiều lớp cụ thể) là nó có thể cực kỳ khó khắc phục sự cố.


4

Vấn đề lớn nhất với NAT là khi phần mềm mạng lỗi thời thực hiện dịch thuật, sẽ khiến nhiều ứng dụng bị tổn thương (FTP, VoIP, v.v.). Tường lửa / cổng hiện đại có bản dịch (bản sửa lỗi theo thuật ngữ của Cisco) giúp việc này trở nên dễ dàng hơn rất nhiều.

Tôi không hiểu tại sao công ty của bạn sử dụng NAT giữa các mạng con riêng. Tại sao không chỉ định tuyến nó?


2

Chỉ cần nâng cấp mạng và máy khách của bạn lên IPV6, sau đó không cần sử dụng NAT nữa.


1

Để trả lời phần thứ hai mới của câu hỏi của bạn ...

Bộ định tuyến phá vỡ các miền quảng bá - bộ định tuyến không chuyển tiếp các gói arp, chúng nằm trong một mạng con *. Chia sẻ tệp Windows của bạn (nghiêm túc?) Lưu lượng phát Netbios sẽ không rời khỏi mạng con.

Với mạng con:

Nếu bạn cần truy cập vào chia sẻ Windows từ bên ngoài mạng con thì bạn có thể truy cập nó bằng cách sử dụng trực tiếp địa chỉ IP của nó hoặc nếu bạn có thiết lập máy chủ DNS hoặc WINS theo tên máy chủ.

Với NAT:

Nếu NAT của bạn thuộc loại PAT và do đó không phải là ánh xạ một đến một, bạn sẽ cần phải định cấu hình chuyển tiếp cổng để hoạt động này - điều này sẽ rất tệ.

Như đã được thảo luận về quảng cáo, NAT nói chung là một điều tồi tệ vì nó phá vỡ chức năng mạng, chúng tôi chỉ sử dụng vì chúng tôi phải làm. Cuộn trên IPv6.

* Tất nhiên là chuyển tiếp phát / chuyển tiếp / trợ giúp tồn tại

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.