我有两个更改ip route
&sysctl
禁用 tcp 慢启动。我是这样做的
ip route show
记下以 default 开头的行。
从默认行中获取 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
这篇
sysctl
文章涵盖了这一方面:使用 Puppet 设置 sysctl.conf 参数。Puppet 的网络示例也利用了 Augeas。
编辑:你在 CentOS 上,所以请记住你需要使这些路由持久化......在文件中进行更改,验证,然后重新启动网络接口是更安全的方法吗?这假定
/etc/sysconfig/network-scripts/route-ethX
使用,因为您使用的是via
语法。该ip route
命令似乎是您的目标,因为您想要更改初始拥塞窗口 (initcwnd)。我会认真地将它分成另一个选项,因为单独设置默认网关应该由 OS 网络脚本/kickstart/构建过程处理。现在换一个完全不同的解决方案:
在某些方面我喜欢 Puppet。网络配置和 sysctl 值不在其中。使用 EL6 系统,您可以使用tuned-adm 框架以简单且一致的方式即时进行这些系统更改。我管理的服务器有时需要 30 多台
sysctl
并sysfs
在投入生产之前进行更改。我曾经手动管理它,然后使用 Puppet...但是使用 EL6,我创建了一个包含所有必要调整和脚本的调整配置文件,使用 Puppet 管理配置文件及其分发,并使用 Puppet 控制tuned
守护进程。鉴于此,只需将您的
ip
脚本和sysctl
值移动到自定义配置文件中,然后从那里开始。干净多了。如果您使用 DHCP 获取您的互联网地址(这是您的问题所建议的),那么您可以在配置您的界面
/etc/dhcp/dhclient-exit-hooks
后使用运行 shell 命令。dhclient
您将可以访问 dhclient 提供的许多变量,包括$router
. 您可以使用它来运行:file
您将使用普通的 Puppet资源安装此脚本:文件内容可能类似于:
如果您不使用 DHCP,则可以执行类似的操作。普通
ifup
脚本/sbin/ifup-local
在配置接口后运行,您可以使用它来运行ip
命令。在这种情况下,您可以简单地通过在接口配置中获取默认网关的地址/etc/sysconfig/network-scripts/ifcfg-eth0
(并且您的 Puppetfile
资源将安装/sbin/ifup-local
)。离开 larsks answer,如果你有静态 ip 地址,把它放在 /sbin/ifup-local