내 프로덕션 환경에서 tcpdump
UDP 전용 파일을 사용하고 생성하고 있습니다 .pcap
그런 다음 도구를 사용하여 tcprewrite
UDP 패킷의 dst IP 및 MAC 주소를 vm2로 업데이트하고 src IP를 vm1로 업데이트했지만 src MAC 주소는 00:00:00:00:00:00
. 체크섬을 다시 계산합니다.
그런 다음 vm1에서 파일을 만든 tcpreplay
다음 vm2를 확인해보니 vm2가 실제로 UDP 패킷을 수신했지만 src MAC이 네트워크 게이트웨이의 MAC으로 업데이트된 것을 확인했습니다.pcap
tcpdump
추신 : 내가 사용한윤윤, vm1 및 vm2는 다음 위치에 있습니다.동일한서브넷.
|-----| |-----|
| vm1 | ---|gw|----| vm2 |
|-----| |-----|
그런 다음 tcpdump
vm1에서 실행하면 UDP 패킷이 MAC 주소로 전송되므로 00:00:00:00:00:00
라우터(게이트웨이)가 이를 수락하고("잘못"임에도 불구하고) MAC을 업데이트하고 vm2로 전달합니다.
그래서 나에게 IP 주소와 패킷 체크섬이 양호하다면 MAC 주소는 중요하지 않습니다. 그렇지 않으면 라우터가 왜 MAC 주소를 삭제하지 않습니까?
답변1
vm1-gw 연결에 vm2-gw와 다른 IP 네트워크가 있다는 것을 올바르게 이해하고 있습니까?
그렇다면 게이트웨이는 L3 라우터처럼 작동합니다. MAC 주소는 Layer 2에만 바인딩되는 값으로 패킷이 라우터를 통과할 때 항상 손실됩니다. 설명하신 MAC 주소를 변경하는 것은 정상적인 동작입니다. 라우터는 두 인터페이스 모두에서 서로 다른 브로드캐스트 도메인을 갖습니다. MAC 주소는 L2 계층 값(즉, MAC 주소(ARP 제외))이 통신에 충분한 브로드캐스트 도메인 내에서만 일정하게 유지됩니다. ARP 프로토콜은 브로드캐스트 도메인의 노드가 IP 주소를 사용하여 서로의 MAC 주소를 찾는 데 도움이 되며, 노드 간의 연결은 MAC을 통해서만 이루어집니다.
게이트웨이를 방화벽으로 사용하여 서로 다른 IP 네트워크 간의 연결을 필터링하려면 MAC이 아닌 IP 주소를 사용해야 합니다.
다른 목적이 있다면 질문을 명확히 해주세요.