27 июня 2015

Juniper + BGP full-view. Экономим память маршрутизатора.

На сегодняшний день в полной таблице содержится уже больше 512 тысяч маршрутов.
Если вы не магистральный оператор, есть несколько способов экономии аппаратных ресурсов маршрутизатора.


Первое что можно сделать это отфильтровать префиксы длиной от /24 до /32. Это сократит таблицу маршрутизации на 30-40%. Для этого настроим соответствующую политику импорта маршрутов


shrainer@SRX> show configuration protocols bgp
group external {
    type external;
    metric-out igp;
    remove-private;
    neighbor 10.10.10.10 {
        description "ISP AS1010";
        local-address 10.10.10.9;
        import peer-reject;
        peer-as 1010;
    }
}

shrainer@SRX> show configuration policy-options
policy-statement peer-reject {
    term 1 {
        from as-path private;
        then reject;
    }
    term 2 {
        from {
            route-filter 127.0.0.0/8 orlonger;
            route-filter 10.0.0.0/8 orlonger;
            route-filter 172.16.0.0/12 orlonger;
            route-filter 192.168.0.0/16 orlonger;
            route-filter 169.254.0.0/16 orlonger;
            route-filter 224.0.0.0/4 orlonger;
            route-filter 240.0.0.0/4 orlonger;
        }
        then reject;
    }
    term 3 {
        from {
            route-filter 0.0.0.0/0 prefix-length-range /24-/32;
        }
        then reject;
    }
}
as-path private 64512-65535;

Все полученные от аплинков префиксы, в т.ч. отфильтрованные, маршрутизатор продолжает хранить в памяти. Чтобы этого не происходило можно воспользоваться полезной фичей JunOS.
Добавим к настройке пира keep-none.

shrainer@SRX> show configuration protocols bgp
group external {
    type external;
    metric-out igp;
    remove-private;
    neighbor 10.10.10.10 {
        description "ISP AS1010";
        local-address 10.10.10.9;
        keep none;
        import peer-reject;
        peer-as 1010;
    }
}
После этого все отфильтрованные префиксы будут незамедлительно удаляться из памяти.