Linuxルーティングテーブルを操作するために使用できるAPIはありますか?ソケットをリッスンし、それに応じてルーティングテーブルを変更するプログラムを作成したいのですが、単純なコードですが、APIが必要です。
Netlink
を使用できます。 wiki から、
Netlinkは、Linuxカーネルスペースとユーザースペースプロセス間でさまざまなネットワーク情報を転送するために設計され、使用されています。 iproute2などのネットワークユーティリティは、Netlinkを使用してユーザースペースからLinuxカーネルと通信します。 Netlinkは、ユーザースペースプロセス用の標準のソケットベースのインターフェイスと、カーネルモジュール用の内部カーネルAPIで構成されています。これは、ioctlの後継としてより柔軟になるように設計されています。もともと、NetlinkはAF_NETLINKソケットファミリを使用していました。
スクリプト自体でiptables
ルール/ルーティングを指定できるので、個人的な好みはそのようなタスクのbashスクリプトです。 Cのようなプログラミング言語を使用している場合は、おそらくsystem
を呼び出してから、プログラムの戻り値を使用して何かを行うことができます。
ここ から利用可能なhaxwithaxeという名前のAPIが1つあります