交换机上能 ping 通但 SSH 被 ACL 阻断,这个现象很典型,通常问题出在 ACL 规则的“方向”或者“匹配地址”上。让我们一起梳理下,根据经验最可能的原因集中在 VTY线路上ACL的方向 和 NAT转换后源地址 这两个点上。
你可以按顺序试试以下两个最有效的排查思路,大概率能定位问题。
对交换机远程登录(SSH/Telnet)的访问控制,是在user-interface vty下配置ACL来限制的。这里的关键在于 inbound 和 outbound 方向。
错误方向:配置了 acl 3000 outbound,这会限制从交换机主动发出去的连接,而不是别人连进来的连接。
正确方向:应该使用 inbound 参数。当交换机作为服务器时,这个方向才能限制外部客户端连入。
可以试试用以下命令检查,确保VTY线路下配置的是 inbound:
你提到地址经过转换,这是非常关键的线索。ACL检查的是TCP报文包头里的源IP地址。
如果ACL放行的是转换前的地址A,但交换机收到的是转换后的地址B,那ACL规则就不会匹配到,SSH连接会被默认拒绝。
建议:可以通过抓包或在防火墙上检查会话来确认交换机收到的源IP到底是什么,再把ACL里放行的地址改成这个B地址。
如果上面的步骤没解决问题,可以接着排查以下几点,它们是网络工程师实践中常见的坑:
ACL隐含规则与顺序:H3C的ACL最后隐含一条deny any规则。如果ACL只配置了允许特定IP、缺少允许其他IP的策略,或者规则顺序不正确,其他所有来源的访问都会被拒绝-19。可以用display acl all查看规则和匹配次数。
全局SSH服务器ACL vs 接口ACL:除了VTY下的限制,交换机还有ssh server acl这样的全局配置。如果同时存在,两者都会生效,任何一个没放行都会导致连接失败。可以用 display ssh server 检查全局配置。
VTY线路资源不足:user-interface vty 0 4 这类配置限制了最大登录用户数。如果所有VTY都被占用,新连接会被拒绝。可以用 display users 查看,并考虑增加VTY数量:user-interface vty 0 63。
VPN实例(VPN-Instance)问题:如果你的交换机配置了VPN,在ACL规则里加上 vpn-instance 参数是必要的。若漏掉了,ACL是不会匹配到的。
SSH服务与配置:确保全局SSH服务已开启(ssh server enable)。同时检查VTY下是否正确配置了authentication-mode scheme和protocol inbound ssh。
控制平面策略(Control-Plane):如果以上都排查了还是不行,可以检查是否配置了control-plane策略来限制SSH流量。
芯片转发机制:在一些交换芯片上,ping(ICMP)和ssh(TCP)可能会被不同的转发逻辑处理,这通常是ACL规则、QoS策略或硬件表项资源问题导致的。
暂无评论
user-interface vty 0 15
acl 2000 inbound
# 1. 查看全局入站ACL是否绑定
display packet-filter
# 2. 查看VTY线路下是否挂了登录ACL(重点)
display user-interface
# 3. 查看ACL具体规则,确认有没有允许 TCP 22
display acl all
acl basic 2000
rule permit source B 0
rule permit source B 0 destination-port eq 22
# 方案A:直接移除VTY登录ACL(最快恢复)
user-interface vty 0 15
undo acl inbound
# 方案B:在VTY的ACL里,加入B地址允许SSH
acl basic 2000
rule permit source B 0
acl advanced 3000
rule permit icmp source B 0
rule permit tcp source B 0 destination-port eq 22
rule deny ip
暂无评论
亲~登录后才可以操作哦!
确定你的邮箱还未认证,请认证邮箱或绑定手机后进行当前操作
举报
×
侵犯我的权益
×
侵犯了我企业的权益
×
抄袭了我的内容
×
原文链接或出处
诽谤我
×
对根叔社区有害的内容
×
不规范转载
×
举报说明
暂无评论