SSH를 통해 IPv4를 rpi2에서 OpenWRT로 변경한 다음 호스트 시스템에서 dhclient를 실행했습니다. 이제 하나의 NIC에 두 개의 IPv4가 있으며 작동합니다! 어떻게?

SSH를 통해 IPv4를 rpi2에서 OpenWRT로 변경한 다음 호스트 시스템에서 dhclient를 실행했습니다. 이제 하나의 NIC에 두 개의 IPv4가 있으며 작동합니다! 어떻게?

제목에서 언급했듯이 죄송합니다. 구체적인 제목을 원했지만 구체적이고 짧게 표현할 수 없었습니다. 그 동안 다음을 수행했습니다.

  1. Raspberry Pi에서 테스트하려면 OpenWRT 플래시 SD 카드를 사용하세요.
  2. OpenWRT는 dhcp 클라이언트를 비활성화하고 내 네트워크의 IPv4 모드에 해당하지 않는 이미지에 고정 IP를 배치했습니다.
  3. 그래서 192.168.1.1에 연결하기 위해 호스트 IPv4를 192.168.1.2로 변경했습니다. 작동합니다.
  4. 로그아웃한 후 호스트 컴퓨터에서 dhclient를 실행했습니다.

이제 이전처럼 모든 네트워크 장치에 액세스할 수 있으며 위에서 설명한 OpenWRT 시스템에도 계속 연결할 수 있습니다. 내 호스트 시스템에는 네트워크 카드가 하나만 있습니다. 그럼 이것이 어떻게 작동하는지 궁금합니다.

1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
    inet 127.0.0.1/8 scope host lo
       valid_lft forever preferred_lft forever
    inet6 ::1/128 scope host 
       valid_lft forever preferred_lft forever
2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP group default qlen 1000
    link/ether *somevalue* brd ff:ff:ff:ff:ff:ff
    inet 192.168.1.2/24 brd 192.168.1.255 scope global eth0
       valid_lft forever preferred_lft forever
    inet 10.88.88.80/24 brd 10.88.88.255 scope global dynamic eth0
       valid_lft 863229sec preferred_lft 863229sec
    inet6 XXX/64 scope global dynamic mngtmpaddr 
       valid_lft forever preferred_lft forever
    inet6 XXX/64 scope global dynamic mngtmpaddr 
       valid_lft 7013sec preferred_lft 1613sec
    inet6 XXX/64 scope link 
       valid_lft forever preferred_lft forever

답변1

OS간단히 말해서, 이는 동일한 인터페이스에 여러 인터페이스를 할당하는 기능 IPv4 addresses과 라우팅 테이블을 사용하여 달성됩니다 ARP.주소 확인 프로토콜.

노드( A)가 다른 노드( )와 통신하려고 할 때 처음 에는 목적지까지의 최단 경로를 찾기 위해 라우팅 테이블을 참조한다는 B것만 알려져 있습니다 (라운드 로빈 전략과 같은 더 복잡한 경우가 있을 수 있지만, 단순화를 위해 여기서는 최단 경로 정책을 가정합니다. 이 시점에서도 두 가지 사항이 알려져 있습니다 . a) 어떤 소스 주소가 사용되는지, b) 어떤 게이트웨이 장치( )가 교환에 참여하고 있는지입니다.IPv4 addressB
AG

그런 다음 캐시 테이블에서 A존재하는 주소 항목을 확인합니다 B. 게이트웨이를 사용하려면 여기와 모든 후속 요청에서 주소를 확인하고 사용하세요.IPARPAG

캐시된 항목이 있는 경우 보낼 주소가 해당 항목에서 A선택됩니다 .MACIP packet

캐시된 정보가 없으면 A브로드캐스트 Address Resolution Request하여 IP 주소 대 주소 매핑을 LAN segment아는 사람이 있는지 알아보세요 .BGMAC

06:14:26.622107 7a:df:9c:b5:9a:ef > ff:ff:ff:ff:ff:ff, ethertype ARP (0x0806), length 42: Request who-has 192.168.8.145 tell 192.168.8.160, length 28
06:14:26.665609 ac:ed:5c:76:01:38 > 7a:df:9c:b5:9a:ef, ethertype ARP (0x0806), length 60: Reply 192.168.8.145 is-at ac:ed:5c:76:01:38, length 46

192.168.8.160이는 호스트가 확인을 시도하는 MAC주소 입니다 192.168.8.145. 요청된 정보가 있는 모든 노드는 응답을 다시 보냅니다. 요청은 브로드캐스트 MAC주소( FF:FF:FF:FF:FF:FF)를 대상 주소로 사용하여 전송되고, 응답은 MAC요청자의 유니캐스트 주소를 사용하여 전송됩니다. 이는 이 네트워크 세그먼트에 연결된 모든 노드의 IP 스택이 불필요한 정보로 가득 차는 것을 방지하기 위한 것입니다.

이제 노드는 A응답을 수신하고 ARP해당 항목으로 캐시를 채우므로 다음에 응답을 보내야 할 때 B네트워크에 다시 쿼리할 필요가 없습니다 .AIP packetB

이러한 방식으로 노드는 IPv4 subnets동일한 인터페이스를 사용하여 동일한 노드에 물리적으로 연결된 다른 노드와 통신하는 기능을 유지합니다.LAN segment

노드 는 이더넷 인터페이스에 추가 IP 주소가 할당되었음을 192.168.1.1인식하지 못합니다 .192.168.1.2

관련 정보