MPLS в Cisco

Материал из Xgu.ru

Перейти к: навигация, поиск
stub.png
Данная страница находится в разработке.
Эта страница ещё не закончена. Информация, представленная здесь, может оказаться неполной или неверной.

Если вы считаете, что её стоило бы доработать как можно быстрее, пожалуйста, скажите об этом.


Содержание

[править] Общая информация

  • Forwarding Information Base (FIB) — используется для входящих пакетов без метки. Адрес назначения проверяется на лучшее совпадение префикса в FIB и пакет передается на основании соответствующей записи.
  • MPLS Label Forwarding Information Base (LFIB) — используется для входящих пакетов с меткой. Пакет передается на основании записи в LFIB, которая соответствует метке.
  • MPLS Label Information Base (LIB) — содержит все метки известные LSR, независимо от того используется ли метка для передачи данных или нет.

[править] Label Distribution Protocol (LDP)

Для передачи сообщений LDP использует:

  • UDP, порт 646, для Hello-сообщений,
  • TCP, порт 646, для обновлений.

Multicast адрес для отправки hello-сообщений 224.0.0.2. Отправляются каждые 5 секунд.

Инициирует соединение TCP маршрутизатор с наивысшим LDP ID. В качестве адреса отправителя используется transport адрес (если настроен) или LDP ID, если transport адрес не настроен.

Правила выбора LDP ID:

  1. Назначен административно.
  2. Наибольший IP-адрес присвоенный любому из loopback-интерфейсов.
  3. Наибольший IP-адрес из всех активных интерфейсов.

Метки генерируются для всех маршрутов в таблице маршрутизации, которые были получены не по протоколу BGP. Все локальные метки хранятся в LIB.

Соответствие между меткой и сетью отправляется всем соседям LDP.

[править] Базовые настройки MPLS

Включить CEF:

dyn1(config)# ip cef

Включить MPLS глобально на маршрутизаторе:

dyn1(config)# mpls ip 

Включить MPLS на интерфейсах:

dyn1(config)# int fa0/0
dyn1(config-if)# mpls ip

[править] Задание LDP Router ID

mpls ldp router-id Loopback0 force

[править] Установка сессии LDP с конкретного интерфейса

interface Fa0/0
 ip address 192.168.1.6 255.255.255.0
 mpls ldp discovery transport-address interface

[править] Обнаружение соседей в других сетях

По умолчанию маршрутизатор автоматически обнаружит соседей, которые непосредственно присоединены к нему. Hello-сообщения отправляются на multicast адрес.

Для обнаружения соседей, которые не непосредственно подключены, можно настроить отправку hello-сообщений unicast:

mpls ldp neighbor <ip-address> targeted

Эти hello сообщения называются LDP targeted hello.

[править] Аутентификация MPLS

mpls ldp password required
mpls ldp neighbor 192.168.1.1 password XGURU

[править] Настройка MPLS на всех интерфейсах OSPF

Настройка MPLS на всех интерфейсах, на которых настроен OSPF:

router(config)# router ospf 1
router(config-router)# mpls ldp autoconfig

При необходимости можно отключить на интерфейсе:

router(config-if)# no mpls ldp igp autoconfig

[править] Фильтрация меток MPLS

По умолчанию LDP генерирует и анонсирует метки для каждого префикса в локальной таблице маршрутизации. С помощью ACL можно указать для каких именно префиксов генерировать метки:

no mpls ldp advertise-labels
mpls ldp advertise-labels for 1
!
access-list 1 permit 192.168.0.0 0.0.255.255

[править] TTL propagation

Отключение изменения TTL при передачи пакетов:

dyn1(config)# no mpls ip propagate-ttl <local | forwarded>

[править] Просмотр настроек

Просмотр FIB:

dyn1# sh ip cef

Просмотр LFIB:

dyn1# sh mpls forwarding-table 

Просмотр LIB:

dyn1# sh mpls ldp bindings 

Просмотр информации о соседях:

dyn1# sh mpls ldp neighbor 

[править] Traffic engineering

[1] [2]

[править] MPLS fast reroute (FRR)

  • Backup tunnel support
  • Backup bandwidth protection
  • Resource Reservation Protocol (RSVP) Hello

[3] RFC4090

[править] MPLS VPN

  • Customer edge (CE) — маршрутизатор на котором не включен MPLS, соответственно он не отправляет пакетов с метками, но этот маршрутизатор непосредственно присоединен к LSR (PE) маршрутизатору в MPLS VPN.
  • Provider edge (PE) — LSR, который непосредственно присоединен как минимум к одному CE маршрутизатору. Этот маршрутизатор является границей MPLS VPN. На нём настроены VRF и IBGP.
  • Provider (P) — LSR, который не присоединен непосредственно к CE маршрутизатору, что позволяет маршрутизатору отправлять пакеты исключительно на основании меток и игнорировать пользовательские маршруты.

PE добавляет в пакет две метки:

  • Внешний заголовок MPLS (S-бит = 0), с меткой которая позволяет передать пакет до egress PE,
  • Внутренний заголовок MPLS (S-бит = 1), с меткой которая идентифицирует egress VRF.

[править] Virtual Routing and Forwarding (VRF)

Каждая VRF состоит из трёх основных компонентов:

  • таблицы маршрутизации (RIB),
  • CEF FIB, заполненной на основании RIB этой VRF,
  • отдельной instance или процесса протокола маршрутизации, который используется для обмена маршрутами с CE, которые должны поддерживаться этой VRF.

LFIB одна на маршрутизатор.

Import и export маршрутов:

  • export перераспределение маршрутов из VRF в BGP
  • import перераспределение маршрутов из BGP в VRF

[править] Route Distinguishers (RD)

  • Route Distinguishers (RD) -- указывает от какого клиента выучен маршрут.

Для того чтобы передавать маршруты разных клиентов и при этом идентифицировать к какому клиенту относится маршрут, используется MP-BGP. Для того чтобы указать к какому клиенту относится маршрут указывается дополнительный номер в NLRI.

Новый формат NLRI называется VPN-V4 и состоит из двух частей:

  • 64 бита на RD
  • 32 бита для префикса IPv4

Каждая VRF должна быть настроена с указанием RD.

У конкретного префикса может быть только один RD.

[править] Route Targets (RT)

  • Route Targets (RT) -- для определения в какую VRF PE-маршрутизатор поместит iBGP-маршрут.

RT анонсируется в обновлениях BGP как атрибут BGP extended community.

У конкретного префикса может быть несколько RT.

[править] Настройка VRF

[править] Просмотр информации о VRF

show ip vrf
show ip vrf detail
show ip vrf interfaces
show ip protocols vrf <name>
show ip route vrf <name>
show ip bgp vpnv4 vrf <name>

[править] Inter-VRF static routes

Если использовать статический маршрут с указанием интерфейса, то можно указать интерфейс из другого VRF. Для интерфейсов с множественным доступом необходимо указывать также next-hop, находящийся в сети этого интерфейса. Это необходимо из-за того, что IOS устанавливает запись в CEF в исходном VRF используя информацию, которая указана в маршруте, и не будет пытаться выполнить рекурсивный просмотр для next-hop.

R1:

ip vrf VRF_A
 rd 100:1
ip vrf VRF_B
 rd 100:2
!
interface Fa0/0.67
 ip vrf forwarding VRF_A
 ip address 155.1.67.6 255.255.255.0
interface Fa0/0.76
 ip vrf forwarding VRF_B
 ip address 155.1.76.6 255.255.255.0
!
ip route vrf VRF_A 192.168.7.0 255.255.255.0 Fa0/0.76 155.1.76.7
ip route vrf VRF_B 172.16.7.0 255.255.255.0 Fa0/0.67 155.1.67.7
!

SW1:

ip vrf VRF_A
 rd 100:1
ip vrf VRF_B
 rd 100:2
!
interface Loopback101
 ip vrf forwarding VRF_A
 ip address 172.16.7.7 255.255.255.0
interface Loopback102
 ip vrf forwarding VRF_B
 ip address 192.168.7.7 255.255.255.0
!
interface Vlan67
 ip vrf forwarding VRF_A
 ip address 155.1.67.7 255.255.255.0
interface Vlan76
 ip vrf forwarding VRF_B
 ip address 155.1.76.7 255.255.255.0
!
ip route vrf VRF_A 0.0.0.0 0.0.0.0 155.1.67.6
ip route vrf VRF_B 0.0.0.0 0.0.0.0 155.1.76.6
SW1#ping vrf VRF_B 192.168.7.7 sou lo102

Type escape sequence to abort.
Sending 5, 100-byte ICMP Echos to 192.168.7.7, timeout is 2 seconds:
Packet sent with a source address of 192.168.7.7 
!!!!!
Success rate is 100 percent (5/5), round-trip min/avg/max = 4/7/12 ms



SW1#ping vrf VRF_A 192.168.7.7 sou lo101

Type escape sequence to abort.
Sending 5, 100-byte ICMP Echos to 192.168.7.7, timeout is 2 seconds:
Packet sent with a source address of 172.16.7.7 
!!!!!
Success rate is 100 percent (5/5), round-trip min/avg/max = 12/18/20 ms
R1#sh ip route vrf VRF_A                

Routing Table: VRF_A

      155.1.0.0/16 is variably subnetted, 2 subnets, 2 masks
C        155.1.67.0/24 is directly connected, FastEthernet0/0.67
L        155.1.67.6/32 is directly connected, FastEthernet0/0.67
S     192.168.7.0/24 [1/0] via 155.1.76.7, FastEthernet0/0.76


R1#sh ip route vrf VRF_B

Routing Table: VRF_B
      155.1.0.0/16 is variably subnetted, 2 subnets, 2 masks
C        155.1.76.0/24 is directly connected, FastEthernet0/0.76
L        155.1.76.6/32 is directly connected, FastEthernet0/0.76
      172.16.0.0/24 is subnetted, 1 subnets
S        172.16.7.0 [1/0] via 155.1.67.7, FastEthernet0/0.67

Note-icon.gif

На cisco.com:

You can not configure two static routes to advertise each prefix between the VRFs, because this method is not supported. Packets will not be routed by the router. To achieve route leaking between VRFs, you must use the import functionality of route-target and enable Border Gateway Protocol (BGP) on the router. No BGP neighbor is required

http://cciethebeginning.wordpress.com/2010/03/26/inter-vrf-lite-routing-17/

[править] Penultimate Hop Popping

Penultimate Hop Popping -- выполнение действия pop на предпоследнем маршрутизаторе. Без этой функции последний маршрутизатор должен дважды просматривать метки пакета. При использовании функции, предпоследний маршрутизатор снимает внешнюю метку, а к последнему приходит пакет с внутренней меткой.

На маршрутизаторах Cisco PHP по умолчанию включен.

Маршрутизатор анонсирует соседям implicit-null label 3.

[4] [5]

[править] MPLS L3vpn

MPLS позволяет создавать виртуальные частные сети Layer 3, не прибегая к туннелированию (GRE) и шифрованию (IPsec).

[править] Дополнительная информация

Источник — «http://xgu.ru/wiki/MPLS_%D0%B2_Cisco»