编辑: cyhzg 2019-07-02
NAT 如何处理 ICMP 分段 目录 简介 先决条件 要求 使用的组件 规则 例1案例

2 案例

3 摘要 相关信息 简介 本文档说明在配置 NAT 过载时,网络地址转换 (NAT) 如何处理 Internet Control Message Protocol (ICMP) 分段.

有关 NAT 过载的信息,请参阅 NAT 常见问题. ICMP 分段的处理方式取决于 NAT 转换表的状态以及 NAT 路由器接收 ICMP 分段的顺序.我们将 查看三种不同的情况,从172.16.0.1 向172.17.1.2 发送两个 ping 命令,每个命令长度为

3600 字节(三个 IP 分段). 先决条件 要求 本文档没有任何特定的要求. 使用的组件 本文档不限于特定的软件和硬件版本. 规则 有关文档规则的详细信息,请参阅 Cisco 技术提示规则. 例1在此方案中,我们将看到 NAT 在转换表中创建一个完全扩展转换条目.完成后,如果 NAT 池中没 有任何其他可用地址,NAT 便会丢弃在数据包第一个分段(分段 0)之前收到的所有分段. 开始时,池中只有一个地址出现过载;

NAT 转换表为空;

NAT 配置如下: ip nat pool POOL1 10.10.10.3 10.10.10.3 prefix-length

24 ip nat inside source list

5 pool POOL1 overload access-list

5 permit 172.16.0.0 0.0.0.31 让我们看看当数据包开始到达 NAT 路由器时会发生何种情况. 数据包

1 分段

0 到达,NAT 创建一个完全扩展转换条目.随后,NAT 转换并转发数据包

1 分段0.此时转换表如下:Pro Inside global Inside local Outside local Outside global icmp 10.10.10.3:24320 172.16.0.1:24320 172.17.1.2:24320 172.17.1.2:24320请注意 上面转换表中的数字 24320.它是 IP 数据报的 ICMP 报头中包括的 ICMP 标识值.只有 IP 数 据报的分段

0 包含此 ICMP 报头.要确定多个分段是否属于同一个数据包,NAT 需要跟踪 IP 标识值,该值位于来自原始 IP 数据报的所有分段的 IP 报头中.如果有多个分段与创建扩展转 换的分段

0 具有相同的 IP 标识值,NAT 将使用相同的扩展转换条目转换这些分段.有关 IP 标识字段的更多信息,请参阅 RFC

791 . 有关 ICMP 标识字段的更多信息,请参阅 RFC

792 . 1. 数据包

1 分段

2 和数据包

1 分段

1 到达.由于这些分段属于包含(创建转换的)分段

0 的同 一个数据包,因此 NAT 使用上述转换条目转换和转发这些分段.目标设备收到数据包

1 的所 有分段并发送应答. 2. 数据包

2 分段

1 到达.由于这是新的数据包,其IP 标识值与 NAT 所记录的任何值均不匹配 .因此,NAT 无法使用现有转换.它也不能创建新的转换,因为已有一个完全扩展转换条目 ,而且没有用于创建另一个条目的 ICMP 标识.NAT 丢弃数据包

2 分段 1. 3. 数据包

2 分段

0 到达.NAT 可以使用上述转换,因为 ICMP 标识匹配.(一组 ping 中的所有 ping 使用同一个 ICMP 标识号.)这时,NAT 记录此数据包的 IP 标识.NAT 转换并转发数 据包

2 分段 0. 4. 数据包

2 分段

2 到达.此时 NAT 可以使用上述转换,因为其 IP 标识值与上一步记录的一个 NAT 匹配.NAT 转换并转发数据包

2 分段 2.目标设备仅接收分段

0 和2(分段

1 丢失 ),因此不发送应答. 5. 案例

2 在此方案中可以看到,如果第一个分段(分段 0)之外的分段首先到达,NAT 将创建一个简单转换 ,前提是 NAT 池中有一个尚未用于完全扩展转换的地址. 开始时,NAT 池中只有一个地址,NAT 转换表为空,配置如下: ip nat pool POOL1 10.10.10.3 10.10.10.3 prefix-length

下载(注:源文件不在本站服务器,都将跳转到源网站下载)
备用下载
发帖评论
相关话题
发布一个新话题