Table of Contents

JN0-332: HA

Необходимые знания по HA:

Фишки и характеристики кластера

Два бренчевых srx можно объединить в кластер (High Availability Cluster aka HA) который обеспечивает:

Требования к кластеру


Составные части кластера

Кластер состоит из следующийх составных частей:

Cluster-id

Уникальный номер кластера который используется при формировании виртуального мак-адреса reth интрефейса.
До junos XXX cluster-id мог принимать значения от 1 до 15, после junos XXX от 1 до 255.
Это нужно для того, что в одном L2-сегменте\организации\датацентре могло одновременно работать несколько кластеров и их мак-адреса не пересекались.
Так же в формировании мак адреса участвует номер reth интерфейса (см. ниже).

root@srx-test> set chassis cluster cluster-id 15 node 0 reboot
Successfully enabled chassis cluster. Going to reboot now

Node id

Номер ноды в кластере, может быть 0 или 1.
Номер используется при формировании имени интерфейса.

Имя интерфейса в srx работающего не в кластере:
(media type)-(fpc slot #)/(pic slot #)/(port #) = ge-0/0/3

Имя интерфейсов srx работающих в кластере (на примере srx650):
node0: (media type)-(node-id*max_fpc_slot + fpc_slot_#)/(pic slot #)/(port #) = ge-0/0/3
node1: (media type)-(node-id*max_fpc_slot + fpc_slot_#)/(pic slot #)/(port #) = ge-9/0/3

Redundancy group

RG это логическая группа объединяющая ресурсы srx. К ресурсам (элементам, объектам) относятся routing engine и интерфейсы.
RG и, соответственно, элементы входящие в неё могут быть активны только на одной ноде кластера, на второй ноде кластра они будут находится в резерве.
Номера RG могут принимать значения от 0 до 255.
RG0 зарезервирована, в нее всегда входят RE обоих нод.
RG[1..255] предназначены для размещения избыточных (redundant) интерфейсов. В одной RG максимум может быть 15 reth интерфейсов.
RG не заисят друг от друга, RG0 и RG2 может быть активной на node0, а RG1 активной на node1.

Состояния RG

RG может находиться в трех состояниях:

RG может может переходить между этим состояниями в любых направлениях.

Условия нахождения RG в активном состоянии

Переключения RG между нодами

Что бы RG[1..255] автоматически переключались между нодами кластера srx должен следить за наличием линка на интерфейсах входящих в RG.
Каждая RG имеет порогог срабатывания. В штатном состоянии этот порог имеет значение 255.
Каждому интерфейсу дается вес от 1 до 255, при падении линка на интерфейсе его вес вычитатется из порога, когда значение порога становится равным 0, происходит переключение между нодами.

Настойки RG0 и RG1

chassis {                               
    cluster {                           
        reth-count 2;                   
        redundancy-group 0 {            
            node 0 priority 100;        
            node 1 priority 1;          
        }                               
        redundancy-group 1 {            
            node 0 priority 100;        
            node 1 priority 1;          
            interface-monitor {         
                fe-0/0/0 weight 255;    
                fe-1/0/0 weight 255;    
            }                           
        }                               
    }                                   
}  

Интерфейс reth0

Reth это логический интерфейс который объединяет по одному физическому интерфейсу с каждой ноды кластера. Физические интерфейсы должны быть одинакового типа (fe-, ge-, etc) но при этом могут находится в разных слотах.
Интерфейс reth будет активным пока есть линк хотя бы на одном физическом интерфейсе. Передавать и принимать трафик (если только не используется LAG) может только один из физический интерфейсов, второй интерфейс, который находится на secondary node, всегда в резерве.
У интерфейса reth есть виртуальны мак адрес который формируется с использованием cluster-id и номера reth интерфейса.

Пример:

{primary:node0}
admin@aer-12-srx3-n0> show interfaces reth0      
Physical interface: reth0, Enabled, Physical link is Up
  Interface index: 128, SNMP ifIndex: 544
  Link-level type: Ethernet, MTU: 1518, Speed: 100mbps, BPDU Error: None, MAC-REWRITE Error: None, Loopback: Disabled, Source filtering: Disabled,
  Flow control: Disabled, Minimum links needed: 1, Minimum bandwidth needed: 0
  Device flags   : Present Running
  Interface flags: SNMP-Traps Internal: 0x0
  Current address: 00:10:db:ff:30:00, Hardware address: 00:10:db:ff:30:00
....

00:10:db:ff:30:00 - мак адрес от кластера в котором cluster-id максимум может быть 15, где:

Настройка reth0

interfaces {
    fe-0/0/0 {
        description aer-12-sw1/p44;
        fastether-options {
            redundant-parent reth0;     
        }                               
    }                                   
   gr-0/0/0 {                          
        unit 1 {     
...
   fe-1/0/0 {
        description aer-12-srx3/p30;
        fastether-options {
            redundant-parent reth0;
        }
    }
...
    reth0 {
        vlan-tagging;
        redundant-ether-options {
            redundancy-group 1;
        }
        unit 166 {                      
            description ROUTER-LINKNET1;
            vlan-id 166;
            family inet {
....

Интерфейс LAG reth0

Интерфейс fxp0

Спец интерфейс для управления нодами кластера, т.н. out-of-bound management
В брaнчевых srx под fxp0 зарезервирован один из имеющихся интерфейсов, для каждой можели свой, для srx650 0/0 (ge-0/0/0). В srx уровня дата-цент сразу есть fxp0.

Настройка интерфейсов fxp0:

groups {
    node0 {
        system {
            host-name aer-12-srx3-n0;
        }
        interfaces {
            fxp0 {
                description port0/6_to_aer-12-ilo/p16;
                unit 0 {
                    family inet {
                        address 10.10.160.26/24;
                    }
                }
            }
        }
    }
    node1 {
        system {
            host-name aer-12-srx3-n1;
        }
        interfaces {
            fxp0 {
                description port0/6_to_aer-12-sw5/p29;
                unit 0 {
                    family inet {
                        address 10.10.160.27/24;
                    }
                }
            }
        }
    }
}

Надо быть внимательным с маршрутизацией до сети 10.10.160.0/24 т.к. если кто-то, например, захочет пройти к 10.10.160.2 через aer-12-srx3, то в сторону этой машины он пройдет именно через интерфейс fxp0.
А вот обратый трафик уже может и не дойти т.к. не факт на 10.10.160.2 есть обратный маршрут ну и fxp0 мы не определяем в зоны безопасности. Заверуть обратный трафик через fxp0 никогда не пробовал.

Маршрут до сети 10.10.160.0/24 на primary ноде:

{primary:node0}
admin@aer-12-srx3-n0> show route 10.10.160.1 

inet.0: 582 destinations, 625 routes (582 active, 0 holddown, 0 hidden)
+ = Active Route, - = Last Active, * = Both

10.10.160.0/24   *[Direct/0] 21w0d 11:53:31
                    > via fxp0.0

На secondary ноде будет что-то типо “Routing subsystem not started”, точной формулировки не помню.

Интерфейс fxp1

Интерфейс fxp1 используется для подключения т.н. control-link, на обоих нодах интерфейст называется одинаково.
На хайенд srx под контол линк предсмотренно два выделенных порта (по состоянию на 2012 год софт позволяет использовать только один порт). Надо подключаться в Port0 если RE стоит слоте 0 и в порт Port1 если RE стоит в слоте 1. Расположение порта надо отдельно указать в конфиге.
На бранчевых srx под контрол линк зарезервировани один из имеющихся интерфейсов. на srx650 это 0/1 (ge-0/0/1 и ge-9/0/1). Интерфейс fxp1 появляется после перевода srx в кластерный режим и перезагрузки.

Интерфейсам fxp1 srx назначает адреса из зарезервированных областей:

Через контрол линк работает проприетарый протокол TNP который используется для синхронизации конфигураций, состояний сессий, контроля достуности соседней ноды

TNT—Trivial Network Protocol. This Juniper Networks proprietary protocol provides communication between the >Routing Engine and the device's packet forwarding components.

Если число потерь hearbeat пакетов достигло порога или просто пропал линк на порту fxp1, но при этом порты fab0/1 работают номально, то нода которая данный момент является secondary для RG0 пеходит в режим disabled. А все отальные RG переходят на primary ноду.

Что бы secondary ноду вернуть в кластер её надо перегрузить. Можно настроить автоматическую перезагрузку disabled ноды командой control-link-recover на уровне [edit chassis cluster].
Идея с автоматической перезагрузкой ноды мне никогда не нравилась, не делал.

Интерфейс fxp1 на srx100:

admin@aer-12-srx3-n0> show interfaces fxp1              
Physical interface: fxp1, Enabled, Physical link is Up
  Interface index: 2, SNMP ifIndex: 2
  Type: Ethernet, Link-level type: Ethernet, MTU: 1514
  Device flags   : Present Running
  Link flags     : None
  Current address: 64:64:9b:e1:73:47, Hardware address: 64:64:9b:e1:73:47
  Last flapped   : Never
    Input packets : 924478893 
    Output packets: 1315038536

  Logical interface fxp1.0 (Index 4) (SNMP ifIndex 14) 
    Flags: SNMP-Traps Encapsulation: ENET2
    Input packets : 924478893 
    Output packets: 921265218
    Protocol inet, MTU: 1500
      Flags: Is-Primary
      Addresses, Flags: Is-Preferred Is-Primary
        Destination: 128/2, Local: 129.48.0.1, Broadcast: 191.255.255.255
    Protocol tnp, MTU: 1500
      Flags: Is-Primary
      Addresses
        Local: 0x1300001

Интерфейсы fab0\1

Тезисно:

Вставить вывод show interface fab0 + определение физики под fab

Интерфейсы swfab0\1

Тезисно:

TODO
Разобраться с тем можно к портам “srx-коммутатора” привязать L3-интерфейс vlan.XXX.
Можно ли его определять в RG и как он себя поведет при обрыве swfab.

Избыточность служебных линков

Можно нарастить количество физических интерфейсов (до двух) которые используются для организации fab и swfab линков.

Тезисно:

RTO (real time object) - через rto синхронизируются сессии.

Только хайенд srx (srx5000, srx3000, srx1400) поддерживают второй контрол линк.
Линки не балансируются, работает только один.

srx1400

Под контлол линки можно взять 10 и 11 порты SYSIO кaрты (базовая карта с медными и оптичесими портами вкл консольный порт).

srx3000

Что бы получить второй порт под контрол линк нужен SCM (SRX Clustering Module).
SCM вставляется слот RE, но не выполяет функции RE.

srx5000

Мутно, нужно две SCB карты в которые будут вставлены RE, при этом второй RE не будет работать как RE.
Второй RE нужен что бы на второй SCB был физический порт который можно отдать под контрол линк.

RTO

RTO (real time objects) это специальные пакеты которые предаются между нодами через data link и содержат в себе информацию о состоянии и количестве сессий. Через RTO сессии синхронизируются между нодами и в случае падения основной ноды сессии уже бубут на второй ноде и трафик пойдет.
Основое назначение rto → consistncy and stability session.

Соединение нод кластера через коммутаторы