Linux 3.6에서는 ipv4 경로 캐시(범죄).
변경 로그설명하다:
IPv4 경로 캐시를 삭제합니다. 이제 FIB 트리를 직접 살펴보고 거기에 캐시된 사전 구축된 경로를 사용하세요.
이에 따르면질문, 경로 캐시 항목은 이제 다음 위치에 저장됩니다."경로 예외" 구조는 라우팅 항목의 일부입니다.
내 3.16(Debian Jessie) 표준 배포 커널에서는 예외가 표시되지 않으며 ip route show cache
아무것도 반환되지 않습니다. 라우팅 테이블에는 기본 경로가 하나만 있습니다.
~#ip 라우팅 표시
기본값은 10.11.2.30 dev eth0
10.11.0.0/16 dev eth0 프로토타입 커널 범위 link src 10.11.1.76
Q1: 커널에 알려진 라우팅 예외를 모두 나열하는 방법은 무엇입니까?
Q2: 이러한 예외를 선택적으로 제거하는 방법은 무엇입니까?
Q3: 호스트에 ping을 시도할 때 커널이 올바른 기본 게이트웨이를 선택하지 않는 이유는 무엇입니까?
ping 10.30.104.23
PING 10.30.104.23 (10.30.104.23) 56(84)바이트의 데이터입니다.
10.11.1.11 icmp_seq=1부터 대상 프로토콜에 도달할 수 없습니다.
Q3에 대한 부록: ICMP 리디렉션으로 인해 이(현재는 사용되지 않음) 경로가 (어딘가에) 저장되었을 수 있다고 생각됩니다. 그러나 ip route show cache
경로 예외가 나열되지 않고 기본 경로가 달리 명시되어 있는 경우 이 정보는 어디에 저장됩니까?
답변1
글쎄요, 많은 조사 끝에 답을 얻은 것 같습니다.
A1: 3.6부터는 전체 경로 캐시를 나열하는 것이 더 이상 불가능합니다. 특정 IP가 사용하는 루트 캐시를 볼 수 있지만, ip route get to A.B.C.D
모두 나열할 수는 없습니다.
A2: ip route flush cache to A.B.C.D
라우팅 캐시에서 단일 항목을 삭제합니다.
A3: 아, 알 수도 있었죠. 먼저 FIB(Forwarding Information Base)라고 불리는 라우팅 캐시를 참조하고뒤쪽에라우팅 테이블을 살펴봅니다.
바라보다이 PDF자세한 다이어그램을 보려면.