8-4. NAT 고급기능 Windows Networking2008. 11. 20. 08:59
위에서는 개인네트워크의 클라이언트들이 인터넷을 사용하기 위한 기본적인 기능을 설명했다. 추가로 NAT가 가지는 몇가지 유용한 기능에 대해서도 설명한다.
8-4-1. DHCP서비스
개인네트워크의 클라이언트들은 NAT서버의 개인네트워크 인터페이스와 같은 네트워크ID의 IP Address가 할당되어야 한다. 이러한 작업을 수동으로 해도 되겠지만 만일 많은 수의 NAT클라이언트들을 관리해야 한다면 DHCP서비스를 고려할 수 있을 것이다. 별도의 DHCP서버를 두지 않고 NAT서버에서 DHCP서버 역할을 제공할 수 있다. 라우팅 및 원격 액세스 서비스 관리콘솔에서 왼쪽패널의 NAT를 클릭하고 등록정보로 접근하면 <그림8-25>의 메뉴를 볼 수 있다.
"주소할당"탭에서 'DHCP를 사용하여 IP주소 자동 할당'옵션을 체크하면 DHCP서비스를 제공할 수 있다. IP주소 항목에는 NAT서버의 개인 네트워크 인터페이스에 해당하는 네트워크 ID를 적어준다. 예를 들어서 NAT서버의 개인네트워크 IP가 192.168.200.1이라면 IP 주소항목에는 192.168.200.0이 된다.
<그림8-23. NAT 등록정보 - DHCP구성 >
위와 같이 구성하면 클라이언트는 IP주소와 서브넷마스크를 NAT에서 설정한 대로 할당받게 되고, NAT의 개인네트워크 인터페이스에 할당된 IP주소를 클라이언트의 기본 게이트웨이로 사용하도록 구성된다. TCP/IP환경에서 클라이언트가 인터넷을 쓰기 위해서는 추가로 구성되어야 할 항목이 있다. 바로 DNS서버의 IP를 가져야 하는데 이것까지도 NAT서버를 통해서 받게 하고 싶다면 추가로 "이름확인"탭까지 구성을 해 주면 된다.
<그림8-24. NAT 등록정보 - 이름확인 구성 >
<그림8-24>에서 '이름확인'탭에서 '클라이언트가 DNS를 사용'이라는 옵션을 체크하였다. 이렇게 하면 NAT 클라이언트는 IP주소, 서브넷마스크, 기본게이트웨이 뿐만 아니라 DNS의 IP까지도 할당받을 수 있게 된다.
NAT서버의 이러한 설정을 클라이언트가 사용하고 싶다면 클라이언트의 시스템에서는 TCP/IP설정을 DHCP클라이언트로 변경해야 한다. <그림8-25>에서는 클라이언트의 TCP/IP설정을 '자동으로 IP받기'를 선택함으로써 DHCP클라이언트로서 셋팅한 것을 보여준다.
<그림8-25. TCP/IP설정을 DHCP클라이언트로 구성>
8-4-2. 외부 네트워크에서의 개인네트워크 액세스 허용
ICS, NAT가 제공하는 또 다른 측면이라면 그것은 정반대의 기능도 제공한다는 것이다. 개인네트워크의 클라이언트들이 외부 인터넷으로 접근하도록 지원하지만 또 다른 측면은 인터넷상의 클라이언트들이 개인네트워크의 서버로 연결할 수 있도록 지원하는 것도 역시 ICS, NAT등의 기능이다.
< 그림8-26. 개인네트워크에 웹서버 배치하기 >
<그림8-26>의 예제에서 보여지듯이 인터넷에서 접근하는 사용자에게 웹서비스를 제공하고자 하는데, 만일 웹서버를 공용네트워크에 두는 것이 아니라 개인네트워크에 배치하고 싶다면 어떻게 할까? 당연히 웹서버는 개인네트워크 IP Address를 가지게 될 것이고, 외부에서 그 IP Address로 접근을 시도하더라도 웹서버까지 요청은 도달될 수 없다. InterNIC에서는 개인 네트워크 IP주소를 위해 특별히 네트워크 ID를 예약해 두었고, 그 IP는 인터넷에서는 통용되지 않는 개인네트워크를 위해서 사용이 되고 있다. 192.168.x.x 네트워크 ID 역시 개인 네트워크 용도로 할당된 ID이다. 이것을 목적지로 한 패킷은 갈곳이 없다.
방법은 있다. NAT서버에서 약간의 설정을 통하여 내부의 서버가 공용네트워크에 서비스를 제공할 수 있게 할 수 있다. 2가지 방법이 제공되는데 각각의 기능은 차이점을 보이게 된다.
먼저, 특수포트 매핑의 방법이 있다.
NAT서버의 공인IP가 211.232.71.131라고 가정해 보자. DNS서버의 www레코드는 211.232.71.131를 가리키고 있어야 한다. 외부에서 보기에는 NAT서버가 회사의 웹서버가 되는 것이다. 클라이언트의 http요청은 NAT서버에게 날아올 것이다. 이때 NAT서버에서는 이 요청을 자신이 처리하는 것이 아니라 개인 네트워크로 요청을 포워딩 해 주면 된다.
아래와 같이 구성한다.
|
|
|
|
|
|
또 다른 방법은 Address Pool (주소풀)을 이용하는 방법이다. 이것은 공인 IP가 추가로 필요하다. 하나의 IP만 가지고 있을 경우에는 구현할 수 없는 방법이다. NAT서버에게 여러개의 공인 IP주소를 할당해 두고 이 공인 IP를 내부의 사설IP로 예약해 두겠다는 것인데, 이렇게 하면 NAT서버에게 할당해 둔 공인 IP에게 요청이 들어오면 내부의 예약된 개인IP를 가진 컴퓨터들에게 요청을 포워딩 해 줄 수가 있게 된다. | |
<그림8-30. NAT 인터페이스 등록정보 - 주소풀 추가 > |
|
|
다음에 [예약]버튼을 클릭하여 위에서 할당한 공인 IP와 개인네트워크 내부의 시스템의 개인 IP를 매핑시킨다. 예제에서는 192.168.0.251을 192.168.200.15로 매핑시켰다. 그 다음에 '이 주소로 들어오는 세션 허용' 항목을 체크하고 [확인]을 눌러 마친다. 이렇게 하면 NAT서버는 192.168.0.251을 목적지로 하는 모든 패킷들을 개인 네트워크의 192.168.200.15 서버에게 포워딩하게 된다. 결과적으로는 인터넷상의 사용자가 개인네트워크 내의 컴퓨터에게 접속할 수 있게 구성이 된 것이다. |
DNS서버의 www 레코드는 더 이상 NAT서버의 공용IP Address를 가리키고 있어서는 안된다. <그림8-31>에서 예약한 192.168.0.251을 가리키고 있어야 할 것이다.
8-4-3. NAT가 지원하지 못하는 것들
NAT서버는 큰 단점이 있다. 클라이언트의 숫자가 늘어날수록 성능면에서 상당한 저하를 가져올 수 밖에 없다는 것이다. 보통 20명에서 최대 30여명 정도의 클라이언트가 있는 환경에서는 그런대로 쓸만 하지만 보다 많은 사용자를 지원해야 한다면 NAT는 권장할만한 솔루션은 아니다.
또한 NAT서버가 개인네트워크와 공용네트워크간의 연결성을 훌륭하게 수행하긴 하지만 아쉽게도 모든 프로토콜이 허용되는 것은 아니다. 일반적으로 사용하는 http, ftp, smtp, pop3등은 잘 동작하지만 Kerberos, IPSec, DCOM, LDAP등의 프로토콜을 NAT에서 지원이 되지 않는다. 개인네트워크의 NAT 클라이언트가 NAT서버를 이용해서 외부의 서버와 통신을 할 때, 만일 이러한 NAT에서 지원되지 않는 프로토콜이 필요하다면 그 때는 NAT서버를 사용할 수는 없다. 예를 들면, 도메인 환경에서 클라이언트가 로그온을 한다든가, Active Directory에 쿼리를 한다든가, L2TP를 이용한 VPN을 구현한다든가 하는 경우가 있다.
또한 NAT는 개인네트워크에 여러 개의 서브넷을 지원하지 못한다. 공용인터페이스 하나, 개인 인터페이스 하나, 이걸로 끝이다. 여러 개의 서브넷을 만들고 각각 서로 다른 수준의 보안설정을 하는 작업을 지원하지 않는다는 것이다.
또한 NAT는 사용자 인증을 지원하지 않는다. 물리적으로 개인 네트워크에 있는 클라이언트가 NAT서버의 IP Address만 알고 있다면 누구라도 NAT를 이용해서 인터넷에 액세스하는 것이 가능하다.
프로토콜 필터링 또한 지원하지 않는다. 물론 이것은 라우팅 및 원격액세스의 필터링 기능과 연동하여 사용하면 가능하긴 하지만 NAT자체적으로 필터링을 지원하는 것은 아니다. 이를 테면 관리자들은 FTP를 사용하게 하고, 영업부 직원들은 http를 사용하지 못하게 하는 등의 사용자별 프로토콜별 필터링을 통한 통제가 되지 않는다는 것이다.
음.. 적고 보니 안 되는 기능이 너무 많은 듯 하다. 하지만 소규모의 기업네트워크 환경이라면 위의 단점으로 지적한 기능들이 현실적으로 문제가 되지는 않는다.
그렇다면 이런 경우에는 해결책이 없는가? 물론 있다. MS의 솔루션으로는 ISA (Internet Security & Acceleration) Server를 들 수 있다. 현재 ISA Server 2004가 출시되어 있다.
ISA Server 는 제품이름에서 알 수 있듯이 단순히 개인네트워크와 공용네트워크와의 연결성 뿐만이 아니라 웹캐싱 기능을 통해서 보다 빠른 인터넷 액세스를 제공하고, 사용자관리를 통한 인터넷 액세스 제한, 특정 사이트 접근 제한 등의 부가적인 기능을 가지고 있으며 이전버전에 비해 향상된 파이어월의 기능을 제공하여 Microsoft의 야심작인 닷넷플랫폼에 있어서 보안을 담당하는 중요한 인프라의 관문역할을 담당하고 있다. 마이크로소프트 웹사이트 ( http://www.microsoft.com/korea/isaserver/ )를 참고한다.