| ping, arp, dns관련하여 (글 홍석범) | 작성일 : 2003/10/06 02:43 |
| 조회수 : 11494 |
|
출처 : sec-info 메일링 리스트 --------------------------------------------------------------------- Re: ping, arp, dns관련하여 날짜: Thu, 24 Jul 2003 16:20:59 +0900 보낸이: "Sukbum Hong" <antihong@tt.co.kr> 받는이: "i" <imalcol@mail.affis.or.kr>, <sec-info@cert.certcc.or.kr> 안녕하십니까? 오늘과내일의 홍석범입니다. #### ping 과 DNS 에 대해 시스템에 따라 ping 은 Reverse lookup 을 실행합니다. (참고로 Reverse lookup(역질의) 이란 IP 를 호스트이름으로 변경하는 것을 뜻합니다.) 따라서 10.10.10.6 으로 ping 을 하였을 경우 이 IP 를 호스트 이름으로 변경하려는 시도를 하게 되고, 결국 최상위 root DNS 서버로부터 결과를 찾아가게 됩니다. 그러나 10.10.10.6 은 사설 IP 이므로 어떤 DNS 서버도 이 IP 에 대한 위임 권한을 갖고 있지 않기 때문에 결국은 timeout 이 될 때까지 대기한 후에야 Reverse lookup 을 포기하고 역질의 없이 해당 IP 로 ping 을 시도하게 되는 것입니다. 말씀하신 57초가 바로 DNS 의 timeout 시간이라 할 수 있습니다. 이를 위해서는 다음과 같이 할 수 있습니다. * -n 옵션 이용 ping -n 10.10.10.6 와 같이 -n 옵션을 이용하면 reverse lookup 을 시행하지 않습니다. * /etc/hosts 이용 /etc/hosts 는 일종의 소형 DNS 라고 생각하시면 됩니다. /etc/hosts 에 해당 IP 를 정의해 주면 역질의를 하지 않습니다. * /etc/named.conf 이용 /etc/named.conf 에 10.10.10.0/8 대역에 대해 위임 권한을 지정해 주면 최상위 root DNS 서버까지 reverse lookup 을 하지 않게 됩니다. #### arp 와 DNS 에 대해 arp -a 를 실행하였을 때의 결과를 보면 쉽게 이해할 수 있습니다. # arp -a ? (192.168.1.246) at 00:D0:B7:9A:25:20 [ether] on eth0 ? (192.168.1.191) at 00:D0:B7:88:E8:0D [ether] on eth0 webserver (192.168.1.45) at 00:01:02:54:C2:E7 [ether] on eth0 ? (192.168.1.102) at <incomplete> on eth0 여기에서 eth0 인터페이스를 통해 192.168.1.246 의 MAC 주소는 00:D0:B7:9A:25:20, 192.168.1.191의 MAC 주소는 00:D0:B7:88:E8:0D 라는 것을 알 수 있습니다. 그런데, 제일 앞 부분이 다른 3줄은 ? 으로 되어 있는데, 세 번째줄만 ? 대신 webserver 라고 되어 있습니다. 이 차이점은 ? 은 각각의 IP 주소에 대해 역질의(reverse lookup)를 했는데, 해당하는 호스트 이름이 존재하지 않아 ? 로 표시된 것이고 192.168.1.45의 경우 역질의한 값이 webserver 로 존재하여 위와 같이 표현된 것입니다. 참고가 되셨기를 바랍니다. 감사합니다. ----- Original Message ----- From: i To: sec-info@cert.certcc.or.kr Sent: Wednesday, July 23, 2003 7:04 PM Subject: ping, arp, dns관련하여 L2스위치에 서버들이 연결되어 있고 sun 서버에서 같은 네트웍의 다른 서버로 ping을 하면 marine# ping -s 10.10.10.6 PING 10.10.10.6: 56 data bytes 64 bytes from 10.10.10.6: icmp_seq=0. time=0. ms 64 bytes from 10.10.10.6: icmp_seq=1. time=55417. ms 64 bytes from 10.10.10.6: icmp_seq=2. time=54417. ms 64 bytes from 10.10.10.6: icmp_seq=3. time=53417. ms 64 bytes from 10.10.10.6: icmp_seq=4. time=52417. ms 64 bytes from 10.10.10.6: icmp_seq=5. time=51417. ms 64 bytes from 10.10.10.6: icmp_seq=6. time=50418. ms 64 bytes from 10.10.10.6: icmp_seq=7. time=49418. ms 64 bytes from 10.10.10.6: icmp_seq=8. time=48418. ms 64 bytes from 10.10.10.6: icmp_seq=9. time=47418. ms 64 bytes from 10.10.10.6: icmp_seq=10. time=46418. ms 64 bytes from 10.10.10.6: icmp_seq=11. time=45418. ms 64 bytes from 10.10.10.6: icmp_seq=12. time=44418. ms 64 bytes from 10.10.10.6: icmp_seq=13. time=43418. ms 64 bytes from 10.10.10.6: icmp_seq=14. time=42418. ms 64 bytes from 10.10.10.6: icmp_seq=15. time=41419. ms 64 bytes from 10.10.10.6: icmp_seq=16. time=40419. ms 64 bytes from 10.10.10.6: icmp_seq=17. time=39419. ms 64 bytes from 10.10.10.6: icmp_seq=18. time=38419. ms 64 bytes from 10.10.10.6: icmp_seq=19. time=37419. ms 64 bytes from 10.10.10.6: icmp_seq=20. time=36419. ms 64 bytes from 10.10.10.6: icmp_seq=21. time=35419. ms 64 bytes from 10.10.10.6: icmp_seq=22. time=34419. ms 64 bytes from 10.10.10.6: icmp_seq=23. time=33419. ms 64 bytes from 10.10.10.6: icmp_seq=24. time=32420. ms 64 bytes from 10.10.10.6: icmp_seq=25. time=31420. ms 64 bytes from 10.10.10.6: icmp_seq=26. time=30420. ms 64 bytes from 10.10.10.6: icmp_seq=27. time=29420. ms 64 bytes from 10.10.10.6: icmp_seq=28. time=28420. ms 64 bytes from 10.10.10.6: icmp_seq=29. time=27420. ms 64 bytes from 10.10.10.6: icmp_seq=30. time=26421. ms 64 bytes from 10.10.10.6: icmp_seq=31. time=25421. ms 64 bytes from 10.10.10.6: icmp_seq=32. time=24421. ms 64 bytes from 10.10.10.6: icmp_seq=33. time=23421. ms 64 bytes from 10.10.10.6: icmp_seq=34. time=22421. ms 64 bytes from 10.10.10.6: icmp_seq=35. time=21421. ms 64 bytes from 10.10.10.6: icmp_seq=36. time=20421. ms 64 bytes from 10.10.10.6: icmp_seq=37. time=19421. ms 64 bytes from 10.10.10.6: icmp_seq=38. time=18421. ms 64 bytes from 10.10.10.6: icmp_seq=39. time=17422. ms 64 bytes from 10.10.10.6: icmp_seq=40. time=16422. ms 64 bytes from 10.10.10.6: icmp_seq=41. time=15422. ms 64 bytes from 10.10.10.6: icmp_seq=42. time=14422. ms 64 bytes from 10.10.10.6: icmp_seq=43. time=13422. ms 64 bytes from 10.10.10.6: icmp_seq=44. time=12422. ms 64 bytes from 10.10.10.6: icmp_seq=45. time=11422. ms 64 bytes from 10.10.10.6: icmp_seq=46. time=10422. ms 64 bytes from 10.10.10.6: icmp_seq=47. time=9422. ms 64 bytes from 10.10.10.6: icmp_seq=48. time=8423. ms 64 bytes from 10.10.10.6: icmp_seq=49. time=7422. ms 64 bytes from 10.10.10.6: icmp_seq=50. time=6423. ms 64 bytes from 10.10.10.6: icmp_seq=51. time=5423. ms 64 bytes from 10.10.10.6: icmp_seq=52. time=4423. ms 64 bytes from 10.10.10.6: icmp_seq=53. time=3423. ms 64 bytes from 10.10.10.6: icmp_seq=54. time=2423. ms 64 bytes from 10.10.10.6: icmp_seq=55. time=1423. ms 64 bytes from 10.10.10.6: icmp_seq=56. time=424. ms 64 bytes from 10.10.10.6: icmp_seq=57. time=0. ms 64 bytes from 10.10.10.6: icmp_seq=58. time=0. ms 64 bytes from 10.10.10.6: icmp_seq=59. time=0. ms 64 bytes from 10.10.10.6: icmp_seq=60. time=0. ms 64 bytes from 10.10.10.6: icmp_seq=61. time=0. ms 64 bytes from 10.10.10.6: icmp_seq=62. time=0. ms 64 bytes from 10.10.10.6: icmp_seq=63. time=0. ms 64 bytes from 10.10.10.6: icmp_seq=64. time=0. ms 64 bytes from 10.10.10.6: icmp_seq=65. time=0. ms 64 bytes from 10.10.10.6: icmp_seq=66. time=0. ms 생략... 그러니까 ping을 하면 계속멈춰있다 57초 정도 되면 갑자기 1- 57 까지 한꺼번에 나오고 그이후로는 잘됩니다... 그래서 /etc/nsswitch.conf 에서 dns 참조부분을 지우면 잘 됩니다. arp -a 를 해도 엄청느리구요....이것도 dns부분을 지우면 잘됩니다 ping이나 arp 도 dns와 상관이 있나요? |
|||||||||
|
|