net.ipv4.route.flush 실행의 위험은 무엇입니까?

net.ipv4.route.flush 실행의 위험은 무엇입니까?

AWS를 통해 Linux 상자를 설정하고 탐색 중입니다 sysctl. 실행하면 해당 주소를 참조하는 경로가 이미 머신에 ip route있음을 알 수 있습니다 .169.X.X.X
질문:

  1. systctl -w net.ipv4.route.flush=1효과 는 무엇입니까 ?
  2. systctl -w net.ipv4.route.flush=1AWS Linux 인스턴스가 예상대로 작동하는 데 필요한 기본 상자/구성이 엉망이 될까요 ?

답변1

  1. ipv4_sysctl_rtcache_flush()이는 커널 함수가 인수를 사용하여 호출되도록 합니다 1.

그러나 함수는 네트워크 사양(기술적으로는 a struct net *)뿐만 아니라 인수로 가져오기를 기대합니다 1. 따라서 그것은 유효한 주장이 아니기 sysctl -w net.ipv4.route.flush=1때문에 아무것도 하지 않을 가능성이 높습니다.1

  1. 시스템이 동적으로 생성된 경로(예: gated라우팅 데몬 또는 유사한 실행)에 의존하는 경우 경로 캐시를 성공적으로 지우면 네트워크 트래픽이 일시적으로 중단될 수 있습니다. 그러나 위에서 말했듯이 이것은 유효한 구문이 아닌 것 같으므로 net.ipv4.route.flush아마도 아무 일도 하지 않을 것입니다.

sysctl net.ipv4.route.flush은 분명히 ip route flush사용됩니다(또는 그 이후로 더 나은 인터페이스가 개발되면 어느 시점에 사용될 것입니다). 매뉴얼 ip-route(8)페이지에는 다음과 같이 나와 있습니다.

ip route flush

라우팅 테이블 새로 고침

이 명령은 특정 기준에 따라 선택된 경로를 새로 고칩니다.

이러한 매개변수의 구문과 의미는 ip Route show의 구문과 의미와 동일하지만 라우팅 테이블이 나열되는 대신 지워집니다. 유일한 차이점은 기본 동작입니다. show모든 IP 기본 라우팅 테이블을 덤프하지만 flush도움말 페이지를 인쇄합니다.

테스트 VM의 간단한 실험에 따르면 ip route flush 11.0.0.0/32에 대한 경로만 기본 라우팅 테이블에서 제거되지만 sysctl -w net.ipv4.route.flush=1그렇게 되지는 않습니다. 따라서 분명히 sysctl에는 효과가 있으려면 사소하지 않은 구문이 필요합니다. 커널 소스코드를 보면 매개변수로 자료구조가 필요한 것 같은데, 그런 net.ipv4.route.flush게 없다면 ip route.


활성 네트워크 인터페이스에 경로가 표시되면 169.254.0.0/16해당 네트워크 인터페이스는 구성 요구 사항 없이 링크-로컬 연결을 제공하는 Bonjour/Zeroconf 시스템의 일부입니다. 이를 제거하려면 NOZEROCONF=yes각 인터페이스 파일의 설정을 통해 RedHat 스타일 네트워크 구성 파일을 얻을 수 있습니다. 다른 배포판에는 Zeroconf 구성을 선택 해제하는 다른 방법이 있을 수 있습니다./etc/sysconfig/network/etc/sysconfig/network-scripts/ifcfg-<interface name>

관련 정보