정책 라우팅을 하려면 라우팅 테이블을 에 추가해야 하는데 /etc/iproute2/rt_tables
어떻게 읽을 수 있는지 궁금합니다. 커널이 읽나요, 아니면 iproute2 사용자 공간 도구가 읽나요?
답변1
이것은 iproute2
명령줄에 제공된 사용자에게 친숙한 이름을 커널에서 사용하는 정수 값으로 변환하는 유틸리티에서 사용하는 플랫 파일입니다. "이 이름은 이 정수입니다"라는 일관된 매핑을 유지하기 위해
답변2
이는 커널에 의해 직접 실행되지 않고 사용자 공간 도구 iproute2에 의해 실행됩니다. 그런 다음 사용자 공간 도구는 시스템 호출 인터페이스를 통해 커널과 상호 작용합니다.
Route 명령의 소스 코드를 살펴보는 것이 좋은 제안일 수 있습니다. 실제 커널 경로 업데이트에 대한 소스 코드는 src/linux/kernel_routes.c에서 찾을 수 있습니다.
헤더 파일 bit/ioctls.h는 커널 라우팅을 작동하는 데 필요한 ioctl 명령을 선언하고, net/route.h 헤더 파일은 라우팅 정보를 커널에 전달하는 데 필요한 데이터 구조를 지정합니다.