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

Маршрутизация между VRF и UBPR локлаьного трафика

Есть cisco 6500 с супом WS-SUP720-3B

Хочется использовать её возможности UBRL для шейпинга локального трафика.

 

Клиентские подсети заводятся в неё вланами.

 

Для примера пара вланов:

 

interface Vlan100
ip address 10.100.0.1 255.255.0.0
service-policy input local_t
!
interface Vlan200
ip address 10.200.0.1 255.255.0.0
service-policy input local_t
!

И т.д.

 

 

Нужно каждому пользователю дать скажем 10 мегобит входящего и 10 мегобит исходящего трафика.

 

На текущий момент удалось добиться попадания в flow таблицу либо только по адресу назначения, либо по адресу исходящего.

А необходимо чтобы было две записи.

 

 

access-list 160 permit ip 10.0.0.0 0.255.255.255 10.0.0.0 0.255.255.255
!
class-map match-all local_
  match access-group 160
!
!
policy-map local_t
  class local_
     police flow mask src-only 1000000 248000 conform-action transmit exceed-action drop

 

Пробывал добавлять ещё одну цепочку в policy-map. Что то вроди:

 

access-list 160 permit ip 10.0.0.0 0.255.255.255 10.0.0.0 0.255.255.255
!
class-map match-all local_src
  match access-group 160
class-map match-all local_dest
  match access-group 160
!
!
policy-map local_t
  class local_src
     police flow mask src-only 1000000 248000 conform-action transmit exceed-action drop
  class local_dest
     police flow mask dest-only 1000000 248000 conform-action transmit exceed-action drop

 

но в flow таблицу попадает только запись которая стоит первее в policy-map.

 

Скажите реализуема ли такая задача вообще?

Edited by Joneg

Share this post


Link to post
Share on other sites

А нормально работает то UBRL?

Вы NDE с нее не собираете?

 

У нас не получилось запустить...

Share this post


Link to post
Share on other sites

Нет netflow не собираю.

Ну в "текущем", те в том, что попало в flow таблицу, скорость режеться.

Share this post


Link to post
Share on other sites

проблема в том, что полиси вы повесили только на входящий от абонента трафик

service-policy input local_t

обрабатывается трафик только от абонента к интерфейсу. т.е. для vlan 100 это всегда будет только src ip 10.100.x.x;

 

может стоить допаять service-policy output ?

 

Edited by darkagent

Share this post


Link to post
Share on other sites

Нельзя вешать UBRL на output

 

police flow mask src-only 1000000 248000 conform-action transmit exceed-action drop

тут написано что-то вроди того, что если очередь на отправку отправителя заполнена, но нужно дропать пакеты.

 

мне нужно сделать чтобы маршрутизатор дропал пакеты если очередь на отправку отправителя заполнена ИЛИ отчередь приема получателя заполнена.

Share this post


Link to post
Share on other sites

Начал смотреть в сторону vrf. Каждый vlan с клентами заводится в отдельный vrf. Это позволит указать каждой подсети шлюз по умолчанию без использования PBR. И пришла мысль сделать для локального трафика между клиентами дополнительный хоп в виде ещё одного vrf. Не знаю на сколько это правильно. Однако возникла проблема.

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

 

 

! тот самый навязаный дополнительный роутер для локального трафика
ip vrf local
rd 65000:5000
route-target export 65000:5000
route-target import 65000:200
route-target import 65000:250
! первая тестовая сетка
ip vrf net_200
rd 65000:200
route-target export 65000:200
route-target import 65000:5000
! вторая тестовая сетка
ip vrf net_250
rd 65000:250
route-target export 65000:250
route-target import 65000:5000


! в дополнительный руотер добавляем лупбэк
interface Loopback5000
ip vrf forwarding local
ip address 192.168.100.100 255.255.255.0
!

! физ интерфейсы сеток
! ничего интересного
interface GigabitEthernet3/13
description "Test 10.200.0.0 network"
switchport
switchport access vlan 700
switchport mode access
no ip address
!
interface GigabitEthernet3/14
description "Test 10.250.0.0 network"
switchport
switchport access vlan 750
switchport mode access
no ip address


!
interface Vlan700
ip vrf forwarding net_200
ip address 10.200.0.1 255.255.0.0
!
interface Vlan750
ip vrf forwarding net_250
ip address 10.250.0.1 255.255.0.0
!
! бгп для обмена маршрутами между vrf
router bgp 65000
no synchronization
bgp log-neighbor-changes
no auto-summary
!
address-family ipv4 vrf net_250
redistribute connected
no auto-summary
no synchronization
exit-address-family
!
address-family ipv4 vrf net_200
redistribute connected
no auto-summary
no synchronization
exit-address-family
!
address-family ipv4 vrf local
redistribute connected
no auto-summary
no synchronization
exit-address-family
!

! ну и маршруты в каждую сетку чтобы завернуть локальный трафик на лупбэк в локале
ip route vrf net_200 10.0.0.0 255.0.0.0 192.168.100.100
ip route vrf net_250 10.0.0.0 255.0.0.0 192.168.100.100

 

Вроди бы все хорошо. Обмен маршрутами происходит:

 

show ip bgp vpnv4 all
BGP table version is 28, local router ID is ххх.ххх.ххх.ххх
Status codes: s suppressed, d damped, h history, [quot] valid, > best, i - internal,
              S Stale
Origin codes: i - IGP, e - EGP, ? - incomplete

   Network          Next Hop            Metric LocPrf Weight Path
Route Distinguisher: 65000:200 (default for vrf net_200)
[/quot]> 10.200.0.0/16    0.0.0.0                  0         32768 ?
[quot]> 192.168.100.0    0.0.0.0                  0         32768 ?
Route Distinguisher: 65000:250 (default for vrf net_250)
[/quot]> 10.250.0.0/16    0.0.0.0                  0         32768 ?
[quot]> 192.168.100.0    0.0.0.0                  0         32768 ?
Route Distinguisher: 65000:5000 (default for vrf local)
[/quot]> 10.200.0.0/16    0.0.0.0                  0         32768 ?
[quot]> 10.250.0.0/16    0.0.0.0                  0         32768 ?
[/quot]> 192.168.100.0    0.0.0.0                  0         32768 ?

 

show ip route vrf local

Routing Table: local
Codes: C - connected, S - static, R - RIP, M - mobile, B - BGP
       D - EIGRP, EX - EIGRP external, O - OSPF, IA - OSPF inter area
       N1 - OSPF NSSA external type 1, N2 - OSPF NSSA external type 2
       E1 - OSPF external type 1, E2 - OSPF external type 2, E - EGP
       i - IS-IS, su - IS-IS summary, L1 - IS-IS level-1, L2 - IS-IS level-2
       ia - IS-IS inter area, [quot] - candidate default, U - per-user static route
       o - ODR, P - periodic downloaded static route

Gateway of last resort is not set

     10.0.0.0/16 is subnetted, 2 subnets
B       10.200.0.0 is directly connected, 00:59:28, Vlan700
B       10.250.0.0 is directly connected, 00:59:28, Vlan750
C    192.168.100.0/24 is directly connected, Loopback5000

 

show ip route vrf net_200

Routing Table: net_200
Codes: C - connected, S - static, R - RIP, M - mobile, B - BGP
       D - EIGRP, EX - EIGRP external, O - OSPF, IA - OSPF inter area
       N1 - OSPF NSSA external type 1, N2 - OSPF NSSA external type 2
       E1 - OSPF external type 1, E2 - OSPF external type 2, E - EGP
       i - IS-IS, su - IS-IS summary, L1 - IS-IS level-1, L2 - IS-IS level-2
       ia - IS-IS inter area, [/quot] - candidate default, U - per-user static route
       o - ODR, P - periodic downloaded static route

Gateway of last resort is not set

     10.0.0.0/8 is variably subnetted, 2 subnets, 2 masks
S       10.0.0.0/8 [1/0] via 192.168.100.100
C       10.200.0.0/16 is directly connected, Vlan700
B    192.168.100.0/24 is directly connected, 00:37:05, Loopback5000

show ip route vrf net_250

Routing Table: net_250
Codes: C - connected, S - static, R - RIP, M - mobile, B - BGP
       D - EIGRP, EX - EIGRP external, O - OSPF, IA - OSPF inter area
       N1 - OSPF NSSA external type 1, N2 - OSPF NSSA external type 2
       E1 - OSPF external type 1, E2 - OSPF external type 2, E - EGP
       i - IS-IS, su - IS-IS summary, L1 - IS-IS level-1, L2 - IS-IS level-2
       ia - IS-IS inter area, * - candidate default, U - per-user static route
       o - ODR, P - periodic downloaded static route

Gateway of last resort is not set

     10.0.0.0/8 is variably subnetted, 2 subnets, 2 masks
S       10.0.0.0/8 [1/0] via 192.168.100.100
C       10.250.0.0/16 is directly connected, Vlan750
B    192.168.100.0/24 is directly connected, 00:37:17, Loopback5000

 

Пинги между роутерами идут, а сквозь локальный нет:

ping vrf net_200 192.168.100.100

Type escape sequence to abort.
Sending 5, 100-byte ICMP Echos to 192.168.100.100, timeout is 2 seconds:
!!!!!
Success rate is 100 percent (5/5), round-trip min/avg/max = 1/2/4 ms

 

ping vrf net_200 10.250.0.1

Type escape sequence to abort.
Sending 5, 100-byte ICMP Echos to 10.250.0.1, timeout is 2 seconds:
.....
Success rate is 0 percent (0/5)

 

Непойму, что делаю нетак?

Edited by Joneg

Share this post


Link to post
Share on other sites

В вашей схеме vrf net_200 и vrf net_250 изолированы друг от друга.

 

 

ip vrf net_200

rd 65000:200

route-target export 65000:200

route-target import 65000:5000

 

ip vrf net_250

rd 65000:250

route-target export 65000:250

route-target import 65000:5000

 

Эта конфигурация импортирует только маршруты vrf local. А между vrf net_250 и vrf net_200 связности нет.

Share this post


Link to post
Share on other sites

Если я не ошибаюсь, в этой схеме, для того, чтобы пакет из net_200 попал в net_250 нужно сделать два lookup. Не уверен, что 65xx вообще это может. Вижу два пути:

1. Можно попробовать указать в качестве nexthop для статических маршрутов в VRF не 192.168.100.100, а любой другой адрес в этой сети. Вдруг заработает :)

2. Забить на vrf local и передавать маршруты напрямую между net_200 и net_250, как написал Stak

 

Кстати, а Вас ограниченное количество VRF не настораживает?

Edited by nnm

Share this post


Link to post
Share on other sites
В вашей схеме vrf net_200 и vrf net_250 изолированы друг от друга.

 

 

ip vrf net_200

rd 65000:200

route-target export 65000:200

route-target import 65000:5000

 

ip vrf net_250

rd 65000:250

route-target export 65000:250

route-target import 65000:5000

 

Эта конфигурация импортирует только маршруты vrf local. А между vrf net_250 и vrf net_200 связности нет.

Ну в том то и задача, чтобы трафик между сетями шел не на прямую, а через дополнительный хоп для шейпера. Или вы предлагаете через бгп проанонсировать все всем (и прпоисать импорты), а на самих vrf роутмапами отфильтровать лишнее, те отфильтровать для каждого vrf каждой сетки все 10.0.0.0/8?

 

Если я не ошибаюсь, в этой схеме, для того, чтобы пакет из net_200 попал в net_250 нужно сделать два lookup. Не уверен, что 65xx вообще это может. Вижу два пути:

1. Можно попробовать указать в качестве nexthop для статических маршрутов в VRF не 192.168.100.100, а любой другой адрес в этой сети. Вдруг заработает :)

2. Забить на vrf local и передавать маршруты напрямую между net_200 и net_250, как написал Stak

 

Кстати, а Вас ограниченное количество VRF не настораживает?

Первый пункт не помогает.

Второй пункт лишает возможности нормалнього шейпинга.

Ну по количеству ограничений вроди как 700 поддерживает данный суп. а подсетей не так много. С двумя loopback непонял, зачем там второй? Объясните пожалуйсто.

Edited by Joneg

Share this post


Link to post
Share on other sites
С двумя loopback непонял, зачем там второй? Объясните пожалуйсто.

Второй loopback не нужен. Я предлагал в качестве nexthop написать адрес, принадлежащий сети, привязанной на Loopback, но не равный адресу Loopback. Такой трюк для NAT on stick используют. Я подумал может и здесь стрельнет. Но похоже не работает :(

Share this post


Link to post
Share on other sites

Есть ещё какие нибудь идеи? По логике вроди бы все правильно. Все маршруты, нужные для работы, в таблицах присутствуют. Получается, что сам лупбэк не возвращает пакет в таблицу маршрутизации, к который он подключен

Share this post


Link to post
Share on other sites

щас скажу глупость.

а в

address-family ipv4 vrf local

ненадо нечего типо

redistribute dynamic

???

 

ps некогда vrt и bgp не настраивал но может быть..

Edited by mukca

Share this post


Link to post
Share on other sites

Вместо лупбэка подключил компьютер. Смотрел проходящие через него пакеты. Запрос на пинг между сетями до него доходит. Пакет отправляетсяобратно в циску и там цепочка обрывается.

Share this post


Link to post
Share on other sites

Неужели некому ничего подсказать? Мб какую то функцию включить нужно?

Share this post


Link to post
Share on other sites

magic cable между vrf (ушки)?

Share this post


Link to post
Share on other sites

Статикой сделать нельзя.

Есть 3 вар-та.

1) Это создание import-map и импортирование нужных маршрутов в каждый из vrf без создания static route.

2) Создать в vrf local default route и экспортировать его в vrf 200 и 250.

3) Соединять vrf by cable means, как предложил STAK.

Так работать должно.

Share this post


Link to post
Share on other sites

Но ведь в случае cable means придется в каждый vrf по такому ушку заводить? Если я правильно понимаю.

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

По поводу второго пункта, расскажите поподробнее, несовсем понял куда этот маршрут по умолчанию направлять и как он поможет.

Share this post


Link to post
Share on other sites

В vrf local генерите маршрут по умолчанию (на сколько я понимаю кроме транзита данный vrf никаких действий не делает, поэтому создания default ни на что не повлияет)

ip route vrf local 0.0.0.0 0.0.0.0 Null0

 

address-family ipv4 vrf local

redistribute static

Далее необходимо проанонсить данный маршрут в каждый из vrf с помощью route-target import/export, по-моему у вас это сделано.

Все, вы создали пути вывода трафика из каждого vrf в vrf local.

Share this post


Link to post
Share on other sites

Идея ясна, однако это несовсем то, что нужно. Требуется полноценный хоп 3-го уровня чтобы на нем отрабатывал ubrl, а тут его даже повесить некуда, всмысле на интерфейс повесить service-policy input local_t. А вот касательно вывода трафика на внешнее устройство для шейпа его там, должно сработать. В скором времени попробую собрать схему. Впринципи с моим вариантом, который не работает, пакеты до внешнего устройства доходили как я уже писал.

Share this post


Link to post
Share on other sites

Почему нельзя? Думаю можно на interface Vlan100 и 200, только выделять нужно будет:

access-list 160 permit ip 10.200.0.0 0.0.255.255 10.100.0.0 0.0.255.255 и vice versa.

 

Про "который не работает", этот вар-т не то что бы не работает, просто он не поддерживается, так что после смены прошивки он может перестать работать, вот и все.

Share this post


Link to post
Share on other sites

Покажите пожалуйсто на примере, усовершенствуя конфигурацию. У меня такое впечатление, что мы о разном говорим. Мне нужно на самих vlan шейпить локальный трафик по полю назначение, те ограничить входящую скорость. А этот промежуточный vrf задумывался чтобы шейпить на нем исходящий трафик, по полю источник. Тем самым в флов таблицу попадали бы записи вида:

 

Src Dst

0.0.0.0 10.111.111.111

10.111.111.111 0.0.0.0

А не только

0.0.0.0 10.111.111.111

как сейчас.

Share this post


Link to post
Share on other sites

ааа...точно, согласен, тогда данный vrf без "проводочков" и не нужен...

Share this post


Link to post
Share on other sites

А с проводочками уж шибко некрасиво получается. vrf-ов в итоге у меня около 10-и.

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
Sign in to follow this