Juniper EX Switchler Üzerinde VRRP Konfigürasyonu ve Troubleshooting

VRRP, birden çok yönlendirici (router)’nin tek bir sanal yönlendirici (virtual router) gibi davranmasına imkan sağlayan bir protokoldür.

VRRP iki veya daha fazla router’ı default gateway olarak yapılandırmaya izin verir, yedeklilik olanağı sağlar. Master olarak seçilen router’ın arıza yaşaması durumunda tüm işlemler backup’lar üzerinden devam ettirilebilir.

Örnek konfigürasyon olarak bir adet EX4200-24P ve bir adet EX2200-48T switch’in VRRP konfigürasyonunu gerçekleştireceğiz.

juniper-ex-vrrp

 

Topolojide VRRP konfigürasyonu öncesi sistemin yapısını açıklayacak olursak:

  • SRX210; Packet-Mode’a alınmış ve bir nevi switch olarak çalışmaktadır.
  • EX4200; VRRP için Backup olarak konfigüre edilmesi kararlaştırılmıştır.
    IP konfigürasyonu: ge-0/0/0 portu 10.10.20.11, ge-0/0/1 portu 11.11.20.11 olarak ayarlanmıştır.
  • EX2200; VRRP için Backup olarak konfigüre edilmesi kararlaştırılmıştır.
    IP konfigürasyonu: ge-0/0/0 portu 10.10.20.12, ge-0/0/1 portu 11.11.20.12 olarak ayarlanmıştır.
  • SRX2540; Packet-Mode’a alınmış, Router özelliği ile çalışmaktadır.
    IP konfigürasyonu: ge-0/0/0 portu 10.10.20.13, ge-0/0/1 portu 11.11.20.14, ge-0/0/2 portu 12.12.20.1 olarak ayarlanmıştır.

Bu kurulum ışığında VRRP konfigürasyonu için gerekli komutlar:

EX4200 (Master) üzerinde:

[edit interfaces]

ge-0/0/0 {

unit 0 {

family inet {

address 10.10.20.11/24 {

vrrp-group 2 {

virtual-address 10.10.20.10;

priority 200;

preempt;

authentication-type simple;

authentication-key ##PASSWORD##;

}

}

}

}

}

 

EX2200 (Backup) üzerinde:

[edit interfaces]

ge-0/0/0 {

unit 0 {

family inet {

address 10.10.20.12/24 {

vrrp-group 2 {

virtual-address 10.10.20.10;

priority 100;

preempt;

authentication-type simple;

authentication-key ##PASSWORD##;

}

}

}

}

}

komutlarından sonra iki cihazda da commit işlemi yapılmasıyla temel VRRP konfigürasyonu tamamlanmış olur.

Konfigürasyonda dikkat edilmesi gereken noktalar:

  • VRRP-group, virtual-address, authentication-type, authentication-key değerleri VRRP grubu içindeki tüm cihazlarda ortak olmalıdır.
  • Priority değeri yüksek olan Master seçilecektir. (Aralık: 1-255)
  • Girilen virtual-address’ı master router üzerine alacaktır. Master’ın devre dışı kalması durumunda grup içerisindeki backup’lar yeni bir master seçer ve paket iletimi seçilen cihaz üzerinden, önceki cihazın virtual MAC adresini kullanarak devam eder.
  • High Availability konfigürasyonunda da kullanılabilen “preempt” komutu, aynı işlevle burada da kullanılabilir. Bu komutla, yüksek priority atanmış bir backup router, master router özelliğini alabilecektir. “no-preempt” komutuyla ise, backup router’ın herhangi bir durumda master olmasının önüne geçilecektir (priority değeri yüksek olsa dahi).
  • “accept-data” komutu ile master router’ın, virtual ip address’e yönlendirilmiş tüm dataları kabul etmesi sağlanabilir. “no-accept-data” ile virtual ip address’e yönlendirilen tüm paketler (ARP paketleri dışında) engellenmiş olur.

Eğer ağda bulunan alt ağ maskesi IP değeri, herhangi bir router’da girilmişse (IP Owner olma durumu) bu router otomatik olarak Master seçilir (Priority değeri 255 olarak belirlenmiş olur).

VRRP konfigürasyonu sonrası operational mode üzerinde “show vrrp” komutuyla aşağıdaki dökümü alabilirsiniz:

juniper-ex-vrrp-1

juniper-ex-vrrp-2

Show vrrp extensive komutu ile daha detaylı bilgiye ulaşabiliriz:

[EX4200]

root@EX4200> show vrrp extensive

Interface: ge-0/0/0.0, Interface index :71, Groups: 1, Active :1

Interface VRRP PDU statistics

Advertisement sent                       :4977

Advertisement received                   :4

Packets received                         :4

No group match received                  :0

Interface VRRP PDU error statistics

Invalid IPAH next type received          :0

Invalid VRRP TTL value received          :0

Invalid VRRP version received            :0

Invalid VRRP PDU type received           :0

Invalid VRRP authentication type received:0

Invalid VRRP IP count received           :0

Invalid VRRP checksum received           :0

Physical interface: ge-0/0/0, Unit: 0, Address: 10.10.20.11/24

Index: 71, SNMP ifIndex: 529, VRRP-Traps: disabled, VRRP-Version: 2

Interface state: up, Group: 2, State: master, VRRP Mode: Active

Priority: 200, Advertisement interval: 1, Authentication type: simple

Advertisement threshold: 3, Computed send rate: 0

Preempt: yes, Accept-data mode: yes, VIP count: 1, VIP: 10.10.20.10

Advertisement Timer: 0.077s, Master router: 10.10.20.11

Virtual router uptime: 01:12:47, Master router uptime: 01:12:44

Virtual Mac: 00:00:5e:00:01:02

Tracking: disabled

Group VRRP PDU statistics

Advertisement sent                       :4977

Advertisement received                   :4

Group VRRP PDU error statistics

Bad authentication Type received         :0

Bad password received                    :0

Bad MD5 digest received                  :0

Bad advertisement timer received         :0

Bad VIP count received                   :0

Bad VIPADDR received                     :0

Group state transition statistics

Idle to master transitions               :0

Idle to backup transitions               :1

Backup to master transitions             :1

Master to backup transitions             :0

[EX2200]

root> show vrrp extensive

Interface: ge-0/0/0.0, Interface index :68, Groups: 1, Active :1

Interface VRRP PDU statistics

Advertisement sent                       :1037

Advertisement received                   :6308

Packets received                         :6308

No group match received                  :0

Interface VRRP PDU error statistics

Invalid IPAH next type received          :0

Invalid VRRP TTL value received          :0

Invalid VRRP version received            :0

Invalid VRRP PDU type received           :0

Invalid VRRP authentication type received:0

Invalid VRRP IP count received           :0

Invalid VRRP checksum received           :0

Physical interface: ge-0/0/0, Unit: 0, Address: 10.10.20.12/24

Index: 68, SNMP ifIndex: 503, VRRP-Traps: disabled, VRRP-Version: 2

Interface state: up, Group: 2, State: backup, VRRP Mode: Active

Priority: 100, Advertisement interval: 1, Authentication type: simple

Advertisement threshold: 3, Computed send rate: 0

Preempt: yes, Accept-data mode: yes, VIP count: 1, VIP: 10.10.20.10

Dead timer: 2.832s, Master priority: 200, Master router: 10.10.20.11

Virtual router uptime: 01:47:36

Tracking: disabled

Group VRRP PDU statistics

Advertisement sent                       :1037

Advertisement received                   :6308

Group VRRP PDU error statistics

Bad authentication Type received         :0

Bad password received                    :0

Bad MD5 digest received                  :0

Bad advertisement timer received         :0

Bad VIP count received                   :0

Bad VIPADDR received                     :0

Group state transition statistics

Idle to master transitions               :0

Idle to backup transitions               :1

Backup to master transitions             :4

Master to backup transitions             :4

VRRP Traceroute İşlemi ve Troubleshooting Adımları

Failover durumundaki geçişi daha net görebilmek adına traceoptions ile loglama yapalım.
VRRP protokolünde trace [edit protocols vrrp]  altından açılabilir. Varsayılan olarak, oluşturulan dosya /var/log/vrrpd konumunda yer alacaktır.

VRRP trace ayarlamaları için ek bilgilere http://www.juniper.net/documentation/en_US/junos15.1/topics/task/configuration/vrrp-operations-tracing.html adresinden ulaşılabilir.

Trace açıldıktan sonra, cihaz üzerindeki ge-0/0/0 portunu çıkarmamızla oluşacak failover durumuna ait loglar aşağıda görüntülenebilir:

Backup Switch’in (EX2200) Master duruma geçmesi:

root> show log VRRPTRACE | last 100

Feb 12 16:11:12 vrrpd_update_state_machine, ge-0/0/0.000.000.000.0000:0000:0000:0000:0000:0000:0a0a:140c.002 state: backup

Feb 12 16:11:12 vrrp_fsm_update IFD: ge-0/0/0.000.000.000.0000:0000:0000:0000:0000:0000:0a0a:140c.002 event: transition

Feb 12 16:11:12 vrrp_fsm_transition: ge-0/0/0.000.000.000.0000:0000:0000:0000:0000:0000:0a0a:140c.002 state from: backup

Feb 12 16:11:12 vrrp_fsm_update_for_inherit IFD: ge-0/0/0.000.000.000.0000:0000:0000:0000:0000:0000:0a0a:140c.002 event: transition

Feb 12 16:11:12 vrrpd_process_ppmd_packet : PPMP_PACKET_ADJ_DOWN received

Feb 12 16:11:12 ppmd_vrrp_delete_adj : VRRP neighbour 10.10.20.11 on interface <68 0 2> deleted

Feb 12 16:11:13 vrrp_fsm_update IFD: ge-0/0/0.000.000.000.0000:0000:0000:0000:0000:0000:0a0a:140c.002 event: master

Feb 12 16:11:13 vrrp_fsm_active: ge-0/0/0.000.000.000.0000:0000:0000:0000:0000:0000:0a0a:140c.002 state from: transition

Feb 12 16:11:13 VRRPD_NEW_MASTER: Interface ge-0/0/0.0 (local address 10.10.20.12) became VRRP master for group 2 with master reason masterNoResponse

Feb 12 16:11:13 vrrp_fsm_update_for_inherit IFD: ge-0/0/0.000.000.000.0000:0000:0000:0000:0000:0000:0a0a:140c.002 event: master

Feb 12 16:11:13 Signalled dcd (PID 1225) to reconfig

Aşağıda, master switch (EX4200) üzerindeki ge-0/0/0 portunun çıkartılması sonrası oluşan failover durumunun >show vrrp komutu ile dökümünü görebiliriz:

juniper-ex-vrrp-3

juniper-ex-vrrp-4

Görüldüğü üzere, master switch için VR state; initializing (tanımlanma) moduna düşmüş, backup switch ise master olmuştur.

Sökülen kablonun takılması ile, Idle durumdaki switch (EX4200) önce backup duruma geçecek, ardından da priority değeri (ve preempt komutu) sebebiyle tekrar master olacaktır. Bununla ilgili log dökümü ise aşağıda gösterilmiştir:

root@EX4200> show log VRRPTRACE | last 100

Mar  4 17:41:54 ppmd_vrrp_intf_create : Created PPM interface <71 0 2>, Distributed = 0, Master RE 1, New 1, Inherit 0

Mar  4 17:41:54 vrrpd_process_ppmd_packet : PPMP_PACKET_RECEIVE received

Mar  4 17:41:54 vrrpd_process_packet: Packet received on vrrp ge-0/0/0.000.000.000.0000:0000:0000:0000:0000:0000:0b14:0a0a.002 during Startup silent period ignoring

Mar  4 17:41:55 vrrpd_process_ppmd_packet : PPMP_PACKET_RECEIVE received

Mar  4 17:41:55 vrrpd_process_packet: Packet received on vrrp ge-0/0/0.000.000.000.0000:0000:0000:0000:0000:0000:0b14:0a0a.002 during Startup silent period ignoring

Mar  4 17:41:56 vrrp_startup_silent_period_timer_expiry, 2 sec

Mar  4 17:41:56 vrrp_fsm_update IFD: ge-0/0/0.000.000.000.0000:0000:0000:0000:0000:0000:0b14:0a0a.002 event: backup

Mar  4 17:41:56 vrrp_fsm_backup: ge-0/0/0.000.000.000.0000:0000:0000:0000:0000:0000:0b14:0a0a.002 state from: idle

Mar  4 17:41:56 vrrpd_set_state_in_kernel : vrrp_if ge-0/0/0.000.000.000.0000:0000:0000:0000:0000:0000:0b14:0a0a.002, state : 2, group : 2

Mar  4 17:41:56 vrrpd_set_state_in_kernel : ge-0/0/0.000.000.000.0000:0000:0000:0000:0000:0000:0b14:0a0a.002 address: 10.10.20.11 group 2 state 2

Mar  4 17:41:56 vrrp_fsm_update_for_inherit IFD: ge-0/0/0.000.000.000.0000:0000:0000:0000:0000:0000:0b14:0a0a.002 event: backup

Mar  4 17:41:56 vrrpd_ppmd_program_send : Creating XMIT on IFL 71, Group 2, Distributed 0, enabled 0

Mar  4 17:41:56 vrrpd_rts_async_ifa_msg, Received Async message for: ge-0/0/0 index: 71, family 0x2 op: 0x2 address : 10.10.20.11

Mar  4 17:41:56 vrrpd_rts_process_async_event_ifa, Received Async message for: ge-0/0/0 ifname_len: 8 index: 0 address : 10.10.20.11

Mar  4 17:41:56 vrrp_ppm_add_xmit_entry : Before adding xmit entry to _do_distrib_thread Group 2, head 0x7fffc498, new 0x7fffc4a0

Mar  4 17:41:56 vrrp_ppm_add_xmit_entry : After adding xmit entry to _do_distrib_thread Group 2, head 0x7fffc498, new 0x7fffc4a0

Mar  4 17:41:56 ppmd_vrrp_program_send : Programmed periodic send on interface <71 0 2> with enabled = 0, Distribute = 0, MASTER RE = 1

Mar  4 17:41:56 vrrpd_process_ppmd_packet : PPMP_PACKET_RECEIVE received

Mar  4 17:41:56 vrrp_skew_timer_expiry : ge-0/0/0.000.000.000.0000:0000:0000:0000:0000:0000:0b14:0a0a.002

Mar  4 17:41:56 vrrp_fsm_update IFD: ge-0/0/0.000.000.000.0000:0000:0000:0000:0000:0000:0b14:0a0a.002 event: master

Mar  4 17:41:56 vrrp_fsm_active: ge-0/0/0.000.000.000.0000:0000:0000:0000:0000:0000:0b14:0a0a.002 state from: backup

Mar  4 17:41:56 vrrpd_set_state_in_kernel : vrrp_if ge-0/0/0.000.000.000.0000:0000:0000:0000:0000:0000:0b14:0a0a.002, state : 1, group : 2

Mar  4 17:41:56 vrrpd_set_state_in_kernel : ge-0/0/0.000.000.000.0000:0000:0000:0000:0000:0000:0b14:0a0a.002 address: 10.10.20.11 group 2 state 1

Mar  4 17:41:56 vrrp_newmaster_trap: vrrp_if : ge-0/0/0.000.000.000.0000:0000:0000:0000:0000:0000:0b14:0a0a.002 trap enabled : 0

Mar  4 17:41:56 VRRPD_NEW_MASTER: Interface ge-0/0/0.0 (local address 10.10.20.11) became VRRP master for group 2 with master reason priority

Mar  4 17:41:56 vrrpd_ppmd_program_send : Creating XMIT on IFL 71, Group 2, Distributed 0, enabled 1

Mar  4 17:41:56 vrrp_fsm_update_for_inherit IFD: ge-0/0/0.000.000.000.0000:0000:0000:0000:0000:0000:0b14:0a0a.002 event: master

Mar  4 17:41:56 Signalled dcd (PID 1266) to reconfig

Onur ÖZTEKİN

About Emre BAŞTUĞ

Emre BAŞTUĞ