MPLS в Cisco
Материал из Xgu.ru
Содержание |
[править] Общая информация
- 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:
- Назначен административно.
- Наибольший IP-адрес присвоенный любому из loopback-интерфейсов.
- Наибольший 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
[править] MPLS fast reroute (FRR)
- Backup tunnel support
- Backup bandwidth protection
- Resource Reservation Protocol (RSVP) Hello
[править] 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
|
На 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.
[править] MPLS L3vpn
MPLS позволяет создавать виртуальные частные сети Layer 3, не прибегая к туннелированию (GRE) и шифрованию (IPsec).
[править] Дополнительная информация
- http://www.cisco.com/en/US/products/ps6557/products_ios_technology_home.html
- Особенности настройки MTU