Skip to main content

Обработка маршрутов при подключении клиентов Internet

Соединения с клиентами по протоколу BGP описываются в блоке конфигурации protocols bgp group INET_Customers, если соединение производится по протоколу IPv4 и в блоке конфигурации protocols bgp group IPv6_Customers.
      

    В целях уменьшения влияния анонсов отдельных клиентов на ресурсы маршрутизаторов Сети ограничивается количество префиксов, получаемых от клиентов, значением 1000 для префиксов IPv4 и 100 для IPv6 (это значение может быть изменено для отдельного клиента или пересмотрено для всей Сети при изменении общей ситуации в сети Internet). При превышении 80% от этого значения генерируется сообщение в журнале событий syslog, а при превышении 100% сессия BGP разрывается и может быть установлена вновь через 30 минут.


      С целью использования нескольких равноценных маршрутов в настройки добавляется команда multipath.

      Пример настройки bgp group для подключения клиентов:

protocols {

    bgp {

        group INET_Customers {

            type external;

            family inet {

                unicast {

                    prefix-limit {

                        maximum 1000;

                        teardown 80 idle-timeout 30;

                    }

                }

            }

            multipath;

        }

        group IPv6_Customers {

            type external;

            family inet6 {

                unicast {

                    prefix-limit {

                        maximum 100;

                        teardown 80 idle-timeout 30;

strong>                    }

                }

            }

            multipath;

        }

    }

}

      Для клиентов, подключающихся к услугам доступа в Internet, необходимо исключить анонс так называемых приватных автономных систем из атрибута AS_PATH. 

Список приватных AS приведен по адресу: http://www.iana.org/assignments/as-numbers и составляет диапазон: AS64512 AS65535. 

Несмотря на то, что архитектура сети IP/MPLS ПАО «Ростелеком» не подразумевает использование приватных номеров автономных систем, фильтрация таких AS при передаче маршрута в другие AS позволит избежать их анонсирования вследствие ошибки в настройке или злонамеренных действий внутри Сети.

      Пример фильтрации приватных AS для маршрутизатора Juniper:

protocols {

    bgp {

        group INET_Customers {

            neighbor 4.3.2.1 {

                remove-private;

            }

        }

    }

}

      При приёме маршрутов от клиента необходима, прежде всего, фильтрация префиксов, приходящих от BGP маршрутизаторов сторонних сетей с целью недопущения попадания некорректной маршрутной информации, анонсируемой маршрутизаторами сторонних сетей в результате ошибки или умышленно. Фильтрация префиксов IPv4 осуществляется на базе списка, приведённого в [RFC6890]. Данный список содержит адреса следующих зарезервированных IETF и не подлежащих выделению сетей:

  • 0.0.0.0/8;
  • 0.0.0.0/1 – 0.0.0.0/32;
  • 10.0.0.0/8;
  • 100.64.0.0/10;
  • 172.16.0.0/12;
  • 192.168.0.0/16;
  • 127.0.0.0/8;
  • 192.0.0.0/24;
  • 192.0.2.0/24;
  • 169.254.0.0/16;
  • 192.88.99.0/24;
  • 198.18.0.0/15;
  • 198.51.100.0/24;
  • 203.0.113.0/24;
  • 224.0.0.0/4;
  • 240.0.0.0/4;

      Фильтрация префиксов IPv6 также осуществляется на базе списка, указанного в [RFC6890] и содержащего следующие префиксы:

  • ::/128;
  • ::1/128;
  • 64:ff9b::/96;
  • ::ffff:0:0/96;
  • 100::/64;
  • 2001::/23;
  • 2001:2::/48;
  • 2001:10::/28;
  • 2001:DB8::/32;
  • 2002::/16;
  • FF00::/8;
  • FE80::/10;
  • FEC0::/10;
  • FC00::/7;

      Помимо этого, с целью уменьшения общего числа префиксов в глобальной таблице маршрутизации фильтруются все префиксы с маской, длина которой превышает 24 бита для IPv4 и 48 бит для IPv6.
      Такая же фильтрация применяется и при передаче префиксов за пределы автономной системы Ростелеком.

      Пример политики для фильтрации неиспользуемых в сети Internet префиксов:

protocols {

    bgp {

        group INET_Customers {

            type external;

            family inet {

                unicast;

            }

            neighbor 1.1.1.2 {

                description "### Test Client ###";

                import sanity-check;

                export sanity-check;

                peer-as 65432;

            }

        }

        group INET_v6_Customers {

            type external;

            family inet6 {

                unicast;

            }

            neighbor 1::2 {

                description "### Test IPv6 Client ###";

                import v6-sanity-check;

                export v6-sanity-check;

                peer-as 65432;

            }

        }

    }

}

policy-options {

    policy-statement sanity-check {

        term reject-bogons {

            from policy bogons;

            then reject;

        }

        term accept-blackhole {

            from community type_blackhole_route;

            then next policy;

        }

        term reject-long-prefixes {

            from {

                route-filter 0.0.0.0/0 prefix-length-range /25-/32 reject;

            }

        }

    }

    policy-statement bogons {

        term rfc6890 {

            from {

                route-filter 10.0.0.0/8 orlonger accept;

                route-filter 172.16.0.0/12 orlonger accept;

                route-filter 192.168.0.0/16 orlonger accept;

                route-filter 0.0.0.0/1 through 0.0.0.0/32 accept;

                route-filter 0.0.0.0/8 orlonger accept;

                route-filter 100.64.0.0/10 orlonger accept;           

                route-filter 127.0.0.0/8 orlonger accept;

                route-filter 192.0.0.0/24 orlonger accept;

                route-filter 192.0.2.0/24 orlonger accept;

                route-filter 169.254.0.0/16 orlonger accept;

                route-filter 192.88.99.0/24 orlonger accept;

                route-filter 224.0.0.0/4 orlonger accept;

                route-filter 240.0.0.0/4 orlonger accept;

                route-filter 198.18.0.0/15 orlonger accept;

                route-filter 198.51.100.0/24 orlonger accept;

                route-filter 203.0.113.0/24 orlonger accept;            

            }

        }

        term reject-others {

            then reject;

        }

    }

    policy-statement v6-sanity-check {

        term reject-bogons {

            from policy v6-bogons;

            then reject;

        }

        term reject-long-prefixes {

            from {

                route-filter ::/0 prefix-length-range /48-/128 reject;

            }

        }

    }

    policy-statement v6-bogons {

        term rfc6890 {

            from {

                route-filter ::/128 exact accept;

                route-filter ::1/128 exact accept;

                route-filter ::/1 through ::/128 accept;

                route-filter ::ffff:0:0/96 orlonger accept;

                route-filter 100::/64 orlonger accept;           

                route-filter 2001::/23 orlonger accept;

                route-filter 2001:2::/48 orlonger accept;           

                route-filter 2001:DB8::/32 orlonger accept;

                route-filter 2001:10::/28 orlonger accept; 

                route-filter 2002::/16 orlonger accept;

                route-filter 64:ff9b::/32 orlonger accept;

                route-filter FC00::/7 orlonger accept;

                route-filter FE80::/10 orlonger accept;

                route-filter FEC0::/10 orlonger accept;

                route-filter FF00::/8 orlonger accept;

             }

        }

        term reject-others {

            then reject;

        }

    }

}

      После проверки разрешённой длины префиксов и принадлежности публичным диапазонам адресов производятся следующие операции с полученными от клиента маршрутами:

  • запрет приёма префиксов Ростелеком;
  • запрет приёма маршрута по умолчанию;
  • запрет приёма служебных и зарезервированных BGP Community;
  • установка параметров по умолчанию;
  • установка BGP Community, соответствующих данному региональному филиалу и МРФ;
  • проверка наличия BGP Community для сброса, назначение нового BGP NextHop;
  • проверка наличия BGP Community, изменяющих Local Preference, установка запрошенного значения.

      Пример обработки маршрутов при приёме от клиента на RGR:

protocols {

    bgp {

        group INET_Customers {

            type external;

            family inet {

                unicast;

            }

            neighbor 1.1.1.2 {

                description "### Test Client ###";

                local-address  1.1.1.1;

                import [ sanity-check INET_CUSTOMER_in mark-routes-sib mark-region-routes-NVSK ];

                peer-as 65432;

            }

        }

        group INET_v6_Customers {

            type external;

            family inet6 {

                unicast;

            }

            neighbor 1::2 {

                description "### Test IPv6 Client ###";

                import [ v6-sanity-check INET_v6_CUSTOMER_in mark-routes-sib mark-region-routes-NVSK ];

                peer-as 65432;

            }

        }

    }

}

policy-options {

    policy-statement sanity-check {

        term reject-bogons {

            from policy bogons;

            then reject;

        }

        term accept-blackhole {

            from community type_blackhole_route;

            then next policy;

        }

        term reject-long-prefixes {

            from {

                route-filter 0.0.0.0/0 prefix-length-range /25-/32 reject;

            }

        }

    }

    policy-statement bogons {

        term rfc6890 {

            from {

                route-filter 10.0.0.0/8 orlonger accept;

                route-filter 172.16.0.0/12 orlonger accept;

                route-filter 192.168.0.0/16 orlonger accept;

                route-filter 0.0.0.0/1 through 0.0.0.0/32 accept;

                route-filter 0.0.0.0/8 orlonger accept;

                route-filter 100.64.0.0/10 orlonger accept;           

                route-filter 127.0.0.0/8 orlonger accept;

                route-filter 192.0.0.0/24 orlonger accept;

                route-filter 192.0.2.0/24 orlonger accept;

                route-filter 169.254.0.0/16 orlonger accept;

                route-filter 192.88.99.0/24 orlonger accept;

                route-filter 224.0.0.0/4 orlonger accept;

                route-filter 240.0.0.0/4 orlonger accept;

                route-filter 198.18.0.0/15 orlonger accept;

                route-filter 198.51.100.0/24 orlonger accept;

                route-filter 203.0.113.0/24 orlonger accept;           

            }

        }

        term reject-others {

            then reject;

        }

    }

    policy-statement v6-sanity-check {

        term reject-bogons {

            from policy v6-bogons;

            then reject;

        }

        term reject-long-prefixes {

            from {

                route-filter ::/0 prefix-length-range /48-/128 reject;

            }

        }

    }

    policy-statement v6-bogons {

        term rfc6890 {

            from {

                route-filter ::/128 exact accept;

                route-filter ::1/128 exact accept;

                route-filter ::/1 through ::/128 accept;

                route-filter ::ffff:0:0/96 orlonger accept;

                route-filter 100::/64 orlonger accept;           

                route-filter 2001::/23 orlonger accept;

                route-filter 2001:2::/48 orlonger accept;           

                route-filter 2001:DB8::/32 orlonger accept;

                route-filter 2001:10::/28 orlonger accept; 

                route-filter 2002::/16 orlonger accept;

                route-filter 64:ff9b::/32 orlonger accept;

                route-filter FC00::/7 orlonger accept;

                route-filter FE80::/10 orlonger accept;

                route-filter FEC0::/10 orlonger accept;

                route-filter FF00::/8 orlonger accept;

             }

        }

        term reject-others {

            then reject;

        }

    }

    policy-statement INET_CUSTOMER_in {

        term reject-RT-aggregate {

            from policy RT-aggregate;

            then reject;

        }

        term reject-RT-longer-prefixes {

            from policy RT-longer-prefixes;

            then reject;

        }

        term reject-default-route {

            from {

                route-filter 0.0.0.0/0 exact;

            }

            then reject;

        }

        term remove-12389-communities {

            then {

                community delete 12389:1-3X;

                community delete 12389:1UZZ;

            }

        term remove-Well-Known-communities

            then {

                community delete WellKnown0;

                community delete WellKnown65535;

            }

        }

        term set-parameters {

            then {

                metric 0;

                local-preference 850;

                community add type_Customer;

            }

        }

        term blackhole-route {

            from community type_blackhole_route;

            then {

                next-hop discard;

                community add NO_EXPORT;

                next policy;

            }

        }

        term backup-route {

            from community type_customer_backup_route;

            then {

                local-preference 800;

            }

        }

        term full-backup-route {

            from community type_full_backup_route;

            then {

                local-preference 100;

            }

        }

    }

    policy-statement RT-aggregate {

        term match-RT-aggregate-networks {

            from {

                route-filter 87.226.128.0/17 exact accept;

                route-filter 79.133.64.0/19 exact accept;

                route-filter 92.50.192.0/18 exact accept;

                route-filter 94.25.0.0/17 exact accept;

            }

        }

        term reject-others {

            then reject;

        }

    }

    policy-statement RT-longer-prefixes {

        term match-RT-longer-prefixes {

            from {

                route-filter 87.226.128.0/17 longer accept;

                route-filter 79.133.64.0/19 longer accept;

                route-filter 92.50.192.0/18 longer accept;

                route-filter 94.25.0.0/17 longer accept;

            }

        }

        term reject-others {

            then reject;

        }

    }

    policy-statement INET_v6_CUSTOMER_in {

        term reject-RT-v6-aggregate {

            from policy RT-v6-aggregate;

            then reject;

        }

        term reject-RT-v6-longer-prefixes {

            from policy RT-v6-longer-prefixes;

            then reject;

        }

        term reject-default-route {

            from {

                route-filter ::/0 exact;

            }

            then reject;

        }

        term remove-12389-communities {

            then {

                community delete 12389:1-3X;

                community delete 12389:1UZZ;

            }

        }

        term remove-Well-Known-communities

            then {

                community delete WellKnown0;

                community delete WellKnown65535;

            }

        }

        term set-parameters {

            then {

                metric 0;

                local-preference 850;

                community add type_Customer;

            }

        }

        term blackhole-route {

            from community type_blackhole_route;

            then { 

                next-hop discard;

                community add NO_EXPORT;

                next policy;

            }      

        }   

        term backup-route {

            from community type_customer_backup_route;

            then {

                local-preference 800;

            }

        }

        term full-backup-route {

            from community type_full_backup_route;

            then {

                local-preference 100;

            }

        }

    }

    policy-statement RT-v6-aggregate {

        term match-RT-v6-aggregate-networks {

            from {

                route-filter 2A01:620::/32 exact accept;

            }

        }

        term reject-others {

            then reject;

        }

    }

    policy-statement RT-v6-longer-prefixes {

        term match-RT-v6-longer-prefixes {

            from {

                route-filter 2A01:620::/32 longer accept;

            }

        }

        term reject-others {

            then reject;

        }

    }

    policy-statement mark-routes-sib {

        term 1 {

            then {

                community add routes-SIB;

                next policy;

            }

        }

    }

    policy-statement mark-region-routes-NVSK {

        term 1 {

            then {

                community add routes-region-NVSK;

                next policy;

            }

        }

    }

    community 12389:1-3X members "^12389:.{1,3}$";

    community 12389:1UZZ members "^12389:1…$";

    community type_Customer members 12389:1;

    community type_Upstream members 12389:6;

    community type_blackhole_route members 12389:55555;

    community type_customer_backup_route members 12389:2800;

    community type_full_backup_route members 12389:2100;

    community NO_EXPORT members no-export;

    community WellKnown0 members ^0:*;

    community WellKnown65535 members 65535:*;

    community routes-SIB members "12389:1101$";

    community routes-region-NVSK members 12389:1254;

}

      Для корректной реализации пиринговой политики в сети при приёме маршрутов от клиентов на сервисных маршрутизаторах BPE устанавливается значение Local Pereference, равное 950. Для сервисных маршрутизаторов Juniper вместо политики INET_CUSTOMER_in можно использовать политику INET_BPE_CUSTOMER_in, пример которой приведён далее.

      Пример политики INET_BPE_CUSTOMER_in:

policy-options {

    policy-statement INET_BPE_CUSTOMER_in {

        term reject-RT-aggregate {

            from policy RT-aggregate;

            then reject;

        }

        term reject-RT-longer-prefixes {

            from policy RT-longer-prefixes;

            then reject;

        }

        term reject-default-route {

            from {

                route-filter 0.0.0.0/0 exact;

            }

            then reject;

        }

        term remove-12389-communities {

            then {

                community delete 12389:1-3X;

                community delete 12389:1UZZ;

            }

        term remove-Well-Known-communities

            then {

                community delete WellKnown0;

                community delete WellKnown65535;

            }

        }

        term set-parameters {

            then {

                metric 0;

                local-preference 950;

                community add type_Customer;

            }

        }

        term blackhole-route {

            from community type_blackhole_route;

            then {

                next-hop discard;

                community add NO_EXPORT;

                next policy;

            }

        }

        term backup-route {

            from community type_customer_backup_route;

            then {

                local-preference 800;

            }

        }

        term full-backup-route {

            from community type_full_backup_route;

            then {

                local-preference 100;

            }

        }

    }

    policy-statement RT-aggregate {

        term match-RT-aggregate-networks {

            from {

                route-filter 87.226.128.0/17 exact accept;

                route-filter 79.133.64.0/19 exact accept;

                route-filter 92.50.192.0/18 exact accept;

                route-filter 94.25.0.0/17 exact accept;

            }

        }

        term reject-others {

            then reject;

        }

    }

    policy-statement RT-longer-prefixes {

        term match-RT-longer-prefixes {

            from {

                route-filter 87.226.128.0/17 longer accept;

                route-filter 79.133.64.0/19 longer accept;

                route-filter 92.50.192.0/18 longer accept;

                route-filter 94.25.0.0/17 longer accept;

            }

        }

        term reject-others {

            then reject;

        }

    }

    policy-statement INET_v6_BPE_CUSTOMER_in {

        term reject-RT-v6-aggregate {

            from policy RT-v6-aggregate;

            then reject;

        }

        term reject-RT-v6-longer-prefixes {

            from policy RT-v6-longer-prefixes;

            then reject;

        }

        term reject-default-route {

            from {

                route-filter ::/0 exact;

            }

            then reject;

        }

        term remove-12389-communities {

            then {

                community delete 12389:1-3X;

                community delete 12389:1UZZ;

            }

        }

        term remove-Well-Known-communities

            then {

                community delete WellKnown0;

                community delete WellKnown65535;

            }

        }

        term set-parameters {

            then {

                metric 0;

                local-preference 950;

                community add type_Customer;

            }

        }

        term blackhole-route {

            from community type_blackhole_route;

            then { 

                next-hop discard;

                community add NO_EXPORT;

                next policy;

            }      

        }   

        term backup-route {

            from community type_customer_backup_route;

            then {

                local-preference 800;

            }

        }

        term full-backup-route {

            from community type_full_backup_route;

            then {

                local-preference 100;

            }

        }

    }

    policy-statement RT-v6-aggregate {

        term match-RT-v6-aggregate-networks {

            from {

                route-filter 2A01:620::/32 exact accept;

            }

        }

        term reject-others {

            then reject;

        }

    }

    policy-statement RT-v6-longer-prefixes {

        term match-RT-v6-longer-prefixes {

            from {

                route-filter 2A01:620::/32 longer accept;

            }

        }

        term reject-others {

            then reject;

        }

    }

    community 12389:1-3X members "^12389:.{1,3}$";

    community 12389:1UZZ members "^12389:1…$";

    community type_Customer members 12389:1;

    community type_Upstream members 12389:6;

    community type_blackhole_route members 12389:55555;

    community type_customer_backup_route members 12389:2800;

    community type_full_backup_route members 12389:2100;

    community NO_EXPORT members no-export;

    community WellKnown0 members ^0:*;

    community WellKnown65535 members 65535:*;

}

      В сети ПАО «Ростелеком» для защиты от некорректных маршрутов применяется фильтрация на основе информации Routing Arbiter Database (раздел «Принципы защиты оборудования регионального уровня»). Для формирования имени фильтра используется форма CUSTOMER:<ASN>, где <ASN> – номер автономной системы клиента или название AS-SET, AS-NUM или AUT-NUM, зарегистрированные в RIR. Такой фильтр добавляется в настройки после фильтра INET_CUSTOMER_in (или INET_BPE_CUSTOMER_in).


      Пример дополнительного фильтра при приёме маршрутов от клиента:

protocols {

    bgp {

        group INET_Customers {

            neighbor 1.1.1.2 {

                description "### Test Client ###";

                import CUSTOMER:65432;

                peer-as 65432;

            }

        }

    }

}

policy-options {

    policy-statement CUSTOMER:65432 {

        term rtbh {

            from {

                community type_blackhole_route;

                route-filter 2.1.0.0/16 orlonger;

                route-filter 1.2.3.0/24 orlonger;

            }

            then {

                community add NO_EXPORT;

                next-hop discard;

                accept;        

            }

        }

        term prefixes {

            from {

                route-filter 2.1.0.0/16 upto /24;

                route-filter 1.2.3.0/24 exact;

            }

            then next policy;

        }

        then reject;

    }

    community NO_EXPORT members no-export;

    community type_blackhole_route members 12389:55555;

}

      При передаче префиксов клиенту передаются в зависимости от типа клиента:

  • агрегированные префиксы Ростелеком и маршрут по умолчанию;
  • только агрегированные префиксы Ростелеком;
  • только маршрут по умолчанию;
  • все префиксы от апстримов и агрегированные префиксы Ростелеком;

      BGP Community Ростелеком удаляются, за исключением 12389:X.


      Пример политики анонсирования маршрутов клиенту для маршрутизаторов Juniper:

protocols {

    bgp {

        group INET_Customers {

            type external;

            neighbor 1.1.1.2 {

                description "### Test Client ###";

                local-address  1.1.1.1;

                export [ sanity-check INET_CUSTOMER_RT_and_default_out remove-communities ];

                peer-as 65432;

            }

        }

        group INET_v6_Customers {

            type external;

            family inet6 {

                unicast;

            }

            neighbor 1::2 {

                description "### Test Client ###";

                local-address 1::1;

                export [ v6-sanity-check INET_v6_CUSTOMER_RT_and_default_out remove-communities ];

                peer-as 65432;

            }

        }

    }

}

policy-options {

    policy-statement sanity-check {

        term reject-bogons {

            from policy bogons;

            then reject;

        }

        term accept-blackhole {

            from community type_blackhole_route;

            then next policy;

        }

        term reject-long-prefixes {

            from {

                route-filter 0.0.0.0/0 prefix-length-range /25-/32 reject;

            }

        }

    }

    policy-statement bogons {

        term rfc6890 {

            from {

                route-filter 10.0.0.0/8 orlonger accept;

                route-filter 172.16.0.0/12 orlonger accept;

                route-filter 192.168.0.0/16 orlonger accept;

                route-filter 0.0.0.0/1 through 0.0.0.0/32 accept;

                route-filter 0.0.0.0/8 orlonger accept;

                route-filter 100.64.0.0/10 orlonger accept;           

                route-filter 127.0.0.0/8 orlonger accept;

                route-filter 192.0.0.0/24 orlonger accept;

                route-filter 192.0.2.0/24 orlonger accept;

                route-filter 169.254.0.0/16 orlonger accept;

                route-filter 192.88.99.0/24 orlonger accept;

                route-filter 224.0.0.0/4 orlonger accept;

                route-filter 240.0.0.0/4 orlonger accept;

                route-filter 198.18.0.0/15 orlonger accept;

                route-filter 198.51.100.0/24 orlonger accept;

                route-filter 203.0.113.0/24 orlonger accept;           

            }

        }

        term reject-others {

            then reject;

        }

    }

    policy-statement v6-sanity-check {

        term reject-bogons {

            from policy v6-bogons;

            then reject;

        }

        term reject-long-prefixes {

            from {

                route-filter ::/0 prefix-length-range /48-/128 reject;

            }

        }

    }

    policy-statement v6-bogons {

        term rfc6890 {

            from {

                route-filter ::/128 exact accept;

                route-filter ::1/128 exact accept;

                route-filter ::/1 through ::/128 accept;

                route-filter ::ffff:0:0/96 orlonger accept;

                route-filter 100::/64 orlonger accept;           

                route-filter 2001::/23 orlonger accept;

                route-filter 2001:2::/48 orlonger accept;           

                route-filter 2001:DB8::/32 orlonger accept;

                route-filter 2001:10::/28 orlonger accept; 

                route-filter 2002::/16 orlonger accept;

                route-filter 64:ff9b::/32 orlonger accept;

                route-filter FC00::/7 orlonger accept;

                route-filter FE80::/10 orlonger accept;

                route-filter FEC0::/10 orlonger accept;

                route-filter FF00::/8 orlonger accept;

             }

        }

        term reject-others {

            then reject;

        }

    }

    policy-statement INET_v6_CUSTOMER_RT_and_default_out {

        term accept-RT-v6-aggregate {

            from policy RT-v6-aggregate;

            then next policy;

        }

        term static-tag_1002 {

            from {

                protocol [ static aggregate ];

                tag [ 1002 1003 1031 1032 ];

            }

            then {

                metric 0;

                accept;

            }

        }

        term remote-static-tag_1002 {

            from {

                protocol bgp;

                community from_static_tag_1002;

            }

            then {

                metric 0;

                accept;

            }

        }

        term accept-default-route {

            from {

                route-filter ::/0 exact;

            }

            then {

                metric 0;

                accept;

            }

        }

        term reject-others {

            then reject;

        }

    }

    policy-statement INET_v6_CUSTOMER_RT_only_out {

        term accept-RT-v6-aggregate {

            from policy RT-v6-aggregate;

            then next policy;

        }

        term static-tag_1002 {

            from {

                protocol [ static aggregate ];

                tag [ 1002 1003 1031 1032 ];

            }

            then {

                metric 0;

                accept;

            }

        }

        term remote-static-tag_1002 {

            from {

                protocol bgp;

                community from_static_tag_1002;

            }

            then {

                metric 0;

                accept;

            }

        }

        term reject-others {

            then reject;

        }

    }

    policy-statement INET_v6_CUSTOMER_default_out {

        term accept-default-route {

            from {

                route-filter ::/0 exact;

            }

            then {

                metric 0;

                accept;

            }

        }

        term reject-others {

            then reject;

        }

    }

    policy-statement INET_v6_CUSTOMER_full_out {

        term reject-RT-longer-prefixes {

            from policy RT-v6-longer-prefixes;

            then reject;

        }

        term static-tag_1002 {

            from {

                protocol [ static aggregate ];

                tag [ 1002 1003 1031 1032 ];

            }

            then {

                metric 0;

                accept;

            }

        }

        term accept-routes {

            from { 

                protocol bgp;

                community [ to_INET_Customer from_FED_Peer type_REG_Peer type_MRF_Peer ];

            }

            then next policy;

        }

        term reject-others {

            then reject;

        }

    }

    policy-statement RT-v6-aggregate {

        term match-RT-v6-aggregate-networks {

            from {

                route-filter 2A01:620::/32 exact accept;

            }

        }

        term reject-others {

            then reject;

        }

    }

    policy-statement RT-v6-longer-prefixes {

        term match-RT-v6-longer-prefixes {

            from {

                route-filter 2A01:620::/32 longer accept;

            }

        }

        term reject-others {

            then reject;

        }

    }

    policy-statement INET_CUSTOMER_RT_and_default_out {

        term accept-RT-aggregate {

            from policy RT-aggregate;

            then next policy;

        }

        term static-tag_1002 {

            from {

                protocol [ static aggregate ];

                tag [ 1002 1003 1031 1032 ];

            }

            then {

                metric 0;

                accept;

            }

        }

        term remote-static-tag_1002 {

            from {

                protocol bgp;

                community from_static_tag_1002;

            }

            then {

                metric 0;

                accept;

            }

        }

        term accept-default-route {

            from {

                route-filter 0.0.0.0/0 exact;

            }

            then {

                metric 0;

                accept;

            }

        }

        term reject-others {

            then reject;

        }

    }

    policy-statement INET_CUSTOMER_RT_only_out {

        term accept-RT-aggregate {

            from policy RT-aggregate;

            then next policy;

        }

        term static-tag_1002 {

            from {

                protocol [ static aggregate ];

                tag [ 1002 1003 1031 1032 ];

            }

            then {

                metric 0;

                accept;

            }

        }

        term remote-static-tag_1002 {

            from {

                protocol bgp;

                community from_static_tag_1002;

            }

            then {

                metric 0;

                accept;

            }

        }

        term reject-others {

            then reject;

        }

    }

    policy-statement INET_CUSTOMER_default_out {

        term accept-default-route {

            from {

                route-filter 0.0.0.0/0 exact;

            }

            then {

                metric 0;

                accept;

            }

        }

        term reject-others {

            then reject;

        }

    }

    policy-statement INET_CUSTOMER_full_out {

        term reject-RT-longer-prefixes {

            from policy RT-longer-prefixes;

            then reject;

        }

        term static-tag_1002 {

            from {

                protocol [ static aggregate ];

                tag [ 1002 1003 1031 1032 ];

            }

            then {

                metric 0;

                accept;

            }

        }

        term accept-routes {

            from {

                protocol bgp;

                community [ to_INET_Customer from_FED_Peer type_REG_Peer type_MRF_Peer ];

            }

            then next policy;

        }

        term reject-others {

            then reject;

        }

    }

    policy-statement remove-communities {

        term Clients {

            from community 12389:1X;

            then {

                community delete 12389:2-5X;

                next policy;

            }

        }

        term Community_12389 {

            from community 12389;

            then {

                community delete 12389;

            }

        }

    }

    policy-statement RT-aggregate {

        term match-RT-aggregate-networks {

            from {

                route-filter 87.226.128.0/17 exact accept;

                route-filter 79.133.64.0/19 exact accept;

                route-filter 92.50.192.0/18 exact accept;

                route-filter 94.25.0.0/17 exact accept;

            }

        }

        term reject-others {

            then reject;

        }

    }

    policy-statement RT-longer-prefixes {

        term match-RT-longer-prefixes {

            from {

                route-filter 87.226.128.0/17 longer accept;

                route-filter 79.133.64.0/19 longer accept;

                route-filter 92.50.192.0/18 longer accept;

                route-filter 94.25.0.0/17 longer accept;

            }

        }

        term reject-others {

            then reject;

        }

    }

    community 12389 members 12389:*;

    community to_Upstream members "^12389:1$";

    community 12389:1X members "^12389:.$";

    community 12389:2-5X members "^12389:.{2,5}$";

    community to_INET_Customer members "^12389:[16]$";

    community from_FED_Peer members "^12389:[57]$";

    community type_REG_Peer members 12389:9;

    community type_MRF_Peer members 12389:8;

    community from_static_tag_1002 members "12389:1 12389:4";

}

      В ряде случаев необходимо передавать маршрут по умолчанию клиентам, которым передаётся полная таблица маршрутизации. В этом случае вместе с политиками INET_CUSTOMER_full_out и INET_v6_CUSTOMER_full_out применяются политики announce-default и announce-v6-default соответственно.


Обработка маршрутов при подключении клиентов Internet

      Пример политики анонсирования маршрута по умолчанию:

policy-options {
    policy-statement {
        announce-default {
            term accept-default-route {
                from {
                    route-filter 0.0.0.0/0 exact;
                }
                then {
                    metric 0;
                    accept;
               }
            }
    }
        announce-v6-default {
            term accept-default-route {
                from {
                    route-filter ::/0 exact;
                }
                then {
                    metric 0;
                    accept;
               }
            }
    }
}
}

      При подключении некоторых клиентов может потребоваться передача им community, описывающих источник маршрута (номер upstream или peer: 12389:15ZZ, 12389:16ZZ и 12389:17ZZ. 

В этом случае вместо policy-statement remove-communities применяется policy-statement remove-communities-except-sources.

      Пример политики анонсирования маршрутов клиенту для маршрутизаторов Juniper:

policy-options {   

    policy-statement remove-communities-except-sources {

        term Delete_Community_12389 {

            then community delete 12389_Except_1X_and_Sources;

        }

    }

    community 12389_Except_1X_and_Sources {

        invert-match;

        members "^12389:((.)|(1[567]..))$";

    }

}

Comments

Popular posts from this blog

Почему инженеры электросвязи становятся продажниками

Давно предупреждал инженеров электросвязи - если вы не развиваетесь, то рано или поздно превратитесь либо в дворника, либо в ассенизатора. О чем не предупреждал, каюсь, - так это о том, что локальный апокалипсис наступит прямо сейчас. Взять, например, сетевых инженеров  Ростелекома, которые бодро так искали, кого ещё подключить к интернету последние пару недель в Сочи и в Адлере. Скажете, инженеров заставляют работать продажниками - произвол и несправедливость? Лично я в этом совершенно не уверен. Чтобы было сразу понятно, о чем речь, готов проиллюстрировать свою мысль как работодатель. Мы ведь имеем здесь потенциальный конфликт в отношениях между работником и Ростелекомом , верно? И пока возмущенная общественность твердо стоит на стороне работника, предлагаю посмотреть чуть шире — не со стороны работодателя даже, а так, сбоку. Давайте возьмем, например, меня — типичного работодателя. Так случилось, что на меня работает некоторое количество весьма лояльных и толковых людей, ч

Где искать залив на банковский счет или карту?

Есть несколько способов сделать банковский перевод на карту или счет или иначе на слэнге дроповодов это называется "сделать залив на карту " для начала работы вам понадобиться зайти в чей-то чужой уже существующий кабинет интернет-банка, причем не важно какого, банк может быть любым, главное чтобы на счету " холдера " были хоть какие-то деньги для того, чтобы зайти в интернет банк вам понадобится узнать логин и пароль, смотрим видео о том, как их получить для того, чтобы зайти в чужой интернет-банк: хотя конечно, скажу тебе честно, только ты не обижайся, сейчас все нормальные сделки по обналу делают краснопёрые, сидящие в банках, всякие там внедрённые агенты ФСО, Mi6 или CIA, а льют сотрудники крупных телекомов или штатные работники NSA и GCHQ, а всё остальное - это просто лоховство или чистой воды развод на бабло в виде предоплаты

Залив на карту из онлайн игр

Ломаем игры, увеличиваем деньги и ресурсы Есть такое подозрение, что создатели игр не для того выверяли баланс и придумывали задания, чтобы вы решали их грубым взломом, но все же иногда есть соблазн прибавить себе пару сотен процентов жизни или миллион (или два) в игровой валюте, особенно если эти деньги можно вывести на банковскую карту или Яндекс.Деньги Я помню времена Diablo 2, когда все параметры персонажа лежали в открытом виде, сохраненные на локальном диске твоего игрового компьютера, и их можно было найти и подправить любым HEX-редактором. И прекрасно помню, что после этого игра тут же теряла половину своей прелести. Но, каждый сам себе злобный Буратино. Давай сойдемся на том, что процесс взлома игр может приносить тебе ежемесячный стабильных доход. Второй вариант - когда сюжет в игре увлекательнее игрового процесса, и просто не хочется тратить время при перемалывании толпы монстров или отстреливания кучи хитпоинтов у босса. Речь пойдет о программах, способных по

Сбербанк и дропы с площадки Dark Money, и кто кого?

Крупных открытых площадок в даркнете, специализирующихся именно на покупке-продаже российских банковских данных, обнале и скаме около десятка, самая большая из них – это Dark Money . Здесь есть нальщики, дропы, заливщики, связанный с ними бизнес, здесь льют и налят миллионы, здесь очень много денег, но тебе не стоит пока во все это суваться. Кинуть тут может любой, тут кидали и на десятки миллионов и на десятки рублей. Кидали новички и кидали проверенные люди, закономерности нету. Горячие темы – продажи данных, банковских карт, поиск сотрудников в скам и вербовка сотрудников банков и сотовых операторов, взлом аккаунтов, обнал и советы – какими платежными системы пользоваться, как не попасться милиции при обнале, сколько платить Правому Сектору или патрулю, если попались. Одна из тем – онлайн-интервью с неким сотрудником Сбербанка, который время от времени отвечает на вопросы пользователей площадки об уязвимостях системы банка и дает советы, как улучшить обнальные схемы. Чтобы пользова

Всё больше студенток зарабатывают размещая видео на PornHub

Маше 22 года. На ней спортивные штаны и футболка. Она решила спать с мужчинами гораздо старше ее самой, когда она училась в университете. Свои мысли она выражает спокойно и ясно. " Я люблю секс , - говорит Маша, - и хочу заметить, я хорошо знаю, как им заниматься. Так что найти "папочку" или двух не составило никакого труда". Маша в этом смысле не одинока. Все больше и больше самарских студенток, погребенных под горами долгов, решают найти себе богатого мужчину определенного возраста. Они проводят время с такими "папочками" в обмен на деньги и подарки. "Мой женатый "папочка" давал мне примерно три тысячи за ночь", - говорит Маша. - Его интересовал только секс. Мой разведенный "папочка" давал мне около пяти тысяч рублей на мои расходы".   Будучи студенткой, Маша с трудом сводила концы с концами. "В мой первый год у меня было две работы", - говорит она. "Это было ужасно – я работала в баре, гд

Ютуберы не вписались в бизнес-модель Ростелекома

Операторы связи, применяющие технологии обхода ограничений доступа к сайтам вопреки требованиям властей, могут лишиться лицензии, предупредил Роскомнадзор. Двумя днями ранее провайдеры интернета получили указания не мешать незамедлительным блокировкам ресурсов, которые инициируют органы власти. Эти предупреждения адресованы в том числе компаниям, стремящимся ускорить работу видеохостинга YouTube, массовые проблемы с замедлением которого появились в августе, уверены участники рынка и юристы. По их мнению, текущая ситуация, которая может быть подготовкой к полной блокировке YouTube, уже вызвала сложности, аналогичные тем, что сопровождали блокировку Telegram в 2 018 году. Второе предупреждение Роскомнадзор ужесточил риторику в адрес лицензиатов и интернет-провайдеров. Спустя два дня после указаний не мешать блокировке и затруднению доступа к сайтам с запрещенной информацией регулятор уточнил, что эти распоряжения необходимо исполнять незамедлительно. В противном случае операторы связи мо