Vrrp
Содержание:
[править] Настройка PBR
Основной объект с помощью которого настраивается PBR: route-map.
Route-map:
- состоит из правил:
- каждое из правил, указывает отправлять указанные пакеты по правилам PBR или нет
- permit значит, что пакеты, которые попадают в описание match, буду отправлены так как описано в set
- deny значит, что пакеты будут отправлены на стандартную маршрутизацию
- каждое из правил, указывает отправлять указанные пакеты по правилам PBR или нет
- В каждом правиле route-map два компонента:
- match
как правило, для PBR, используется в виде match ip address
— описывает какой трафик должен маршрутизироваться согласно PBR
- set
как правило, для PBR, используется в виде set ip next-hop
— описывает куда перенаправлять трафик, который описан в match
- match
- У каждого правила route-map есть порядковый номер
- когда пакеты проходят сквозь интерфейс, к которому применена PBR, пакеты проверяются по порядку по правилам
- если пакет совпал с описанием в match, то он маршрутизируется по правилу set
- если пакет не совпал с описанием в match, правила проверяются дальше
- если ни в одном правиле совпадения не найдено, то пакет будет маршрутизироваться по стандартной таблице маршрутизации
Пример настройки route-map:
route-map PBR permit 10 match ip address VLAN_10 set ip next-hop 10.0.1.1 route-map PBR permit 20 match ip address VLAN_20 set ip next-hop 10.0.2.2
Обратите внимание, что route-map могут использоваться в разных областях. Например:
как фильтры маршрутов
для настройки PBR
для настройки политик BGP
для NAT
На этой странице описание и использование route-map относится только к PBR
Смысл команд внутри route-map, в зависимости от области применения, может меняться. Поэтому, не все команды, которые доступны внутри route-map, относятся к настройкам PBR. Также, при чтении документации, нужно обращать внимание на то, к каком контексте используется route-map.
В этом смысле, route-map чем-то похожи на ACL. ACL также, в зависимости от области применения, может выполнять разные действия.
Для того чтобы, при получении трафика на интерфейсе, машрутизатор обрабатывал его не по обычным правилам, а использовал настройки маршрутизации на основе политик, необходимо применить команду ip policy:
router(config-if)# ip policy route-map <route-map-name>
Команда применяется на интерфейсе, который является входящим для трафика.
Настройка PBR с track
Когда PBR используется для того чтобы распределять трафик между различными провайдерами, трафик нужно не просто отправлять на определенный next-hop, но и проверять, работоспособен ли провайдер, через которого отправляется трафик.
Для проверки работоспособности используется комбинация IP SLA и Track.
Пример привязки трек к next-hop, для проверки доступности провайдера:
route-map POLICY permit 10 match ip address odd set ip next-hop verify-availability 70.1.1.100 1 track 1 route-map POLICY permit 20 match ip address even set ip next-hop verify-availability 80.1.1.100 2 track 2
Описание
Основная задача и предназначение данного протокола состоит в том, чтобы добиться практически 100% доступности и отказоустойчивости первого хопа от отправителя (также иногда называемый «маршрут по умолчанию» или «шлюз последней надежды»). Это достигается путём использования у двух или более маршрутизаторов или маршрутизирующих коммутаторов третьего уровня одного IP-адреса и MAC-адреса так называемого виртуального маршрутизатора. Такая группа называется HSRP-группой.
В терминологии HSRP-протокола существуют несколько основных понятий (терминов):
- Активный маршрутизатор (Active Router) — маршрутизатор или маршрутизирующий коммутатор третьего уровня, выполняющий роль виртуального маршрутизатора и обеспечивающий пересылку пакетов из одной подсети в другую;
- Резервный маршрутизатор (Standby Router) — маршрутизатор или маршрутизирующий коммутатор третьего уровня, выполняющий роль резервного виртуального маршрутизатора, ожидающего отказа активного маршрутизатора в рамках одной HSRP группы;
- Группа резервирования (Standby Group) — группа маршрутизаторов или маршрутизирующих коммутаторов третьего уровня, которые являются членами одной HSRP-группы и обеспечивают работу и отказоустойчивость виртуального маршрутизатора;
- Таймер приветствия (Hello Time) — промежуток времени, в течение которого маршрутизаторы или маршрутизирующие коммутаторы третьего уровня, находящиеся в рамках одной HSRP группы, ожидают пакеты приветствия (Hello Packet) от активного маршрутизатора;
- Таймер удержания (Hold Time) — промежуток времени, по истечении которого резервный маршрутизатор посылает пакет, в котором содержится информация об отказе активного маршрутизатора, тем самым осуществляет приоритетное прерывание в группе и берет на себя роль активного маршрутизатора.
Verification:
Show standby Command Output for the R1 and R2:This command showsA) Router R1:1) Active router2) Virtual IP: 192.168.1.13) Virtual MAC address: 0000.0c07.ac014) Priority: 1055) Preemption is on6) Tracking Serial0/0, If interface S0/0 state goes down Priority will decrease by 10 i.e. 95B) Router R2:1) Standby router2) Virtual IP: 192.168.1.13) Virtual MAC address: 0000.0c07.ac014) Priority: 1005) Preemption is on6) Tracking Serial0/0, if interface S0/0 state goes down Priority will decrease by 10 i.e. 90
R1#sh standby
FastEthernet0/0 — Group 1
State is Active
2 state changes, last state change 00:02:43
Virtual IP address is 192.168.1.1
Active virtual MAC address is 0000.0c07.ac01
Local virtual MAC address is 0000.0c07.ac01 (v1 default)
Hello time 3 sec, hold time 10 sec
Next hello sent in 2.052 secs
Preemption enabled
Active router is local
Standby router is 192.168.1.3, priority 100 (expires in 7.452 sec)
Priority 105 (configured 105)
Track interface Serial0/0 state Up decrement 10
Group name is «hsrp-Fa0/0-1» (default)
R2#sh standby
FastEthernet0/0 — Group 1
State is Standby
1 state change, last state change 00:01:34
Virtual IP address is 192.168.1.1
Active virtual MAC address is 0000.0c07.ac01
Local virtual MAC address is 0000.0c07.ac01 (v1 default)
Hello time 3 sec, hold time 10 sec
Next hello sent in 1.408 secs
Preemption enabled
Active router is 192.168.1.2, priority 105 (expires in 7.068 sec)
Standby router is local
Priority 100 (default 100)
Track interface Serial0/0 state Up decrement 10
Group name is «hsrp-Fa0/0-1» (default)
Shutting down R1’s WAN interface S0/0:
R1#conf t
Enter configuration commands, one per line. End with CNTL/Z.
R1(config)#int s0/0
R1(config-if)#sh
R1(config-if)#
*Mar 1 00:11:55.811: %TRACKING-5-STATE: 1 interface Se0/0 line-protocol Up->Down
*Mar 1 00:11:56.507: %HSRP-5-STATECHANGE: FastEthernet0/0 Grp 1 state Active -> Speak
R1(config-if)#
*Mar 1 00:11:57.811: %LINK-5-CHANGED: Interface Serial0/0, changed state to administratively down
*Mar 1 00:11:58.811: %LINEPROTO-5-UPDOWN: Line protocol on Interface Serial0/0, changed state to down
R1(config-if)#
*Mar 1 00:12:06.507: %HSRP-5-STATECHANGE: FastEthernet0/0 Grp 1 state Speak -> Standby
R1#sh standby
FastEthernet0/0 — Group 1
State is Standby
4 state changes, last state change 00:00:41
Virtual IP address is 192.168.1.1
Active virtual MAC address is 0000.0c07.ac01
Local virtual MAC address is 0000.0c07.ac01 (v1 default)
Hello time 3 sec, hold time 10 sec
Next hello sent in 0.132 secs
Preemption enabled
Active router is 192.168.1.3, priority 100 (expires in 9.088 sec)
Standby router is local
Priority 95 (configured 105)
Track interface Serial0/0 state Down decrement 10
Group name is «hsrp-Fa0/0-1» (default)
R2#
*Mar 1 00:11:55.059: %HSRP-5-STATECHANGE: FastEthernet0/0 Grp 1 state Standby -> Active
R2#sh standby
FastEthernet0/0 — Group 1
State is Active
2 state changes, last state change 00:00:35
Virtual IP address is 192.168.1.1
Active virtual MAC address is 0000.0c07.ac01
Local virtual MAC address is 0000.0c07.ac01 (v1 default)
Hello time 3 sec, hold time 10 sec
Next hello sent in 0.712 secs
Preemption enabled
Active router is local
Standby router is 192.168.1.2, priority 95 (expires in 8.804 sec)
Priority 100 (default 100)
Track interface Serial0/0 state Up decrement 10
Group name is «hsrp-Fa0/0-1» (default)
As soon as R1’s interface S0/0 goes down,it’s group 1 priority reduce by 10 number i.e.to 95.R2 reads this value from the priority field of hello packet and becomes active router as its own priority is higher than R1 i.e.100.
Property reference
Sub-menu:
Property | Description |
---|---|
arp (disabled | enabled | proxy-arp | reply-only; Default: enabled) | ARP resolution protocol mode |
authentication (ah | none | simple; Default: none) | Authentication method to use for VRRP advertisement packets.
|
interface (string; Default: ) | Interface name on which VRRP instance will be running |
interval (time ; Default: 1s) | VRRP update interval in seconds. Defines how often master sends advertisement packets. |
mtu (integer; Default: 1500) | Layer3 MTU size |
name (string; Default: ) | VRRP interface name |
on-backup (string; Default: ) | Script to execute when the node is switched to backup state |
on-master (string; Default: ) | Script to execute when the node is switched to master state |
password (string; Default: ) | Password required for authentication. Can be ignored if authentication is not used. |
preemption-mode (yes | no; Default: yes) | Whether master node always has the priority. When set to ‘no’ backup node will not be elected to be a master until the current master fails, even if the backup node has higher priority than the current master. This setting is ignored if becomes available |
priority (integer: 1..254; Default: 100) | Priority of VRRP node used in Master election algorithm. Higher number means higher priority. ‘255’ is reserved to Router that owns VR IP and ‘0’ is reserved for Master router to indicate that it is releasing responsibility. |
v3-protocol (ipv4 | ipv6; Default: ipv4) | Protocol that will be used by VRRPv3. Valid only if version is 3 |
version (integer ; Default: 3) | Which VRRP version to use. |
vrid (integer: 1..255; Default: 1) | Virtual Router identifier. Each Virtual router must have unique id number |
There are two ways to add scripts to on-backup and on-master
- specify scripts name added to
- write script directly by putting it in scopes ‘{ }’.
Описание протокола, формат пакета и возможных состояний
HSRP протокол реализован поверх стека протоколов TCP/IP, для доставки служебной информации используется протокол UDP. Маршрутизаторы или маршрутизирующие коммутаторы, на которых сконфигурирован и функционирует протокол HSRP, в рамках обмена служебной информацией используют так называемые пакеты приветствия (hello packets). В свою очередь, данные пакеты отправляются на IP-адрес групповой рассылки (multicast) 224.0.0.2 (HSRP Version 1) или на 224.0.0.102 (HSRP Version 2) по протоколу UDP на порт 1985.
- Структура пакета
7 | 15 | 23 | ||
Version | Type | Virtual Rtr ID | Priority | Count IP Addrs |
Auth Type | Advet Int | Checksum | ||
IP Address (1) | ||||
… | ||||
IP Address (n) | ||||
Authentication Data (1) | ||||
Authentication Data (2) |
Basic configuration Example:
In this scenario, on site A multiple clients reside on the fast Ethernet segment of 198.168.1.0/24. All the clients need access to Servers on Site BHSRP will provide the clients with uninterrupted access to servers of site B. To accomplish this, R1 is selected as the primary router, and R2 is the secondary router. You need to use 192.168.1.1 as the virtual IP address between the two routers. To provide redundancy, you also need to track the serial interfaces. By tracking on the serial interface, you can force R2 to become the primary if the R1’s link to ISP fail.When tracking is used, two potential situations can cause R2 to become the primary router.1) The loss of the connection to R1, such as physical loss to the Fast Ethernet port on R1.2) The loss of physical connectivity between R1 and ISP
Configuring VRRP
IPv4
Setting up Virtual Router is quite easy, only two actions are required — create vrrp interface and set Virtual Routers IP address.
For example, add vrrp to ether1 and set VRs address to 192.168.1.1
/interface vrrp add name=vrrp1 interface=ether1 /ip address add address=192.168.1.1/32 interface=vrrp1
Notice that only ‘interface’ parameter was specified when adding vrrp. It is the only parameter required to be set manually, if not specified will be set to their defaults: and .
Note: address on VRRP interface must have /32 netmask if address configured on VRRP is from the same subnet as on router’s any other interface.
Before VRRP can operate correctly correct IP address is required on ether1. In this example it is
VRRP Examples section contains several configuration examples.
IPv6
To make VRRP work in IPv6 networks, several additional options must be enabled — v3 support is required and protocol type should be set to IPv6:
/interface vrrp add name=vrrp1 interface=ether1 version=3 v3-protocol=ipv6
Now when VRRP interface is set, we can add global address and enable ND advertisement:
/ipv6 address add address=FEC0:0:0:FFFF::1/64 advertise=yes interface=vrrp1
No additional address configuration is required as it is in IPv4 case. IPv6 uses link-local addresses to communicate between nodes.
[править] Настройка на маршрутизаторах Cisco
Пример топологии
Включение GLBP на интерфейсе
Режим preempt
В GLBP есть два режима preempt:
- для AVG — по умолчанию отключен,
- для AVF — по умолчанию включен, с задержкой 30 секунд.
По умолчанию режим preempt для AVG отключен. То есть, backup virtual gateway может стать AVG только если текущий AVG выйдет из строя.
Включение режима preempt для AVG:
dyn1(config-if)# glbp 1 preempt
Включение режима preempt для AVF:
dyn1(config-if)# glbp 1 forwarder preempt
Балансировка нагрузки между маршрутизаторами
Настройка метода балансировки нагрузки между маршрутизаторами (по умолчанию round-robin):
dyn1(config-if)# glbp 1 load-balancing <host-dependent | round-robin | weighted>
Изменение метода балансировки нагрузки:
dyn1(config-if)# glbp 1 load-balancing host-dependent
Отключение балансировки нагрузки:
dyn1(config-if)# no glbp 1 load-balancing
Настройка таймеров
Настройка интервала между отправкой AVG сообщений hello в группе GLBP:
dyn1(config-if)# glbp <group> timers <hellotime> <holdtime>
dyn1(config-if)# glbp <group> timers redirect <redirect> <timeout>
Параметры команды:
- redirect — настраивает интервал в течении которого AVG продолжает перенаправлять клиентов AVF. По умолчанию 600 секунд (10 минут).
- timeout — указывает интервал в секундах до того как secondary virtual forwarder станет invalid. По умолчанию 14,400 секунд (4 часа).
Хотя диапазон значений параметра redirect позволяет использовать значение 0, фактически оно не должно использоваться. Это приведет к тому, что таймер redirect никогда не истечет и, в случае выхода из строя маршрутизатора, хосты всё равно будут отправляться на него. |
Object Tracking
dyn1(config)# track 1 interface FastEthernet1/0 line-protocol
Указание объекта, который будет влиять на вес GLBP, если интерфейс выключается, то вес уменьшается на 11 (по умолчанию на 10):
dyn1(config-if)# glbp 1 weighting track 1 decrement 11
Настройка пороговых значений веса, которые регулируют будет ли маршрутизатор выполнять роль GLBP gateway.
Для данного примера, начальное значение 200. Если интерфейс fa1/0 выключается, то значение становится 189.
Так как оно меньше, чем значение lower, то маршрутизатор не может выполнять роль active forwarder. Когда интерфейс включится, то значение станет снова 200. Так как это больше чем значение upper, то маршрутизатор снова становится active forwarder:
dyn1(config-if)# glbp 1 weighting 200 lower 192 upper 195
С помощью этих пороговых значений можно привязывать определенные значения весам таким образом, чтобы, например, если два интерфейса не доступны (с альтернативными путями к сети), то тогда маршрутизатор не будет выполнять роль active forwarder.
GLBP Client Cache
По умолчанию функция GLBP Client Cache отключена.
После включения функции AVG начинает сохранять у себя информацию о том какие хосты используют какой gateway.
Включение GLBP Client Cache:
dyn1(config-if)# glbp 1 client-cache
Просмотр информации о GLBP Client Cache (хранится только на AVG):
dyn1# show glbp detail
Просмотр информации
Просмотр краткой информации о группах:
dyn1# show glbp brief Interface Grp Fwd Pri State Address Active router Standby router Fa0/0 1 - 200 Active 192.168.1.100 local 192.168.1.3 Fa0/0 1 1 - Active 0007.b400.0101 local - Fa0/0 1 2 - Listen 0007.b400.0102 192.168.1.3 -
Просмотр информации о всех включенных группах GLBP:
dyn1# show glbp FastEthernet0/0 - Group 1 State is Active 2 state changes, last state change 08:46:44 Virtual IP address is 192.168.1.100 Hello time 3 sec, hold time 10 sec Next hello sent in 1.136 secs Redirect time 600 sec, forwarder time-out 14400 sec Authentication text "Cisco" Preemption enabled, min delay 0 sec Active is local Standby is 192.168.1.3, priority 100 (expires in 9.948 sec) Priority 200 (configured) Weighting 200 (configured 200), thresholds: lower 190, upper 195 Track object 1 state Up decrement 6 Load balancing: host-dependent Group members: 0016.3e01.0001 (192.168.1.1) local 0016.3e01.0201 (192.168.1.3) There are 2 forwarders (1 active) Forwarder 1 State is Active 1 state change, last state change 08:46:34 MAC address is 0007.b400.0101 (default) Owner ID is 0016.3e01.0001 Redirection enabled Preemption enabled, min delay 30 sec Active is local, weighting 200 Forwarder 2 State is Listen 2 state changes, last state change 08:42:08 MAC address is 0007.b400.0102 (learnt) Owner ID is 0016.3e01.0201 Redirection enabled, 599.036 sec remaining (maximum 600 sec) Time to live: 14399.036 sec (maximum 14400 sec) Preemption enabled, min delay 30 sec Active is 192.168.1.3 (primary), weighting 100 (expires in 9.032 sec)
Summary
Sub-menu level: Standards:
This chapter describes the Virtual Router Redundancy Protocol (VRRP) support in RouterOS.
Mostly on larger LANs dynamic routing protocols ( OSPF or RIP) are used, however there are number of factors that may make undesirable to use dynamic routing protocols. One alternative is to use static routing, but if statically configured first hop fails, then host will not be able to communicate with other hosts.
In IPv6 networks, hosts learn about routers by receiving Router Advertisements used by Neighbor Discovery (ND) protocol. ND already has built in mechanism to determine unreachable routers. However it can take up to 38seconds to detect unreachable router. It is possible to change parameters and make detection faster, but it will increase overhead of ND traffic especially if there are a lot of hosts. VRRP allows to detect unreachable router within 3seconds without additional traffic overhead.
Virtual Router Redundancy Protocol (VRRP) provides a solution by combining number of routers into logical group called Virtual Router (VR). VRRP implementation in RouterOS is compliant to VRRPv2 RFC 3768 and VRRPv3 RFC 5798.
Note: According to RFC authentication is deprecated for VRRP v3