여러 NAT 계층을 사용하는 것이 좋지 않은 이유는 무엇입니까?


19

조직의 컴퓨터 네트워크에는 IP 주소 범위가 192.168 / 16 인 NAT가 있습니다. IP 주소가 192.168.xy 인 서버가있는 부서가 있으며이 서버는 IP 주소 범위가 172.16 / 16 인 다른 NAT를 사용하여이 부서의 호스트를 처리합니다.

따라서 2 개의 NAT 계층이 있습니다. 대신 서브넷이없는 이유는 무엇입니까? 이렇게하면 쉽게 라우팅 할 수 있습니다.

여러 계층의 NAT가 성능 손실을 일으킬 수 있다고 생각합니다. 두 가지 디자인 전략을 비교하도록 도와주십시오.

최신 정보:

@Jon 좀 더 자세한 정보

친구와의 토론에서 서브넷을 만들면 다음과 같은 문제가 발생할 수 있음을 깨달았습니다. 컴퓨터의 ARP 요청은 전체 조직의 네트워크를 침수시킵니다. 라우터가 이러한 요청을 전달하지 않으면 한 부서의 PC가 다른 부서의 PC에 연결할 수 없으므로 다른 NAT 뒤에있는 경우에는 수행 할 수 없습니다. 패킷 스니퍼를 사용하면 부서의 대부분의 컴퓨터에서 Windows의 파일 공유가 활성화되어 있기 때문에 많은 ARP 요청이 있음을 알았습니다.

이 문제를 해결하는 방법?

또한 두 컴퓨터가 서로 다른 NAT 뒤에 있으면 서로 연결할 수있는 방법이 없습니다.


"여러 NAT 계층을 사용하는 것이 좋지 않은 이유는 무엇입니까?"로 질문을 변경하십시오.

2
또 다른 숙제 ...
Jon Rhoades

1
아니. 실제적인 문제입니다. 나는 항상 숙제를 언급합니다.
Rohit Banga

3
@Jon (및 그의 투표자)은 여기에 숙제 질문을하는 데 아무런 문제가 없습니다. meta.stackoverflow.com 에서 수십 번 이상 논의 된 주제입니다. 개인적으로 HW를 가리키는 질문에는 아무것도 보이지 않습니다.
Mark Henderson

@ Farseeker-전체 질문은 추상적입니다. 그는 아무것도 바꿀 자리에 있지 않은 것 같습니다. 그는 분명한 목표없이 "2 가지 디자인 전략"을 비교하기를 원합니다. 실제 문제가 아닌 숙제처럼 냄새가납니다. 물론 나는 내가 틀렸다는 것을 받아들이게되어 기쁘다. 누군가가이 미친 설정을하고있다.이 경우 그들에게 왜 타당한 이유가 있는지 물어 보라.
Jon Rhoades

답변:


6

다중 계층 NAT를 수행하는 데있어 유일한 문제는 네트워크 토폴로지가 혼동된다는 것입니다. 여러 계층의 NAT를 사용하는 경우 조직의 모든 호스트간에 대칭 라우팅을 버리고 네트워크 내부의 개인 주소 공간이 겹칠 가능성이 있습니다. n NAT 계층에서 사용 된 n + 1 NAT 계층에서 주소 범위를 사용했다고 가정 해보십시오. 이러한 네트워크는 서로 라우팅 할 수 없지만 n + 1 계층의 호스트는 n 계층과 동일한 주소를 가질 수 있으므로 서버의 ID가 혼동 될 수 있습니다.

대규모 네트워크의 토폴로지를 배치하는 경우 서브넷의 호스트에 10. * 또는 172.16-24. * 주소 만 사용합니다. 그런 다음 일부 부서 나 개인이 NAT를 두 배로 늘리려면 NAT 호스트 뒤의 네트워크에 대해 책임감이 있다는 사실을 이해하고 (192.168. * 네트워크 사용) 가능합니다. 또한 이중 NAT 네트워크가 너무 커지는 것보다 더 많은 서브넷을 만드는 경향이 있습니다.


9

다중 레벨 NAT의 문제점은 기본적으로 단일 계층 NAT와 동일하지만 복합적입니다. 같은 :

  1. 패킷 수명 동안 추가 작업으로 인한 대기 시간 (대부분의 경우 중요하지는 않지만)

  2. 어디에서 오는지 알기. 특정 요청이 어디에서 왔는지 추적하려고 시도하는 경우 (아마도 나가는 방화벽이 스팸을 스푸핑하거나 다른 감염 대상을 검색하려고 시도하는 손상된 시스템으로 보이는 것을 기록했을 수 있습니다) NAT는 이러한 진단을 훨씬 어렵게 만듭니다.

  3. 들어오는 연결 포트 전달은 들어오는 연결이 필요한 경우 설정 및 유지 관리에 더 유리합니다.

  4. 제한된 수의 포트. NAT는 소스 주소를 다른 포트에서 자체 주소로 변환하여 작동합니다. 예를 들면 다음과 같습니다.

    • 시스템 1은 소스가 포트 10000의 NAT 상자 주소로 변환 될 때 포트 1024를 사용하여 외부 웹 서버와 통신합니다.
    • 동일한 시스템은 소스 포트 1025를 사용하여 두 개의 요청 또는 다른 웹 서버에 동시에 요청을합니다 (두 개의 동시 연결에는 서로 다른 소스 포트가 필요함). NAT 상자는 이것을 "소스 포트 10001의 me"로 변환합니다.
    • 다른 머신 토크는 외부 서버에 세 개의 연결을 만듭니다. NAT 상자는 이것을 "포트 10002, 10003 및 10004에"로 변환합니다.
    • 패킷이 외부 시스템의 형태로 돌아 오면 NAT 상자는 포트 10000에서 자체적으로 전송되는 항목이 실제로 포트 1024의 시스템 1로 이동하고 다른 활성 연결의 경우 계속 진행됨을 알고 있습니다.

    이는 나가는 연결이 많을 때까지 훌륭합니다. 즉, 대규모 네트워크 또는 많은 연결을 만드는 컴퓨터가있는 소규모 네트워크 (비트 토렌트 프로토콜을 구현하는 것과 같은 P2P 응용 프로그램은 많은 동시 연결을 만들 수 있습니다 ). IP 프로토콜에는 65536 개의 포트만 있으며 예약 된 1024보다 적습니다. 60,000은 많이 소비되는 것처럼 들릴 수 있지만 NAT 상자는 제거 할 수있는 오래된 매핑을 결정해야합니다.이 매핑은 일반적으로 "가장 오래된 것"만큼 간단하지 않습니다. 이로 인해 이상한 버그가 발생하여 (진단하기 어려운 임의의 연결이 끊어짐) 기계가 잠시 동안 새로운 연결을 만들지 못할 수 있습니다.

  5. NAT 상자에 적재하십시오. 저전력 박스 (예 : 기성품 CPU를 갖춘 풀 PC가 아닌 기성품 NAT 지원 라우터)를 사용하여 NAT에 추가 변환 작업을 수행하는 경우 (기본 라우팅 테이블에 따라 단순히 패킷을 전달하는 것과 비교) )로 전송 속도가 느려질 수 있습니다. 인터넷 액세스의 경우 이것이 문제가되지는 않지만 ( '인터넷 연결에 병목 현상이 발생합니다.) 로컬 네트워크 세그먼트간에 NAT를 사용하면 눈에 띄게 될 수 있습니다.


포인트 4이 문제는 NAT의 여러 계층에 대해 동일해야합니다!
Rohit Banga

사실, 포인트 4는 단일 수준 NAT와 다중 수준 NAT 모두에서 동일한 문제이지만 다중 수준 NAT는 어떤 연결이 끊어 졌는지 (외부 호스트가 내부 연결만큼 많은 컨텍스트를 알지 못할 수 있음) 해결하는 문제를 악화시키고 진단합니다. 포트 매핑 제한이 문제가되면 더 어려워집니다. 또한 적절한 대역폭 할당 및 기타 트래픽 형성을 구현하고 모니터링하기가 더 혼동 될 수 있습니다 (그 주위에는 여러 가지 방법이 있지만 일반적으로 네트워크 토폴로지를 단순화하는 것이 더 나은 옵션입니다).
David Spillett

6

성능 손실 / 속도는 실제로 사용하는 라우터의 품질에 달려 있습니다.

좋은 / 나쁜 아이디어에 관해서는 단순히 라우팅을 사용할 수있을 때 반대하지만, 실제로 환경과 달성하려는 것에 달려 있습니다.

컴퓨터가 표준 포트를 통해 공유되는 몇 가지 항목 만 실행해야하는 경우 라우터 / 모기 장치로 이동하여 원하는 것을 허용하는 규칙을 설정할 수 있습니다 (1). 그러나 많은 장치 대 장치 작업을 수행하려는 경우 각 컴퓨터마다 고유 한 IP가있는 적절한 경로를 갖는 것이 훨씬 쉽습니다 (2).

(1) 예를 들어, 일대 다-하나의 컴퓨터에는 웹 서버가 있고 다른 서버와 공유하려는 경우-라우터의 규칙을 컴퓨터의 포트 80으로 설정 한 다음 외부 네트워크 (또는 내부의 모든 컴퓨터)에 규칙을 설정합니다. nat-loopback이 활성화 된 경우) http : //router.ip 로 이동하여 액세스 할 수 있습니다.

(2) 그러나 모든 컴퓨터에 웹 서버가 있거나 많은 서비스를 사용하려는 경우 모든 규칙을 설정하는 악몽이 있습니다 (그러나 불가능하지는 않습니다).

시나리오에서-한 부서에서 192.168.xx를 사용하고 다른 부서는 192.168.yx를 사용하는 경우 장치를 살펴보고 겹치지 않으면 서브넷을 / 24에서 / 16으로 변경하는 것이 가능할 수 있습니다 (또는 다른 방법으로), 라우터를 스위치 또는 이와 유사한 것으로 교체하고 서비스 손실이 없습니다.

네트워크에 대해 더 많이 알지 못하면 실제로 도움을주기가 어렵습니다. 올바르게 설정되어있는 한 이중 NAT로 "잘못된"것은 없습니다. 그러나 당신이 정말로 그것을 필요로하지 않거나, 그럴만한 이유가 없다면, 나는 당신이 할 수 있다면 이주를 볼 것입니다 (개인의 의견)


@iamrohitbanga-귀하의 질문에 대한 답변 (많은 의견).

비교는 어렵습니다-라우팅은 모든 컴퓨터가 모든 컴퓨터에 액세스 할 수있는 개인 네트워크에 적합합니다. Nat는 잘 작동하지만 일반적으로 들어오는 규칙 / 라우트를 수동으로 설정해야하므로 라우팅이 필요없는 네트워크에 주로 사용됩니다.

예를 들어, 인터넷에 연결되어 있고 NAT를 비활성화 한 경우 경로 또는 브리지 모드를 수동으로 설정하면 컴퓨터가 인터넷에 직접 연결됩니다. 모든 포트에 액세스 할 수 있으며 모든 컴퓨터에서 원하는 작업을 수행 할 수 있습니다.

반면에 NAT가있는 라우터가있는 경우 외부 IP를 사용하여 "Nat-ed?"를 제공합니다. 인터넷-모든 내부 컴퓨터에는 인터넷에서 액세스 할 수없는 IP가 있지만 수동 규칙 (예 : 포트 80-하나의 컴퓨터)을 설정할 수 있습니다. 나가는 연결 (방화벽)에 매우 적합합니다. 많은 서비스를 호스팅하는 경우 들어오는 규칙을 설정하는 악몽이 될 수 있습니다 ... 동적 포트 (ftp, Windows AD 등)가 필요한 작업을하는 경우 악몽이 될 수 있습니다.

다른 것을 알고 싶다면 언제든지 문의하십시오.


두 전략을 비교할 수 있습니까? 네트워크는 호스트에 인터넷 액세스를 제공하는 데 사용됩니다.
Rohit Banga

@iamrohitbanga-답변 업데이트
William Hilsum

5

NAT의 일반적인 문제 (일반적으로 여러 계층에서)는 문제를 해결하기가 매우 어렵다는 것입니다.


4

NAT의 가장 큰 문제는 번역을 수행하는 오래된 네트워크 소프트웨어가있을 때 많은 응용 프로그램을 손상시킬 수 있다는 것입니다 (FTP, VoIP 등). 최신 방화벽 / 게이트웨이에는 번역 (시스코 용어로 수정)이있어 훨씬 쉽게 만들 수 있습니다.

귀사에서 프라이빗 서브넷간에 NAT를 사용하는 이유를 모르겠습니다. 왜 그냥 라우팅하지 않습니까?


2

네트워크와 클라이언트를 IPV6으로 업그레이드하면 NAT를 다시 사용할 필요가 없습니다.


1

질문의 새로운 두 번째 부분에 대답하려면 ...

라우터는 브로드 캐스트 도메인을 중단합니다. 라우터는 arp 패킷을 전달하지 않으며 서브넷 내에 유지됩니다 *. Windows 파일 공유 (심각한가?) Netbios 브로드 캐스트 트래픽은 서브넷을 떠나지 않습니다.

서브넷 사용 :

서브넷 외부에서 Windows 공유에 액세스해야하는 경우 IP 주소를 직접 사용하거나 호스트 이름으로 DNS 또는 WINS 서버를 설정 한 경우 액세스 할 수 있습니다.

NAT로 :

NAT가 PAT 종류이고 따라서 일대일 매핑이 아닌 경우 포트 포워딩을 구성해야 작동합니다. 이는 좋지 않습니다.

ad naseum에서 논의했듯이 NAT는 네트워크 기능을 망가 뜨리는 것이 일반적으로 좋지 않습니다. IPv6을 시작하십시오.

* 물론 방송 전달자 / 릴레이 / 헬퍼가 존재합니다

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.