取消
显示结果 
搜索替代 
您的意思是: 
cancel
公告

December 2020

【原创】Transparent-ASA部署

5298
查看次数
60
有帮助
14
评论
笔记说明:思科对于透明墙的部署文档相当的少,工作场景中透明墙的应用也比路由强少了很多
但是工作中不免出现各种各样的部署方式,和各种各样的坑
这篇文章同时参阅了思科自己的文档,以及&同事的交流结果,对于最后的架构问题,有问题欢迎与我探讨
社区发帖图片不能直接复制可以解决么,相当坑,一张一张贴,真不怪我前几篇不想发配置示例拓扑图

    Cisco文档:
    Cisco的ASA可以运行两种模式:
    112230s48ip83oluuzoss7.png
    1. 路由模式:也就是3层防火墙,基于IP地址转发流量
    2. 透明模式:也就是2层防火墙,基于MAC地址转发流量,由邻居路由器和主机做路由决定


    明防火墙的限制:

    • 只支持2个接口在一个bridge里(8.3后引入bridge-group概念,每一个bridge-group内可以支持多个接口)
    • BVI-ip地址必须与连接的网络位于同一子网中
    • 管理接口不支持作为网桥组成员
    • 透明模式下必须至少使用一个桥组,数据接口必须属于网桥组
    • 不能将BVI-IP地址指定为连接设备的默认网关, 需要使用ASA另一侧的router指定为默认网关
    • 最多可以创建250bridge-group,每个组最大64个接口
    • 不支持以下特性:

    • DHCP reley
    • Dynamic routing protocols
    • Dynamic DNS
    • Multicast IP routing
    • Quality of Service
    • VPN termination (except for management traffic)
    • 从8.2(1)开始,透明防火墙能够支持IPv6

    • 透明墙的业务接口不能配置IP地址,但management接口可以配置(out-of-band
    • 也可以在配置全局模式创建管理IP地址(in-band)(8.4之前)
    • 透明墙可以做NAT,但是不能跑路由协议



    什么情况下使用透明模式
    (1)转发非IP流量时
    (2)现有网络不希望重新规划IP地址的时候
    ⭐其他情况下均使用路由模式
    110838gmrj66m03gp0qgar.jpg


    透明墙工作原理:

      110912p9e6f777scz7flss.png


    • 转发ARP,并且嗅探ARP,学习接口收到的数据包的源MAC地址,形成关联
    • ASA自身MAC地址表没有关联表项时,收到未知单播时的行为:

    • 如果收到未知单播的目标IP在接口所属BVI的同一网段(对发送的设备来说是同一广播域内的访问),ASA会以BVI地址为源在bridge-group组中所有接口发出目标IPARP请求,等待回应,如果回应来自另一个接口,学习MAC地址,转发。如果回应来自收到未知单播的接口,丢弃,不做转发
    • 如果收到未知单播的目标IP和接口BVI不在同一网段,ASA会以BVI地址为源,发IP ,目MAC地址保持不变,在所有bridge-group接口发出,等待哪个接口能收到ICMPreply,同时学习到MAC地址和接口关联,后续利用MAC地址表转发数据 ,如果reply来自相同接口,丢弃
    注意bridge-group virtual Interface 的地址必须有,如果没有,收到未知单播,ASA只能丢弃。

    111004pnh969zw3hn0er90.png
    (1)ASA学习源MAC地址,添加到MAC地址表
    (2)ASA转换local source 地址到global地址
    (3)如果目的MAC地址在MAC表中,则按表转发到映射的接口
    (4)如果目标地址不在MAC表中,则同上处理
    (5)返回的包,ASA再将global地址转换回local地址

    ——学习源MAC,按目的MAC转发, 与交换机工作方式基本相同。

    配置静态路由的场合:
    (1)management接口地址被不同网段地址管理
    route management 0 0 x.x.x.x
    (2)带内管理地址被不同网段地址管理
    route inside x.x.x.x x.x.x.x [next-hop]
    (3)透明墙做NAT时

    ——只要是透明墙自身发起流量,访问不同网段地址,就需要配置路由,通过对下一跳地址的ARP解析,找到要封装的目的MAC, 通过对目的MAC查表,找到出包接口(无法查到则泛洪)。



    透明墙配置指南:

    • 内外接口直连网络必须在相同的子网内部
    • 必须要配置一个网管IP (重要)
    • 网管IP必须要和内外网段相同
    • 网管IP不能够作为网关使用
    • 组播和广播流量需要明确放行(穿越) outbound单播流量可以正常穿越
    • 可以指定一个特定接口抵达的IP为默认网关,这条路由只起到网管作用
    • 每一个接口必须在不同的VLAN
    • 所有的流量都可以通过extended access-list(ACL)(for IP traffic)或者EtherType ACL(for no IP traffic)来放行
    • ARP默认能够穿越防火墙,可以通过ARP inspection这个技术来控制
    • CDP是无法穿越的

    show firewall 查看当前模式
    firewall transparent 转换为透明模式
    no firewall transparent 转换为路由模式(默认)

    配置说明:
    首先切换到透明墙(切换模式会丢失所有配置,需要提前备份配置,在贴配置的时候,需要把firewalltransparent放在前边)

    • 使用(config)# firewall transparent 切换到透明墙
    • 切换回routed firewall = no firewall transparent

    简单配置示例-1

    111053cz71g7a9g4jgjh26.png


    • 配置该拓扑使其能够正常工作
    • Deny 8.8.8.8 访问 any ip icmp packet

    ASA配置:
    1:配置inside 接口,nameif = inside 后自动security level 100,划入桥组1
    Interface gi0/0
    no shutdown
    nameif inside
    bridge-group 1

    2:配置outside 接口,nameif = outside 后自动security level 0,划入桥组1
    Interface gi0/1
    no shutdown
    nameif outside
    bridge-group 1

    3:创建BVI接口-1,必须配置一个桥组之间相同地址段的ip地址(注意,这个BVI接口是可以被PING通的)
    Interface bvi 1
    no shutdown
    ip add 172.16.1.2255.255.255.128

    4:创建安全策略,deny8.8.8.8 access inside any icmp packet
    Access-list outside8888 deny icmp8.8.8.8 255.255.255.255 any
    Access-list outside8888 permit ipany any
    Access-group outside8888 inoutside

    5:测试现象:

    111143o3rd2qydrqrie4ti.png
    R8无法通过8.8.8.8 ping通任何ip地址
    111213a8u50zhe9hopovgv.png

但是R7可以ping 8.8.8.8的地址,为什么能通?
因为R7 ping过去会维持状态化监控表象,数据包回来先匹配表象,而不是匹配outside接口的ACL

简单配置示例-2 增强版NAT配置


111245va116s21g6s95nn2.png


将R7的lo0=192.168.1.1进行static-NAT转换,转换为172.16.1.4

1:首先定义object
object network nat-before
host 192.168.1.1
object network nat-after
host 172.16.1.4

2:定义NAT规则 1:1
nat (inside,outside) source static nat-beforenat-after description test

3:因为通过防火墙去转换了NAT,R8回来的流量会经过ASA的XLATE表象后查找路由,所以ASA要加去192.168.1.1的路由
route inside 192.168.1.1 255.255.255.255 172.16.1.1 1

4:test测试
111326jnyr1rcgdvq5nulp.png

如图所示,已经可以通过lo0 ping通114
111353ui6twum73lfi3mff.png
如图所示,static nat xlate表象已存在
111423r40t1vhbcnb4t4ps.png
如图所示,R8上开 debug ip icmp 查看,DST=转换后地址172.16.1.4




一:使用 VLAN 隔离相同网段之间的互访


111512f4zcwfj7pgps4zjz.png


架构说明:
R17 属于 vlan 10,他的网关是172.16.10.254,但是这个网关在R13中划入了Vlan-100

  • 如果R17想访问172.16.10.254,数据流量到达交换机R13,R13会将数据流量传递到ASA上,因为他们都是vlan 10
  • ASA的 G0/0口属于VLAN 10=inside-1=bridge-group-1,所以数据流量会到ASA的 BVI-I上=172.16.10.253,
  • 由于ASA的GI0/2接口=bridge-group-1=outside,所以流量会从GI0/2接口送出,这个接口属于VLAN 100.
  • 由于这里都没有 trunk接口,vlan都是本地设备用来区分自己接口收到流量应该传递到哪些端口罢了,所以正常使用
在这里需要注意一点,因为同一个广播域=同一个VLAN下的流量直接广播内转发了,所以如果不依靠划分VLAN方式隔离相同网段流量的话,ASA没有办法对数据流量进行过滤

配置示例:
交换机配置略过,就是划分VLAN

ASA配置:
1:防火墙开启透明模式,提前inspection-icmp
Firewall transparent
policy-map global_policy
class inspection_default
inspect icmp

2:ASA的接口划入bridge-group-1,并且打上nameif,起BVI接口分配与上下文相同地址段IP
interfaceGigabitEthernet0/0
bridge-group 1
nameif inside
security-level 100
interfaceGigabitEthernet0/2
bridge-group 1
nameif outside
security-level 0
interface BVI1
ip address 172.16.10.253 255.255.255.0

3:测试 R17-Ping R16 全局policy-map 监控ICMP
111542dzheea6h0a7p7f8e.png

4:测试 R17 TelnetR16 ASA上存在状态化监控表象
111613zimgrzsrsrr3lh3w.png
111639mcdcddkdkwt82ldv.png




二:防火墙透明模式穿插网络中,开放子接口进行流量过滤
111710ia9pxq9mr51v9zur.png
架构说明:(并不推荐这样部署)
如图所示,ASA穿插在汇聚交换机&核心交换机之间部署,这样部署可以达到,所有上联至核心的流量必须先经过防火墙过滤,并且ASA可以针对全网的ARP消息进行inspection

首先,R12的地址=172.16.1.1=vlan10,它的网关是172.16.1.254,该网络的所有VLAN网关全部都在Core-SW上
R12的数据流量到达Access-sw,会从trunk接口封装VLAN10-TAG送给ASA,ASA发现该流量属于vlan10=G0/1.1接口=bridge-group-1,ASA本身传递ARP并嗅探ARP学习MAC地址,并且使用BVI接口ping目的地址,发现是从G0/0.1端口=vlan 100 抵达,则流量正常通信。

如果网络中出现Access-Sw2,这一块的网络地址&vlan是另一个/多个广播域,并且不与Access-sw1重叠,则在ASA的
G0/2口下起子接口,封装vlan20=bridge-group-2,并在ASA上联至Core-sw的G0/0口下起子接口G0/0.2,封装VLAN200=Bridge-group2,与其vlan20进行对应,则流量可以正常通信

配置示例:
1:交换机配置就是trunk & Access 接口类型

2:ASA配置,物理接口无需配置,上联下联物理接口开启子接口,封装不同VLAN-TAG,并入Bridge-group
interfaceGigabitEthernet0/0.1
vlan 100
bridge-group 1
nameif outside-1
security-level 0
interfaceGigabitEthernet0/1.1
vlan 10
bridge-group 1
nameif inside-1
security-level 100

3:配置ASABVI-1接口=bridge-group-1,并且开启ICMP监控
interface BVI1
ip address 172.16.1.253 255.255.255.0
policy-map global_policy
class inspection_default
inspect icmp

4:test测试,R12ping-Core-SW
111735jdh3703nggighgsd.png
架构问题:
111804s6ufgqido0pstuuz.png
如果两个区域的地址划分并不是按区域,而是按照应用,接入类型的话。Access-sw2交换机里也有VLAN 10的流量
那这个问题怎么解决呢?

答:理想的方案肯定是在 G0/2接口下再起一个子接口G0/2.2,并且同样封装 vlan10=bridge-group1=nameif-inside3,与access-sw的vlan 10同样捆绑在bridge-group 1中

但是,ASA不支持多个子接口封装相同vlan,即使是不同的物理接口下的子接口也不可以
111830pe6c166665qzquh6.png
所以,一个解决办法就是,将另一个汇聚点的 vlan 10 改为=vlan 101,然后vlan101,vlan10,vlan100=一个bridge-group-1=一个地址段172.16.1.0/24
这样数据流量到防火墙,防火墙会在这个Bridge-group-1里进行通信传递

111851f4oe3338h6834ztu.png

评论
wyc_dmx42h1
Community Member
谢谢楼主分享
wuleihen
Advocate
谢谢分享:D:o:lol
Walter.wu
Collaborator
给个赞!帖子收藏了。
wilson_yong
Community Member
不错,支持一下。。。
avicairbus
Advocate
又学习了!
xiaocqu
Beginner
谢谢楼主分享~
wuhao0015
Rising star
挺详细的,支持下~~!
yanglei
Beginner
楼主问个问题,
您不建议把透明模式的asa防火墙串在网络中,那么当有流量过滤需求时,架构采用旁挂到核心交换机上么?
谢谢
@terence
zhdnetsec
Beginner
感谢 分享 感谢 分享 感谢 分享
freebird2992
Rising star
谢谢楼主的分享,写得特别好,建议多写点
Terence.Jh
Rising star
yanglei@kans.cn 发表于 2019-2-19 12:11
楼主问个问题,
您不建议把透明模式的asa防火墙串在网络中,那么当有流量过滤需求时,架构采用旁挂到核心 ...

1:不同的应用场景适用不同的部署方式。
2:如果上下行只有一个VLAN,那么透明墙很方便,或者是新出的FTD的虚线模式
3:但是你需要想清楚最后一点的部署模式,如果透明墙穿插在核心汇聚之间,中间全部是二层,接入VLAN在不同区域都存在,那么会存在vlan mapping的问题,因为子接口的VLAN-TAG只可以有一个唯一的,这是思科的透明墙的设计问题
4:后期如果是需要穿插在汇聚的话,存在VLAN-Mapping比较麻烦,那么建议是使用虚线模式部署。
xuxiaoxunlxl
Beginner
楼主写的太好了
ghkjobs
Beginner
非常有用,我们的环境里好多这样二次透明模式部署的防火墙
ghkjobs
Beginner
感谢分享@!非常有用
Content for Community-Ad