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)。このファイルを読み、書き、操作するためのツールがたくさんあり、そのうちの1つがPythonです。パイルート2

関連情報