vSRX:环回接口上的几个公共地址

网络工程 BGP 杜松-朱诺斯 杜松-srx
2022-03-01 23:49:53

当我尝试在 vSRX 集群的环回接口上配置多个 IP 地址时遇到问题。

这是我的设置(在 gns3 中):

在此处输入图像描述

vSRX-1 和 2 处于集群模式。VyOS-1 和 2 是模仿我们实际 ISP 的 BGP 路由器。每个 vSRX 都有与相应 VyOS 路由器的活动 BGP 会话;此设置仅用于冗余(无负载平衡)。vSRX-1 和 VyOS-1 共享一个 /30 网络,vSRX-2/VyOS-2 共享另一个 /30。

我们的 ISP 给了我们一个私有号码,我们通过 BGP 宣布了一个 /28 网络。

关于我们的集群设置:

由于 reth 接口一次只能在一个节点上处于活动状态,因此 WAN 接口是非 reth 接口。LAN 接口位于冗余组中。

一些公共 IP 需要托管在 vSRX 上(用于目标 nat 和 VPN),因为 WAN 接口在发生故障时不一致,我需要在环回接口上设置公共 IP 地址。

问题来了。

如果我尝试以下设置

# 显示接口 lo0        
单元 0 {
    家庭网{
        地址 XX6.97/28;
        地址 XX6.98/32;
    }
}

提交失败并出现以下错误:

# 犯罪
错误:重叠子网配置在 lo0 下
[编辑接口 lo0 unit 0 family inet]
  '地址 XX6.98/32'
     配置了重叠子网
错误:配置签出失败

如果我尝试以下配置

# 显示接口 lo0
单元 0 {
    家庭网{
        地址 XX6.97/28;
        地址 XX6.98/28;
    }
}

路由已正确挂载,但 lo0 只有一个 IP:

# 运行显示路线
[..]
XX6.96/28 *[直销/0] 16:56:19
                    > 通过 lo0.0
XX6.97/32 *[本地/0] 16:56:19
                      本地通过 lo0.0
[..]
# 运行显示接口 lo0.0 简洁           
接口 Admin Link Proto 本地 远程
lo0.0 up up inet XX6.97/28

如果我尝试:

# 显示接口 lo0
单元 0 {
    家庭网{
        地址 XX6.97/32;
        地址 XX6.98/32;
    }
}

lo0.0 具有两个 IP,但缺少到 XX6.96/28 的路由(因此,不由 BGP 传播):

# 运行显示接口 lo0.0 简洁   
接口 Admin Link Proto 本地 远程
lo0.0 向上 inet XX6.97 --> 0/0
                                            XX6.98 --> 0/0
# 运行显示路线  
[..]
XX6.97/32 *[直接/0] 00:01:43
                    > 通过 lo0.0
XX6.98/32 *[直接/0] 00:01:43
                    > 通过 lo0.0
[..]

知道我在做什么错吗?

你觉得集群设计好看吗?

更新。BGP配置:

设置路由选项自治系统 65000
设置协议 bgp log-updown
设置协议 bgp 组 PEER-PRIMARY 类型 外部
设置协议 bgp 组 PEER-PRIMARY 描述 "Peer primary"
设置协议 bgp 组 PEER-PRIMARY log-updown
设置协议 bgp 组 PEER-PRIMARY 导出 PEER-PRIMARY-OUT
设置协议 bgp 组 PEER-PRIMARY peer-as XX1
设置协议 bgp 组 PEER-PRIMARY 邻居 XXX8 导入 PEER-PRIMARY-IN
设置协议 bgp 组 PEER-SECONDARY 类型 外部
设置协议 bgp 组 PEER-SECONDARY 描述“对等辅助”
设置协议 bgp 组 PEER-SECONDARY log-updown
设置协议 bgp 组 PEER-SECONDARY 导出 PEER-SECONDARY-OUT
设置协议 bgp 组 PEER-SECONDARY peer-as XX1
设置协议 bgp 组 PEER-SECONDARY 邻居 XXX4 导入 PEER-SECONDARY-IN
设置策略选项前缀列表 BGP-LAN XX6.96/28
set policy-options policy-statement PEER-PRIMARY-IN term DEFAULT then local-preference 100
set policy-options policy-statement PEER-PRIMARY-IN term DEFAULT 然后接受
设置策略选项策略语句 PEER-PRIMARY-IN 然后拒绝
set policy-options policy-statement PEER-PRIMARY-OUT term LAN from prefix-list BGP-LAN
set policy-options policy-statement PEER-PRIMARY-OUT term LAN 然后接受
设置策略选项策略语句 PEER-PRIMARY-OUT 然后拒绝
set policy-options policy-statement PEER-SECONDARY-IN term DEFAULT then local-preference 50
set policy-options policy-statement PEER-SECONDARY-IN term DEFAULT 然后接受
设置策略选项策略语句 PEER-SECONDARY-IN 然后拒绝
set policy-options policy-statement PEER-SECONDARY-OUT term LAN from prefix-list BGP-LAN
set policy-options policy-statement PEER-SECONDARY-OUT term LAN then as-path-prepend 65000
set policy-options policy-statement PEER-SECONDARY-OUT term LAN 然后接受
设置策略选项策略语句 PEER-SECONDARY-OUT 然后拒绝

更新2.地址排序

正如@Cown 所建议并在https://forums.juniper.net/t5/SRX-Services-Gateway/Multiple-IP-s-on-the-loopback-interface-not-working/mp/249710#M30768 IP中描述在 vSRX 15.1X49-D80.4 中,在接口 lo0.0 中订购对我不起作用

# 显示接口 lo0 单元 0
家庭网{
    地址 XX6.98/28;
    地址 XX6.97/32;
}
# 犯罪
错误:重叠子网配置在 lo0 下
[编辑接口 lo0 unit 0 family inet]
  '地址 XX6.97/32'
     配置了重叠子网
错误:配置签出失败
1个回答

感谢@ar_,解决方案是:

  • 使用 /32 掩码在 lo0.0 上配置 IP 地址
  • 将丢弃的静态路由设置为 /28(然后网络将由 BGP 传播)

更进一步:

  • 在不信任区域中添加 lo0.0
  • 设置区域内策略以允许“外部”流量(例如 ping),因为 lo0.0 不会是传入流量接口。
# 显示接口 lo0
单元 0 {
    家庭网{
        地址 XX6.97/32;
        地址 XX6.98/32;
    }
}
# 显示路由选项
静止的 {
    路由 XX6.96/28 丢弃;
}
[··]
# 显示安全区域 security-zone untrust
[..]
接口{
    ge-0/0/0.0 {
        主机入站流量{
            系统服务{
                平;
            }
        }
    }
    ge-7/0/0.0 {
        主机入站流量{
            系统服务{
                平;
            }
        }
    }
    lo0.0 {
        主机入站流量{
            系统服务{
                平;                   
            }
        }
    }
}
# 显示从区域不信任到区域不信任的安全策略
策略许可-ping {
    匹配 {
        源地址任何;
        目标地址任何;
        应用程序junos-ping;
    }
    然后 {
        允许;
    }
}