Перейти к содержимому
Калькуляторы

Никто не спорит, что дробить анонсы на мелкие сетки не комильфо. Но случаи бывают разные и хотелось бы знать правильный вариант решения.

 

 

Да есть мнение что нет правильного варианта для неправильного решения. Ну сделать routing-instance, с которой поднять бгп и роуты с next-table inet.0. И имхо это тоже выглядит коряво.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

господа, и все же.

 

есть решение как анонсить пачку /24, имея /22 в Local

 

причина таких танцев с бубом - при ддосе валится весь /22, а так снимаешь с анонса /24 и уже легче. Это пока блекхолла нет.

 

PS: накидайте примеров, как "щупать" транзитный трафик на mx? firewall, sample?

Кто как обнаруживает какой ip под долбежкой, перед тем как отправить его в blackhole.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

PS: накидайте примеров, как "щупать" транзитный трафик на mx? firewall, sample?

Кто как обнаруживает какой ip под долбежкой, перед тем как отправить его в blackhole.

 

Зеркалирование в коллектор netflow.

Дальше сенсорами-скриптами анализировать ненормальную активность.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Народ, читаю тему и думаю над

 

Товарищ говорит, что если в системе есть /22 connected, а анонсировать ему хочется пачку /24, то в дискард сувать пачку /24 как-то некомильфо, ибо специфики перекроют коннектед. Ферштейн?

 

а не прокатило бы ?

 

1) set routing-options generate route 10.10.10./24 discard

 

2) set routing-options static route 10.10.10./24 no-install

 

Сам не спец в JunOS, просто любопытство.

Изменено пользователем ifndx

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Апну тему.

Требуется на входящих фильтрах BGP принять только часть сетей и выставить у них LP.

Но не хочется дублировать в фильтрах подобное:
 

route-filter 24.0.0.0/5 upto /18 accept

 

Попытался через префикс листы, но там upto не поддерживается...

	policy-statement world-1-in-18-Data {
		term get-routes {
			from {
				prefix-list prefix-world-1-in-18 upto /18 accept;
			}
			then {
				local-preference 333;
				accept;
			}
		}
	}
    ...
    prefix-list prefix-world-1-in-18 {
        0.0.0.0/5;
        24.0.0.0/5;
        ...
    }

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

policy-statement world-1-in-18-Data {
		term get-routes {
			from {
				prefix-list-filter prefix-world-1-in-18 orlonger;
			}
			then {
				local-preference 333;
				accept;
			}
		}
	}

можно вот так, но.... (думаю понятно, что туда попадет)

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

5 hours ago, Telesis said:

policy-statement world-1-in-18-Data {
		term get-routes {
			from {
				prefix-list-filter prefix-world-1-in-18 orlonger;
			}
			then {
				local-preference 333;
				accept;
			}
		}
	}

можно вот так, но.... (думаю понятно, что туда попадет)

а чтобы не попало "что не нужно" (например, /32'ые) prefix-list-filter можно дополнительно

ограничить route-filter'ом, типа

from {
  prefix-list-filter ${name} orlonger;
  route-filter 0.0.0.0/0 upto /24;
}

в результате пройдут только префиксы, которые попадают под оба правила.

 

PS: при этом префикс-лист ни в коем случае не должен храниться в dynamic-db, иначе

будет весело Ж:-(

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Все бы хорошо, но повторяю, мне нужно принять сети, подподающие под правило -  маски сети  больше /5, но меньше /18
 

  route-filter 0.0.0.0/0 upto /24;

Поэтому, вместо /24 надо юзать /18.

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Следующий вопрос.
Есть ли у Junos общий сетевой интерфейс, на который можно навесить фильтры-полисеры? Или надо такие фильтры добавлять на каждый интерфейс с аплинком?

Например, свежий:
 

...

firewall {
    policer police_junk {
        if-exceeding {
            bandwidth-limit 20m;
            burst-size-limit 64k;
        }
        then discard;
    }
...
    filter limit-ntp-memcache {
        term limit-junk {
            from {
                protocol udp;
                source-port [ 123 11211 ];
            }
            then policer police_junk;
        }
        term accept {
            then accept;
        }
    }
...

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

В 29.03.2018 в 20:18, snar сказал:

from { prefix-list-filter ${name} orlonger; route-filter 0.0.0.0/0 upto /24; }

После правок, route упорно остается на первом месте.

    from {
        route-filter 0.0.0.0/0 upto /18;
        prefix-list-filter prefix-world-1-in-18 orlonger;
    }


В Junos в этой секции работает  не порядок правил?

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

On 30.03.2018 at 10:46 PM, vlad11 said:

Все бы хорошо, но повторяю, мне нужно принять сети, подподающие под правило -  маски сети  больше /5, но меньше /18
 

Если нужно принять все сети с маской больше или равными /5 и меньше или равными /18 - можно и проще,

 

from route-filter 0.0.0.0/0 prefix-length-range /5-/18

i.e., префикс-фильтр вообще не нужен.

 

On 30.03.2018 at 11:08 PM, vlad11 said:

После правок, route упорно остается на первом месте.


    from {
        route-filter 0.0.0.0/0 upto /18;
        prefix-list-filter prefix-world-1-in-18 orlonger;
    }


В Junos в этой секции работает  не порядок правил?

Работает то, что префикс попадает под оба правила.

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

2 часа назад, snar сказал:

from route-filter 0.0.0.0/0 prefix-length-range /5-/18

i.e., префикс-фильтр вообще не нужен.

Это не надо. С префикс-фильтром в моем случае будет меньше строк.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Есть сеть 10.10.0.0/24.
Нужно пакетики из этой сети посылать только в один аплинк.


Смотрю эту статью.


Нужно создать исходящие фильтры на других аплинках и пересылать пакеты с src IP 10.10.0.0/24 в нужный сетевой интерфейс?

Типа такого?

family inet {
 filter filter1 {
   term t1 {
    from {
      source-address {
        10.10.0.0/24;
      }
    }
    then {
       next-interface {
                ge-2/1/1.0;
       }
    }
   }
 }
}

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Добрый день.

Есть примерно такая же задача

Есть два аплинка по бгп

И есть задача посылать разные сети в разные аплинки

Те примерно так

a.a.a.a/24 -> isp1

b.b.b.b/24 -> isp1

c.c.c.c/24 ->isp2

d.d.d.d- > в люобой из аплинков

соответственно

isp1 приходит по xe-0/0/2.10

isp2 приходит по xe-0/0/2.20

а сети прилетают из xe-0/0/1

 

заношу сети которые хочу отправить в isp1 в prefix-list isp1-nets

в isp2 в prefix-list isp2-nets

 

И прибиваю к интерфейсу xe-0/0/1 следующий фильтр

 

filter isp_forward{
	term isp1_forward{
		from{ 
			prefix-list isp1-nets
		}
		then{
			next-interface{ xw-0/0/2.10 }
		}
	}

	term isp2_forward{
		from{ 
			prefix-list isp2-nets
		}
		then{
			next-interface{ xw-0/0/2.20 }
		}
	}
	
	term other_forward{
		
	}

}

 

Соответсвенно появились вопросы 

 

1) Что писать в term other_forward, что бы сеть типа d.d.d.d улетела в любого провайдера ?

2) Это решение правильное или такие вещи нужно делать как то по другому

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Вы спутали входящие и исходящие фильтры в RIB и BGP.

Самый простой способ указать для  d.d.d.d/24 next-hop несколько хопов аплинков, повесив как input-list на lo0.

    filter forward-to-self-arenda-net {
        term 1 {
            from {
                source-address {
                    d.d.d.d/24;
                }
            }
            then {
                next-ip [ ${gw_ISP1}/32 ${gw_ISP2}/32 ${gw_ISP3}/32 ];
            }
        }
        term accept {
            then accept;
        }
    }



И балансить
 

forwarding-options {
    load-balance {
        indexed-load-balance;
        per-flow {
            hash-seed;
        }
    }
}
...
routing-options {
...
    forwarding-table {
        export ECMP-per-packet;
    }
...
}

...
    policy-statement ECMP-per-packet {
        then {
            load-balance per-packet;
        }
    }
...


Но самый правильный способ другой.

Принимать от всех аплинков FV + default.

Фильтровать FV, принять только сети крупнее /18 или /19.
Затем в шахматном порядке разделить весь мир 0.0.0.0/0 на части, кратные кол-ву аплинков и толщинам каналов аплинков.
Далее навесить правильно LP на эти блоки сетей 0.0.0.0/0,  чтоб траф равномерно растекался при падении одного из аплинков.





 

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

В 30.03.2018 в 23:08, vlad11 сказал:

После правок, route упорно остается на первом месте.


    from {
        route-filter 0.0.0.0/0 upto /18;
        prefix-list-filter prefix-world-1-in-18 orlonger;
    }

И так не работает, как я хочу

 

 

В 01.04.2018 в 20:38, snar сказал:

from route-filter 0.0.0.0/0 prefix-length-range /5-/18

И с использованием этого правила.

Три правила будут стекаться?

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Join the conversation

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

Гость
Ответить в тему...

×   Вставлено в виде отформатированного текста.   Вставить в виде обычного текста

  Разрешено не более 75 смайлов.

×   Ваша ссылка была автоматически встроена.   Отобразить как ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставить изображения напрямую. Загрузите или вставьте изображения по ссылке.