路由子系统——基本概念与高级路由
来源:互联网 发布:npm 淘宝镜像安装失败 编辑:程序博客网 时间:2024/05/06 04:21
本文讨论IPv4的路由子系统。(IPv6对路由的处理不同)。
基本概念
关于路由子系统
路由子系统工作在三层,用来转发入口流量。
路由子系统主要涉及 路由器、路由、路由表等概念。
- 路由器: 配备多个网络接口卡(NIC),并且能利用自身网络信息进行入口流量转发的设备。
- 路由: 流量转发,决定目的地的过程
路由表:转发信息库,该库中储存路由需要本地接收还是转发的信息, 以及转发流量时所需要的信息。(即,信息库用来判断,要不要转发,如果要转发,向哪里转发).
路由器有多张网卡,但有多张网卡的设备不一定就是路由器
实际上,出于以下等目的,非路由器可能有多张网卡。
高可用性: 在某个NIC故障时,主机可以利用其他NIC继续工作。
更强的路由能力: 不同NIC连接不同局域网,但是不转发局域网间流量。
多路传输: 多个NIC进行捆绑,提高网络载荷。
地址
定向广播:
- 子网广播:目的地址为本地子网的广播包。
- 定向广播:目的地址为远端子网的广播包。
定向子网广播针对ICMP ECHO REQUEST做特殊处理,以避免恶意攻击。
可路由地址与不可路由地址
可路由地址: 一般的全球地址
不可路由地址: 本地地址 + 私有地址
不可路由地址,私有地址和本地环回地址不可路由。 当局域网(私有地址)的主机要与非该局域网的主机通信时,需要通过NAT来隐藏不可路由的子网。
主地址 与 辅助地址
出于如下一些目的,同一NIC可能需要配置多个IP。
- 一台主机上运行多项服务,而不同服务可能需要不同IP。(这也可以作为简单的防火墙)
- 由于硬件缺乏等原因,需要通过一块NIC将两个子网连接起来。
同一NIC可以配备多个IP地址,每个IP地址都需要相对应的提供子网掩码(用户没配置时,系统会自动提供)。(只有配置了子网掩码,才能识别出那些地址通过该接口可达)。
在linux中,同一 NIC 上的IP地址被划分为 主IP地址 和 辅助IP地址。 一个子网掩码只能有一个 主IP地址。
当子网覆盖的地址范围发生重叠时,有可能出现 同一个地址 既对应某个子网掩码的辅助地址, 又对应于另一个子网掩码的主地址。举个例子: 在接口eth0上原先有两个地址:10.0.0.1/24, 10.0.0.2/24. 其中10.0.0.1/24 对应子网掩码10.0.0.255的主地址; 当我们想eth0再添加一个地址 10.0.0.3/25 时, 10.0.0.3/25 既关联到子网掩码10.0.0.255的辅助地址, 又关联到子网掩码10.0.0.127的主地址。
路由表
特殊路由
当路由器收到一个封包时,该封包有两个流向: 本地接收 或 转发。
linux默认有两张路由表,分别针对上面两种流向的封包。
- 用于本地地址的路由表:从该表查找成功,则表明封包发给自己,需要传递到相邻的更高层协议。
- 用于其他地址的路由表:该表数据项可用户手动插入 , 或者有路由协议动态插入。
路由类型与动作:
+ 转 发:默认动作,当封包与路由表中的表项想匹配时,执行此动作
+ 黑 洞:丢弃封包
+ 不可到达:丢弃封包,生成ICMP主机不可达消息
+ 禁 止:丢弃封包,生成ICMP被过滤消息
+ 放 弃:与策略路由联合使用
路由缓存
路由表中的项可能达到几十万条,因此需要较小的路由缓存表。
Linux将路由缓存分为两部分:
- 协议相关的缓存 ——缓存框架部分
- 协议无关的缓存(DST)——嵌套在第一部分
路由表 VS 路由缓存
路由表使用子网地址的集合, 而路由缓存项与单个IP地址关联。(因此他们使用的查找算法也不同)
查找
最大前缀匹配:到达一个目的地址可能有多条路由,需要使用贪心匹配。
.
- 路由子系统——基本概念与高级路由
- 路哟子系统——高级路由(留坑)
- 路由子系统——Scope
- 路由子系统——路由查找(留坑)
- 高级路由
- 路由子系统之初始化
- laravel 学习笔记——路由(路由与控制器)
- laravel 学习笔记——路由(路由与控制器)
- Laravel——路由(路由与控制器)
- Laravel ——路由(中间件与路由组)
- Laravel 学习笔记——路由(路由与控制器)
- laravel 学习笔记——路由(路由与控制器、资源路由)
- nat路由与路由
- 路由子系统之路由表组织结构
- 路由的基本概念介绍
- DHCP基本概念 -- 路由
- angular路由基本概念
- 路由的几个基本概念-直连路由/网关路由/主机路由/网络路由/动态路由/静态路由/默认路由
- WIN7下,用Eclipse/NDK/CDT编译Cocos2dx的工程
- BaseAnimation是基于开源的APP,致力于收集各种动画效果(最新版本1.3)
- AWS 下 Ubuntu 安装最新XAMPP 实操
- Java多线程
- android 带箭头的textview文字伸缩效果
- 路由子系统——基本概念与高级路由
- 设计模式 一个示例让你明白适配器模式
- IOS中延时执行的几种方式的比较和汇总
- 【教程】【PDF】Python2.7教程
- Unix高级环境编程_atexit
- 好玩的WPF第二弹:电子表字体显示时间+多彩呼吸灯特效按钮
- struts2 注解配置
- 分支-03 三天打鱼两天晒网(15)
- 近期R学习概况