로컬 네트워크(또는 외부 네트워크)의 다른 컴퓨터에서는 웹 페이지를 보는 데 문제가 없는데 내 MacBook에서는 Raspberry Pi가 제공하는 웹 페이지에 액세스할 수 없는 이유를 알아내려고 합니다. 그래서 Mac과 Pi 모두에 tcpdump를 설정하고 양쪽에서 시도를 포착했습니다.
내 첫 번째 질문은 다음과 같습니다. (두 부분으로)
A) 나가는 패킷이 tcpdump에 나타나면 이런 일이 발생합니까?보장하다패킷이 실제로 전송되었습니까? (즉, 탭 포인트의 다운스트림에 패킷 전송을 방해할 수 있는 것이 있습니까?)
B) 예상되는 수신 패킷이 tcpdump에 나타나지 않으면 이런 일이 발생합니까?보장하다이 패킷을 받지 못하셨나요? (즉, tcpdump가 보기 전에 수신된 패킷을 삭제할 수 있는 탭 포인트의 업스트림이 있습니까?)
이러한 질문은 tcpdump 로그를 관찰하면서 나온 것입니다.
- Mac은 Pi에 짧은 패킷을 보냅니다.
- Pi는 패킷을 수신하고 짧은 패킷을 Mac으로 다시 보냅니다.
- Mac은 패킷을 수신하고 두 번째 패킷에 브라우저 정보 등을 포함하는 두 개의 패킷을 보냅니다.
- Pi는 이 두 패킷을 수신하지 못했습니다.
위의 가정 A와 B가 모두 정확하다면 이는 내 라우터가 어떤 이유로 Mac 패킷을 내 WinXP 시스템의 패킷과 다르게 처리하고 있음을 의미합니다. (외부적으로는 패킷이 내부 네트워크의 어느 시스템에 속해 있는지 알 수 있는 방법이 없기 때문에 내 라우터에 있어야 한다고 가정합니다. 따라서 다른 시스템을 다르게 처리할 방법이 없습니다.)
그렇다면 제가 가정한 모든 것이 정확하다면 무엇이 잘못되었는지, 아니면 다음에 무엇을 살펴봐야 할까요?
답변1
A) 나가는 패킷이 tcpdump에 나타나면 해당 패킷이 실제로 전송되었다는 보장이 있습니까? (즉, 탭 포인트의 다운스트림에 패킷 전송을 방해할 수 있는 것이 있습니까?)
이는 패킷이 네트워크 인터페이스에서 흘러나오지만 그 이상은 아니라는 의미입니다. 패킷이 목적지에 도달했는지 확인하려면 tcpdump
수신 측에서 패킷을 실행해야 합니다.
방화벽이 아마도 범인일 것입니다(나가는 것과 들어오는 것 모두).
B) 예상되는 수신 패킷이 tcpdump에 나타나지 않으면 패킷이 수신되지 않은 것이 보장됩니까? (즉, tcpdump가 보기 전에 수신된 패킷을 삭제할 수 있는 탭 포인트의 업스트림이 있습니까?)
예, tcpdump
올바른 인터페이스를 보고 있는데 외부에서 전송된 것으로 확인된 패킷이 표시되지 않으면 패킷이 전송되지 않았을 가능성이 있습니다.
기본 경로
기본 경로가 올바르게 지정되지 않으면 패킷이 올바른 게이트웨이 네트워크 장치에 도달하여 해당 특정 서브넷의 장치로 전달되지 않습니다.
Mac의 기본 라우팅이 올바르게 설정되어 있는지 확인하겠습니다.
예
$ route -n
Kernel IP routing table
Destination Gateway Genmask Flags Metric Ref Use Iface
0.0.0.0 192.168.1.254 0.0.0.0 UG 0 0 0 wlp3s0
192.168.1.0 0.0.0.0 255.255.255.0 U 9 0 0 wlp3s0
노트:위 내용은 내 Fedora 19 시스템에서 가져온 것이지만 Mac에도 비슷한 기능이 있을 것입니다. 네트워크의 기본 라우팅이 올바르게 설정되어 있는지 확인하세요.
방화벽
또한 방해가 되는 방화벽이 없는지 확인하고 싶습니다. Pi 장치에서는 iptables 관련 서비스를 모두 끌 수 있어야 합니다.
$ /etc/init.d/iptables stop