710 likes | 790 Vues
域间路由. 罗忠文 http://xgxy.cug.edu.cn/rjgcx/lzw 内容取自 UCB 的教程 24035234@qq.com. 所讲内容 ?. 讲完了基础 ( 可靠性 , 路由 ) 讲完了当今网络架构的基础 名字( Naming ) , web, TCP 现在重新回到基础 拥塞控制 路由 : 域间和高级课题 然后讲各种主题 cs: 以太网( Ethernet ) , 无线( wireless ) , (安全) security 等. 路由. 提供网络间的路径 前缀指地址的 “ 网络 ” 部分 目前为止 , 仅考虑在某个域内的路由
E N D
域间路由 罗忠文 http://xgxy.cug.edu.cn/rjgcx/lzw 内容取自UCB的教程 24035234@qq.com
所讲内容? • 讲完了基础 (可靠性, 路由) • 讲完了当今网络架构的基础 • 名字(Naming), web, TCP • 现在重新回到基础 • 拥塞控制 • 路由: 域间和高级课题 • 然后讲各种主题cs: • 以太网(Ethernet),无线(wireless),(安全)security等.
路由 • 提供网络间的路径 • 前缀指地址的“网络”部分 • 目前为止,仅考虑在某个域内的路由 • 所有路由器都有相同的路由度量 (最短路径) • 在此配置下,许多问题都可以忽略…. • 无自治: 中心管理控制 • 没有私密问题:中心管理控制 • 没有策略问题:中心管理控制 • 没有其他的了!
Internet不仅只有一个域… • Internet不只是一组没有结构的网络 • “网络”是指前缀 • Internet由一组“自治系统”组成 • 独立运行的网络,一些是商业 ISPs • 目前超过30,000个自治系统 • 如AT&T, China Telecom, France Telecom, UCB, IBM, Intel, etc. • 自治系统有时也称为“域” • 因此“域间路由”
Internet: 大量自治系统 Large ISP Large ISP Stub Small ISP Dial-Up ISP Access Network Stub Stub
路由分三层 • 位于单个网络中: 到达每个主机 • 将在“链路层”讲义中讲(Ethernet等) • 域内(Intradomain):网络间路由 • 前面的路由讲义中讲过了 • 域间(Interdomain): 自治系统间的路由 • 今天的内容 • 需要域间路由协议 • BGP是当前的标准
一个全新的路由策略 • 网络寻路的思想早在Internet之前就已经熟知 • Dijkstra's algorithm 1956 • Bellman-Ford 1958 • 能实现其自己私有策略的“自治系统”的说法是新的 • 匆忙设计出的BGP就是为了响应此需求 • 自此以后,它使我们迷惑不解…..
R R2 R1 R3 谁使用BGP? AS2 AS1 BGP 边界路由器 内部路由器 • 两种类型的网络 • 边界路由器 (Edge), 内部路由器 (Core)
you can reachnet A via me R R2 R1 R3 traffic to A table at R1: destnext hop A R2 BGP的目的 AS2 AS1 BGP A border router internal router 跨自治系统共享连接信息
IGP: Intradomain routing Example: OSPF I-BGP R R1 R4 R5 R2 R3 AS1 announce B AS3 border router internal router B I-BGP 和 E-BGP IGP A E-BGP AS2
3 2 2 4 9 6 3 1 边界路由 内部路由 进一步细节 • 提供内部可达 (IGP) • 学习路由到外部目标 (eBGP) • 分布式外部学习路由内部的 (iBGP) • 选择最近出口 (IGP)
余下的讲义... • BGP为什么是这样方式的动机 • 两个主要问题….. • 讨论域间路由的一些问题 • 解释BGP的一些细节 • 非基础的, 只是一系列专门的设计决策 • 努力不涉及此部分的内容….
形成域间路由的考虑因子 • 无法使用之前路由方案的两个主要原因
1. 自治系统(AS)是自治的 • 希望选择其自己的内部路由协议 • 不同的算法和度量 • 希望基于策略自由路由到外部 • “我的流量不能在竞争者的网络中传播” • “我不希望在我的网络中携带传输流量” • 无法表示成整个Internet的“最短路径”! • 希望保持其连接和策略私有 • 将揭示商业关系, 网络结构
2. 自主系统拥有商业关系 • 自主系统间的三种基本关系 • 自主系统A可以是自主系统B的客户 • 自主系统A可以是自主系统B的提供商 • 自主系统A可以是自主系统B的对等体 • 商业实现 • 客户付费给提供商 • 对等体相互不付费 • 交换差不多相等的流量 • 策略实现: 包流遵循金钱流 • “当发送流量时, 相对于对等体更偏好到客户, 相对于服务商更偏好对等体” • “不把一个服务商的流量带到另一个服务商”
商业关系 自主系统间的关系 商业含义 • Customer pay provider • Peers don’t pay each other customer provider peer peer
路由遵循金钱! • 对等体提供其客户间的传输 • 对等体不提供两个对等体间传输 禁止的流量 允许的流量
自主系统层次拓朴 • 目标是IP前缀 (如, 12.0.0.0/8) • 结点是自主系统 (ASes) • 内部被隐藏 • 链路: 连接和商业关系 4 3 5 2 6 7 1 Client Web server
我们可以使用何种路由算法? • 要点是策略和私密性 • 无法使用最短路径 • 域没有任何公共的度量 • 策略选择可能不是最短路径 • 无法使用链路状态 • 可能需要泛滥策略偏好和拓朴 • 可能违反私密性
路由的基本要求 • 避免环和死路 • 如何同时满足基本要求和允许自由策略? • 避免环的最简单方式? • 路径向量!
2 路径向量路由 • 距离向量路由扩展 • 支持灵活路由策略 • 更快的环路检测 (没有count-to-infinity) • 主要思路: 公告整个路径 • 距离向量:对每个目标d发送距离度量 • 路径向量: 对每个目标d发送整个路径 “d: path (2,1)” “d: path (1)” 3 1 数据流量 数据流量 d
2 更快环路检测 • 结点可以很容易检测环路 • 结点在路径中查找其自己的结点标识 • 例, 结点1看到其自己在路径“3, 2, 1”中 • 结点可以简单地丢弃有环路径 • 例, 结点 1 简单地丢弃公告 “d: path (2,1)” “d: path (1)” 3 1 “d: path (3,2,1)”
2 3 1 灵活策略 • 每个结点可应用局部策略 • 路径选择: 使用哪条路径? • 路径输出: 公告哪条路径? • 例 • 相对于“2,1”结点2可能更偏好路径“2,3,1” • 结点1可能不让结点3知道路径“1, 2”
选择 vs 输出 • 选择策略 • 决定我希望我的流量取哪条路径 • 输出策略 • 决定我愿意携带谁的流量 • 注: • 我携带的任何流量将遵循同样的路径, 因此两者之间有联系 • 从协议的视角, 决策可以是任意的 • 能依赖于整个路径 (PV方式的优点)
示例 路由输出 路由选择 Customer Primary Competitor Backup 选择:控制网络中出去的流量输出:控制网络中进来的流量 数据流方向与路由公告方向相反
标准策略示例 • 传输网络: • 选择: 偏好序列“客户->对等体->提供商” • 输出: • 让客户使用你的任何路由 • 让任何路由通过你到你的客户 • 不输出给在路由中的人(毒性反转) • 阻塞所有其他的 • Multihomed (nontransit) 网络: • 输出: 不替其他域输出路由 • 选择: 优先选择原始的,其次选择备份的 • 直接发送到对等体
策略改变的领域 • ISP现在是“眼球eyeball”和/或“内容”ISP • 更少关注“传输”, 更多关注客户属性 • 目前,还没有实用的系统策略
路径向量策略路由的问题 • 可达性 • 安全 • 性能 • 缺乏独立 • 策略振荡
可达性 • 在正常的路由中, 如果图是连接的,可达性能保证 • 对于策略路由,这并不总能保证 Provider Provider AS 1 AS 3 AS 2 Customer
安全 • 某自主系统可能声称其能达某个前缀,但真实情况是其无法到达路由 (黑洞流量) • 不针对策略和路径向量的问题 • 其重要性是由于自治系统的自治 • 可解决: 让自治系统“证明”其有路径 • 注: 自治系统也可能有诱因沿与公告的不同的路径转发包 • 告诉客户关于虚构的最短路径… • 解决更困难!
性能中不成问题的问题 • 内部路由 (non) • 域典型地使用“热土豆hot potato”路由 • 不总是最优的, 但经济有效的 • 策略不是关于性能的 (non) • 因此策略选择的路径不是最短的 • 策略相容路径中选择 (non) • 基于最少AS跳数选取, 和实际延时没有关联 • 20%路径膨胀至少5个路由器跳
性能(示例) • AS路径长度可能误导 • 自主系统可能有许多路由器层跳数 BGP 说路径4 1 比路径3 2 1好 AS 4 AS 3 AS 2 AS 1
实际性能问题 • 收敛时间: • BGP 中断运转是Internet问题的最大源 • 主要是由于缺乏孤立
缺乏孤立性: 动力学 • 如果路径有变化, 路径必须将此变化重新向每个上游结点公告 • 这对距离向量为什么不是问题? • “Route Flap Damping”假定支持此, (但结果是产生更多问题) BGP updates per day (100,000s) 10 8 6 4 2 0 Date (Jan - Dec 2005) Fig. from [Huston & Armitage 2006]
缺乏孤立性: 路由表大小 • 每个BGP路由器必须知道到每个其它IP前缀的路径 • 但路由器内存昂贵,从而受到限制 • 前缀数超过线性增加 • 当前研究的主题 Number of prefixes in BGP table 180000 Fig. from [Huston & Armitage 2006] 100000 Jan ’02 Jan ’06
Five Minute Break Any questions?
1 2 3 由于策略产生的固有振荡 依赖于策略的相互作用 “1”到达“0”更偏好 “1 3 0”而非 “1 0” 1 3 0 1 0 0 2 1 0 2 0 3 2 0 3 0
1 2 3 由于策略产生的固有振荡 初始: 结点 “1”, “2”, 和 “3” 仅知道到 “0”的最短路径 1 3 0 1 0 0 2 1 0 2 0 3 2 0 3 0
1 2 3 由于策略产生的固有振荡 “1” 向“2”公告其路径“1 0” 1 3 0 1 0 advertise: 1 0 0 2 1 0 2 0 3 2 0 3 0
1 2 3 由于策略产生的固有振荡 1 3 0 1 0 0 2 1 0 2 0 3 2 0 3 0
1 2 3 由于策略产生的固有振荡 “3”向“1”公告其路径 “3 0” 1 3 0 1 0 advertise: 3 0 0 2 1 0 2 0 3 2 0 3 0
1 2 3 由于策略产生的固有振荡 1 3 0 1 0 0 2 1 0 2 0 3 2 0 3 0
1 2 3 由于策略产生的固有振荡 “1”从“2”收回其路径 “1 0”,因为不再使用 1 3 0 1 0 withdraw: 1 0 0 2 1 0 2 0 3 2 0 3 0
1 2 3 由于策略产生的固有振荡 1 3 0 1 0 0 2 1 0 2 0 3 2 0 3 0
1 2 3 由于策略产生的固有振荡 “2” 向 “3” 公告其路径“2 0” 1 3 0 1 0 0 2 1 0 2 0 3 2 0 3 0 advertise: 2 0
1 2 3 由于策略产生的固有振荡 1 3 0 1 0 0 2 1 0 2 0 3 2 0 3 0
1 2 3 由于策略产生的固有振荡 “3” 从 “1” 回收其路径 “3 0” 因为不在使用 1 3 0 1 0 withdraw: 3 0 0 2 1 0 2 0 3 2 0 3 0
1 2 3 由于策略产生的固有振荡 1 3 0 1 0 0 2 1 0 2 0 3 2 0 3 0
1 2 3 由于策略产生的固有振荡 “1” 向 “2”公告其路径 “1 0” 1 3 0 1 0 0 2 1 0 2 0 3 2 0 3 0
1 2 3 由于策略产生的固有振荡 1 3 0 1 0 0 2 1 0 2 0 3 2 0 3 0