@twovs




  Packet と向き合う夏
VRRP Advertisement編

  第5回ネットワークパケットを読む会
   2011/07/26 Tue #pakeana
@twovs



agenda
 about me
 VRRP(ver.2)
 基本構成
   Advertisement パケット
   問題点
 拡張構成
   Interface 障害
   Active-Active 構成
   Gateway 以外でも使う
 VRRP(ver.3)
 パケットを読んでトラブルシュート
                                 2
@twovs



about me (配布用)
 @twovs
 無線LAN装置の開発(1999~2004)
 オンラインゲームのシステム管理者(2004~)
 ただし,ゲームには全く興味無し・・・
 ZFS 最高 !




                                    3
@twovs



about me (プロジェクタ用)




                              4
@twovs



VRRP(ver.2)
 Virtual Router Redundacy Protocol
 RFC2338/3768 (ver.2)
 RFC5798(ver.3)
 複数の Router で 1つ以上の VIP(VirtualIP)
 を共有し可用性を上げる
 MasterRouter は Advertisement を送信
 BackupRouter は Advertisement が
 届かなくなったら MasterRouter に昇格



                                          5
@twovs



基本構成
(通常時)                 (障害時)




通常時は MasterRouter(左側)が処理
Master障害時は旧Backup(右側)
Masterとなり処理を引き継ぐ
                                       6
@twovs



基本構成/Advertisement Packet




 pakeana05_{01,02,03}.pcap



                                      7
@twovs



pakeana05_01.pcap




 VRRP Advertisement パケットの中身を見ていく

                                            8
@twovs



pakeana05_02.pcap




 Auth Type = Simple Text Authentication
 Auth はもう使われない(RFC3768#section-5.3.6)
                                                   9
@twovs



pakeana05_03.pcap




 Auth Type = AH:Authentication Header/Proto:51
 Auth はもう使われない(RFC3768#section-5.3.6)
                                                     10
@twovs



基本構成/問題点
(通常時)                        (障害時)




                                 通信できない



  Interface障害時は通信できなくなる
  10.1.1.254は左側の Routerに
  192.168.1.254は右側の Routerに・・・
                                             11
@twovs



拡張構成/Interface障害対応
 Interface を Tracking (監視)したり,
 ICMP などでヘルスチェックして,
 障害発生時には Priority を下げて切り替え




                                          12
@twovs



拡張構成/Active-Active
 複数の VirtualRouter-Group を準備して
 client ごとに DefaultGW を分ける
 図は下側(192.168.1.0)だけ
 実際には上側も設定
 pakeana05_04.pcap




                                          13
@twovs



pakeana05_04.pcap




 Active-Active/2台がそれぞれ Ad を送信
 それぞれが VR-ID ごとに高い Priority値を持っている
                                         14
@twovs



拡張構成/Gateway以外でも使う
 VRRP は Gateway 以外でも使う
 例えば LB(Load-Balancer)など
 複数の VIP を持つ
 pakeana05_{05,06}.pcap




                                    15
@twovs



pakeana05_05.pcap




 Addr Count: 2
 payload に 2つの VIP(Virtual IP)
                                          16
@twovs



pakeana05_06.pcap




 Addr Count: 139 (!!!)
 こんな使い方もあり
                                  17
@twovs



VRRP(ver.3)
 RFC5798(ver.3)
 IPv6 対応
 IPv6 は link-local(fe80::/64)から Ad を送信
 FirstAddr(1
 FirstAddr(1つめの VIP)は link-local Addr
                    VIP)
 VR-ID と Prioriy は ver.2 と同じ
 Ad の Interval は短くできる/高速 fail-over
 IPv6 対応だけ押さえれば OK ???
 pakeana05_{07,08,09}.pcap


                                             18
@twovs



pakeana05_07.pcap




 VRRP(ver.3)
 Ad Intervarl: 20[centisec] = 200[msec] = 0.2[s]
                                                            19
@twovs



pakeana05_08.pcap




 For IPv6, the first address must be the IPv6 link-
 local address associated with the virtual router.
  (RFC5798#section-5.2.9)                                 20
@twovs



pakeana05_09.pcap




 For IPv6, the global unicast address (2001:db8::3333:fe)
 be allowed for the second or later address.
                                                              21
@twovs



パケットを見てトラブルシュート
 障害発生時のパケットを見て
 何が起こったかを予想してみる
 pakeana05_10.pcap
  No.01-09   SrcIP と Priority値は ?
  No.10      SrcIP と Priority
                     Priority値は ?
  No.11-53   SrcIP と Priority値は ?
  No.54-57   SrcIP と Priority値は ?




                                             22
@twovs



備考:キャプチャデータの一覧

No.     filename     VR-     ver.   VR-    prio    Addr-       IP Addr         auth   interval
                     Group          ID             Count                       type     [s]
 1    pakeana05_01     1      2      1     100       1       192.168.1.254     none      1
 2    pakeana05_02     1      2      1     100       1       192.168.1.254     PASS      1
 3    pakeana05_03     1      2      1     100       1       192.168.1.254     AH        1
                                    11    100+90             192.168.1.254
 4    pakeana05_04    2       2                      1                         none      1
                                    12    90+100             192.168.1.250
                                                             192.168.1.254
 5    pakeana05_05     1      2     20     100       2                         none      1
                                                             192.168.1.250
                                                                10.x.y.z
 6    pakeana05_06     1      2     255    104      139                        none      1
                                                                   …
 7    pakeana05_07     1      3     30     100       1       192.168.1.254     none     0.2
 8    pakeana05_08     1      3     30     100       1       fe80::3333:fe     none     0.5
                                                             fe80::3333:fe
 9    pakeana05_09     1      3     30     100       2                         none     0.9
                                                           2001:db8::3333:fe
10    pakeana05_10




                                                                                                 23
@twovs



備考:サンプルデータを取得した人達
 keepalived
   オープンソースでの VRRP の実装の 1つ
   keepalived-1.2.2
   http://keepalived.org/


 SEIL(ざいる)
   IIJが開発・販売するルータ
   SEIL/x86 Fuji 1.8.0
   http://seil.jp/


 LoadBalancer
   …
                                     24
@twovs



備考:次回以降の VRRPネタ
 IEEE802.1q(Vlan tagging)付きの Ad パケット
 Addr-Count > 255
 Addr-Count > 367
 VRRP(ver.3) Primary IP = link-local
 ・・・




                                           25
@twovs




       -END-
Thank you, see you again!




                                     26

Packet と向き合う夏 VRRP Advertisement編