ICMP 리디렉션: icmpush로 테스트하는 방법

ICMP 리디렉션: icmpush로 테스트하는 방법

ICMP 리디렉션이 수신되면 Linux 시스템에서 라우팅 테이블이 어떻게 변경되는지 확인하고 싶습니다. 그것을 위해 나는 사용한다

icmpush -v red -sp current-gateway -gw new-gateway -dest google.com -c host -prot tcp my-eth1-ip-address

(성공을 반환함) 그러나 결과는

route -n 

동일하게 유지됩니다. 물론 출력 결과를 확인했습니다.

cat /proc/sys/net/ipv4/conf/eth1/accept_redirects

이는 1입니다. 이것은 커널의 마지막 안정 버전이 있고 방화벽이 설치되지 않은 Ubuntu 12 시스템입니다.

그렇다면 질문은 무엇입니까? 무엇이 잘못될 수 있습니까?

답변1

에 따르면문서/네트워킹/ip-sysctl.txt, 기본적으로 리디렉션은 라우팅 테이블에 이미 나열된 게이트웨이에 대해서만 허용됩니다.

secure_redirects - 부울
    게이트웨이에 대해서만 ICMP 리디렉션 메시지를 허용합니다.
    기본 게이트웨이 목록에 나열됩니다.
    다음 중 하나 이상이면 인터페이스에 대한 secure_redirects가 활성화됩니다.
    conf/{all,interface}/secure_redirects가 TRUE로 설정되었습니다.
    그렇지 않으면 비활성화됩니다
    기본값은 참

답변2

가정: 호출은 icmpush외부 인터페이스가 아니라 eth1로컬 호스트 인터페이스를 사용하므로 lo커널이 게이트웨이로부터의 올바른 리디렉션임을 인식하지 못합니다. 게다가 매우 오래된 버전의 Linux 커널에서는 이러한 경로가 route -n. 앞서 언급했듯이 의 응답은 route -nC임시 리디렉션 경로도 포함하는 올바른 방법일 수 있습니다.

@grawity, 다른 패킷에 대한 응답으로 전송된 리디렉션 수락에 대해: 어딘가에서 읽었습니까? 왜냐면 내가 거기에 정말 관심이 있을 테니까.

관련 정보