我们最近安装了第二个 Internet 连接,因此我已经在边缘路由器(运行 JunOS 9.5R1.8 的 Juniper J4350)上成功地配置了基于策略的路由。
我或多或少严格按照示例进行操作(此处找到:http://community.riverbed.com/rvrb/attachments/rvrb/rvrb-7/2886/1/Juniper%20PBR.pdf) 并且 PBR 路由在出站时起作用,根据需要将来自 LAN 内部特定范围的流量路由出 ISP,但是启用后,过滤器似乎也会捕获其他流量 - 我无法再通过 LAN 接口通过 SSH 进入路由器,并且配置似乎还会破坏通过同一路由器的一些 IPSEC VPN。
总之,没有 PBR 和路由能够通过具有特定静态路由的单个 ISP 按预期工作routing-options
。
作为参考,我输入的配置部分如下:
ge-0/0/0 { VLAN标记; 单元 0 { VLAN ID 1; 家庭网络 { 筛选 { 输入PBR; } 地址 192.168.51.13/24; } } 第 16 单元 { 描述 Hants-ext; VLAN ID 16; 家庭网络 { 采样 { 输入; 输出; } 地址10.249.16.126/25; } } 128 单元 { 描述 DMZ; VLAN ID 128; 家庭网络 { 地址10.249.16.129/25; } } 单位 150 { 描述网络流; VLAN ID 150; 家庭网络 { 地址 217.20.18.50/29; } } }
家庭网络 { 过滤样本 { 术语默认 { 然后 { 样本; 接受; } } } 过滤 PBR { 术语“traffic_for_hants” 从 { 源地址 { 192.168.0.0/16; 172.16.0.0/16; 192.168.12.0/24 除外; } } 然后 { 路由实例 viaHants; } } 术语“traffic_for_networkflow”{ 从 { 源地址 { 192.168.12.0/24; } } 然后 { 路由实例通过网络流; } } 术语默认 { 然后接受; } } }
路由选项 { 接口路由 { rib 组 inet fbf 组; } 静止的 { 路由 192.168.0.0/16 下一跳 192.168.51.37; 路由 10.217.163.0/24 下一跳 192.168.51.37; 路由 172.19.0.0/16 下一跳 192.168.51.12; 路由 172.16.0.0/16 下一跳 10.249.16.1; 路由 0.0.0.0/0 下一跳 10.249.16.1; } 肋骨组 { fbf-组 { 导入 rib [ inet.0 viaHants.inet.0 viaNetworkFlow.inet.0 ]; } } }
防火墙 { 家庭网络 { 过滤样本 { 术语默认 { 然后 { 样本; 接受; } } } 过滤 PBR { 术语“traffic_for_hants” 从 { 源地址 { 192.168.0.0/16; 172.16.0.0/16; 192.168.12.0/24 除外; } } 然后 { 路由实例 viaHants; } } 术语“traffic_for_networkflow”{ 从 { 源地址 { 192.168.12.0/24; } } 然后 { 路由实例通过网络流; } } 术语默认 { 然后接受; } } } 过滤所有 { 全部术语 { 然后 { 样本; 接受; } } } }
路由实例 { 通过汉茨{ 实例类型转发; 路由选项 { 静止的 { 路由 0.0.0.0/0 下一跳 10.249.16.1; 路由 192.168.0.0/16 下一跳 192.168.51.37; 路由 10.217.163.0/24 下一跳 192.168.51.37; 路由 172.19.0.0/16 下一跳 192.168.51.12; 路由 172.16.0.0/16 下一跳 10.249.16.1; } } } 通过网络流{ 实例类型转发; 路由选项 { 静止的 { 路由 0.0.0.0/0 下一跳 217.20.18.49; 路由 192.168.0.0/16 下一跳 192.168.51.37; 路由 10.217.163.0/24 下一跳 192.168.51.37; 路由 172.19.0.0/16 下一跳 192.168.51.12; 路由 172.16.0.0/16 下一跳 10.249.16.1; } } } }
路由表:
inet.0: 13 个目的地,13 条路线(13 条活动,0 条抑制,0 条隐藏) + = 活动路线,- = 最后活动路线,* = 两者皆有 0.0.0.0/0 *[静态/5] 5d 02:52:09 > 通过 ge-0/0/0.16 到 10.249.16.1 10.217.163.0/24 *[静态/5] 5d 02:52:09 > 通过 ge-0/0/0.0 到 192.168.51.37 10.249.16.0/25 *[直接/0] 38w2d 11:16:31 > 通过 ge-0/0/0.16 10.249.16.126/32 *[本地/0] 38w2d 11:17:33 本地通过 ge-0/0/0.16 10.249.16.128/25 *[直接/0] 38w2d 11:16:31 > 通过 ge-0/0/0.128 10.249.16.129/32 *[本地/0] 38w2d 11:17:33 本地通过 ge-0/0/0.128 172.16.0.0/16 *[静态/5] 5d 02:52:09 > 通过 ge-0/0/0.16 到 10.249.16.1 172.19.0.0/16 *[静态/5] 5d 02:52:09 > 通过 ge-0/0/0.0 到 192.168.51.12 192.168.0.0/16 *[静态/5] 5d 02:52:09 > 通过 ge-0/0/0.0 到 192.168.51.37 192.168.51.0/24 *[直接/0] 38w2d 11:16:31 > 通过 ge-0/0/0.0 192.168.51.13/32 *[本地/0] 38w2d 11:17:33 本地通过 ge-0/0/0.0 217.20.18.48/29 *[直接/0] 1w5d 23:06:44 > 通过 ge-0/0/0.150 217.20.18.50/32 *[本地/0] 1w5d 23:06:44 本地通过 ge-0/0/0.150 viaHants.inet.0:13 个目的地,13 条路线(13 个活跃,0 个按下,0 个隐藏) + = 活动路线,- = 最后活动路线,* = 两者皆有 0.0.0.0/0 *[静态/5] 6d 08:47:33 > 通过 ge-0/0/0.16 到 10.249.16.1 10.217.163.0/24 *[静态/5] 5d 20:07:57 > 通过 ge-0/0/0.0 到 192.168.51.37 10.249.16.0/25 *[直接/0] 5d 03:17:39 > 通过 ge-0/0/0.16 10.249.16.126/32 *[本地/0] 20:39:33 本地通过 ge-0/0/0.16 10.249.16.128/25 *[直接/0] 5d 03:17:39 > 通过 ge-0/0/0.128 10.249.16.129/32 *[本地/0] 20:39:33 本地通过 ge-0/0/0.128 172.16.0.0/16 *[静态/5] 5d 20:07:57 > 通过 ge-0/0/0.16 到 10.249.16.1 172.19.0.0/16 *[静态/5] 5d 20:07:57 > 通过 ge-0/0/0.0 到 192.168.51.12 192.168.0.0/16 *[静态/5] 5d 20:07:57 > 通过 ge-0/0/0.0 到 192.168.51.37 192.168.51.0/24 *[直接/0] 5d 03:17:39 > 通过 ge-0/0/0.0 192.168.51.13/32 *[本地/0] 20:39:33 本地通过 ge-0/0/0.0 217.20.18.48/29 *[直接/0] 5d 03:17:39 > 通过 ge-0/0/0.150 217.20.18.50/32 *[本地/0] 20:39:33 本地通过 ge-0/0/0.150 viaNetworkFlow.inet.0:13 个目的地,13 条路线(13 个活动,0 个按下,0 个隐藏) + = 活动路线,- = 最后活动路线,* = 两者皆有 0.0.0.0/0 *[静态/5] 6d 08:47:33 > 通过 ge-0/0/0.150 到 217.20.18.49 10.217.163.0/24 *[静态/5] 5d 20:07:57 > 通过 ge-0/0/0.0 到 192.168.51.37 10.249.16.0/25 *[直接/0] 5d 03:17:39 > 通过 ge-0/0/0.16 10.249.16.126/32 *[本地/0] 20:39:33 本地通过 ge-0/0/0.16 10.249.16.128/25 *[直接/0] 5d 03:17:39 > 通过 ge-0/0/0.128 10.249.16.129/32 *[本地/0] 20:39:33 本地通过 ge-0/0/0.128 172.16.0.0/16 *[静态/5] 5d 20:07:57 > 通过 ge-0/0/0.16 到 10.249.16.1 172.19.0.0/16 *[静态/5] 5d 20:07:57 > 通过 ge-0/0/0.0 到 192.168.51.12 192.168.0.0/16 *[静态/5] 5d 20:07:57 > 通过 ge-0/0/0.0 到 192.168.51.37 192.168.51.0/24 *[直接/0] 5d 03:17:39 > 通过 ge-0/0/0.0 192.168.51.13/32 *[本地/0] 20:39:33 本地通过 ge-0/0/0.0 217.20.18.48/29 *[直接/0] 5d 03:17:39 > 通过 ge-0/0/0.150 217.20.18.50/32 *[本地/0] 20:39:33 本地通过 ge-0/0/0.150
答案1
这真是太棒了!由于您实际上只需要使用不同的默认网关,我会对防火墙过滤器进行一些更改,在每个术语的“from”节下添加目标地址 0.0.0.0/0。这样,只有当目标是出站 ISP 时,它才会应用。不过,这不会影响访问管理界面。我通常还会添加一个导入所有连接路由的部分,但我认为您在这里所做的就是这样做。您可以发布路由表吗?
这是我做的一些例子,其中我设置了一条策略路由来将流量重定向到内部 Web 过滤框。
policy-options {
prefix-list web-redirect-src-exclusions;
prefix-list web-redirect-dst-exclusions {
10.254.0.0/16;
10.254.1.10/32;
10.254.1.11/32;
10.254.1.12/32;
10.254.128.10/32;
10.254.128.11/32;
10.254.128.12/32;
}
}
firewall {
family inet {
filter web-redirect {
term srx-exclusions {
from {
source-prefix-list {
web-redirect-src-exclusions;
}
}
then accept;
}
term dst-exclusions {
from {
destination-prefix-list {
web-redirect-dst-exclusions;
}
}
then accept;
}
term web-redirect {
from {
destination-address {
0.0.0.0/0;
}
destination-port [ http https ];
}
then {
routing-instance web-redirect;
}
}
term default {
then accept;
}
}
}
}
routing-instances {
web-redirect {
instance-type forwarding;
routing-options {
static {
route 0.0.0.0/0 next-hop 10.1.1.5;
}
}
}
}