搜索

17.14.11.2. 限制连接数量

download PDF
要限制客户机虚拟机可以建立的连接数量,必须提供规则来设置给定流量类型的连接限制。例如,如果虚拟机应该一次只能 ping 另外一个 IP 地址,应该一次只有一个活跃的 ssh 连接。

例 17.10. 设定到连接的 XML 示例文件

以下 XML 片段可用于限制连接
  [...]
  <rule action='drop' direction='in' priority='400'>
    <tcp connlimit-above='1'/>
  </rule>
  <rule action='accept' direction='in' priority='500'>
    <tcp dstportstart='22'/>
  </rule>
  <rule action='drop' direction='out' priority='400'>
    <icmp connlimit-above='1'/>
  </rule>
  <rule action='accept' direction='out' priority='500'>
    <icmp/>
  </rule>
  <rule action='accept' direction='out' priority='500'>
    <udp dstportstart='53'/>
  </rule>
  <rule action='drop' direction='inout' priority='1000'>
    <all/>
  </rule>
  [...]
注意
在接受流量的规则之前,必须在 XML 中列出限制规则。根据 例 17.10 “设定到连接的 XML 示例文件” 中的 XML 文件,添加允许发送到端口 22 的 DNS 流量进入客户端虚拟机的额外规则,以避免 ssh 会话没有因为 ssh 守护进程 DNS 查找失败的原因而建立。离开此规则可能会导致 ssh 客户端意外挂起,因为它尝试连接。对于处理与跟踪流量相关的超时相关的超时,应格外小心。用户在客户机虚拟机中可能已经终止的 ICMP ping 可能在主机物理计算机的连接跟踪系统中有较长的超时,因此不允许另一个 ICMP ping 进行访问。
最佳解决方案是使用以下命令调整主机物理机器 sysfs 中的超时:# echo 3 > /proc/sys/net/netfilter/nf_conntrack_icmp_timeout。此命令将 ICMP 连接跟踪超时设置为 3 秒。这样做的效果是,一旦 ping 被终止,另一个 ping 在 3 秒后可以启动。
如果因为任何原因客户机虚拟机没有正确关闭其 TCP 连接,则会在较长时间内保持打开的连接,特别是在主机物理机器上为大量时间设置 TCP 超时值。另外,任何闲置连接都可能会导致连接跟踪系统中的超时,在数据包交换后可以重新激活。
但是,如果设置限制太低,新启动的连接可能会强制闲置连接到 TCP backoff。因此,应设置连接限制,而不是高,以便新 TCP 连接中波动的流量行为不会导致与闲置连接的关系。
Red Hat logoGithubRedditYoutubeTwitter

学习

尝试、购买和销售

社区

关于红帽文档

通过我们的产品和服务,以及可以信赖的内容,帮助红帽用户创新并实现他们的目标。

让开源更具包容性

红帽致力于替换我们的代码、文档和 Web 属性中存在问题的语言。欲了解更多详情,请参阅红帽博客.

關於紅帽

我们提供强化的解决方案,使企业能够更轻松地跨平台和环境(从核心数据中心到网络边缘)工作。

© 2024 Red Hat, Inc.