当前位置:   article > 正文

H3C交换机ACL的单向访问解决方案_h3c 接口acl单向访问

h3c 接口acl单向访问

写下此文的目的只是为了记录遇到的问题,以防下次再遇到此类问题可以备查。

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

一、需求

公司要求为开发部门提供一个SIT集成测试环境:

1、能上外网

2、按需开放要访问的业务

3、除以上外,默认禁止访问其他

4、其他所有业务网段可访问此网段

二、环境现状

文中的设备及ip都是使用H3C模拟器HCLv2.1.1比照真实环境搭建的。
使用MSR36-20路由器模拟其他环境下的主机server1和SIT环境下主机server2,使用S5820V2-54QS模拟核心交换机core-sw

注意:

在真实机上的配置已经测试成功。而模拟器中虽然能输入命令,但并不生效,建议用真实机做测试。

真实机基本信息:H3C S5500-58C-HI ,Comware Software, Version 5.20, Release 5206

 

三、测试环境交换机基本信息:

  1. [core-sw]dis version
  2. H3C Comware Software, Version 7.1.075, Alpha 7571
  3. Copyright (c) 2004-2017 New H3C Technologies Co., Ltd. All rights reserved.
  4. H3C S5820V2-54QS-GE uptime is 0 weeks, 0 days, 0 hours, 24 minutes
  5. Last reboot reason: User reboot
  6. Boot image: flash:/s5820v2_5830v2-cmw710-boot-a7514.bin
  7. Boot image version: 7.1.075, Alpha 7571
  8. Compiled Sep 20 2017 16:00:00
  9. Boot image: flash:/s5820v2_5830v2-cmw710-system-a7514.bin
  10. Boot image version: 7.1.075, Alpha 7571
  11. Compiled Sep 20 2017 16:00:00

原有配置,包含vlan10 和 ip

  1. core-sw的vlan配置
  2. interface Vlan-interface10
  3. description other
  4. ip address 10.1.10.254 255.255.255.0
  5. 接口配置
  6. interface GigabitEthernet1/0/1
  7. port link-mode bridge
  8. port access vlan 10
  9. combo enable fiber
  10. #
  11. interface GigabitEthernet1/0/2
  12. port link-mode bridge
  13. combo enable fiber

 

四、设计思路

基于H3C交换机的产品特性,通过ACL及QOS实现上述需求。

提示:H3C交换机和思科交换机在ACL上的最大区别就是,H3C在ACL中匹配源目后,是双向管控,CISCO是单向。

1、确认各个网段下的ip互通

2、基于以上添加策略

  • 策略内容:

  • 10.1.20.1 禁止访问所有

  • 10.1.10.0网段和10.1.30.0网段的主机可访问===>10.1.20.1

3、后续需求

10.1.20.1 可访问===>10.1.30.1主机,其他不可访问

4、应用策略

在vlan20的inbound方向应用策略

 

五、拓扑说明

MSR36-20_2(server1)在其他业务网段other中,ip 10.1.10.1/24

  1. [server1]接口信息
  2. interface GigabitEthernet0/1
  3. port link-mode route
  4. combo enable copper
  5. ip address 10.1.10.1 255.255.255.0
  6. [server1]默认路由
  7. ip route-static 0.0.0.0 0 10.1.10.254
  8. 打开telnet功能,即打开23端口,便于之后的验证
  9. [server1]telnet server enable

MSR36-20_3(server2)在新增网段SIT中,ip 10.1.20.1/24

  1. server2的接口信息
  2. interface GigabitEthernet0/1
  3. port link-mode route
  4. combo enable copper
  5. ip address 10.1.20.1 255.255.255.0
  6. server2的路由信息
  7. ip route-static 0.0.0.0 0 10.1.20.254
  8. 打开23端口,便于之后验证
  9. [server2]telnet server enable

 

六、交换机配置

实施步骤

1、在交换机上建立新网段用于SIT,如:vlan20,ip 10.1.20.254,掩码24位;真实环境中交换机上还有其他网段,在此环境中,用loopback接口模拟

  1. [core-sw]vlan 20
  2. [core-sw-vlan20]quit
  3. [core-sw]
  4. [core-sw]int vlan 20
  5. [core-sw-Vlan-interface20]description SIT
  6. [core-sw-Vlan-interface20]ip add 10.1.20.254 255.255.255.0
  7. [core-sw-Vlan-interface20]quit
  8. 便于后面的测试,增加一个回环口,模拟其他网段
  9. [core-sw]int LoopBack 0
  10. [core-sw-LoopBack0]ip add 10.1.30.1 24
  11. 打开23端口
  12. telnet server enable

2、交换机与server2相连的G2接口划入vlan20

  1. [core-sw]int g1/0/2
  2. [core-sw-GigabitEthernet1/0/2]port access vlan 20
  3. [core-sw-GigabitEthernet1/0/2]quit

3、确认server1和server2以及交换机上模拟的loopback0互通

  1. <server1>telnet 10.1.20.1
  2. Trying 10.1.20.1 ...
  3. Press CTRL+K to abort
  4. Connected to 10.1.20.1 ...
  5. ******************************************************************************
  6. * Copyright (c) 2004-2017 New H3C Technologies Co., Ltd. All rights reserved.*
  7. * Without the owner's prior written consent, *
  8. * no decompiling or reverse-engineering shall be allowed. *
  9. ******************************************************************************
  10. Login failed.
  11. The connection was closed by the remote host!
  12. <server1>ping 10.1.20.1
  13. Ping 10.1.20.1 (10.1.20.1): 56 data bytes, press CTRL_C to break
  14. 56 bytes from 10.1.20.1: icmp_seq=0 ttl=254 time=1.000 ms
  15. 56 bytes from 10.1.20.1: icmp_seq=1 ttl=254 time=1.000 ms
  16. <server1>telnet 10.1.30.1
  17. Trying 10.1.30.1 ...
  18. Press CTRL+K to abort
  19. Connected to 10.1.30.1 ...
  20. ******************************************************************************
  21. * Copyright (c) 2004-2017 New H3C Technologies Co., Ltd. All rights reserved.*
  22. * Without the owner's prior written consent, *
  23. * no decompiling or reverse-engineering shall be allowed. *
  24. ******************************************************************************
  25. Login failed.
  26. The connection was closed by the remote host!
  27. <server1>
  28. <server1>ping 10.1.30.1
  29. Ping 10.1.30.1 (10.1.30.1): 56 data bytes, press CTRL_C to break
  30. 56 bytes from 10.1.30.1: icmp_seq=0 ttl=255 time=0.000 ms
  31. 56 bytes from 10.1.30.1: icmp_seq=1 ttl=255 time=0.000 ms
  1. <server2>telnet 10.1.10.1
  2. Trying 10.1.10.1 ...
  3. Press CTRL+K to abort
  4. Connected to 10.1.10.1 ...
  5. ******************************************************************************
  6. * Copyright (c) 2004-2017 New H3C Technologies Co., Ltd. All rights reserved.*
  7. * Without the owner's prior written consent, *
  8. * no decompiling or reverse-engineering shall be allowed. *
  9. ******************************************************************************
  10. Login failed.
  11. The connection was closed by the remote host!
  12. <server2>ping 10.1.10.1
  13. Ping 10.1.10.1 (10.1.10.1): 56 data bytes, press CTRL_C to break
  14. 56 bytes from 10.1.10.1: icmp_seq=0 ttl=254 time=1.000 ms
  15. 56 bytes from 10.1.10.1: icmp_seq=1 ttl=254 time=1.000 ms
  16. <server2>ping 10.1.30.1
  17. Ping 10.1.30.1 (10.1.30.1): 56 data bytes, press CTRL_C to break
  18. 56 bytes from 10.1.30.1: icmp_seq=0 ttl=255 time=1.000 ms
  19. 56 bytes from 10.1.30.1: icmp_seq=1 ttl=255 time=1.000 ms
  20. <server2>telnet 10.1.30.1
  21. Trying 10.1.30.1 ...
  22. Press CTRL+K to abort
  23. Connected to 10.1.30.1 ...
  24. ******************************************************************************
  25. * Copyright (c) 2004-2017 New H3C Technologies Co., Ltd. All rights reserved.*
  26. * Without the owner's prior written consent, *
  27. * no decompiling or reverse-engineering shall be allowed. *
  28. ******************************************************************************
  29. Login failed.
  30. The connection was closed by the remote host!

已经互通,Login failed是因为没有配置用户名密码,此处可忽略

提示:真实环境中,server可能是windows、linux或者交换机系统,根据各系统的情况使用测试命令

4、配置ACL要匹配的报文

  1. [core-sw]acl adv 3001
  2. [core-sw-acl-ipv4-adv-3001]des 3001permit
  3. [core-sw-acl-ipv4-adv-3001]rule 100 permit tcp ack 1 destination 10.1.10.0 0.0.0.255
  4. [core-sw-acl-ipv4-adv-3001]rule 101 permit tcp ack 1 destination 10.1.30.0 0.0.0.255
  5. [core-sw]acl adv 3002
  6. [core-sw-acl-ipv4-adv-3002]description 3002deny
  7. [core-sw-acl-ipv4-adv-3002]rule 100 permit tcp syn 1 destination 10.1.10.0 0.0.0.255
  8. [core-sw-acl-ipv4-adv-3002]rule 101 permit tcp syn 1 destination 10.1.30.0 0.0.0.255

5、配置匹配报文分类

  1. [core-sw]traffic classifier SIT-Permit operator and
  2. [core-sw-classifier-SIT-Permit]if-match acl 3001
  3. [core-sw-classifier-SIT-Permit]quit
  4. [core-sw]traffic classifier SIT-Deny operator and
  5. [core-sw-classifier-SIT-Deny]if-match acl 3002
  6. [core-sw-classifier-SIT-Deny]quit

6、配置流的行为

  1. [core-sw]traffic behavior SIT-Permit
  2. [core-sw-behavior-SIT-Permit]filter permit
  3. [core-sw-behavior-SIT-Permit]quit
  4. [core-sw]traffic behavior SIT-Deny
  5. [core-sw-behavior-SIT-Deny]filter deny
  6. [core-sw-behavior-SIT-Deny]quit

7、配置qos策略

  1. [core-sw]qos policy SIT-Control
  2. [core-sw-qospolicy-SIT-Control]classifier SIT-Permit behavior SIT-Permit
  3. [core-sw-qospolicy-SIT-Control]classifier SIT-Deny behavior SIT-Deny
  4. [core-sw-qospolicy-SIT-Control]quit

8、应用到接口或vlan的inbound方向

[core-sw]qos vlan-policy SIT-Control vlan 20 inbound

9、后续需求

10.1.20.1 可访问===>10.1.30.1这个主机

  1. [core-sw]acl adv 3001
  2. [core-sw-acl-ipv4-adv-3001]des 3001permit
  3. [core-sw-acl-ipv4-adv-3001]rule 90 deny ip destination 10.1.30.1 0
  4. [core-sw]dis acl 3001
  5. Advanced IPv4 ACL 3001, 3 rules,
  6. 3001permit
  7. ACL's step is 5
  8. rule 90 deny ip destination 10.1.30.1 0
  9. rule 100 permit tcp destination 10.1.10.0 0.0.0.255 ack 1
  10. rule 101 permit tcp destination 10.1.30.0 0.0.0.255 ack 1

deny掉要访问的这个主机

注:在做qos policy SIT-Control时,先permit后deny

七、测试效果

1、基本需求测试

在server2上访问server1的23端口(telnet 10.1.10.1 23),访问失败

在server1上访问server2的23端口(telent 10.1.20.1 23),访问成功

2、后续需求测试

在server2上访问loopback接口的23端口(telnet 10.1.30.1 23),访问成功

八、结论

如果在ACL中只匹配源ip和目的ip,就会双向不通,需要使用ACL中的tcp的标志位来进行匹配,实现单向访问。

 

补充知识:

从tcp这个层面看,tcp通过三次握手建立连接后传输数据

tcp标志位,有6种标示:SYN(synchronous同步位) ACK(acknowledgement 确认位) PSH(push急迫位) FIN(finish终止位) RST(reset重置位) URG(urgent紧急位)

注:涉及到seq和ack的内容,为了便于理解不做详细说明

第一次握手:客户端发送了SYN包给对方,SYN位 置1

3

第二次握手:服务器回复给客户端SYN包,SYN位和ACK位 置1

 

4

第三次握手,客户端回复ACK包,ACK位 置1,tcp建立连接

5
 

接着说,同理,根据策略,我们允许10.1.20.1和10.1.30.1可以访问10.1.20.1

当10.1.10.1和10.1.30.1访问10.1.20.1

  • 先发送SYN包,没有匹配任何策略,正常通过

当10.1.20.1回复10.1.10.1和10.1.30.1时

  • 发送ACK包,匹配到了允许通过的策略,10.1.20.1和10.1.30.1访问10.1.20.1的方向tcp建立成功

当10.1.20.1访问10.1.10.1和10.1.30.1

  • 发送SYN包,匹配到了禁止通过的策略,tcp建立失败。

 

 

 

 

 

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/Monodyee/article/detail/432006
推荐阅读
相关标签
  

闽ICP备14008679号