내 서버에 핑을 날려봤다

이승연·2021년 8월 6일
1

Web/Network

목록 보기
8/10

일하다가 너무 심심해서 (코드 짜기 싫어서) 네트워크 공부 좀 했다. ping은 Packet INternet Groper의 약자로 컴퓨터 네트워크 상태를 점검, 진단하는 명령이다. 네트워크 레이어로 타켓 컴퓨터를 향해 패킷을 ICMP echo request하고 타겟 컴퓨터가 ICMP echo reply를 보내준다. 해당 패킷에는 TTL과 송수신 시간 등의 정보가 담겨있고 이를 통해 네트워크 상태를 분석한다.
내 스테이징 서버로 ping 날려봤는데 Request timeout for icmp_seq만 반복해서 나온다. 이게 나오는 이유는 매우 다양하다:

  1. 네트워크 혼잡 : 이걸 막기위해 다양한 방법들이 사용되지만 그럼에도 데이터가 몰리면 혼잡해집니다. 특히 TCP/IP의 경우는 데이터의 전달여부를 확인하기 때문에 패킷도 많을 뿐더러 이런게 쌓이면 쌓일수록 악재가... 결국 혼잡으로 인해 응답이 1초 안에 오지 못하는 것이죠.
  2. ARP 실패 : 네트워크 계층을 보면 MAC이 포함된 계층이 있습니다. 서로 통신하기 위해서는 MAC주소가 필요한데, IP 주소로부터 MAC주소를 알아내는 프로토콜이 ARP입니다. 이게 실패해도 이러한 Timeout 현상이 나옵니다.
  3. 패킷 필터링 : 내가 보낸 패킷 목적지에서 필터링해서 패킷을 버렸습니다. 그럼 응답이 전혀 없겠죠?
  4. 라우팅 에러 : 라우터가 연결을 해줘야하는데 무언가의 문제로 오류가 났습니다. 혹은.. 목적지 주소에서 원래 Host 주소로 라우팅할 줄을 모릅니다... 즉 패킷은 전송되었는데, 응답이 오지 않는 것입니다.
  5. 서버 또는 네트워크가 다운되었더가 도달할 수 없는 경우
  6. 목적지의 방화벽이 ICMP를 거부하는 경우
  7. 시스템관리자에 의해 목적지의 네트워크가 핑 명령어를 차단한 경우
  8. 인터넷/네트워크 연결이 없는 경우
    출처: https://dokkodai.tistory.com/183 [OSHW Alchemist], https://waytocse.tistory.com/11

내 생각엔 아무래도 aws에서 산 인스턴스니까 방화벽 문제인듯 싶어서 ec2에 들어가서 inbound rule에 ICMP를 내 ip에서만 허용해보았다.
그러니까 된다<3

그런데 왜 public dns or ip를 상대로만 되는거지?
안된다는 메시지는 내 컴퓨터에 보관되어있는 건가?
ttl은 왜 48인가? 구글은 108이다 참고로.

0개의 댓글