경로를 사용하는 라우팅 플래그와 cat /proc/net/route를 사용하는 라우팅 플래그 간의 관계

경로를 사용하는 라우팅 플래그와 cat /proc/net/route를 사용하는 라우팅 플래그 간의 관계

명령줄에 경로를 입력하면 플래그에 대해 U, UG 등이 인쇄됩니다. 경로 파일에는 플래그를 숫자 0001, 0003 등으로 저장합니다. /proc/net/ 파일의 플래그 번호는 어떻습니까? 경로가 인쇄된 표지판을 사용하여 경로를 문자로 변환합니까?

답변1

네트워크 도구의 소스는 다음과 같습니다.여기. lib/inet_gr.c의 플래그를 디코딩합니다.

    /* Decode the flags. */
    flags[0] = '\0';
    if (iflags & RTF_UP)
        strcat(flags, "U");
    if (iflags & RTF_GATEWAY)
        strcat(flags, "G");
    ...

플래그는 lib/net-support.h에 정의되어 있습니다. 예:

    #define RTF_UP          0x0001          /* route usable                 */
    #define RTF_GATEWAY     0x0002          /* destination is a gateway     */
    #define RTF_HOST        0x0004          /* host entry (net otherwise)   */

관련 정보