# 多备用线路

## 概述

多备用线路配置是一种高可用性解决方案，允许为传输隧道设置多条备用线路。当主线路出现故障时，系统会自动切换到备用线路，确保服务的连续性和稳定性。

### 功能特点

- 支持多个转发端点和多级转发
- 按照预设顺序依次使用备用线路
- 自动故障检测和切换
- 主线路恢复后自动回切

### 适用场景

- 对服务可用性要求较高的生产环境
- 网络环境不稳定的情况下
- 需要确保服务不间断运行的关键业务

## 前提条件

- 已有可用的主转发端点
- 至少一个备用转发端点
- 管理员权限以配置服务器和转发端点

## 配置步骤

### 步骤 1：添加服务器并选择主转发端点

首先创建一个新的服务器配置，并选择主要的转发端点作为默认路由。

<img src="https://img.coderluny.com:444/uploads/f82fe47b-93d2-484c-81ec-358d08de9959.png" width="600" alt="选择主转发端点">

### 步骤 2：配置备用线路

在服务器的"高级选项"中找到"自定义配置"部分，添加备用线路配置。以下示例配置了两个备用转发端点（ID为14和15）：

```json
{
    "fallback_fwder_configs": [
        {
            "fwder_ids": [
                14, 15
            ]
        }
    ]
}
```

**配置说明：**
- `fallback_fwder_configs`：备用转发配置数组
- `fwder_ids`：备用转发端点的ID列表，默认轮训。

<img src="https://img.coderluny.com:444/uploads/b2cd0e64-943f-4f40-a5ff-2d94c8061210.png" width="600" alt="配置备用线路">

### 步骤 3：部署服务器

完成配置后，复制生成的安装脚本并在目标服务器上执行安装。

### 步骤 4：添加端口配置

在端口管理界面中，选择刚才配置的服务器来添加所需的端口。

<img src="https://img.coderluny.com:444/uploads/597d21fa-9112-4731-ae2d-376af9457f16.png" width="600" alt="添加端口配置">

## 工作机制

配置完成后，系统将按以下逻辑运行：

1. **正常状态**：使用主转发端点（IX组）处理所有流量
2. **故障检测**：当主转发端点全部不可用时，系统检测到故障
3. **自动切换**：启用备用转发端点（14, 15）继续提供服务
4. **故障恢复**：当主转发端点部分或全部恢复时，系统自动切回主线路

## 重要注意事项

> ⚠️ **切换延迟警告**
> 
> 备用服务器之间的切换存在几分钟的延迟，特别是在故障恢复场景下。例如：
> - 从主线路切换到备用线路：约2-5分钟
> - 从备用线路回切到主线路：可能需要3-8分钟
> 
> 请在规划服务可用性时考虑这一延迟因素。

## 最佳实践

1. **定期测试**：定期测试备用线路的可用性
2. **监控配置**：设置适当的监控和告警机制
3. **文档记录**：记录所有转发端点的配置信息
4. **容量规划**：确保备用线路具备足够的带宽和处理能力


完整配置格式:
备用为传统模式转发端点轮训
```json
{
    "fallback_fwder_configs": [
        // 第一个备用
        {
            "fwder_ids": [
                14, 15       // 转发端点ID， 默认使用round robin 轮训
            ],

        },
        // 第二个备用
         {
            "fwder_ids": [
                10, 12       // 转发端点ID， 默认使用round robin 轮训
            ]
        }
    ]
}
```
备用为传统模式转发端点, 延迟优选模式
```json
{
    "fallback_fwder_configs": [
        // 第一个备用
        {
            "fwder_ids": [
                14, 15       // 转发端点ID， 默认使用round robin 轮训
            ],
            "detail": {
                "Hammer": {
                    "fwder_select_mode": "BestLatency", // 支持: BestLatency, FallBack, RoundRobin, Random
                }
            }

        },
        // 第二个备用
         {
            "fwder_ids": [
                10, 12       // 转发端点ID， 默认使用round robin 轮训
            ]
        }
    ]
}
```
备用为转发链模式配置:
```json
{
    "fallback_fwder_configs": [
        // 第一个备用
        {
            "fwder_ids": [
                14, 15       // 链顺序, 流量依次经过14->15
            ],
            "detail": {
                "HammerChain": {
                    "smart_select": true,  // [可选] 默认: true]
                    "fwd_chain_fixed_hops_num": 0 // [可选] 默认: 0
                }
            }

        }
    ]
}
```