/etc/network/interfaces で DHCP と eth によるボンドの自動起動

/etc/network/interfaces で DHCP と eth によるボンドの自動起動

タイトルにあるように、DHCP を使用しているときにボンドと通常の接続の両方を自動開始すると競合が発生します。 ServerFault (以下のリンク) で質問を開始したところ、いくつかの競合が指摘されましたが、正しい Unix 構成とコマンドで解決できると思います。

基本的に、両方を自動起動する場合、bond0 はスレーブを指定し、eth0 (enp0s25) もマスターを指定します。私は、それらを分離するために、どちらも使用せずに network.service を実行しようとしましたが、以下の構成ファイルでどちらの自動起動行が最初に来るかに関係なく、ハングします。

ほとんどの実用例では、静的ネットワーク アドレスが使用されています。ServerFault の質問で太字にしたように、もう 1 つが自動的に起動された後に手動で 1 つを起動すると、ボンディングは機能します。ただし、システム起動時に介入なしでボンディングをロードする方法はありますか? DHCP を使用しながら?

トラブルシューティング手順の詳細な説明をこのリンクに載せましたが、以下の私の構成ファイルを見るだけの場合よりも混乱を招く可能性があります。また、構成ファイルでボンドと接続の両方を個別に自動起動し、ボンディングをオンにする方法を知りたいのですが... そのためにはスクリプトが必要なだけかもしれませんが、構成ファイルだけでこれを行う「正しい」方法があるかどうかを確認したかったのです。そうでない場合は、少なくともボンドと接続を自動起動し、それらをマスター/スレーブ接続に接続するという単純な操作であると思われる競合を指摘してください (ちなみに、その用語の選択はあまり好きではありませんが、従来の使用法は理解しています)。間違っていたら訂正してください。

bond0 を DHCP ではなく手動で起動する必要がある場合、それは理にかなっています。しかし、ボンディングが完了したら、bond0 に IP アドレスを要求させるにはどうすればよいのでしょうか。..はい、enp0s25 を手動または DHCP に設定して、bond-master 行の有無、bond-slaves の詳細の有無にかかわらず、bond0 の自動起動を再度試みましたが、どれも機能せず、「DHCPDISCOVER on bond0」で停止します。これは、他の質問で述べたように、レイヤー 2 とレイヤー 3 の間の競合である可能性がありますが、シェルからレイヤー 3 DHCP を制御する方法はありませんか?

https://serverfault.com/questions/1082039/configuring-connection-bonding-chicken-and-egg

auto enp0s25  
iface enp0s25 inet dhcp
#iface enp0s25 inet manual
#   bond-master bond0

#auto bond0
iface bond0 inet dhcp
    up ifenslave bond0 enp0s25
    down ifenslave -d bond0 enp0s25  
bond-mode balance-rr
bond-miimon 100
#bond-slaves enp0s25 
bond-slaves none

答え1

自動起動の問題はteamd、以下のリンクで説明されているユーティリティを使用することで解決されました。

仮想IPを提示する単一のマシン上で複数のNICを負荷分散する https://serverfault.com/questions/953328/load-balancing-multiple-nics-on-single-machine-presenting-a-virtual-ip

Speedify のように速度を上げるためにネットワークをどのように組み合わせるかという質問はまだ未解決です。ServerFault の質問にいくつかのアイデアを追加しました。

関連情報