Juniper SRX防火墙ICMP-Traceroute

本文介绍了如何在运行Junos OS 9.6及更高版本的SRX设备上配置允许ICMP-Traceroute的特定应用程序,以解决TTL大于1的数据包被丢弃的问题。内容包括配置UDP和ICMP Traceroute的应用示例,以及通过Wireshark抓包分析防火墙如何处理Traceroute数据包。

通常可以在设备使用show junos junos-defaults 查看到系统自定义的应用参数,Junos-OS提供是的默认参数命令Hidden的,junos-defaults group包含了预定义的参数和通用的应用状态;

Junos-OS软件使用的提供的Traceroute的应用配置如下所示:

Traceroute application:

application junos-traceroute {

application-protocol traceroute;

protocol udp;

destination-port 33435-33450;

ttl-threshold 30;

}

The traceroute application stops at the device supporting the firewall (packets with ttl > 1 will be discarded).

application junos-traceroute-ttl-1 {

application-protocol traceroute;

protocol udp;

destination-port 33435-33450;

ttl-threshold 1;

}

以上应用配置仅支持在J-Series基于数据包设备(junos-os 9.3是最后一版本)

现在,必须配置一个特定的应用程序来显式地允许traceroute包在运行Junos OS 9.6及以后版本的SRX设备上,而不是上面提到的应用程序。

当配置以上指定 的应用协议和TTL溢出值时,将会显示以下报错:

application traceroute {

##

## Warning: statement ignored: unsupported platform (srx210h-poe)

##

application-protocol traceroute;

##

## Warning: statement ignored: unsupported platform (srx210h-poe)

##

ttl-threshold 30;

}

若需要了解Traceroute更多的类型,参考以下链接:

http://en.wikipedia.org/wiki/Traceroute

在大多数情况下,我们使用UDP traceroute或ICMP traceroute,下面两个示例说明如何配置一个应用程序集,以专门允许traceroute数据包。

  1. 对于基于Unix或Linux的操作系统来允许UDP的Traceroute

root@Router-A# show applications |display set

set applications application udp-trace protocol udp

set applications application udp-trace destination-port 33434-33534

  1. 配置允许ICMP的Traceroute,Note:将会允许所有ICMP类型数据包,如果有UDP还是需要结合上面一种实现方式

    application junos-icmp-all {

     term t1 protocol icmp;
    

    }

    application junos-ping {

     term t1 protocol 1;
    

    }

Note: This will permit all ICMP packet types.

也可以将上面两种方式进行结合使用:

[edit]

root# show applications

application trace-icmp {

term 1 protocol icmp;

}

application trace-udp {

term 2 protocol udp destination-port 33434-33534;

}

application-set trace-udp-icmp {

application trace-icmp;

application trace-udp;

}

如下拓扑:

在这里插入图片描述
当从Router-A发送Traceroute到Rotuer-B时, 10.10.10.1------------20.20.20.1,防火墙并不会创建会话,因为TTL小于等于1。
如下所示:
[edit]
root@Router-A# run traceroute 20.20.20.1
traceroute to 20.20.20.1 (20.20.20.1), 30 hops max, 40 byte packets
1 10.10.10.2 (10.10.10.2) 4.644 ms 4.654 ms 3.877 ms
2 20.20.20.1 (20.20.20.1) 12.605 ms 11.529 ms 6.266 ms

root@vSRX# run show log icmp-ping |match ttl
Jul 25 09:48:36
Jul 25 09:48:30 09:48:30.271369:CID-0:RT:flow_first_complete_session: ttl <=1 for transit pkt, skipping flow creation
Jul 25 09:48:30 09:48:30.271428:CID-0:RT:flow_first_complete_session: Sending icmp for ttl expiry
Jul 25 09:48:30 09:48:30.271429:CID-0:RT: packet dropped, ttl expiry.
Jul 25 09:48:30 09:48:30.281040:CID-0:RT:flow_first_complete_session: ttl <=1 for transit pkt, skipping flow creation
Jul 25 09:48:30 09:48:30.281087:CID-0:RT:flow_first_complete_session: Sending icmp for ttl expiry
Jul 25 09:48:30 09:48:30.281089:CID-0:RT: packet dropped, ttl expiry.
Jul 25 09:48:30 09:48:30.286239:CID-0:RT:flow_first_complete_session: ttl <=1 for transit pkt, skipping flow creation
Jul 25 09:48:30 09:48:30.286286:CID-0:RT:flow_first_complete_session: Sending icmp for ttl expiry
Jul 25 09:48:30 09:48:30.286287:CID-0:RT: packet dropped, ttl expiry.

同时当在设备上发送Traceroute时,设备会发送三个Traceroute数据包,如上所述,就会显示三个会话创建的记录,通过Wireshark抓包如下记录:
包含TTL超时及端口不可达的回复:

在这里插入图片描述
当从Rourter-A发送Traceroute到 VCP-30.30.30.30网段时,防火墙就会对应的创建会话:

Session ID: 805, Policy name: 1/4, Timeout: 60, Valid

In: 10.10.10.1/40044 --> 30.30.30.30/33437;udp, If: ge-0/0/2.0, Pkts: 1, Bytes: 40

Out: 30.30.30.30/33437 --> 10.10.10.1/40044;udp, If: ge-0/0/3.0, Pkts: 0, Bytes: 0

Session ID: 806, Policy name: 1/4, Timeout: 60, Valid

In: 10.10.10.1/40044 --> 30.30.30.30/33438;udp, If: ge-0/0/2.0, Pkts: 1, Bytes: 40

Out: 30.30.30.30/33438 --> 10.10.10.1/40044;udp, If: ge-0/0/3.0, Pkts: 0, Bytes: 0

Session ID: 807, Policy name: 1/4, Timeout: 60, Valid

In: 10.10.10.1/40044 --> 30.30.30.30/33439;udp, If: ge-0/0/2.0, Pkts: 1, Bytes: 40

Out: 30.30.30.30/33439 --> 10.10.10.1/40044;udp, If: ge-0/0/3.0, Pkts: 0, Bytes: 0

Total sessions: 3

会话超时时间是60秒。 UDP数据包

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值