From ad98620120fb298158db5c2caac3195824e22178 Mon Sep 17 00:00:00 2001 From: xking Date: Thu, 26 Dec 2024 10:24:29 +0800 Subject: [PATCH] =?UTF-8?q?update=20=20frr=EF=BC=8Cimpala?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- hive/impala.md | 15 +++ openwrt/frr-动态路由.md | 213 ++++++++++++++++++++++++++++++++---- 2 files changed, 209 insertions(+), 19 deletions(-) diff --git a/hive/impala.md b/hive/impala.md index 92663f2..65dfb99 100644 --- a/hive/impala.md +++ b/hive/impala.md @@ -13,3 +13,18 @@ refresh [table]; -- 刷新表table的元数据 refresh [table] partition [partition]; -- 刷新表table的partition分区元数据 ``` + + + + + + + + + +hive 重建元数据 + +```bash +MSCK REPAIR TABLE table_name; +``` + diff --git a/openwrt/frr-动态路由.md b/openwrt/frr-动态路由.md index 6be540e..c4b45bc 100644 --- a/openwrt/frr-动态路由.md +++ b/openwrt/frr-动态路由.md @@ -6,24 +6,131 @@ FRR 动态路由软件包 组件 这些配置行似乎来自于某种网络服务或路由器的配置文件,每一行都代表对一个特定的网络守护进程(daemon)的启用(yes)或禁用(no)设置。 -- `bgpd=no`:表示边界网关协议(BGP)守护进程被禁用。 -- `ospfd=no`:表示开放最短路径优先(OSPF)守护进程被禁用。 -- `#ospfd_instances=1,20`:这行以`#`开始,表示它是一个注释,不会被执行。如果启用,它可能用于指定OSPF守护进程的实例数量或特定的实例ID。 -- `ospf6d=no`:表示用于IPv6的OSPF守护进程被禁用。 -- `ripd=no`:表示路由信息协议(RIP)守护进程被禁用。 -- `ripngd=no`:表示用于IPv6的RIP新一代(RIPng)守护进程被禁用。 -- `isisd=no`:表示中间系统到中间系统(IS-IS)守护进程被禁用。 -- `pimd=no`:表示协议独立组播(PIM)守护进程被禁用。 -- `ldpd=no`:表示标签分发协议(LDP)守护进程被禁用。 -- `nhrpd=no`:表示下一代路由解析协议(NHRP)守护进程被禁用。 -- `eigrpd=no`:表示增强内部网关路由协议(EIGRP)守护进程被禁用。 -- `babeld=no`:表示Babel路由协议守护进程被禁用。 -- `sharpd=no`:可能是一个特定网络服务的守护进程,但通常不是一个标准的路由协议守护进程。可能用于测试或特定功能。 -- `pathd=no`:可能关联于路径计算元素协议(PCEP)或其他路径管理服务,用于网络路径计算和管理。 -- `pbrd=no`:表示策略基路由(PBR)守护进程被禁用。 -- `bfdd=no`:表示双向转发检测(BFD)守护进程被禁用。 -- `fabricd=no`:可能指网络织物守护进程,用于管理数据中心网络织物的配置和操作,但在标准网络协议中不常见。 -- `vrrpd=no`:表示虚拟路由器冗余协议(VRRP)守护进程被禁用。 + + +### 1. `frr` + +这是 FRRouting 的核心包,包含了 FRR 的基础框架和多个路由协议守护进程(如 RIP、OSPF、BGP 等)。安装该包后,你可以运行 FRR 的所有路由协议服务和工具。 + +### 2. `frr-babeld` + +Babel 是一种适用于 IP 网络的动态路由协议。这个包安装的是 **Babel 路由协议守护进程**,它用于支持 Babel 协议。Babel 是一种自适应的距离矢量协议,适用于小型到中型的网络。 + +- **作用**:用于动态路由发现和更新,特别适用于无线网络和 ad-hoc 网络。 + +### 3. `frr-bfdd` + +BFDD(BFD:Bidirectional Forwarding Detection)是一种快速检测路径故障的协议。这个包提供了 **BFD 守护进程**,可以帮助快速发现路由器之间的连接故障,并根据路由协议快速进行故障恢复。 + +- **作用**:用于加速故障检测,并使路由协议更快地重新计算路径。 + +### 4. `frr-bgpd` + +BGP(Border Gateway Protocol)是 Internet 上主要的外部网关协议。该包安装的是 **BGP 路由协议守护进程**,用于 BGP 配置和管理,支持 IPv4 和 IPv6 的路由交换。 + +- **作用**:用于与其他自治系统(AS)交换路由信息,常用于大规模网络(如互联网骨干网络)中的路由控制。 + +### 5. `frr-eigrpd` + +EIGRP(Enhanced Interior Gateway Routing Protocol)是 Cisco 开发的一种内部网关协议(IGP)。这个包安装的是 **EIGRP 路由协议守护进程**。 + +- **作用**:用于在同一自治系统内交换路由信息,EIGRP 是 Cisco 特有的协议,适用于企业网络。 + +### 6. `frr-fabricd` + +这是 **Fabric 路由协议守护进程**,用于支持 **数据中心网络中的 Fabric 路由协议**,主要用于网络设备间的直接连接,简化网络架构和拓扑管理。 + +- **作用**:通常用于大型数据中心的网络结构中,提供更高效的流量路由和管理。 + +### 7. `frr-isisd` + +IS-IS(Intermediate System to Intermediate System)是一种内部网关协议(IGP),主要用于大规模的服务提供商网络。这个包安装的是 **IS-IS 路由协议守护进程**。 + +- **作用**:用于在大型网络中进行高效的路由选择,IS-IS 主要在运营商和大规模网络中使用。 + +### 8. `frr-ldpd` + +LDP(Label Distribution Protocol)用于 MPLS 网络中,帮助路由器之间分配标签。该包安装的是 **LDP 守护进程**。 + +- **作用**:在 MPLS 网络中,帮助管理标签分发和路由决策,优化数据包的转发路径。 + +### 9. `frr-libfrr` + +这是 **FRR 的库包**,它提供了 FRR 所需的共享库。安装该包可以为其他 FRR 组件提供支持。 + +- **作用**:作为 FRR 的核心库文件,其他 FRR 组件依赖于它来提供基本的路由处理功能。 + +### 10. `frr-nhrpd` + +NHRP(Next Hop Resolution Protocol)是用于 IP 网络中查找下一跳信息的协议,特别适用于 VPN 和 IP 网络互联。这个包安装的是 **NHRP 守护进程**。 + +- **作用**:用于基于 NHRP 协议查找 IP 地址的下一跳,通常用于 VPN 和其他隧道协议中。 + +### 11. `frr-ospf6d` + +OSPFv3(Open Shortest Path First version 3)是用于 IPv6 网络的路由协议。这个包安装的是 **OSPFv3 路由协议守护进程**。 + +- **作用**:提供对 IPv6 网络的路由支持,OSPFv3 是 OSPF 的扩展版本,支持 IPv6 地址族。 + +### 12. `frr-ospfd` + +OSPF(Open Shortest Path First)是一个广泛使用的内部网关协议(IGP),它使用链路状态协议来计算最佳路径。这个包安装的是 **OSPF 路由协议守护进程**。 + +- **作用**:用于基于链路状态协议的路由计算,适用于大型企业网络中的路由配置。 + +### 13. `frr-pbrd` + +PBR(Policy-Based Routing)是基于策略的路由协议,允许根据数据包的内容(如源 IP、目标 IP 等)决定路由路径。这个包安装的是 **PBR 守护进程**。 + +- **作用**:提供基于策略的路由决策,允许对流量进行更细粒度的控制。 + +### 14. `frr-pimd` + +PIM(Protocol Independent Multicast)是用于组播路由的协议,适用于需要多播的应用。这个包安装的是 **PIM 守护进程**。 + +- **作用**:为网络提供组播支持,适用于需要组播(如视频流、广播等)的网络应用。 + +### 15. `frr-ripd` + +RIP(Routing Information Protocol)是一个距离矢量协议,适用于小型或中型的网络。这个包安装的是 **RIP 路由协议守护进程**。 + +- **作用**:实现 RIP 协议,进行路由信息的传播,适用于简单的内部网络。 + +### 16. `frr-ripngd` + +RIPng(RIP next generation)是 RIP 协议的扩展,支持 IPv6 网络。这个包安装的是 **RIPng 路由协议守护进程**。 + +- **作用**:提供 RIP 协议的 IPv6 支持,适用于 IPv6 网络中的动态路由。 + +### 17. `frr-staticd` + +Staticd 组件用于管理 **静态路由**,这些路由是手动配置的,并不通过动态路由协议传播。这个包安装的是 **静态路由守护进程**。 + +- **作用**:管理静态路由的配置,适用于不需要动态路由的网络部分。 + +### 18. `frr-vrrpd` + +VRRP(Virtual Router Redundancy Protocol)是一个用于提供虚拟网关冗余的协议。这个包安装的是 **VRRP 守护进程**。 + +- **作用**:提供网关冗余服务,保证网络的高可用性,当主网关故障时,自动切换到备用网关。 + +### 19. `frr-vtysh` + +VTYSH 是 **FRR 的命令行界面工具**,用于与 FRR 进程进行交互,配置和管理各种路由协议。 + +- **作用**:提供一个统一的命令行界面(CLI)来管理 FRR 配置,包括所有路由协议和 Zebra。 + +### 20. `frr-watchfrr` + +Watchfrr 组件是一个监控工具,用于检测 FRR 路由协议进程的健康状态并进行管理。 + +- **作用**:监控 FRR 各个路由协议守护进程的运行状态,确保路由协议的稳定性。 + +### 21. `frr-zebra` + +Zebra 是 FRR 的核心组件之一,负责将路由协议的路由信息传递给内核,并管理网络接口和静态路由。这个包安装的是 **Zebra 路由守护进程**。 + +- **作用**:与操作系统内核进行交互,管理路由表、接口配置等。 @@ -169,4 +276,72 @@ C(i) 192.168.192.0/24 0.0.0.0 1 self 0 - **R(n)** 类别的路由表示通过 RIP 协议学到的路由。它是通过其他路由器 `10.147.17.219` 学到的,度量值为 `2`,表示该路径的跳数是 2。 - 所有路由的下一跳信息和度量值都提供了路由信息的详细描述,表明如何到达不同的网络。 -这些路由信息可以帮助你了解 FRR 当前的 RIP 路由表,具体到哪些路由是直接连接的(如 `C(i)` 路由)以及哪些路由是通过 RIP 协议学习到的(如 `R(n)` 路由)。 \ No newline at end of file +这些路由信息可以帮助你了解 FRR 当前的 RIP 路由表,具体到哪些路由是直接连接的(如 `C(i)` 路由)以及哪些路由是通过 RIP 协议学习到的(如 `R(n)` 路由)。 + + + + + + + +如果你希望在 FRR 中 **指定具体的接口** 上启用 RIP 协议并广播路由信息,你可以通过 `interface` 命令来配置。与 `network` 命令不同,`interface` 命令可以直接指定哪些接口参与 RIP,而不必依赖于网络地址范围。 + +### 使用 `interface` 命令指定接口 + +在 FRR 中,如果你想在具体的接口上启用 RIP 协议并广播路由信息,步骤如下: + +1. **进入 RIP 配置模式**: 你首先需要进入 RIP 配置模式: + + ```plaintext + router rip + ``` + +2. **使用 `interface` 命令指定接口**: 你可以使用 `interface` 命令来为特定接口启用 RIP。比如,如果你想在接口 `eth0` 和 `tun0` 上启用 RIP,配置如下: + + ```plaintext + router rip + network 192.168.123.0 # 启用 RIP 广播 192.168.123.0 网络 + network 10.147.17.0 # 启用 RIP 广播 10.147.17.0 网络 + + # 通过 interface 命令启用 RIP + interface eth0 + ip rip enable # 在 eth0 上启用 RIP + + interface tun0 + ip rip enable # 在 tun0 上启用 RIP + ``` + + 上面的配置会确保 `eth0` 和 `tun0` 接口参与 RIP 协议。 + +### 另一种方法:通过 `passive-interface` 或 `no passive-interface` + +如果你只希望在某些接口上启用 RIP 而在其他接口上禁用,你可以使用 `passive-interface` 或 `no passive-interface` 命令。 + +- **`no passive-interface`**:启用该接口上的 RIP 协议。 +- **`passive-interface`**:禁用该接口上的 RIP 协议(该接口不会发送 RIP 更新,但会接收 RIP 更新)。 + +例如: + +```plaintext +router rip + network 192.168.123.0 # 启用 RIP 广播 192.168.123.0 网络 + network 10.147.17.0 # 启用 RIP 广播 10.147.17.0 网络 + + # 默认情况下,所有接口都可能是 passive(禁用 RIP),需要手动启用 + no passive-interface eth0 # 启用 eth0 接口的 RIP + no passive-interface tun0 # 启用 tun0 接口的 RIP + + passive-interface br-lan # 禁用 br-lan 接口上的 RIP +``` + +### 配置的解释: + +- `no passive-interface`:启用该接口的 RIP 协议,可以发送和接收 RIP 更新。 +- `passive-interface`:禁用该接口的 RIP 协议,只接收 RIP 更新,而不会发送。 + +### 总结: + +1. 使用 `interface` 命令来指定具体的接口启用 RIP。 +2. 使用 `no passive-interface` 来启用接口上的 RIP,使用 `passive-interface` 来禁用接口上的 RIP 更新。 + +这种方式可以确保你有更多的控制,确保 RIP 只在你指定的接口上广播。 \ No newline at end of file