简要说明OpenWrt的路由配置(单播路由/静态路由、策略路由和IGMP组播路由)。
一、分类
智能路由器最重要的功能就是IP路由。IP消息根据路由表进行路由,路由表中的路由项以各种方式进行分类。
按目的地址类型不同可划分
单播路由。
组播路由。
单播路由表存储各种路由协议发现的路由,形成路由表,根据路由表项的来源分为以下三类:
接口路由。,路由也称为直接路由,是在设置接口的IP地址和掩码时自动添加的路由,它是消息通向接口IP地址所在网络的路由。
静态路由。.网络管理员手动配置的路由当网络结构简单时,只需配置静态路由即可工作,适用于拓扑简单稳定的小型网络。静态路由不能自动适应网络拓扑的变化。当网络出现故障或拓扑发生变化时,网络管理员必须再次手动修改配置。
动态路由。动态路由协议发现并设置路由。常见的动态路由协议包括RIP、OSPF和IS-IS。路由表根据链路状态或网络拓扑的变化而动态生成和删除。常见的动态路由软件包括Zebra和Quagga。在智能路由器领域,一般只有一个互联网出口,所以不使用动态路由。
根据路由目的地址的不同
策略路由.又称源地址路由,它根据IP报文源地址、端口、报文长度和优先级灵活选择路由。
普通的目的地址路由。只根据消息的目的地址选择接口或下一跳地址。
按路由决策的方式不同
策略路由。,又称源地址路由,根据IP报文的源地址、端口、报文长度和优先级灵活选择路由。
普通的目的地址路由。只根据消息的目的地址选择接口或下一跳地址。
根据目的地与该路由器是否直接相连
直接路由。's目的网络直接连接到路由器。
间接路由。's目的网络没有直接连接到路由器。
缺省路由
另一个概念是,缺省路由,也称默认路由,指的是在路由器中找不到完全匹配的路由表条目后使用的路由。
如果报文的目的地址在路由表中没有找到匹配的路由,没有默认路由,那么该报文将被丢弃会向消息的源地址发送网络地址不可达的ICMP差错报文。
智能路由器的默认路由通常是通过DHCP或PPPoE自动获取下一跳地址后动态生成并写入路由表的。
二、单播路由
消息的目的地址为A类、B类和C类,路由表条目为单播路由。
目的IP地址告诉消息目的主机地址在哪里,而路由告诉消息如何到达目的地址。
网络上的每台路由器都做出独立的决定,将消息转发到距离目的地址更近的路由器,从而逐步将其路由到目标主机。
三、单播路由分类
单播路由表中保存了各种路由协议发现的路由并形成一张路由表,根据路由表项的来源来划分,通常分为以下3类:
接口路由。,路由也称为直接路由,是在设置接口的IP地址和掩码时自动添加的路由,它是消息通向接口IP地址所在网络的路由。
静态路由。.网络管理员手动配置的路由当网络结构简单时,只需配置静态路由即可工作,适用于拓扑简单稳定的小型网络。静态路由不能自动适应网络拓扑的变化。当网络出现故障或拓扑发生变化时,网络管理员必须再次手动修改配置。
动态路由。动态路由协议发现并设置路由。常见的动态路由协议包括RIP、OSPF和IS-IS。路由表根据链路状态或网络拓扑的变化而动态生成和删除。常见的动态路由软件包括Zebra和Quagga。在智能路由器领域,一般只有一个互联网出口,所以不使用动态路由。
四、route命令
ul>
五、查看路由表
- 每当增加一个接口 IP 时将自动创建一个直连的接口路由。对于通过 DHCP获得的 IP 地址,除了设置直连路由外还可能会设置网关的默认路由。
路由表格式
- 当前openwrt的IP为192.168.43.123。
- “route –n”命令来列出路由表项:-n 选项表示列出数字地址形式,而不是主机名或者域名。
- 第一行:是一个默认路由,这表明如果没有精确匹配路由,就会将IP报文发送到IP地 址192.168.43.1上。UG 表示一个启用的网关地址。br-lan表示出接口地址。
- 第二行:是一个接口路由,为局域网接口的路由项,表示局域网为192.168.43.0网段。 br-lan表示通过该网卡和局域网网络相连接。
- 第三行:是一个接口路由,表示目的地址是主机地址。这在接口配置IP和掩码时会默认自动设置上。如果不设置掩码则默认A类地址为8位掩码,B类地址为16位掩码,C类地址为24位掩码。
路由表的字段含义
-
对于给定的路由表项的路由标识(Flahs)通常有以下几种:
-
U:路由表项可以使用。
-
H:路由表项的目标地址是主机地址,即掩码为 32 位。
-
G:路由表项下一跳为网关。
-
R:动态路由算法生成的。
-
D:该路由通过重定向或者守护进程动态安装的。
-
M:该路由被路由守护进程或重定向报文修改。
-
A:该路由被 addrconf 安装。
-
C:缓存(cache entry)。
-
!:拒绝路由(reject route)。匹配这一条报文将丢弃。
-
六、路由的设置
- 使用ip命令和route命令均可对路由表进行管理,默认路由通过以下两个命令均进行设置:
- 这两个命令行为完全相同,只是ip命令使用 Netlink 接口设置到内核中,route 命令通 过传统的 ioctl 接口设置到内核中。Linux 内核已经不建议使用 ioctl 接口。
ip route add default via gw ip dev eth0 route add default gw gw ip dev eth0
- 查看路由信息。
-
ip route get命令
- 针对目的IP,如何来选择路由表项路由表中的信息包含了IP层的决策。采用最长匹配算法来匹配,如果有多个匹配则会随机选择一个作为路由,可以使用下面命令来查看匹配的路由。
七、路由功能的划分
- 为了系统的稳定性,操作系统将路由功能划分为两部分:
- 管理平面:也称为控制平面。是指用于路由学习,生成路由表的部分。Linux 用 户空间的程序就属于管理平面。
- 转发平面:也称数据平面(Data Plane)。转发平面是指系统中进行数据报文的接 收、查找路由表、根据路由表进行决策等的部分。转发平面在 Linux 内核中。
- 转发平面:也称数据平面(Data Plane)。转发平面是指系统中进行数据报文的接 收、查找路由表、根据路由表进行决策等的部分。转发平面在 Linux 内核中。
- 路由器可以实现转发面和管理平面的相互独立。为了做到控制平面和转发平面的分离,Linux 内核构建了一张转发表,专门用于指导数据报文的转发。用户空间的应用层软件形成控制平面的路由表,可能会有多种可选的路由规则,但路由软件系统会计算出一条最佳的路径然后写入内核中。两者之间通过接口(Netlink)来实现相互操作。在小型智能路由器上网络比较单一,路由表项不用动态生成,只有固定的路由表。因此一般不会使用quagga路由软件生成的控制平面的路由表,只有静态路由。在小型智能路由器上可以认为 两者完全相同。数据平面保存的路由表,也称为路由转发表(Forwarding Information Base, FIB),用来指导IP报文的转发,转发算法如下:
- 组织和存储选出的路由表项。
- 按照 LPM(最长掩码匹配)算法提供路由检索接口。
- 报文的转发过程为:首先网卡接口上接收报文,并查看报文的目的地址:然后根据目 的地址来查询转发表;最后按查询到的路径把分组报文转发出去。
八、增加静态路由的一个注意事项
- 在增加静态路由时需注意:在 Windows 下增加静态路由,必须设置有下一跳地址;在 Linux 下增加静态路由时,可以仅设置出接口而不设置下一跳地址。
- 如果增加静态路由时仅设置出接口而不设置下一跳地址,在一些没有开启ARP代理的设备上将会遇到不能连通网络的问题。因为使用出接口地址时,Linux 会认为目标地址 网络是直连可达的网络,将直接发出 ARP 请求来查询目标 IP 地址的 MAC 地址,如果路 由器没有启动 ARP 代理,就不会发出 ARP 响应消息,这时 Linux 就会因为找不到目标MAC地址而转发失败。
-
如果直接指定网关地址,那ARP请求就直接请求网关地址的MAC地址,然后进行报文转发。
九、静态路由配置
- 使用命令行对路由表进行设置时,在重启之后配置均需重新设置。OpenWrt 的静态路由配置在配置文件/etc/config/network的route配置节中,在启动过程中 netifd 模块会读取 该配置文件并进行设置。
- 可选的配置选项见下表:
演示案例
- 例如局域网还有一个192.168.9.0/24网络,那么我们将增加下面所示的配置,就 可以通过网关地址 92.168.6.10到达 192.168.9.0/24网络。
- 进行重启后,使用route -n 命令来查看,路由表增加了以下内容:
十、策略路由
- 待续
十一、IGMP组播路由
- 待续
内容来源网络,如有侵权,联系删除,本文地址:https://www.230890.com/zhan/70027.html