이야기:

이야기:

전체 서브넷에 대해 ARP 항목( )을 추가하고 싶습니다 10.50.0.0/16.

나는 시도했다:arp -v -i p4p1 -s 10.50.0.0 MAC_OF_P4P2 netmask 255.255.0.0 pub

그러나 명령은 다음을 반환합니다.

arp: SIOCSARP()
SIOCSARP: Invalid argument

하나씩 추가했는데 문제가 없었습니다.arp -v -i p4p1 -s 10.50.0.1 MAC_OF_P4P2

내가 원하는 것을 할 수 있는 방법이 있나요?

그것은 다음과 같습니다:arp -v -i p4p1 -s 10.50.0.0/16 MAC_OF_P4P2

이야기:

eth0, p4p1및 3개의 인터페이스가 있습니다 p4p2.

p2p1장치를 통해 연결 되지만 p2p2말하자면 전선과 같습니다.

A.B.x.x네트워크에 에 연결된 여러 서버가 있습니다 Eth0.

액세스하려는 시스템에서 A.B.x.x:

  1. 다음을 통해 직접 Eth0:ping A.B.X.X 괜찮아요, 자동으로 실행됩니다

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

  1. p2p1-> external device/wire ->를 통해 p2p2다음으로 리디렉션합니다 Eth0.ping 10.50.X.X

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

10.50.0.0/16이 경우 인터페이스와 동일 A.B.0.0/16하지만 인터페이스를 통해 가상 IP를 생성해야 합니다 p4p*.

패킷은 IP 소스/대상을 유지해야 하며 10.50.x.x도착할 때만 eth0IP가 로 변환됩니다 A.B.X.X.

단계별로 해봅시다.

  1. 10.50.0.0/16내 인터페이스로 라우팅 합니다 p4p1.ip route add 10.50.0.0/16 dev p2p1

=> p4p1은 모른다Who has 10.50.0.152? Tell 10.0.0.1

10.50.0.0/16에 연결할 ARP 항목을 설정해야 합니다 p4p2.

답변1

네트워크 프록시 arp 항목(0xffffffff와 같지 않은 넷마스크)에 대한 지원이 Linux 2.2에서 제거되었습니다. 이는 다른 인터페이스에서 연결할 수 있는 모든 호스트에 대해 커널이 설정한 자동 프록시 arp 설정으로 대체됩니다(인터페이스에 대해 전달 및 프록시 arp가 활성화된 경우).

인용하다: https://manpages.courier-mta.org/htmlman7/arp.7.html

어쩌면 설정을 시도해 볼 수도 있습니다.

echo 1 > /proc/sys/net/ipv4/conf/"interface"/proxy_arp

인터페이스는 인터페이스 서브넷과 연결된 라우팅 테이블을 확인하고 arp 프록시 패킷을 보냅니다.

답변2

당신이 해야 할 일은 경로를 설정하는 것뿐입니다. 귀하의 질문에는 이 서브넷이 존재하는지 여부가 나와 있지 않습니다 10.50.0.0/16.존재하다대상 장치 또는뒤에대상 장치이지만 그것은 중요하지 않습니다. 귀하의 기계에 관한 한 그것들은 정확히 동일합니다.

라우팅 테이블에 경로를 추가하면 대상 서브넷의 모든 트래픽이 지정된 IP를 가진 장치의 MAC 주소로 라우팅된다는 의미입니다. 예를 들어 ip route add 10.50.0.0/16 via 1.2.3.4, 시스템이 내부 컴퓨터와 통신해야 하는 경우 10.50.0.0/16MAC 주소를 찾아 1.2.3.4해당 MAC 주소로 트래픽을 보냅니다.나가는 패킷에는 IP 주소가 없습니다.1.2.3.4.

따라서 귀하의 솔루션은 간단합니다.

ip route add 10.50.0.0/16 via 1.2.3.4

^ 1.2.3.4해당 MAC 주소를 가진 장치의 IP는 어디에 있습니까 00:XX:XX:XX:XX:XX? 동일한 서브넷에 여러 인터페이스가 있는 경우(나쁜 생각일 수 있지만 항상 그런 것은 아님) 발신 인터페이스를 지정할 수 있습니다.

ip route add 10.50.0.0/16 via 1.2.3.4 dev p2p1

관련 정보