
2つのインタフェースを動的に設定するコマンドip route add
とifconfig
systemctlサービスarp
があります。ethtool
いずれにしても、数秒/分後にランダムに設定が消えます(IPが割り当てられなくなり、ルートとarpエントリが消えます)。
この問題をどのようにデバッグし、私の設定が消えるのですか?
[Unit]
After=network-online.target
[Service]
ExecStart=/usr/local/bin/routingsf.sh enp4s0f0 enp4s0f1
[Install]
WantedBy=network-online.target
Avahi-daemon
望ましくないが、放送のためにパケットを送信するなどのたわごとプロセスがたくさんあります。これらのインターフェイスはテスト目的で使用され、これらのインターフェイスを介して不要なパケットを送信したくありません。
答え1
インターフェイス列がある場合、nmcli device status
NetworkManager はその列を引き継ぐことを意味します。disconnected
STATE
enp4s0f0
enp4s0f1
ルートとして次のコマンドを実行します。
nmcli device set enp4s0f0 managed no
nmcli device set enp4s0f1 managed no
NetworkManager にこれらのデバイスに手を触れないように指示します。これにより問題が解決します。通常、NetworkManagerは再起動後も維持されるようにこれらの設定を自動的に保存する必要がありますが、これは使用しているLinuxディストリビューションによって異なります。
その後、nmcli device status
これらのネットワークインターフェイスのステータスはとして表示される必要があり、これはunmanaged
NetworkManagerの干渉なしにこれらのインターフェイスを手動で設定できることを示します。
システムサービスに関する追加情報:routingsf.sh
永続的に実行する項目を含めずに、およびなどのコマンドを「一度設定すると完了」した場合は、ip route add
サービスファイルセクションに数行を追加できます。ifconfig
arp
ethtool
[Service]
Type=oneshot
RemainAfterExit=yes
サービスタイプを指定しないと、systemdは1つを想定しますType=simple
。つまり、開始されたプロセスは、意図ExecStart=
的に停止するまで永久に実行されると予想されます。これを怠ると、routingsf.sh
systemdはExecStartコマンドが終了することを確認し、サービスを失敗としてマークします。
Type=oneshot
+組み合わせは、RemainAfterExit=yes
スクリプトがいくつかの操作を実行してから終了すると予想されることをsystemdに通知し、スクリプトが正常に終了すると、systemdはサービスステータスを「実行中」としてマークする必要があります。ExecStop=
標準コマンドを使用してこれらの設定を簡単にオフにするには、そのsystemctl
オプションを追加するオプションがあります。