2CPU > QnA > 글쓰기
절전모드에 들어간 직후에는 IP에 대한 syn 패킷에 의해서 잠자기가 해결 됩니다만.
일정시간이 지나서 클라이언트와 공유기의 arp 태이블에서 nas의 IP가 사라지게 되면 깨어 나지 않게 됩니다.
억지로 arp 패킷에도 반응해도 잠이 깨도록 설정할 수도 있지만 이렇게 하면 시도 때도 없이 틴爭ぜ곤란하더군요.
물론 좀더 신형 NIC를 구입하면 간단하게 해결될 문재입니다만.
원채장난감을 대하는 느낌으로 nas에 대한 이것저것 설정을 바꾸거나 하기 때문에 드라이버 지원 범위가 널널한 intel nic를 유지하고 싶고.(최신 윈도우즈에서는 intel 드라이버는 사용할 수 없긴 합니다만. 어지간한 os에서는 사용이 가능해서 큰 걱정이 없더라고요.)
인텔에 한정하면 저렴하게 구할 수 있는 nic들은 아주 구형이라 거의 arp offload를 기대 할 수 없더라고요.
그래서 겸사겸사 싱글 보드 컴퓨터를 하나 구입해서 오드로이드를 올렸습니다.
항시 대기 해야 하고 성능 필요 없는 서버들을 옮겨서 이원화 하는 김에 이 ARP offload 지원 불가 문제도 해결 해 보려고요.
일단 제가 파악한 상황을 정리하면..
-arp offload가 정상적으로 작동하는 컴퓨터가 잠을 깰때.
1.클라이언트가 서버의 IP를 알고 서비스를 요청하려고 함.
2.클라이언트는 서버의 MAC을 모르므로 브로드케스트로 arp 요청을 때림
3. 서버는 잠자는 채로 NIC가 arp에 대답함.
4. 클라이언트는 arp를 받아서 서버의 mac주소를 획득함.
5. 클라이언트는 획득한 mac주소로 syn ipv4 패킷을 보넴
6. 자신의 아이피에 대한 syn 패킷을 받은 서버의 nic가 서버를 틸/p>
-arp offload를 지원하지 않는 경우
1.클라이언트가 서버의 IP를 알고 서비스를 요청하려고 함.
2.클라이언트는 서버의 MAC을 모르므로 브로드케스트로 arp 요청을 때림
3.서버는 잠자는 상태.. NIC도 잠자는 상태.
4.클라이언트는 영원히 서버의 MAC을 모르고 서버는 영원히 잠자는 상태.
이렇게 파악 했습니다.
그래서 싱글보드 컴퓨터를 통해서 대신 ARP에 답변을 하도록 만들어 보았습니다.
이런 구조인데요.
cmd에서 arp명령어로 확인했더니. nas가 잠들어 있는 상태에서도 nas의 MAC이 arp 태이블에 등록 되는것을 확인할 수 있엇습니다.
MAC을 확인 할 수 없었을 때는 송신하지 못했던 패킷을 데스크탑이 쏴 보네는것도 와이어 샤크로 확인했고요.. 그런데 정작 nas는 깨어나지 않습니다.
nas가 잠든 직후에 보넨 동일한 내용의 패킷이 nas 잠자기에서 깨우는데 어서 같은 깨워지지가 않는걸까요?
데스크탑에서 쏴 보네기는 하지만 nas의 nic에는 닫지 않는 건가요?
그렇다면 어떻게 해결 해 줄 수 있을까요?
해당 MAC에 대한 포트를 기억하고 있어야 하는데 그러지 못한 경우는 공유기에서는 해당 MAC을 대상으로 하는 패킷을 모든 포트로 뿌린다고 들엇습니다.
odroid가 ARP에 대한 답변으로 NAS의 MAC을 알려주는 순간 패킷을 분석해서 odroid로 가는 포트 이외의 포트로는 해당 패킷이 전달되지 않는 상황이 벌어지는것 인가요?
네트워크 관련 한글 쓰는 다른 커뮤니티 먼저 시도해 봐야겠어요..