пятница, 24 мая 2013 г.

RT Constrained Route Distribution


Данная фича называется RT Constrained Route Distribution. Она была представлена в 15.1(1)S.

Идея совершенно проста. По умолчанию RR отправит на PE все VPNv4 маршруты, т.е. даже маршруты тех VPN, которые не настроены на этой PE. PE получает их и далее выбирает только те, которые нужны. На это тратятся ресурсы. Если используется функционал RT CRD, то RR перед отправкой маршрутной информации на PE согласует список route-target, которые нужны на этой PE.

Настраивает очень просто. В BGP добавляется новая address-family rtfilter unicast (указанные нейборы в идеале должны повторять настройки address-family vpnv4 unicast):

Для PE:

ip vrf BLUE
 rd 3:3
 route-target export 1:100
 route-target import 1:100
!
router bgp 65000
 bgp log-neighbor-changes
 neighbor 192.168.2.2 remote-as 65000
 neighbor 192.168.2.2 update-source Loopback0
 no auto-summary
 !
 address-family vpnv4
  neighbor 192.168.2.2 activate
  neighbor 192.168.2.2 send-community extended
 exit-address-family
 !
 address-family rtfilter unicast
  neighbor 192.168.2.2 activate
  neighbor 192.168.2.2 send-community extended
 exit-address-family


Для RR:

router bgp 65000
 bgp log-neighbor-changes
 neighbor 192.168.6.6 remote-as 65000
 neighbor 192.168.6.6 update-source Loopback0
 !
 address-family vpnv4
  neighbor 192.168.6.6 activate
  neighbor 192.168.6.6 send-community extended
  neighbor 192.168.6.6 route-reflector-client
 exit-address-family
 !
 address-family rtfilter unicast
  neighbor 192.168.6.6 activate
  neighbor 192.168.6.6 send-community extended
  neighbor 192.168.6.6 route-reflector-client
  neighbor 192.168.6.6 default-originate
 exit-address-family


Команда default-originate добавляется в настройки RR автоматически и означает, что RR запрашивает у PE все ее RT. Также эту команду можно применить и на PE, если по каким-то причинам необходимо принять все RT.

Подробно тут: http://www.cisco.com/en/US/docs/ios-xml/ios/iproute_bgp/configuration/xe-3s/irg-rt-filter.html
или правильнее тут: http://tools.ietf.org/html/rfc4684

BGP Selective Route Download


BGP Selective Route Download — еще один функционал, крайне полезный при внедрении out of forwarding path route-reflector.
Важно, что этот функционал может быть использован только в случае, если RR не форвардит трафик.

Смысл такой: маршрутизатору, выполняющему роль RR и не стоящему на forwarding path, в RIB/FIB не нужны внешние по отношению к AS маршруты.
Для определения, какие маршруты инсталлируются в RIB/FIB, а какие нет, необходимо создать критерий выборки. Проще всего метить все локальные маршруты каким-нибудь community например при редистрибьюции connected и static.

Настройки ASBR (установка community):

router bgp 65510
 address-family ipv4 unicast
 redistribute connected route-map CONNECTED-TO-BGP
  redistribute static route-map STATIC-TO-BGP
!
route-map CONNECTED-TO-BGP permit 10
 set community 65510:1000
route-map STATIC-TO-BGP permit 10
 set community 65510:1000
!
Настройки RR:

ip community-list 100 permit 65510:1000
!
route-map BGP-TO-RIB permit 10
 match community 100
!
router bgp 65510
 address-family ipv4 unicast
 table-map BGP-TO-RIB filter

Выборочная инсталляция маршрутов в RIB/FIB на RR позволяет существенно сократить время сходимости BGP! Удивишься, но BGP будет сходиться несколько секунд.

понедельник, 20 мая 2013 г.

802.1Q


IEEE 802.1Q — открытый стандарт, который описывает процедуру тегирования трафика для передачи информации о принадлежности к VLAN. Так как 802.1Q не изменяет заголовки кадра (фрейма), то сетевые устройства, которые не поддерживают этот стандарт, могут передавать трафик без учёта его принадлежности к VLAN. 802.1Q помещает внутрь фрейма тег, который передает информацию о принадлежности трафика к VLAN. Размер тега — 4 байта. Он состоит из таких полей:
Tag Protocol Identifier (TPID, идентификатор протокола тегирования). Размер поля — 16 бит. Указывает какой протокол используется для тегирования. Для 802.1Q используется значение 0x8100.
Priority (приоритет). Размер поля — 3 бита. Используется стандартом IEEE 802.1p для задания приоритета передаваемого трафика.
Canonical Format Indicator (CFI, индикатор канонического формата). Размер поля — 1 бит. Указывает на формат MAC-адреса. 0 — канонический, 1 — не канонический. CFI используется для совместимости между сетями Ethernet и Token Ring.
VLAN Identifier (VID, идентификатор VLAN). Размер поля — 12 бит. Указывает какому VLAN принадлежит фрейм. Диапазон возможных значений от 0 до 4095.
При использовании стандарта Ethernet II, 802.1Q вставляет тег перед полем «Тип протокола». Так 
как фрейм изменился, пересчитывается контрольная сумма. В стандарте 802.1Q существует понятие 
Native VLAN. По умолчанию это VLAN 1. Трафик, передающийся в этом VLAN, не тегируется. Существует аналогичный 
802.1Q проприетарный протокол, разработанный компанией Cisco Systems — ISL.


Первоисточник:

среда, 15 мая 2013 г.

output rate-limit 2960


class-map match-any MATCH-LIST
match access-group 100
!
policy-map RATE-LIMIT
class MATCH-LIST
police 30000000 8000 exceed-action drop
!
interface FastEthernet0/3
description subnet_25
no switchport
ip address 192.168.25.254 255.255.255.0
srr-queue bandwidth limit 40
service-policy input RATE-LIMIT

Т.о. мы получаем 30 мегабит на вход и 40% от пропускной способности порта на выход.

ps Работает не на всех IOS

четверг, 2 мая 2013 г.

Облачные Технологии в сетевых делах

Довелось мне как то помогать одному клиенту заниматься сексом с его собственной сетью:) По другому не могу это назвать. Условия:
1. ВСЯ СЕТЬ КЛИЕНТА БЕЗ ТВОЕГО УПРАВЛЕНИЯ!!!!!!!
2. Клиент хочет цепляться с тобой исключительно по iBGP, где его маршрутизатор(Mikrotik) выступает в качестве RR, но с реальной автономкой и своим блоком адресов. Для Стыка он выделяет свой адрес с маской 255.255.252.0.

Задача:
1. Запустить эту порнографию
2. Сделать это все еще и управляемым, те с нормальным автоматическим переключением маршрутов основной-резервный. Да еще и управлять этим самому по желанию.

Это примерная схема, где AS100 - автономка клиента, AS1 - ISP1, AS2 - ISP2.
Схема изобретена примерна такая(показано со стороны ISP1):
AS1 - MPLS сеть, AS1-1 и AS1-2 - Cisco 7606S c RSP720-3CXL.

vrf definition INET:AS100
 rd 1:1
 !
 address-family ipv4
 route-target export 1:1
 route-target import 1:1
 exit-address-family
!
!
interface Vlan 100
 description "AS100 LAN"
 vrf forwarding INET:AS100
 mtu 1600
 ip address 1.0.0.1 255.255.252.0
!
router bgp 1
 !
 address-family ipv4 vrf INET:AS100
  no synchronization
  no redestibute connected - основное условие для работы всей схемы.
  neighbor 1.0.0.254 remote-as 100
  neighbor 1.0.0.254 update-source Vlan100
  neighbor 1.0.0.254 activate
  neighbor 1.0.0.254 default-originate
  neighbor 1.0.0.254 soft-reconfiguration inbound
  neighbor 1.0.0.254 prefix-list AS100_IN in
 exit-address-family
!
ip prefix-list AS100_IN seq 10 permit 1.0.0.0/22 le 24
!
end


Router AS1-2 смотрит в сторону Public Internet, предположим AS65535


vrf definition INET:AS100
 rd 1:1
 !
 address-family ipv4
 route-target export 1:1
 route-target import 1:1
 exit-address-family
!
!
interface Vlan101
 description AS100-World
 vrf forwarding INET:AS100
 mtu 1600
 ip address 10.0.0.1 255.255.255.254
!
router bgp 1
 !
 address-family ipv4 vrf INET:AS100
  no synchronization
  network 1.0.0.0 mask 255.255.252.0
  neighbor 10.0.0.0 remote-as 65535
  neighbor 10.0.0.0 local-as 100 no-prepend replace-as - Это тоже фишка с заменой номера AS
  neighbor 10.0.0.0 transport path-mtu-discovery disable
  neighbor 10.0.0.0 update-source Vlan101
  neighbor 10.0.0.0 activate
 exit-address-family


После такого, если оператор AS2 сможет все реализовать и не будет редестрибютеть connected сеть в таблицу маршрутизации, то все может срастить банальными препендами.

Inter-AS route-target filter

IOS:
router bgp 65535
 address-family vpnv4
  neighbor 10.0.0.2 activate
  neighbor 10.0.0.2 send-community extended
  neighbor 10.0.0.2 route-map community-ingress in
  neighbor 10.0.0.2 route-map community-egress out
 exit-address-family
!
ip extcommunity-list 10 permit rt 65535:1
ip extcommunity-list 10 permit rt 65535:2
ip extcommunity-list 10 permit rt 65535:3
ip extcommunity-list 10 permit rt 65534:1
!
route-map community-egress permit 10
 match extcommunity 10
 set metric +50
!
route-map community-ingress permit 10
 match extcommunity 10
 set metric +50

IOS-XR: