![Cisco IOS QoS 优先考虑 SSH,但不考虑 SCP](https://linux22.com/image/514750/Cisco%20IOS%20QoS%20%E4%BC%98%E5%85%88%E8%80%83%E8%99%91%20SSH%EF%BC%8C%E4%BD%86%E4%B8%8D%E8%80%83%E8%99%91%20SCP.png)
如何优先处理 ssh 流量以确保低延迟但限制 SCP 文件传输?我正在寻找一种不特定于主机的解决方案,这样我就不必添加 IP 地址列表。谢谢!
答案1
您可以使用数据包长度来区分它们,但存在这些数据包在 SSH 传输过程中被切断和混合的风险。
class-map match-all ssh-interactive
match access-group name ssh
match packet length max 600
class-map match-all ssh-files
match access-group name ssh
match packet length min 600
ip access-list extended ssh
permit tcp any any eq 22
permit tcp any eq 22 any
截止点是从这个空气中任意挑选出来的,你必须进行调整,看看什么适合你。
答案2
大多数(所有?至少是 OpenSSH)SSH 实现都会根据会话是交互式会话还是批量数据会话来设置不同的 IP TOS 标志。它为交互式会话设置低延迟 TOS 标志。
然后,您可以匹配 ACL 中的 TOS 标志。
答案3
这实际上是不可能的——两者都在同一个端口上运行,并且都将其流量封装在加密(和可选压缩)流中。可能成为 DPI 系统猜测哪个流是“标准”终端 ssh 会话以及哪个是 SCP 会话的一种方法,但这充其量只是一个猜测。
答案4
好吧,我同意 ErikA 关于技术细节的观点,但我(部分)不同意这是不可能的。你可以在不同的端口上运行多个 ssh 守护进程,并根据端口进行优先级排序。下面是博客文章如何做到这一点。
从那里开始,您将需要为每个 ssh 守护程序提供不同的凭据(不确定如何做到这一点,但我敢打赌您可以),除非您信任您的用户会选择。另一个选择是仅允许来自某些 IP 的 ssh 会话。