Jump to content
Калькуляторы

MED атрибут на Juniper EX4200-24Т

Доброго времени суток!

 

Кто сталкивался подскажите, как на моем свиче настроить фильтр, который будет накладываться на IP адрес внутренней сети и отбрасывать весь приходящий на него трафик на соседнюю АС мой ISP?

 

Нашел такой кусок конфига но не могу понять, что значат цифры возле АС [56:2379 23:46944]:

[edit]

routing-options {
router-id 10.0.0.1;
autonomous-system 23;
}policy-options {
policy-statement from-otago {
from community otago;
then metric 20;
}
community otago members [56:2379 23:46944];
}
protocols {
bgp {
import from-otago;
group 23 {
type external;
peer-as 56;
neighbor 192.168.0.1 {
traceoptions {
file bgp-log-peer;
flag packets;
}
log-updown;
}
}
}
}

 

Заранее благодарен.

Share this post


Link to post
Share on other sites

community otago members [56:2379 23:46944]; - это управляющие BGP коммьюнити по которым принимается решение как принять (инжектировать в FIB) и куда анонсировать маршрут. А то что вы объясняете больше похоже на policy base routing. на джунипере они делаются при помощи route instance. гугл в помощь...

Share this post


Link to post
Share on other sites

community otago members [56:2379 23:46944]; - это управляющие BGP коммьюнити по которым принимается решение как принять (инжектировать в FIB) и куда анонсировать маршрут. А то что вы объясняете больше похоже на policy base routing. на джунипере они делаются при помощи route instance. гугл в помощь...

 

может я вообще копаю не в ту сторону, но на самом деле мне необходимо используя дополнительный атрибут MED для определенного /32 уметь изменять для него маршрут. предполагается что мой провайдер понимает этот атрибут и принимает мой /32.

Грубо говоря мне нужно дать анонс на x.x.x.x/32 и сделать ему приоритет на другой канал. Каким образом это можно сделать на джуне?

Share this post


Link to post
Share on other sites

это вы направляете исходящий трафик, а входящий все равно будет по анонсам возвращаться. перенос в другой instance происходит в firewall filter, в котором можно указать только prefix-list, который вы будете передавать провайдеру, а он обновлять фильтры. как альтернативный вариант: сделайте второй VLAN с провайдером для анонсирования в другой канал. лучше схему нарисовать.

Share this post


Link to post
Share on other sites

Возможно, я все попутал, но итоговая задача состоит в том чтобы в случае DDOS атаки, на IP клиента, превыщающий выделеный нам от ДЦ канал по объему, отправлять весь трафик в blackhole, я так понимаю что это делается с помощью тега MED, у нас стоит железка juniper ex4200, но пока как это настроить я не понимаю, не подскажете более конкретно (если возможно) на примере IP допустим 192.168.1.123 который ddos'ят, что прописать на джунипере?

Share this post


Link to post
Share on other sites

habrahabr.ru/post/91574/

ваш случай

если не удастся перенести с циско-кли на джунос - обращайтесь.

 

Да, я за основу всего брал именно эту статью. Просто ни как не могу понять, как конвертировать цисковкие настройки для клиентской стороны на мой Juniper, в приципе это и есть то что я пытаюсь реализовать:):


Сторона клиента.

! Описываем фильтр для редистрибуции.
! На статические маршруты с тэгом 666 устанавливаем community 0:666
route-map BGP-BLACKHOLE permit 5
match tag 666
set community 0:666 additive
!
router bgp YYY
! Разрешаем редистрибуцию статических маршрутов по нашему фильтру
redistribute static route-map BGP-BLACKHOLE
! Разрешим отсылку community нашему аплинку
neighbor <UPLINK> send-community

Share this post


Link to post
Share on other sites

IOS to JUNOS Translator

 

https://i2j.juniper.net/release/index.jsp

 

Спасибо за утилиту!

Вот что получилось:

 

routing-options {
   autonomous-system 54321;
   static {
       route 2.2.2.2/32 {
           discard;
           tag 666;
       }
   }
}
protocols {
   bgp {
       path-selection cisco-non-deterministic;
       export [ bgp-redistributes bgp-policies-global-export ];
   }
}
policy-options {
   community all members "*:*";
   community static-to-bgp-1 members [ additive 2152:666 ];
   policy-statement bgp-policies-global-export {
       term strip-communities {
           then {
               community delete all;
               next term;
           }
       }
       term explicit-default-action {
           then next policy;
       }
   }
   policy-statement bgp-redistributes {
       term static {
           from {
               policy rm-static-to-bgp;
               protocol static;
           }
           then accept;
       }
       term from-bgp {
           from protocol bgp;
           then next policy;
       }
       term ios-implicit-deny {
           then reject;
       }
   }
   policy-statement rm-static-to-bgp {
       term term-1 {
           from tag 666;
           then {
               community set static-to-bgp-1;
               accept;
           }
       }
       term ios-implicit-deny {
           then reject;
       }
   }
}

 

и конечно же косяки:

 

1:router bgp 54321
2:redistribute static route-map static-to-bgp
Line not yet supported by I2J. JUNOS will redistribute subnets, unlike IOS
3:route-map static-to-bgp permit 5
4:match tag 666
Line not yet supported by I2J
5:set community additive 2152:666
Line not yet supported by I2J
6:ip route 2.2.2.2 255.255.255.255 Null0 tag 666

 

Хотел бы убедится, что это будет работать перед тем как добавлять в конфиг.

Share this post


Link to post
Share on other sites

Убедиться можно и на таком конфиге, коммит не пройдет, если будет где то ошибка, а так commit confirmed если что.

Share this post


Link to post
Share on other sites

Конкретно такая реализация скорее всего сломает все текущие анонсы. На самом деле выложите текущий экспорт полиси, которым фильтруете свои анонсы. Там надо-то всего один терм добавить.

Share this post


Link to post
Share on other sites

коротко так:

[edit routing-options static]
+    route 2.2.2.2/32 {
+        discard;
+        tag 666;
+    }
[edit protocols bgp group upstreams]
+     neighbor 192.168.0.1 {
+         export [ blackhole myAS ];
+     }
[edit policy-options]
+   policy-statement blackhole {
+       from {
+           protocol static;
+           tag 666;
+       }
+       then {
+           community add blackhole;
+           accept;
+       }
+   }
[edit policy-options]
+   community blackhole members 2152:666;

Share this post


Link to post
Share on other sites

dmvy спасибо, попробую !

 

А вообще реально как то узнать без ведома провайдера включен ли у него блекхол?

что-то типа такого (на примере Ростелеком):

$ whois AS12389|grep blackhole
remarks:        | 12389:55555 - blackhole traffic 

 

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

Share this post


Link to post
Share on other sites

коротко так:

[edit routing-options static]
+    route 2.2.2.2/32 {
+        discard;
+        tag 666;
+    }
[edit protocols bgp group upstreams]
+     neighbor 192.168.0.1 {
+         export [ blackhole myAS ];
+     }
[edit policy-options]
+   policy-statement blackhole {
+       from {
+           protocol static;
+           tag 666;
+       }
+       then {
+           community add blackhole;
+           accept;
+       }
+   }
[edit policy-options]
+   community blackhole members 2152:666;

 

Слепил все вместе с моей текущей рабочей конфигурацией, взгляните пожалуйста все ли учтено, неохота уронить весь хостинг:

 

juniper.conf

 

Заранее благодарен

Share this post


Link to post
Share on other sites

нужно сдвинуть превратить

+ export [ isp-out blackhole myAS ];

в

+ export [ blackhole isp-out ];

потому что после isp-out ничего отрабатываться не будет - у вас там стоит reject, а он должен быть в самом последнем policy. myAS я для примера писал - у вас это isp-out

   policy-statement isp-out {
       term own-as {
           from {
               protocol [ static direct ];
               prefix-list own-blocks;
           }
           then accept;
       }
       term final-reject {
           then reject;
       }

 

Ваш аплинк судя по RIPE-базе blackhole функционал не поддерживает.

 

учитывая static route 0.0.0.0/0 вы не потеряете управление роутером, если подключителсь к вшенмену ip из p2p BGP /30 линка

Share this post


Link to post
Share on other sites

dmvy Отлично, съел конфигурацию! Добавил IP одного из серверов и он перестал пинговаться в принципе, то что мне нужно.

 

Спасибо!!!

Share this post


Link to post
Share on other sites

Но трафик до вашего juniper дойдет. Аплинк вам дал подтверждение наличия такого community?

 

Тщетны были старания, они используют такую опцию :(

Share this post


Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.