AWS를 통해 Linux 상자를 설정하고 탐색 중입니다 sysctl
. 실행하면 해당 주소를 참조하는 경로가 이미 머신에 ip route
있음을 알 수 있습니다 .169.X.X.X
질문:
systctl -w net.ipv4.route.flush=1
효과 는 무엇입니까 ?systctl -w net.ipv4.route.flush=1
AWS Linux 인스턴스가 예상대로 작동하는 데 필요한 기본 상자/구성이 엉망이 될까요 ?
답변1
ipv4_sysctl_rtcache_flush()
이는 커널 함수가 인수를 사용하여 호출되도록 합니다1
.
그러나 함수는 네트워크 사양(기술적으로는 a struct net *
)뿐만 아니라 인수로 가져오기를 기대합니다 1
. 따라서 그것은 유효한 주장이 아니기 sysctl -w net.ipv4.route.flush=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 1
1.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>