背景
eno1
2つのインターフェースでUbuntuを実行するシステムがあり、enp4s0
次のコマンドを使用してOVSブリッジを作成しました。
ovs-vsctl add br s1
次のコマンドを使用して、ブリッジeno1
に2つの物理インターフェイスを追加しました。enp4s0
ovs-vsctl add-port s1 eno1
ovs-vsctl add-port s1 enp4s0
以下を使用してポートが追加されたことを確認しました。
ovs-ofctl show s1
両方のインターフェイスに接続されているキュールールを確認するには、次を使用します。
ip link
インターフェイスに添付されたキュールールは次のとおりです。
eno1: fq_codel
enp4s0: mq
私はそれらに接続されたqdiscを変更したかったですhtb
。だから私は次のように両方のインターフェイスで変更しました。
tc qdisc add dev eno1 root handle 1: htb default 12
tc qdisc add dev enp4s0 root handle 1: htb default 12
質問
両方のインタフェースに対してqdiscを変更するコマンドを実行した後、を使用してhtb
実際に変更されたことを確認しましたip link
。最初はみんなhtb
私が好きなように報告しました。ただし、一定時間が経過すると自動的にデフォルトのqdisc(fq_codel
およびqdisc mq
)に変わります。
htb
私は彼らのqdiscを何度も変更し、変更されたことをip link
確認するためにチェックを発行しました。毎回短時間後にデフォルトのqdiscに変わります。
質問
eno1
。とのqdiscをどのように永久にenp4s0
変更しますかhtb
?短時間でデフォルトのqdiscにリセットされるのはなぜですか?
答え1
これで問題を解決したので、質問に答えます。
これは、NetworkManager(または他のプロセス)がインターフェイスを制御できるために発生します。定期的にインターフェイス設定をリセットします。この問題を解決するには:
managed
NetworkManagerがどのインターフェイスを使用しているかを確認してください。
nmcli dev status
上記のコマンドの出力にテストインターフェイスがリストされている場合、managed
NetworkManagerによって制御されます。それ以外の場合はリストされますunmanaged
。リストされている場合、managed
2つのオプションがあります。
- オプションA:NetworkManager設定ファイルを編集し、
managed
NetworkManagerから除外するインターフェイスを追加します。
sudo nano /etc/NetworkManager/NetworkManager.conf
conf
ファイルに次の行を追加します。
[keyfile]
unmanaged-devices=mac:00:11:22:33:44:55;mac:66:77:88:99:00:aa
macアドレスをテストインターフェイスのmacアドレスに置き換えます。最新バージョンのNetworkManagerでは、インターフェイス名を使用してこれを実行できます。
[keyfile]
unmanaged-devices=interface-name:eno1,interface-name:enp4s0
ネットワーク管理者を再起動します。
systemctl stop NetworkManager
systemctl start NetworkManager
次に、インターフェイスが管理されていないことを確認します。
nmcli dev status
- オプションB:ネットワーク管理者を停止します。
現在のセッションを停止します(次回の起動時に再開します)。
systemctl stop NetworkManager
またはNetworkManagerを無効にします(次回の起動時にデフォルトでは再起動されません)。
systemctl disable NetworkManager
NetworkManagerで管理対象としてリストされていない場合は、dhclientでリースできます。確認すべき事項:
sudo cat /var/lib/dhcp/dhcpd.leases
dhclient がインターフェイスをリースする場合、出力にリストされます。その場合は、dhclientのPIDを見つけて終了するか、dhclientの設定ファイルを編集してテストインターフェイスを除外します。