IP 라우팅이 바이너리로 저장되나요, 아니면 ASCII로 저장되나요?

IP 라우팅이 바이너리로 저장되나요, 아니면 ASCII로 저장되나요?

에 따르면 ip-route(8):

ip Route save는
라우팅 테이블 정보를 stdout에 저장합니다. 이 명령은 출력이 ip Route Restore에 전달하기에 적합한 원시 데이터라는 점을 제외하면 ip Route show와 유사하게 작동합니다.

ip Route Restore는
표준 입력에서 라우팅 테이블 정보를 복원합니다. 이 명령은 ip Route Save에서 반환된 데이터 스트림을 읽어야 합니다. 라우팅 테이블 정보를 저장 당시의 상태로 정확하게 복원하려고 시도하므로 스트림의 정보(예: 장치 인덱스) 변환이 먼저 완료되어야 합니다. 기존 경로는 변경되지 않습니다. 테이블에 이미 존재하는 흐름에 지정된 경로는 무시됩니다.

그런데 사용하면 ip route save > mydump매뉴얼 페이지와 달리 바이너리가 반환되는데, 이것이 버그인가요? 아니면 제가 잘못 사용하고 있는 걸까요?

답변1

바이너리입니다. 명확한 표시는 오류 메시지와 함께 바이너리 데이터를 표준 출력으로 덤프하는 것을 허용하지 않는다는 것입니다.

# ip route save
Not sending binary stream to stdout
Dump terminated

답변2

RT를 덤프하려면 ip route savestdout 및 stderr 제공을 고려하십시오. 따라서 다음을 사용해야 합니다.

ip route save 1> dump

ip 명령을 사용하지 않는 경우 1>stderr 및 stdout을 덤프로 리디렉션합니다.
참고: 덤프에 기본 게이트웨이가 있는 경우 해당 네트워크를 수동으로 추가하세요. 예를 들면 다음과 같습니다.

ip route add 192.168.1.0/24 dev eth0

그 다음에:

ip route restore < dump

그런데 왜 손을 사용합니까? 덤프의 첫 번째 줄이 dafualt gw이고 다음 오류가 발생하기 때문입니다.

RTNETLINK answers: Network is unreachable

답변3

형식 ip route save은 바이너리이지만 Linux에서는 다음과 같습니다.rtnetlink(7). 이 파일을 읽고, 쓰고, 조작할 수 있는 도구가 많이 있으며, 그 중 하나가 Python입니다.파이루트2.

관련 정보