dnsmasq가 관리하는 단일 스위치 이더넷 네트워크의 노드는 직접 통신합니까, 아니면 라우터를 통해 통신합니까?

dnsmasq가 관리하는 단일 스위치 이더넷 네트워크의 노드는 직접 통신합니까, 아니면 라우터를 통해 통신합니까?

이 질문에는 다양한 변형이 있지만 내 정확한 상황이 질문되었는지 확신할 수 없습니다.

다음과 같은 간단한 이더넷 네트워크를 설정하고 있습니다.

여기에 이미지 설명을 입력하세요

노드 0("rpi1")에서 dnsmasq를 DNS 및 DHCP 서버로 실행하고 있습니다. 다음은 해당 섹션입니다 /etc/dnsmasq.conf(MAC 주소 세부 정보 제외).

# Assign static IPs to cluster members
# Format = MAC:hostname:IP
dhcp-host=ZZ:YY:XX:WW:VV:UU,rpi1,10.0.0.1 # Node 0
dhcp-host=ZZ:YY:XX:WW:VV:UU,rpi2,10.0.0.2 # Node 1
dhcp-host=ZZ:YY:XX:WW:VV:UU,rpi3,10.0.0.3 # Node 2
dhcp-host=ZZ:YY:XX:WW:VV:UU,rpi4,10.0.0.4 # Node 3

DNS와 DHCP 측면이 모두 작동하고 있습니다. 각 노드에는 의도한 IP 주소가 할당되며 예를 들어 (-> ) 10.0.0.X를 실행하여 모든 노드의 모든 도메인을 확인할 수 있습니다 . 예를 들어, rpi2 내부에 있으면 을 사용하여 rpi3에 들어갈 수 있으며 예를 들어 또는 와 0% 패킷 손실을 얻을 수 있습니다.dig rpi4... 10.0.0.4ssh rpi3ping rpi4ping 10.0.0.4

하지만 나에게 명확하지 않은 것은 스위치를 통해 직접 노드 간 통신을 하는지 아니면 rpi1(dnsmasq를 운영하고 라우터 서비스를 제공하는)을 통해 통신하는지입니다.

노드가 직접 통신하는 경우 스위치를 통해 서로 직접 이동하는 프레임을 내보내려면 서로의 MAC 주소를 알아야 한다고 가정합니다. 그렇다면 요약하면 내 질문은 다음과 같습니다.

  1. 노드는 어느 시점에서 다른 노드의 MAC 주소를 학습합니까?
  2. 그리고 rpi2의 rpi3과 같은 MAC 주소를 검사하여 서로에 대해 학습했는지 확인하려면 어떻게 해야 합니까?

미리 감사드립니다!

답변1

노드는 어느 시점에서 다른 노드의 MAC 주소를 학습합니까?

먼저 DNS 서버에서 다른 노드의 IP 주소에 대해 문의합니다. 그 후, 그들은 모든 노드에 'arp' 요청을 보내고, IP ​​주소를 가진 노드는 MAC 주소로 'arp' 요청에 응답합니다.

그리고 rpi2의 rpi3과 같은 MAC 주소를 검사하여 서로에 대해 학습했는지 확인하려면 어떻게 해야 합니까?

'arp -a'는 일반적으로 arp 테이블을 제공하며 항목을 검사하여 서로의 MAC 주소를 학습했는지 확인할 수 있습니다.

관련 정보