커널 라우팅 예외 항목(FIB) 표시

커널 라우팅 예외 항목(FIB) 표시

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자세한 다이어그램을 보려면.

답변2

하하 언데드. FIB가 라우팅 테이블의 새 항목 라우팅을 방해하는 문제가 있어서 글을 게시하게 되었습니다. 모두 나열하는 것은 불가능할 수도 있습니다모두경로...하지만 괜찮은 검색을 수행할 수 있습니다. IP 경로 획득 명령

실행 중인 FIB 경로가 있는지 표시됩니다. 또한 다음을 사용할 수 있습니다. IP 경로 일치 명령

내 인생에서는 전체 FIB를 표시하거나 어떤 방식으로든 조작하는 방법을 찾을 수 없습니다. 인터페이스로 다시 돌아오면 사라질 것이라고 확신하지만 약간 고통스럽고 모든 사용 사례와 일치하지 않을 수 있습니다.

관련 정보