通常、Linux (Ubuntu) のインターフェイスまたは sysfs または ifenslave を使用して、2 つ以上の NIC カードを集約するための結合インターフェイスを構成します。次に、ボンドの作成と削除、およびそこからのインターフェースの追加と削除を可能にする netlink ライブラリがあります。しかし、現在提供されていないのは、結合の他のプロパティを動的に変更することです。
たとえば、結合の MTU またはハードウェア アドレス、またはその結合モード自体を変更したいと考えています。この情報は通常、
/sys/class/net/bondx/...
そしてbonding_mastersで、次のようなことをする必要があります
# ifconfig bond0 down
echo 6 > /sys/class/net/bond0/bonding/mode
結合モードを balance-alb に動的に変更します。つまり、インターフェイス ファイルを変更してネットワークを再起動または再起動する必要はありません。同様に、bonding モジュールに付属のドキュメントに記載されている他のパラメーターを変更できます。
しかし、インタラクティブな C プログラムを介して変更する場合、sysfs とどのようにやり取りすればよいでしょうか? C での基本的なファイル処理を除いて、ファイル システムと直接やり取りした経験はありません。sysctl() が /proc ファイル システム用であるように、sysfs ファイル システム用のインターフェイスは何ですか?
または、この問題に対処するための他のプログラム的な方法はありますか? 多分ioctl?