web-dev-qa-db-ja.com

スクリプトを使用して、すべてのネットワークアダプターのMTUをどのように構成しますか?

注:これはRHEL/centOS用です。

現在、MTUを構成する私の方法は、GUIでsystem-config-networkを使用し、MTUを4096に設定することです。代わりに、非対話型スクリプトでこれを実行したいと考えています。

スクリプトを使用して、すべてのネットワークアダプターのMTUをどのように構成しますか?

更新:

system-config-networkを使用して特定のネットワークアダプターのMTUを変更すると、実際にはアダプターの構成が永続的に変更されます。永続的な変更を行うためのスクリプトも必要です。

5

1つのコマンドですべてのデバイスに対してグローバルに設定することはできません。使用可能なデバイスを調べて、個別に設定できます。

iprouteパッケージのipツールを使用できます。その構文はifconfigツールの構文よりもはるかに規則的で表現力があります。設定するコマンドラインの例

ip link set mtu 4096 dev eth0

利用可能なデバイスを見つけることができます

ip link list

個々のものを調べます

ip link show dev eth0

開始するにはこれで十分です。

5
itsbruce

次のsedスクリプトは、最初に既存のMTU設定をコメントアウトし、次に各NICのcfgファイルの最後の行として新しいMTU設定4096を追加します。

sed -i -e 's/^MTU=/#&/' -e '$aMTU=4096' /etc/sysconfig/network-scripts/ifcfg-eth*

これにより、構成ファイルが永続的に変更されますが、変更はアクティブ化されません。

service network restartを実行して変更を有効にする必要があります。または、ネットワークサービスを再起動せずにMTUを変更するだけの場合は、次のようなものが機能します。

awk -F: '/eth/ {print $1}' /proc/net/dev | xargs -r -i{} ifconfig {} mtu 4096

または、bruceの回答のように、ipではなくifconfigを使用します。

ip link list | awk -F: '/eth[0-9]/ {print $2}' | xargs -r -n 1 ip link set mtu 4096 dev
3
cas