라우팅 테이블은 나가는 패킷(전달하지 않음)에만 사용해야 합니까?

라우팅 테이블은 나가는 패킷(전달하지 않음)에만 사용해야 합니까?

장치 A에서 장치 B를 통해 장치 C로 패킷을 전달하려고 합니다. 내가 해야 할 일은 장치 A에서 다음과 같이 말하는 것뿐입니다. C의 패킷은 B로 전송되어야 하며 B는 C의 위치를 ​​알고 있으므로 모든 것이 작동해야 합니다.

그러나 이것은 작동하지 않습니다. 확인해보니 net.ipv4.ip_forward=1설정 /proc/sys/net/ipv4/ip_forward = 1이 완료되었습니다 sysctl -w net.ipv4.conf.all.rp_filter=0. 만일의 경우를 대비하여 특정 장치에도 동일한 값을 설정했습니다.

예를 들어:

장치 A = 192.168.10.1/24
장치 B eth0 = 192.168.10.2/24

장치 B eth1 = 192.168.11.1/24
장치 C = 192.168.11.2/24

이제 모든 장치에는 필요한 기본 서브넷에 대한 경로가 있습니다(예: 장치 B:).
192.168.10.0/24 dev eth0 proto kernel scope link src 192.168.10.2
192.168.11.0/24 dev eth1 proto kernel scope link src 192.168.11.1

이론적으로 내가 해야 할 일은 장치 A에서 다음과 같이 말하는 것뿐입니다.
sudo ip route add 192.168.11.0/24 via 192.168.10.2

하지만 작동하지 않습니다.
이제 가장 이상한 점은 A Yes에서 192.168.11.1로 ping을 보낼 수 있다는 것입니다. 하지만 192.168.11.2는 아니죠? 서브넷의 장치에는 도달할 수 있지만 서브넷의 다른 주소에는 도달할 수 없는 것이 어떻게 가능합니까?

들어오는 패킷에 대해 라우팅 테이블이 작동하지 않습니까?

https://wiki.nftables.org/wiki-nftables/index.php/Netfilter_hooks 이 다이어그램에서는 입력 체인 전과 출력 체인 전의 두 가지 라우팅 결정을 보여줍니다. 라우팅 테이블(ip Route 명령으로 표시됨)은 출력 체인 이전의 결정에만 적용되는 것 같습니다. 장치 B에서 192.168.11.2를 ping하면 찾을 수 있기 때문입니다.

내 주요 질문은 이것이 예상되는 것입니까?

답변1

보드의 새 이미지에 설정을 복사하면 예상대로 작동합니다. net.ipv4.ip_forward=1이지만 패킷이 전달되지 않습니다.

아직 정확한 이유는 알 수 없으나, 사용 중인 개발보드에서는 이미지가 그다지 안정적이지 않습니다.

관련 정보