ip route
とsysctl
に2つの変更があり、tcpスロースタートが無効になっています。これが私のやり方です
ip route show
デフォルトで始まる行をメモします。
デフォルトの回線からIPを取得し、実行します
Sudo ip route change default via $ip_address dev eth0 initcwnd 12
Sudo sysctl -w net.ipv4.tcp_slow_start_after_idle=0
これからパペットスクリプトを作成するにはどうすればよいですか?同じタイプの多くのマシンにデプロイできるもの– CentOS 6
編集:賞金を追加して、
Sudo ip route change default via $ip_address dev eth0 initcwnd 12
Larsksの答えから離れて、静的IPアドレスがある場合は、これを/ sbin/ifup-localに配置します
#!/bin/sh
GATEWAY=`ip route| awk '/^def/{print $3}'`
DEFGWDEV=`ip route| awk '/^def/{print $5}'`
if [ "$1" = $DEFGWDEV ]; then
ip route change default via $GATEWAY dev $DEFGWDEV initcwnd 12
fi
DHCPを使用してインターネットアドレスを取得している場合(質問で提案されています)、dhclient
でインターフェイスを構成した後、/etc/dhcp/dhclient-exit-hooks
を使用してシェルコマンドを実行できます。 $router
を含む、dhclientによって提供される多くの変数にアクセスできます。これを使用して実行できます。
ip route change default via $router dev $interface initcwnd 12
このスクリプトは、通常のPuppet file
リソースを使用してインストールします。
file { '/etc/dhcp/dhclient-exit-hooks':
owner => root,
group => root,
mode => 0755,
source => 'puppet:///.../dhclient-exit-hooks',
}
そして、ファイルの内容はおそらく次のようになります。
#!/bin/sh
if [ "$interface" = eth0 ]; then
ip route change default via ${new_routers%% *} dev $interface initcwnd 12
fi
DHCPを使用している場合(not)、同様のことができます。通常のifup
スクリプトはインターフェイスの構成後に/sbin/ifup-local
を実行し、これを使用してip
コマンドを実行できます。この場合、/etc/sysconfig/network-scripts/ifcfg-eth0
のインターフェース構成を調達するだけで、デフォルトゲートウェイのアドレスを取得できます(Puppet file
リソースは/sbin/ifup-local
をインストールします)。
sysctl
側はこの投稿でカバーされました: Puppetでsysctl.confパラメーターを設定します 。
Puppetの ネットワーキングの例 も活用します Augeas 。
編集:あなたはCentOSを使用しているので、これらのルートを永続化する必要があることを忘れないでください...ファイルに変更を加え、確認してからネットワークインターフェイスを再起動する方が安全な方法ですか?これは/etc/sysconfig/network-scripts/route-ethX
via
構文を使用しているため、使用します。 ip route
コマンドは、初期輻輳ウィンドウ(initcwnd)を変更したいので、あなたの目標のようです。デフォルトゲートウェイの設定自体はOSネットワークスクリプト/キックスタート/ビルドプロセスによって処理される必要があるため、これを別のオプションに真剣に分けます。
今、まったく異なる解決策のために:
私はいくつかの点でPuppetが好きです。 ネットワーク構成とsysctl値は含まれていません。 EL6システムでは、 tuned-admフレームワーク を使用して、これらのシステム変更をその場で簡単に行うことができます。一貫した方法。私が管理しているサーバーは、本番環境に移行する前に30以上のsysctl
およびsysfs
の変更が必要になる場合があります。以前は手動で管理していましたが、Puppetを使用しました...しかしEL6を使用して、 tunedprofile を作成します。必要な微調整とスクリプト、Puppetを使用したプロファイルとその配布の管理、およびPuppetを使用したtuned
デーモンの制御。
それを前提として、カスタムプロファイルでip
スクリプトとsysctl
値を移動し、そこから移動します。はるかにきれい。