С толкнулся с проблемой, после подключения второго провайдера по BGP (оба BGP соединения не фуллы), первый провайдер имеет скорость порядка 50 Мбит, второй как резервный 10 Мбит (на случай отключения первого), оба оптика до нашего оборудования (SRX240H2):
1. Второй провайдер глобальный (по России), пинги лучше и прочее, его маршруты железяка выбирает по умолчанию сама, т.е. у нас скорость сразу падает до 10 Мбит
2. Балансировка не нужна.
3. Нужно чтоб первый провайдер со своими маршрутами туда и обратно был в высоком приоритете, даже если у второго маршрут лучше намного.
4. Если первый провайдер падает (иногда раз в 2-3 месяца бывает), чтоб второй брал на себя все.
5. Когда первый поднимается, он опять становился приоритетным.
Пробовал приоритеты в BGP сессиях править, но толку нет
Параметры BGP:
- Код: Выделить всё
protocols {
bgp {
traceoptions {
file bgp.log size 1m files 50;
}
advertise-inactive;
log-updown;
damping;
local-as MYAS;
group uplink {
type external;
description Uplink;
no-advertise-peer-as;
multipath multiple-as;
neighbor 1.1.1.1 {
description AS1;
preference 50;
import [ bogus-reject bogus-ases rules_in_1 ];
export rules_out_1;
peer-as 1111;
}
neighbor 2.2.2.2 {
description AS2;
preference 250;
import [ bogus-reject bogus-ases rules_in_2 ];
export rules_out_2;
peer-as 2222;
}
}
}
rstp;
}
Скорее всего где то еще параметры нужно указать, но где, так же присутствует строчка, но удаление её нет результата:
- Код: Выделить всё
routing-options {
static {
route 3.3.3.0/24 {
next-hop 3.3.3.1;
retain;
readvertise;
}
route 10.0.0.0/8 discard;
route 172.16.0.0/12 discard;
route 192.168.0.0/16 discard;
route 192.168.11.0/24 next-hop st0.0;
}
aggregate {
route 3.3.3.0/24 discard;
}
router-id 3.3.3.1;
autonomous-system 3333;
forwarding-table {
export per-flow-load-balancing;
}
}
per-flow-load-balancing
- Код: Выделить всё
policy-statement per-flow-load-balancing {
term balance {
then {
load-balance per-packet;
}
}
}
Может пригодится:
- Код: Выделить всё
policy-statement rules_in_2{
term DEF {
from {
route-filter 0.0.0.0/24 exact;
}
then accept;
}
term From-AS2 {
from as-path BEELINE;
then accept;
}
term WORLD {
then reject;
}
}
policy-statement rules_in_1 {
term own-as {
from as-path AS1;
then {
local-preference 200;
accept;
}
}
term final-accept {
then {
local-preference 100;
accept;
}
}
}
policy-statement rules_out_1 {
term DEF {
from {
protocol direct;
policy our-CIDR-blocks-aggregated;
}
then accept;
}
}
policy-statement rules_out_2 {
term DEF {
from {
protocol [ direct static ];
route-filter 3.3.3.0/24 exact;
}
then accept;
}
term default {
then reject;
}
}
P.S. второй провайдер на out только так работает, policy our-CIDR-blocks-aggregated - это обрубает все что нам не нужно.