1 / 69

IP 寻址与转发

IP 寻址与转发. 内容提要. 快速安全概览 IP 寻址(编址) IP 转发 And an anagram contest!. IP 包头的快速安全分析. 思维模式多于内容 全景思维的工作 …. 聚集于发送攻击. 忽略 ( 暂时 ) 其他人的攻击 : 交通分析( Traffic analysis ) 嗅探负载( Snooping payload ) 拒绝服务( Denial of service ) 主要聚焦于发送端可以利用弱点( Focus mostly on vulnerabilities sender can exploit ).

lee-sears
Download Presentation

IP 寻址与转发

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. IP 寻址与转发

  2. 内容提要 • 快速安全概览 • IP 寻址(编址) • IP 转发 • And an anagram contest!

  3. IP 包头的快速安全分析 思维模式多于内容 全景思维的工作…..

  4. 聚集于发送攻击 • 忽略 (暂时) 其他人的攻击: • 交通分析(Traffic analysis) • 嗅探负载(Snooping payload) • 拒绝服务(Denial of service) • 主要聚焦于发送端可以利用弱点(Focus mostly on vulnerabilities sender can exploit)

  5. IP包结构 4-bit Header Length 8-bit Type of Service (TOS) 4-bit Version 16-bit Total Length (Bytes) 3-bit Flags 16-bit Identification 13-bit Fragment Offset 8-bit Time to Live (TTL) 8-bit Protocol 16-bit Header Checksum 32-bit Source IP Address 32-bit Destination IP Address Options (if any) Payload

  6. IP 地址的完整性(Integrity) • 源地址应该是发送的主机 • 但, 谁来检查呢? • 你可以用任何源来发送包 • 检查为何困难?

  7. IP地址完整性的含义 • 为什么有人使用伪造的源地址? • 发起拒绝服务攻击 • 发送过多的包到目标 • … 让结点超载, 或链路导致结点超载 • 但: 受害者通过源地址能确定/过滤你 • 通过“哄骗spoofing”来躲避(Evade)检测 • 把别人的源地址放在包内 • 或: 使用很多不同的地址,因此不能被过滤 • 或: 给被哄骗的主机带来麻烦 • 伪造的主机被错误的指责 • 被哄骗的主机可能会从接收到收到返回交通

  8. 更多安全(Security Implications) • 版本字段 (4位) …. ? • 问题: 无经验的IPv6部署意味着有时可连接性超越安全强制 • 如, 防火墙规则仅对IPv4设置 • 头长度 (4 位) …. ? • 控制存在于IP选项中 • 如, 源路由让发送者控制通过网络的路径 – 即, 绕开安全的监控 • IP 选项通常在路由的慢通道中处理 • 允许攻击者,使路由随拒绝服务的压力 • 防火墙通常配置成在选项中丢弃包.

  9. TOS(服务类型)的安全内含? (8位) • 攻击者对他们的包设置TOS优先级? • 如果正常的流量不设置TOS, 那么网络更偏爱攻击包, 极大地增加了损害 • 如果网络根据TOS收费会怎样 … • … 攻击者伪造成受害者的原地址? • 今天,网络TOS通常不工作 • 由于收费非常困难 • TOS目前已经针对区分服务重新定义 • 后面内容讨论

  10. Offset=0 Nasty-at 包分块的安全含义? • 允许网络入侵监控/增强 • 如, 把攻击分布在多个块中 • 包监测无法匹配“签名signature” • 可以通过监控端记住之前的块来处理 • 但这加大状态的费用, 是攻击的另外一个方面 Offset=8 tack-bytes

  11. Offset=8 Offset=0 USERNAME NICE EVIL Offset=8 更多分块攻击 • 如果两个重叠块不一致怎样? • 网络监控如何知道接收端看到的是USERNAME NICE还是 USERNAME EVIL?

  12. Offset=65528 NineBytes 更多分块攻击 • 如果分块超过IP数据报的限制会怎样? • 13位字段最大尺寸: 0x1FFF = 8191字节偏移转换成最终的数据报 = 8191*8 = 65528数据报的最终长度 = 65528 + 9 = 65537 • 结果: 核崩溃 • 拒绝服务仅使用少数几个包 • 在现代操作系统中已经解决

  13. 更多的分块攻击 • 如果攻击者不在数据报中发送所有分块会怎样? • 接收端 (或防火墙) 不再保留接收到较长时间的 • State-holding 攻击

  14. TTL的安全含义? (8位) • 允许发现 topology(a la traceroute) • 可以提供包欺骗的提示 • 到达路由器时带有一个与该地址通常的包具有不同的TTL • 因为从攻击者到达路由器有不同的跳数 • 虽然这在路由变化时比较脆弱 • 初值对于发送者的操作系统有点不同. 这加上其他初始设置允许OS有手印(fingerprinting…) • 这就允许攻击推断出可能的脆弱点

  15. 余下的安全含义? • 对protocol 字段 (8位)没有显然的问题 • 仅仅只是合并处理 • 如果设置不正确, 下一层将发现包是病态的形式 • 坏的IP checksum字段 (16位)将使得包被网络丢弃 • 不是有效的攻击…

  16. IP编址

  17. IP 包结构 4-bit Header Length 8-bit Type of Service (TOS) 4-bit Version 16-bit Total Length (Bytes) 3-bit Flags 16-bit Identification 13-bit Fragment Offset 8-bit Time to Live (TTL) 8-bit Protocol 16-bit Header Checksum 32-bit Source IP Address 32-bit Destination IP Address Options (if any) Payload

  18. 地址的用途 • 路由器用其转发包到目标 • 非常缺乏标识符 (暂时忘记此吧) 聚焦于: 地址怎样用于路由

  19. IP 地址 • 今天的设计反映了必要的hacks • 没有人能从头设计这样一个系统 • 本讲最后会讨论一个更好的解决方案 • 但此方案对部署有大的修改….

  20. 第 2 层编址 • 典型地使用 MAC地址 • 唯一号烧到接口卡中 • 随机位串 • 没有位置信息 • 局域网基于此“flat”地址寻路 为什么在IP中不使用此方法?

  21. 第 2 层是局部的, 但第3层是全局的! • 将对所有的网络设备都有一项 • 必须记录下他们每个的位置 • 在其移动时更新表! • 两个问题: • 设备是纯数字 • 局部信息传播到各处 • 第2层: • 更少设备 • 局部信息仅在局部共享

  22. 编址目标: 可扩展路由 • 状态: 路由状态的限制 • 比主机数要少很多 • 变动: 路由表中变化率的限制 • 流量, 不一致性, 复杂性 对两者都极重要的 (使用单个项来覆盖更多地址)

  23. 聚焦为何不简单? • 移动性: 移动电脑, 手机等. • 多址: 很多实体有两个或者更多的ISP • 由来已久的重命名困难

  24. 另一编址问题: 稀少! • 地址耗尽: • 需要共享地址 • 无法满足每个人 • 一些国家每100人一个地址 • 极端地共享!

  25. 设计的问题 • 一个地址应该与什么相联系? • 电话网是一个含义不清的模型 • 固话: 号码反映了位置 (很难移动) • 手机: 号码反映了手机 (容易移动) • 地址应该有什么样的结构? 此结构的含义是什么? • 谁确定哪个人得到全局Internet的某个地址? 亮是如何做的隐含了什么?

  26. 00001100 00100010 10011110 00000101 IP地址 (IPv4) • 与某个interface接口相关联的唯一的32位数 • 在主机上, 在路由器上, … 连接到端口, 链路等. • 关联可以是长期的,也可以是短期的 • 使用dotted-quad 记号, 如, 12.34.158.5: 12 34 158 5

  27. 01010000 01000100 00010011 01110011 11110000 10110111 00110011 00000111 例 • 此地址是什么? • 怎样表示 68.115.183.7? 80.19.240.51

  28. 网络中的路由器 • 路由器将链路和网络连接在一起 • 必须转发包到目标 ... ... host host host host host host LAN 2 LAN 1 router router router WAN WAN Router

  29. 路由器发送包到正确的端口 包队列的位置依赖于交换机的设计 Node incoming links outgoing links Memory

  30. 1.2.3.4 1.2.3.5 转发表起到重要的作用 • 表将IP地址映射到输出接口 • 基于目标地址转发包 1.2.3.5 1 1.2.3.6 3 1.2.3.4 2 … … 1 2

  31. forwarding table 可扩展挑战 • 假定主机具有随机地址 • 那么路由器对每一个主机需要有一行 • 每个路由器中太多状态需要hold (为什么如此多的状态?) 1.2.3.4 5.6.7.8 2.4.6.8 1.2.3.5 5.6.7.9 2.4.6.9 ... ... host host host host host host LAN 2 LAN 1 router router router WAN WAN 1.2.3.4 1.2.3.5

  32. 两个CS中的普适技巧 • 当需要更多机动性时, 增加… • 一个非直接层 • 当需要更多可扩展性时, 加入… • 结构上增加分层

  33. U.S. 邮件系统中层次编址 • U.S.邮件地址 • Zip code: 94704 • 街区: Center Street • 街上的建筑: 1947 • 建筑位置: Suite 600 • 居住者: Scott Shenker • 转发U.S.邮件 • 把邮件递送到邮编所在的邮局 • 将信件分配给管此街区的邮递员 • 将信放到建筑/房间的邮箱中 • 将信件给合适的人 ???

  34. 都谁知道些什么? • 有人US邮政系统中有人知道所有房子在哪里吗? • 分布路由表于层次结构的每一层 • 每个可管理的水平上

  35. 层次结构 • Internet是一种“互联网inter-network” • 用于将网络连接在一起, 而非主机 • 形成了一个自然的两层结构: • WAN 发送到正确的 LAN (即, 发送到zip code) • LAN 发送到正确的主机 (即, 发送到房间) ... ... host host host host host host LAN 2 LAN 1 router router router WAN WAN LAN = 局域网Local Area Network WAN = 广域网Wide Area Network

  36. 00001100 00100010 10011110 00000101 层次编址 • 前缀是网络地址: 后缀是主机地址 • 12.34.158.0/23 是一个23位前缀 带有29地址 • Terminology: “Slash 23” 12 34 158 5 Network (23 bits) Host (9 bits)

  37. 11111111 00001100 00100010 11111111 10011110 11111110 00000101 00000000 IP地址和 23位子网掩码(Subnet Mask) Address 12 34 158 5 255 255 254 0 Mask

  38. 改进可扩展性 • 对附近的主机,标记成相同的前缀 • 1.2.3.0/24 左边的 LAN • 5.6.7.0/24 右边的 LAN 1.2.3.4 1.2.3.7 1.2.3.156 5.6.7.8 5.6.7.9 5.6.7.212 ... ... host host host host host host LAN 2 LAN 1 router router router WAN WAN 1.2.3.0/24 5.6.7.0/24 转发表

  39. 容易添加新的主机 • 不用更新路由器 • 如在右边新加一个主机5.6.7.213 • 不需要增加一个新的转发项 1.2.3.4 1.2.3.7 1.2.3.156 5.6.7.8 5.6.7.9 5.6.7.212 ... ... host host host host host host LAN 2 LAN 1 router router router host WAN WAN 5.6.7.213 1.2.3.0/24 5.6.7.0/24 forwarding table

  40. “Subnet” 术语 • 将LAN看成“子网subnets”的一个特殊情形 • 子网是一个区间,其中路由器在 “子网掩码”中不包含地址 • 可以是一个链路, 或LAN • 课本对子网有一个操作定义 • 从主机、交换机中移走所有接口 • 留下的区域就是子网

  41. Internet编址的历史 • 一直都是dotted-quad记法 • 一直都是网络/主机地址分离 (子网) • 但分离的方法却是随着时间而改变的

  42. 最初的Internet地址 • 前8位: 网络地址 (/8) • 后24位: 主机地址 认为256个网络已经够多的了!

  43. Nice Features • 传输的路由器查看哪个部分的地址? • 网络 • 地址空间的该部分是偏平的 • 对于256项不需要层次 • 余下地址仅与主机网络相关 • 但不提供足够的网络 • 未预测到泛在的ethernet

  44. 0******* 10****** 110***** ******** ******** ******** ******** ******** ******** ******** ******** ******** 接下来的设计: 分类地址 • A类: 首字节在 [0..127]间  假定 /8 (最高位 = 0) • 非常大的块 (如MIT拥有18.0.0.0/8) • B类: 首字节在 [128..191]间  假定 /16 (最高位 = 10) • 较大的块 (如 UCB 拥有128.32.0.0/16) • C类: [192..223]  假定 /24 (最高位 = 110) • 小块 (如, ICIR拥有192.150.187.0/24) • (作者房间过去用/25)

  45. 1110**** 11110*** ******** ******** ******** ******** ******** ******** 类地址 (续) • D类: [224..239] (最高位 1110) • 多播组(Multicast groups) • E类: [240..255] (最高位11110) • 保留未来使用 • 类地址将产生什么问题? • 只有三种尺寸 • 路由器最终会被太多C类地址所终结 (/24s) • 浪费地址空间

  46. 今天的编址: CIDR • CIDR = 无类域间路由Classless Interdomain Routing • 网络和主机地址间的划分是可变的 • 必须对地址和掩码都指定 • 澄清地址间的边界在哪里 • 分类地址使用前几位进行通信 • CIDR 需要显式掩码

  47. 00001100 00000100 00000000 00000000 11111111 11111110 00000000 00000000 CIDR 编址 使用两个32位数来表示网络. 网络号 = IP 地址 + 掩码 IP 地址 : 12.4.0.0 IP 掩码: 255.254.0.0 地址 掩码 Network Prefix for hosts 记着 12.4.0.0/15 或 12.4/15

  48. CIDR: 层次地址分配 • 前缀是Internet可扩展的关键 • 地址以连续块分配 (前缀) • 路由协议和包转发是基于前缀的 • 在接近主机的过程中递归地分裂成块 : : : 12.0.0.0/15 12.3.0.0/22 12.2.0.0/16 12.3.4.0/24 : : 12.3.0.0/16 12.3.254.0/23 : : 12.0.0.0/8 12.253.0.0/19 12.253.32.0/19 12.253.64.0/19 12.253.0.0/16 12.253.64.108/30 : 12.253.96.0/18 12.253.128.0/17

  49. 扩展性: 地址聚集 服务商(Provider)拥有201.10.0.0/21 (201.10.0.x .. 201.10.7.x) Provider 201.10.0.0/22 201.10.4.0/24 201.10.5.0/24 201.10.6.0/23 Internet中余下的路由器只用知道如何到达 201.10.0.0/21. 服务商(provider)可将 IP包导向到合适的客户.

  50. 聚集不总是可能 201.10.0.0/21 Provider 1 Provider 2 201.10.6.0/23 201.10.0.0/22 201.10.4.0/24 201.10.5.0/24 拥有201.10.6.0/23的Multi-homed客户有两个服务商. Internet的其他部分需要知道如何通过两个服务商都能到达目标.  /23 路由必须全局可见

More Related