달력

52024  이전 다음

  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
반응형

내가 일하고 있는 곳에서는 개발 환경을 폐쇄망으로 구축해놓았다.

즉, 내가 개발하고 있는 환경은 인터넷이 전혀 되지 않는 사설망이다.


이 환경에서 여러 가지 가끔 네트워크 문제가 발생한다.

인터넷이 연결되어 있지 않으면 네트워크 문제인지 서버 문제인지 파악하는 것이 어렵다.

또 복구 작업 시 네트워크가 정상 작동하는 지 확인하는 게 어간 어렵지 않을 수 없다.


그때 Windows의 NCSI(Network Connectivity Status Indicator) 기능을 활용할 수 있으면 굉장히 편할 것 같다.

그래서 이를 폐쇄망 환경에서 인위적으로 작동시켜 보기로 하였다.



Windows Network Connectivity Status Indicator흔히 보이는 '인터넷 액세스', 이것이 NCSI (Network Connectivity Status Indicator)


NCSI와 관련된 정보는 MSDN에 잘 정리되어 있다.

Appendix K: Network Connectivity Status Indicator and Resulting Internet Communication in Windows Vista

( https://technet.microsoft.com/en-us/library/cc766017(WS.10).aspx )


이 글을 정리하면 Windows NCSI는 다음 두 가지 요청을 통해 인터넷에 연결되어 있는지 확인한다.


요청 종류

요청 방법

HTTP

http://www.mstfncsi.com/ncsi.txt 의 HTTP 본문이 Microsoft NCSI (다른 내용, 빈 줄 없이)

DNS

dns.msftncsi.com 의 DNS 이름이 131.107.255.255


그래서 위에서 제시한 방법을 실제로 시도해보았다.


먼저 간단하게 HTTP 서버를 만들었다.



이후 로컬 테스트를 위해 hosts 파일(X:\Windows\System32\drivers\etc\hosts)에 다음 줄을 추가했다.


127.0.0.1    www.mstfncsi.com

131.107.255.255    dns.msftncsi.com

(DNS 서버가 있기는 했지만 설정하기 귀찮아서 일단 hosts 파일로 적당히···)


그런데 여전히 네트워크 아이콘에는 느낌표가...


위 글을 다시 읽어보니 NCSI는 다음 상황에서 작동한다고 한다.

  • 컴퓨터가 재시작되어 사용자가 처음 로그온할 때
  • 컴퓨터가 다른 네트워크에 연결할 때
  • 공용 무선 네트워크가 사용자 인증을 요청할 때


그래서 어쩔 수 없이 컴퓨터를 재시작하자 느낌표가 사라졌다!

제대로 작동하는 것을 확인하였으니 로컬에서 서버로 환경을 옮겨보았다.


위에서 hosts 파일에 추가한 두 줄을 제거하고 DNS 서버에 두 항목을 추가했다.

(나는 Windows Server 2012 R2 의 DNS 서버를 사용하기 때문에 리눅스계열의 bind는 사용할 줄 모른다)


오오 잘 된다!

이것으로 만사 해결.



그런데 DNS Lookup이 진짜 필요한지 의문이 들었다.

폐쇄망에 따라서는 DNS 서버를 운영하지 않는 경우도 있기 때문에 한 번 테스트할 가치가 있을 것 같다.


그래서 위의 DNS 설정을 모두 삭제했다.

그래도 정상적으로 인터넷에 연결되었다고 NCSI가 알려준다.



그럼 반대로 웹 서버가 꼭 필요한가 테스트해보았다.

우선 DNS 설정은 원래대로 되돌렸다.

다음 두 가지 경우를 테스트해보았다.

  1. 웹 서버 자체가 없는 경우
  2. 웹 서버는 있으나 ncsi.txt를 반환하지 않는 경우


결과는 두 가지 전부 “인터넷에 연결되어 있지 않습니다”


뭔가 이상하다.

nslookup을 해봐도 DNS 결과는 정상이다.

로컬 테스트로 사용했던 hosts로 설정을 해봐도 같은 결과.


음... 모르겠다.

굳이 해결할 필요도 없을 것 같아서 더 이상 테스트는 진행하지 않았다.



어쨌건 여기서 결론은 폐쇄망에서 NCSI를 작동시키려면 ncsi.txt 를 반환하는 서버를 만들면 된다는 것이다.

혹시나 폐쇄망 환경에서 NCSI 기능을 활성화시킬 필요가 있다면 아주 간단한 웹 서버를 만들라.


반응형
Posted by Taekhan
|