Unix

왜 인터넷이 안 되는지 디버깅 하기

ForceCore 2009. 2. 15. 16:22
1. gateway의 IP주소로 ping을 날려본다. 핑이 안 가면 뭔가 문제가 있는 것이다. 어떤 network interface card를 쓸지 잘못 지정했다든가, 랜선연결을 엉뚱하게 했다거나...

게이트웨이로 핑이 가게 되었다면 이제...
2. gateway 바깥의 컴퓨터로 핑을 날려본다. 물론 학교 정책에 따라 교외로 핑이 안 가게 해놓았을 수도 있기 때문에, 같은 방의 다른 PC나 서버로 ping을 날려본다.

ping을 날릴 때...
2.1. 같은 방 안이면 같은 대역의... 예를들어 123.231.90.34, 123.231.90.30 과 같이 끝 번호만 다른 IP일 확률이 높다. 같은 대역의 IP로 ping이 가는지 체크해보고, 그게 클리어 되었으면,
2.2. 다른 대역... 123.231.80.23 과 같이 대역이 다른 장비로 ping을 날려본다. 교내 DNS 서버가 좋은 테스트 샘플이 된다.

3. 이제 다른 대역의 IP까지 확인했으면 네트워크는 잘 연결된 것이다. nslookup으로 www.naver.com등 서버의 IP주소가 잘 반환되는지 확인해본다.

4. DNS가 잘 반환되는지까지 클리어 되었으면 ping www.naver.com같은 것을 해본다. ping이 교외가 막혔더라도 이는 유효한 테스트이다. ping할 때 어떤 서버를 ping해야 할지 못 찾으면 nsswitch.conf가 잘못된 것이기 때문이다.

4.1 비슷한 테스트로, wget www.daum.net 과 같은 웹페이지의 index.html을 받아오는 테스트가 있다. 다른 컴퓨터가 되었든, 현 서버가 되었든 수단과 방법을 가리지 않고 nslookup을 해서 알아낸 IP로
$ wget IP주소
로 했을 때 index.html이 받아지는데,
$ wget www.daum.net
은 받아지지 않는다면 nsswitch.conf가 잘못 되어 있을 확률이 높다.

솔라리스의 경우는 /etc/nsswitch.dns를 /etc/nsswitch.conf로 복사하면 된다. 리눅스 계열은 DNS를 찾도록 설정이 웬만해서는 되어 있기 때문에 걱정할 필요가 거의 없다. (아직 예외를 못 봤다...)