![경로를 사용하는 라우팅 플래그와 cat /proc/net/route를 사용하는 라우팅 플래그 간의 관계](https://linux55.com/image/68564/%EA%B2%BD%EB%A1%9C%EB%A5%BC%20%EC%82%AC%EC%9A%A9%ED%95%98%EB%8A%94%20%EB%9D%BC%EC%9A%B0%ED%8C%85%20%ED%94%8C%EB%9E%98%EA%B7%B8%EC%99%80%20cat%20%2Fproc%2Fnet%2Froute%EB%A5%BC%20%EC%82%AC%EC%9A%A9%ED%95%98%EB%8A%94%20%EB%9D%BC%EC%9A%B0%ED%8C%85%20%ED%94%8C%EB%9E%98%EA%B7%B8%20%EA%B0%84%EC%9D%98%20%EA%B4%80%EA%B3%84.png)
명령줄에 경로를 입력하면 플래그에 대해 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) */