JunOS и маршруты (routing-instance)

Статическая и динамическая, протоколы

JunOS и маршруты (routing-instance)

Сообщение postfx » 12 дек 2012, 11:54

Всем привет!

Столкнулись с проблемой на Juniper EX-3200.
Настроили фаерволл для разделения подсетей по source-address (через фаерволл выдаем либо второй routing-instance (если сработало правило), либо дефолтный).
Полный конфиг приведён ниже.

Вот этот routing-instance:

Код: Выделить всё
pprob_ri {
    instance-type forwarding;
    routing-options {
        static {
            route 0.0.0.0/0 next-hop 10.248.254.10;
        }
    }
}


Проблема заключается в том, что при срабатывании правила, клиенту подсовывается маршрутная карта всего с одним маршрутом (который и указан выше), а все Local- и Direct- маршруты там почему-то отсутствуют. По крайней мере трассировка до ЛЮБОГО узла идёт сразу через 10.248.254.10. А ведь есть "динамические" маршруты, которые сами создаются при наличии IP на интерфейсах. Так вот они почему-то не работают.

НО! Как видно из "show route" они есть:

Код: Выделить всё
pprob_ri.inet.0: 891 destinations, 891 routes (890 active, 0 holddown, 1 hidden)
+ = Active Route, - = Last Active, * = Both

0.0.0.0/0          *[Static/5] 09:21:31                 > to 10.248.254.10 via vlan.254
10.144.8.0/24      *[Direct/0] 09:21:32                    > via vlan.1014
10.144.8.254/32    *[Local/0] 09:21:32                      Local via vlan.1014
10.228.0.0/24      *[Direct/0] 09:21:36                    > via vlan.1110
10.228.0.254/32    *[Local/0] 09:21:36                      Local via vlan.1110
10.228.1.0/24      *[Direct/0] 09:21:31                    > via vlan.1111
10.228.1.254/32    *[Local/0] 09:21:31                      Local via vlan.1111
10.228.2.0/24      *[Direct/0] 09:21:36                    > via vlan.1112


Значит просто не работают?

Конфиг:

Код: Выделить всё
...
interfaces {
     vlan {
        unit 1110 {
            family inet {
                filter {
                         input pprob_f_0;
                }
                address 10.249.0.0/24;
            }
        }
}

routing-options {
    interface-routes {
        rib-group inet all-ribs;
    }
    static {
        route .......
        route .......
        route 0.0.0.0/0 next-hop 80.251....;
    }
    rib-groups {
        all-ribs {
            import-rib [ inet.0 pprob_ri.inet.0 ];
        }
    }
}

firewall {
    family inet {
        filter pprob_f_0 {
            term 1 {
                from {
                    source-address {
                        10.249.x.x/32;
                    }
                }
                then {
                    routing-instance pprob_ri;
                }
            }
            term 2 {
                then accept;
            }
        }
    }
}

routing-instances {
    pprob_ri {
        instance-type forwarding;
        routing-options {
            static {
                route 0.0.0.0/0 next-hop 10.248.254.10;
            }
        }
    }
}

...


Вроде все сделано по официальным мануалам.
Но все равно например трассировка то 10.144.8.1 (самый первый маршрут динамический, я приводил их выше) идёт не напрямую с интерфейса, а заворачивается в routing-instance на 10.248.254.10.

Что может быть не так? Что можете посоветовать? Спасибо.

Цель всего этого была разделить маршруты для клиентов по source address.

Спасибо.
postfx
проходил мимо
 
Сообщения: 2
Зарегистрирован: 12 дек 2012, 11:33

Re: JunOS и маршруты (routing-instance)

Сообщение root » 13 дек 2012, 08:48

postfx писал(а):Цель всего этого была разделить маршруты для клиентов по source address.

Цель всего этого -> PBR (policy based routing).

postfx писал(а):Столкнулись с проблемой на Juniper EX-3200.

Версия Junos ?

postfx писал(а):Полный конфиг приведён ниже.

по конфигу у меня вопросов не возникает, вроде как все правильно.

postfx писал(а): клиенту подсовывается маршрутная карта всего с одним маршрутом (который и указан выше), а все Local- и Direct- маршруты там почему-то отсутствуют.

судя по приведенному тобой выводу роутинг таблы pprob_ri.inet.0 это не так. в pprob_ri.inet.0 есть и direct и local

postfx писал(а):Значит просто не работают?

значит что засада в чем то другом, м.б. это нюансы EX`а
на EX`е c rib`ами не развлекался, но на MX`е твой конфиг точно будет работать.

postfx писал(а):Вроде все сделано по официальным мануалам.

сцылку в студию :)

postfx писал(а):Но все равно например трассировка то 10.144.8.1

Трассировка с 10.249.x.x до 10.144.8.1 ? Или наборот ? Покажи трассы.
А с 10.249.x.x до 10.144.8.254 пинг/трасса есть ?
Настройки L3 интерфейса vlan.1014 ? Firewall ?
10.144.8.1 откуда нить точно доступен ? Откуда ?
Покажи вывод:
Код: Выделить всё
show route terse table inet.0 10.249.x.x

Код: Выделить всё
show route terse table inet.0 10.144.8.1

Код: Выделить всё
show route terse table pprob_ri.inet.0 10.249.x.x

Код: Выделить всё
show route terse table pprob_ri.inet.0 10.144.8.1


Вот это читал ? Пробовал ?
С уважением, root

Изображение
------------
www.mega-net.ru - IT аутсорсинг
Аватара пользователя
root
Site Admin
 
Сообщения: 1887
Зарегистрирован: 11 июн 2008, 13:05
Откуда: Moscow, Russia

Re: JunOS и маршруты (routing-instance)

Сообщение postfx » 13 дек 2012, 12:01

Трассировка с 10.249.x.x до 10.144.8.1 ? Или наборот ? Покажи трассы.


Сейчас вместо 10.244.8.1 - 10.144.8.200 для теста. Вот результаты:

БЕЗ ФИЛЬТРА:
Код: Выделить всё
C:\Windows\System32>tracert -d 10.144.8.200

Трассировка маршрута к 10.144.8.200 с максимальным числом прыжков 30

  1     1 ms     1 ms     1 ms  10.228.0.254
  2    39 ms     3 ms     2 ms  10.144.8.200

Трассировка завершена.


===========================================

С ФИЛЬТРОМ:
Код: Выделить всё
C:\Windows\System32>tracert -d 10.144.8.200

Трассировка маршрута к 10.144.8.200 с максимальным числом прыжков 30

  1    39 ms     4 ms     2 ms  10.228.0.254
  2     9 ms     7 ms     7 ms  10.248.254.10            (лишний хоп №1)
  3     2 ms     1 ms     2 ms  10.248.254.254          (лишний хоп №2)
  4     2 ms    19 ms     1 ms  10.144.8.200

Трассировка завершена.


============================================

А с 10.249.x.x до 10.144.8.254 пинг/трасса есть ?

Код: Выделить всё
C:\Windows\System32>tracert -d 10.144.8.254

Трассировка маршрута к 10.144.8.254 с максимальным числом прыжков 30

  1     1 ms     1 ms     1 ms  10.144.8.254

Трассировка завершена.


=============================================

Настройки L3 интерфейса vlan.1014 ? Firewall ?


Код: Выделить всё
manager@EX3200# show interfaces vlan unit 1014
family inet {
    address 10.144.8.254/24;
}


Код: Выделить всё
manager@EX3200# show firewall family inet filter pprob_f_0
term 1 {
    from {
        source-address {
            10.249.0.21/32;
        }
    }
    then {
        count testcount;
        log;
        routing-instance pprob_ri;
    }
}
term 2 {
    then accept;
}


10.144.8.1 откуда нить точно доступен ? Откуда ?

10.144.8.200 - как с Juniper, так и с рабочей машины (трассировка выше в двух вариантах).

show route terse table inet.0 10.249.0.21


Код: Выделить всё
manager@EX3200> show route terse table inet.0 10.249.0.21

inet.0: 907 destinations, 910 routes (906 active, 0 holddown, 1 hidden)
+ = Active Route, - = Last Active, * = Both

A V Destination        P Prf   Metric 1   Metric 2  Next hop        AS path
* ? 10.249.0.0/24      D   0                       >vlan.1110


show route terse table inet.0 10.144.8.1


Код: Выделить всё
manager@EX3200> show route terse table inet.0 10.144.8.200

inet.0: 907 destinations, 910 routes (906 active, 0 holddown, 1 hidden)
+ = Active Route, - = Last Active, * = Both

A V Destination        P Prf   Metric 1   Metric 2  Next hop        AS path
* ? 10.144.8.0/24      D   0                       >vlan.1014


show route terse table pprob_ri.inet.0 10.249.0.21


Код: Выделить всё
manager@EX3200> show route terse table pprob_ri.inet.0 10.249.0.21

pprob_ri.inet.0: 892 destinations, 892 routes (891 active, 0 holddown, 1 hidden)
+ = Active Route, - = Last Active, * = Both

A V Destination        P Prf   Metric 1   Metric 2  Next hop        AS path
* ? 10.249.0.0/24      D   0                       >vlan.1110


show route terse table pprob_ri.inet.0 10.144.8.1


Код: Выделить всё
manager@EX3200> show route terse table pprob_ri.inet.0 10.144.8.200

pprob_ri.inet.0: 892 destinations, 892 routes (891 active, 0 holddown, 1 hidden)
+ = Active Route, - = Last Active, * = Both

A V Destination        P Prf   Metric 1   Metric 2  Next hop        AS path
* ? 10.144.8.0/24      D   0                       >vlan.1014


Вот это читал ? Пробовал ?

Это моя же тема на оф форуме джунипера, но тогда в мае не работало по другим причинам, сейчас вот на новой прошивке взялись по новой реализовывать PBR.

Вроде все сделано по официальным мануалам.
сцылку в студию


http://www.juniper.net/techpubs/en_US/j ... eries.html
http://kb.juniper.net/InfoCenter/index? ... id=KB16411

Спасибо за помощь. Есть ещё мысли? Очень уж надо нам это использовать.
postfx
проходил мимо
 
Сообщения: 2
Зарегистрирован: 12 дек 2012, 11:33

Re: JunOS и маршруты (routing-instance)

Сообщение root » 17 дек 2012, 10:48

postfx писал(а):Есть ещё мысли?

пока нету...

postfx писал(а):Сейчас вместо 10.244.8.1 - 10.144.8.200 для теста.

брр... ты меня совсем запутал. а где был 10.244.8.1 ?

Давай так, ты либо схемку нарисуй, либо словами расскажи все IP-адреса и вланы, всех устройств участвующих в тестах. А то мне то не так все понятно как тебе, ты ж схему то собираешь :)
10.144.8.200 это кто и где ? :)
Т.к. я не очень понимаю почему в трассах первый хоп 10.228.0.254, если мы до этого говорили о 10.249.Х.Х
10.249.0.21 это кто и где ?
Смотрим в таблу роутинга из первого сообщения, у нас получается что на EX`е:
    vlan 1014 подсеть 10.144.8.0/24 и IP 10.144.8.254/24
    vlan 1110 подсеть 10.228.0.0/24 и IP 10.228.0.254/24
затем ты приводишь конфиг ифейса vlan 1110 где указан address 10.249.0.0/24
Отсюда возникают вопросы:
    а) так какая же все таки сеть живет за vlan 1110 ? 10.228.0.0/24 или 10.249.0.0/24 ? судя по табле роутинга из последнего поста это все же должна быть 10.249.0.0/24.
    б) почему ты выбрал нулевой IP для ифейса ? М.б. все же повесить 10.249.0.1/24 или скажем 10.249.0.254/24 ?

исходя из всего этого, я для себя рисую вот такую схему:
Код: Выделить всё
Win IP 10.249.0.21/24 <==> [vlan 1110] IP 10.249.0.0/24 EX3200 IP 10.144.8.254/24 [vlan 1014] <==> ЧТО-ТО c IP 10.144.8.200/24

Код: Выделить всё
EX3200 IP 10.248.254.254/?? [vlan 254] <==> ЧТО-ТО c IP 10.248.254.10/??

я все правильно понимаю в твоей схеме ?

Покажи ещё:
Код: Выделить всё
show route forwarding-table matching 10.144.8.0/24

Код: Выделить всё
show route forwarding-table matching 10.249.0.0/24

Код: Выделить всё
show route forwarding-table matching 10.248.254.10


Так же как говорится если ничего не помогает, тио начинай рассуждать :). Если рассуждать далее, то:
postfx писал(а):http://www.juniper.net/techpubs/en_US/j ... eries.html

Там IP-адреса у девайса висят прямо на порту, а в твоем случае адреса висят на L3 интерфейсах + там в routing-instance явно указаны интерфейсы.
М.б. тебе тоже попробовать указать в routing-instance свои L3 вланы ?
С уважением, root

Изображение
------------
www.mega-net.ru - IT аутсорсинг
Аватара пользователя
root
Site Admin
 
Сообщения: 1887
Зарегистрирован: 11 июн 2008, 13:05
Откуда: Moscow, Russia


Вернуться в Маршрутизация / Routing

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 4

cron