Juniper SRX JSRP高可用性HA(High Availability) chassis cluster雙機備援設定



Juniper SRX JSRP高可用性HA(High Availability) chassis cluster雙機備援設定


JSRP Juniper SRX 的私有HA 協定,對應ScreenOS NSRP 雙機集群協定,支援A/P A/A 模式,JSRP ScreenOS NSRP 協議和JUNOS Cluster 集群技術進行了整合集成,熟悉NSRP 協定有助於對JSRP 協定的理解。JSRP NSRP最大的區別在於JSRP 是完全意義上的Cluster 概念,兩台設備完全當作一台設備來看待,兩台設備的介面板卡順序編號、運維變更將對兩台設備同時進行操作,無需額外執行ScreenOS 的配置和會話同步等操作,而ScreenOS NSRP 可看作在同步配置和動態物件(session)基礎上獨立運行的兩台單獨設備。
JSRP 要求兩台設備在軟體版本、硬體型號、板卡數量、插槽位置及埠使用方面嚴格一一對應。由於SRX 是轉發與控制層面完全分裂架構,JSRP 需要控制層面 (配置同步)和資料層面(Session 同步)兩個平面的互聯,高端系列3K\5K 建議控制和資料層面互聯鏈路使用光纖鏈路直連(部分平臺強制要求光纖鏈路直連)。
Branch 系列則控制平面連接、帶外管理介面必須使用設備規定的介面,而資料平面可以使用任何一個乙太網口進行互連。
Control link: 
On the SRX100 device, connect fe-0/0/7 on device A to fe-0/0/7 on device B.  The fe-0/0/7 interface on device B will change to fe-1/0/7 after clustering is enabled in Step 2.
Note: It is strongly recommended that the interfaces used for the control link are connected directly with a cable (instead of a switch). If a switch must be used, then refer to KB25017.
Fabric (Data) link: 
On the SRX100 device, connect fe-0/0/0 on device A to fe-0/0/0 on device B. The fe-0/0/0 interface on device B will change to fe-1/0/0 after clustering is enabled.  
Note:
The Fabric (Data) link can be any available open port either onboard or gPIM other than fe-0/0/6 and fe-0/0/7
下面將介紹SRX Branch 系列防火牆運行HA 情況下,控制平面、帶外介面連接示意圖:
You must use the following ports to form the control link on the SRX Series branch
您必須使用下面設備指定埠來作為HA控制信號埠進行互連
設備型號:
For SRX100 devices, connect the fe-0/0/7 port to the fe-1/0/7 port
For SRX210 devices, connect the fe-0/0/7 port to the fe-2/0/7 port
Cluster Ports Details for SRX Series
Device
Management (fxp0)
HA Control
(fxp1 or em0/em1)
Fabric (fab0 & fab1)
Must be configured
SRX100
fe-0/0/6
fe-0/0/7 => fxp1
Any available FE Interface
SRX210
fe-0/0/6
fe-0/0/7 => fxp1
Any available FE or GE Interface
SRX220
ge-0/0/6
ge-0/0/7 => fxp1
Any available GE Interface
Figure : Slot Numbering in an SRX Series Chassis Cluster (SRX210 Devices)


Figure : Slot Numbering in an SRX Series Chassis Cluster (SRX100 Devices)




準備工作(先決條件)
在繼續為主機殼群集配置設備之前,請完成以下的準備工作(先決條件):
A. 確認兩台設備上的硬體相同。
驗證方法:請在兩個設備上分別使用此命令:
root> show chassis hardware detail
Hardware inventory:
Item             Version  Part number  Serial number     Description
Chassis                                AU4810AF1095      SRX100H
Routing Engine   REV 16   750-021773   AT4810AF1095      RE-SRX100H
  da0     999 MB  ST72682                                Nand Flash
  usb0 (addr 1)  DWC OTG root hub 0    vendor 0x0000     uhub0
  usb0 (addr 2)  product 0x005a 90     vendor 0x0409     uhub1
  usb0 (addr 3)  ST72682  High Speed Mode 64218 STMicroelectronics umass0
FPC 0                                                    FPC
  PIC 0                                                  8x FE Base PIC
Power Supply

B. 確認兩個獨立設備上的軟體是相同的版本。
驗證方法:請在兩個設備上分別使用此命令:
root> show version
Model: SRX100h
JUNOS Software Release [11.4R.7.5]

C. 確認兩個設備上的許可證金鑰相同。
沒有單獨的主機殼群集許可證。但是,兩個防火牆都必須啟用或安裝了相同的功能和許可證金鑰。 請注意,不需要使用許可證金鑰來配置主機殼群集,但一旦您的主機殼群集在生產中,並且您需要在任一設備上應用這些功能,就需要它們。
在兩個設備上使用此命令驗證許可證金鑰:
root> show system license

D. SRX 配置中,在啟用主機殼群集功能時,刪除會使用到的相關之介面的任何現有配置。
對於 SRX100,這些介面是 fe-0/0/6 fe-0/0/7 fe-0/0/6 介面將映射到 fxp0 (帶外管理)fe-0/0/7 介面將映射到 fxp1 (控制線路)。映射到 fxp0 fxp1 的介面是特定於設備的。
Fabric (fab0 & fab1)Any available FE Interface,我們設定為fe-0/0/0
關於冗餘已太網界面reth0reth1我們設定在fe-0/0/1fe-0/0/2

關於主、備機的介面我們的規劃如下:
主機:fe-0/0/7 fxp1(Control Link)fe-0/0/6 fxp0(Management)fe-0/0/0 fab0(Fabric)fe-0/0/1 reth0(wanuntrust)fe-0/0/2 reth1(lantrust)
備機:fe-0/0/7 fxp1(Control Link)fe-0/0/6 fxp0(Management)fe-1/0/0 fab0(Fabric)fe-1/0/1 reth0(wanuntrust)fe-1/0/2 reth1(lantrust)

還有3個空的端口fe-0/0/3fe-0/0/4fe-0/0/5,因為我們是修改運行中的VPN配置檔,因此會將fe-0/0/3規劃成WAN端口,fe-0/0/4fe-0/0/5規劃成LAN端口。我們會在fe-0/0/3介面配置Interface Monitoring來測試是否有線路備援的效果。

請在CLI配置模式中輸入下列命令來刪除相關的介面:
root@srx100# delete interfaces fe-0/0/0.0    ## fabic data link
root@srx100# delete interfaces fe-0/0/1.0    ## reth0(wanuntrust)
root@srx100# delete interfaces fe-0/0/2.0    ## reth1(lantrust)
root@srx100# delete interfaces fe-0/0/6.0    ## Management fxp0
root@srx100# delete interfaces fe-0/0/7.0    ## Control link fxp1
root@srx100# commit
commit complete
[edit]

root@srx100#
刪除後的結果如下:
interfaces {
    fe-0/0/3 {
        unit 0 {
            family inet {
                dhcp;
            }
        }
    }
    fe-0/0/4 {
        unit 0 {
            family inet {
                address 192.168.1.1/32;
            }
        }
    }
    fe-0/0/5 {
        unit 0 {
            family inet {
                address 192.168.3.1/32;
            }
        }
    }
}
除了介面fe-0/0/3fe-0/0/4fe-0/0/5以外,其他的介面全都消失了。
 


E.刪除所有vlan相關的設定。
官方網頁上的解釋是--如果運行JUNOS 10.4 或更早版本,則不支援vlan
而根據本人在SRX100H上作業(JUNOS版本12.1X46-D65.4)的經驗是所VLAN相關的設定都要刪除才行。
只要設定中含有vlan字眼或是介面設定成ethernet-switching的部分全都要刪除。
只能說在低端設備上不支援的功能會更多吧。
Enter configuration mode.
Enter the following commands:
root@srx100# delete vlans
root@srx100# delete interfaces vlan
root@srx100# delete interfaces interface-range interfaces-trust
root@srx100# delete security zones security-zone trust interfaces
root@srx100# commit

The factory default configuration for SRX100SRX210and SRX240 devices automatically enables Layer 2 Ethernet switching. Because Layer 2 Ethernet switching is not supported in chassis cluster modefor these devicesif you use the factory default configurationyou must delete the Ethernet switching configuration before you enable chassis clustering.

主機primary刪除vlan處置 (設定檔拿現有配置,HA設定完成即可以直接運行,所以要一步步刪除,但是記得要先更改設定檔,設定要避開欲刪除相關的網路端口)
請在CLI配置模式中輸入下列命令來刪除相關的介面:
root@srx100# delete vlans
root@srx100# delete interfaces vlan.0
root@srx100# delete interfaces fe-0/0/4.0 family ethernet-switching
root@srx100# delete protocols ospf area 0 interface vlan.0
root@srx100# delete security zones security-zone trust interfaces vlan.0
##會有這麼多命令是因為現有配置的設定之關係,可能更多或較少,當您commit時,系統會自動告知您還有沒刪除的VLAN介面,當相關的VLAN設定全部刪除之後,您的commit才能成功。
root@srx100# show | compare   ##查看所有要刪除的內容
[edit interfaces fe-0/0/4 unit 0]
     family ethernet-switching {
         vlan {
             members vlan-trust;
         }
     }
[edit interfaces]
   vlan {
       unit 0 {
           family inet {
               address 192.168.7.1/24;
           }
       }
   }
[edit protocols ospf area 0.0.0.0]
     interface vlan.0 {
         passive;
         metric 1;
         priority 10;
     }
 [edit security zones security-zone trust interfaces]
     vlan.0 {
         host-inbound-traffic {
             protocols {
                 ospf;
             }
         }
     }
 [edit]
  vlans {
      vlan-trust {
          vlan-id 3;
          l3-interface vlan.0;
      }
  }
[edit]
root@srx100# commit   ##提交設定
commit complete



F.關於備機的準備工作
由於備機設定會與主機同步,所以直接將全部設定刪除即可。
root@srx100# delete
This will delete the entire configuration
Delete everything under this level? [yes,no] (no) yes
[edit]
root@srx100# commit
error: cannot commit an empty configuration  ##清空的設定不給提交
[edit]
root@srx100# set system root-authentication plain-text-password   ##補上root密碼設定即可
New password:
Retype new password:
[edit]
root@srx100# commit
commit complete
[edit]
root@srx100# show
## Last changed: 2017-10-07 02:45:09 CST
version 12.1X46-D40.2;
system {
    root-authentication {
        encrypted-password "$1$Gt6uxXAR$.UCh0lGqIw4s.h8NDLUtf."; ## SECRET-DATA
    }
}
[edit]
root@srx100#

準備工作完成!





上述實施HA(高可用性)對軟硬體的需求是Juniper官方網站所要求的,若您要實際上線使用,也請您依照其需求來實施,但若是我們只是要進行模擬測試之用,則標準可以放寬些,有一些訊息我們可以當成判斷的依據:
因為主機與備機的設定是完全同步的,所以基本要求是設備要同型號,例如SRX100B100H100H2。因為這些設備的網路端口規格相同,主機同步到備機的設定備機也能正常運作,例如SRX100的網路端口全為fe-x/x/xSRX240的網路端口全為ge-x/x/x,雖然HA會使用到的預設端口相同,但是同步過去的設定就無法互相套用了。
另一個要求是軟體上的要求,SRX100B/SRX210B由於記憶體較小的原因,JUNOS 版本只能升級到12.1Rxx版本,若是執行12.1X46xx版本則容易當機,因此若是您手中的設備是srx100bsrx100h,則您必須以srx100h為主機,srx100b為備機,並將JUNOS軟體版本限制在12.1Rxx版本之內,且兩台設備的JUNOS版本要相同才行。
 



以下為官方規畫的網路拓墣圖:(設備太多[兩顆SRX+四顆EX Switches]、也太貴,不太適合窮人家的小孩)




以下為個人規劃的網路拓墣圖:(這是本人能接受之範圍)



整個 JSRP 配置過程包括如下步驟:
指定 Control Port(指定控制層面使用介面,用於配置同步及心跳)
配置 Cluster id Node id (指定cluster id node id
指定 Fabric Link Port(指定資料層面使用介面,主要session RTO 同步)
配置 Redundancy Group (配置冗餘組,以及其優先順序與搶佔等配置)
配置 Management prot每個機箱的個性化配置(單機無需同步的個性化配置,如主機名、帶外管理口 IP 地址等)
配置 Interface Monitoring
配置 Redundant Ethernet Interface
以下兩項配置則視各人需求而定:
配置 Management prot,每個機箱的個性化配置(如主機名、帶外管理口 IP 地址等)
配置 IP Monitoring (要根據原廠HA拓樸圖之硬體配置(兩顆SRX,四顆EX系列Switches)去設定才行)

指定 Control Port (指定控制層面使用介面,用於配置同步及心跳)
Control PortSRX100設備上固定為fe-0/0/7埠,接下來請將網路線接在主機fe-0/0/7與備機fe-0/0/7埠即可。


配置 Cluster id Node id (指定cluster id node id
進行ha設定後,主機設定將與備機設定完全一致,所以記得要在備份備機配置檔,
然後分別在主機與備機執行下列命令:

當您執行過下列指令後,srx100設備就會在重開機之後進入HA(高可用性)模式。
root@srx100a> set chassis cluster cluster-id 1 node 0 reboot    ##Enter鍵之後系統會自動重開機進入HA模式
root@srx100b> set chassis cluster cluster-id 1 node 1 reboot
此時srx100面板上的HA燈號才會有作用,若HA設定運作正常則亮綠燈,不正常則亮紅燈。
//定義cluster-id,同一個集群cluster-id必須相同,取值範圍為0-15,當Cluster ID = 0時會unsets cluster配置,成為單機
//node取值範圍為0-1 0代表主設備primary 1代表備援設備secondary
當設備重開機完成,面板亮綠燈就ok了。

root@srx100> show chassis cluster status   ##檢查設定
Cluster ID: 1
Node   Priority Status         Preempt Manual   Monitor-failures
Redundancy group: 0 Failover count: 1
node0  1        primary        no      no       None
node1  1        secondary      no      no       None
{primary:node0}
root@srx100> show chassis cluster interfaces
Control link status: Up    ##表示control Link設定成功
Control interfaces:
    Index   Interface        Status   Internal-SA
    0       fxp1             Up       Disabled
Fabric link status: Down    ##因為還沒設定與連接fabic link
Fabric interfaces:
    Name    Child-interface    Status
                               (Physical/Monitored)
    fab0
    fab0
    fab1
    fab1
Redundant-pseudo-interface Information:
    Name         Status      Redundancy-group
    lo0          Up          0
{primary:node0}
root@srx100>                                                                                 


指定 Fabric Link Port(指定資料層面使用介面,主要session RTO 同步)
接下來部分就全都在主機上設定即可,主機的設定會自動同步到備機上。
Note: Fabric (Data) link Port可以是fe-0/0/6 and fe-0/0/7以外的其他配對埠。
記得將網路線接在主機fe-0/0/0與備機fe-0/0/0埠,然後在主機執行下列命令:
#配置Fabric Link
root@srx100# set interfaces fab0 fabric-options member-interfaces fe-0/0/0   ## primary主要主機指定埠
set interfaces fab1 fabric-options
member-interfaces fe-1/0/0
{primary:node0}[edit]
root@srx100# set interfaces fab1 fabric-options member-interfaces fe-1/0/0   ## secondary備用主機指定埠
{primary:node0}[edit]
root@srx100# commit
node0:
configuration check succeeds
node1:
commit complete
node0:
commit complete
{primary:node0}[edit]
root@srx100>

root@srx100> show chassis cluster interfaces   ##查看設定結果
Control link status: Up
Control interfaces:
    Index   Interface        Status   Internal-SA
    0       fxp1             Up       Disabled
Fabric link status: Up
Fabric interfaces:
    Name    Child-interface    Status
                               (Physical/Monitored)
    fab0    fe-0/0/0           Up   / Up
    fab0
    fab1    fe-1/0/0           Up   / Up
    fab1
Redundant-pseudo-interface Information:
    Name         Status      Redundancy-group
    lo0          Up          0
{secondary:node0}
root@srx100> show chassis cluster control-plane statistics   ##查看control Link統計資料
Control link statistics:
    Control link 0:
        Heartbeat packets sent: 1521
        Heartbeat packets received: 1517
        Heartbeat packet errors: 0
Fabric link statistics:
    Child link 0
        Probes sent: 1424
        Probes received: 1423
    Child link 1
        Probes sent: 0
        Probes received: 0
{secondary:node0}

root@srx100> show chassis cluster status
Cluster ID: 1
Node   Priority  Status         Preempt Manual   Monitor-failures
Redundancy group: 0 Failover count: 1
node0  1        primary        no      no       None          
node1  1        secondary      no      no       None          
{primary:node0}
由於尚未設定Priority值系統預設為1node01 Priority值相等,故以node0成為primary

root@srx100> request chassis cluster failover redundancy-group 0 node 1   ##手動指定node1成為primary
--------------------------------------------------------------------------
Initiated manual failover for redundancy group 0
{primary:node0}
root@srx100> show chassis cluster status
Cluster ID: 1
Node   Priority Status         Preempt Manual   Monitor-failures
Redundancy group: 0 Failover count: 2
node0  1        secondary-hold no      yes      None          
node1  255      primary        no      yes     None          
{secondary-hold:node0}
手動系統預設Priority值為255node1重開機後則又恢復成1
雖然node1機設定上已經成為主機,但是實際上此時在運行的是node0機,還沒有備援功能。
(PS:HA設定好後,node0機成為實際運行的設備,node1機則成為備機,對外界無回應)





配置 Redundancy Group
Redundancy Group配置需要搭配Interface Monitoring配置一起使用。
RG0 固定用於主控板RE 切換RG1以後(RG2RG3…)用於redundant interface 切換RE 切換獨立於介面切換。
冗余組0 管理集群各節點上路由引擎之間的主項和故障切換。冗餘組0 故障切換意味著將執行路由引擎故障切換,不能為冗餘組0 啟用搶先。如果要更改冗餘組0 的主節點,必須執行手動故障切換。
root@srx100# set chassis cluster reth-count 2  ##(指定整個Cluster redundant ethernet interface 最多數量)
{secondary:node0}[edit]
root@srx100# set chassis cluster redundancy-group 0 node 0 priority 200 ##(高值優先,與NSRP 相反)
root@srx100# set chassis cluster redundancy-group 0 node 1 priority 100
root@srx100# set chassis cluster redundancy-group 1 node 0 priority 200
root@srx100# set chassis cluster redundancy-group 1 node 1 priority 100
root@srx100# commit
node0:
configuration check succeeds
node1:
commit complete
node0:
commit complete
{secondary:node0}[edit]
root@srx100# run show chassis cluster status
Cluster ID: 1
Node   Priority Status         Preempt Manual   Monitor-failures
Redundancy group: 0 Failover count: 2
node0  200      secondary      no      yes      None
node1  255      primary        no      yes      None   ##手動指定效果仍在
Redundancy group: 1 Failover count: 1
node0  200      primary        no      no       None
node1  100      secondary      no      no       None
{secondary:node0}[edit]
root@srx100# exit
Exiting configuration mode
{secondary:node0}
root@srx100> request chassis cluster failover reset redundancy-group 0
redundancy-group 0 進行reset重置動作
node0:
--------------------------------------------------------------------------
No reset required for redundancy group 0.
node1:
--------------------------------------------------------------------------
Successfully reset manual failover for redundancy group 0
{secondary:node0}
root@srx100> show chassis cluster status
Cluster ID: 1
Node   Priority Status         Preempt Manual   Monitor-failures
Redundancy group: 0 Failover count: 2
node0  200      secondary      no      no       None
node1  100      primary        no      no       None
Redundancy group: 1 Failover count: 1
node0  200      primary        no      no       None
node1  100      secondary      no      no       None
{secondary:node0}
root@srx100>
決定冗餘組redundancy group是否為主primacy冗餘組的因素有三個:為節點配置的PriorityNode ID(如果優先順序難分高下)和節點的出現順序(先開機的贏)。如果優先順序較低的節點(node0)首先出現,則將其視為冗餘組的主項(如果未啟用搶先preempt”,則將保持為主項)。






配置 Interface Monitoring
被監控的介面Down 掉後,冗餘組1 (RG1- redundancy-group 1)將自動進行主備切換。
注意: 對於SRX 系列分支設備,冗餘組0 (RG0- redundancy-group 0) 上不支援介面監控。
如果希望抑制因介面監控失敗而發生故障切換,請使用hold-down-interval

set interfaces fe-1/0/3 unit 0 family inet address 192.168.188.12/24
set chassis cluster redundancy-group 1 interface-monitor fe-0/0/3 weight 255  ##主機設定
set chassis cluster redundancy-group 1 interface-monitor fe-1/0/3 weight 255  ##備機設定
commit
PS:在此先說明為何要對fe-0/0/3(主機)以及fe-1/0/3(備機)進行Interface Monitoring設定,根據我們的規劃,fe-0/0/7 fxp1fe-0/0/6 fxp0fe-0/0/0 fab0fe-0/0/1 reth0fe-0/0/2 reth1,因此還有3個空的端口fe-0/0/3fe-0/0/4fe-0/0/5,但是因為我是修改運行中的VPN配置,所以將fe-0/0/3規劃成WAN端口,fe-0/0/4fe-0/0/5規劃成LAN端口。因此我們在fe-0/0/3介面配置Interface Monitoring來測試是否有線路備援的效果。但是也因為如此,需要額外的一個HUB,在此我們將SWITCHES切成兩個VLAN解決了。

要驗證此配置是否可正常運行,請在CLI命令列輸入下列命令:
show chassis cluster interfaces

當狀況正常時:
root@SRX100-a> show chassis cluster status
Cluster ID: 1
Node   Priority Status         Preempt Manual   Monitor-failures
Redundancy group: 0 Failover count: 1
node0  200      primary        no      no       None
node1  100      secondary      no      no       None
Redundancy group: 1 Failover count: 11
node0  200      primary        no      no       None
node1  100      secondary      no      no       None
{primary:node0}
root@SRX100-a>
當我們拔除fe-0/0/3網路線時:
root@SRX100-a> show chassis cluster status
Cluster ID: 1
Node   Priority Status         Preempt Manual  Monitor-failures
Redundancy group: 0 Failover count: 1
node0  200      primary        no      no       None
node1  100      secondary      no      no       None
Redundancy group: 1 Failover count: 10
node0  0        secondary      no      no       IF   (Interface)
node1  100      primary        no      no       None
{primary:node0}
root@SRX100-a>
雖然狀態顯示有偵測到線路故障,可是實際測試卻沒有進行線路備援動作,網路處在斷線狀態,代表設定尚未完成,我們要繼續進行下一步設定。





配置 Redundant Ethernet Interface冗餘乙太網介面
冗餘乙太網介面是成雙成對的,包含內網線路(reth1)與外網線路(reth0),它是偽介面(邏輯介面),所以必須為每一個冗餘乙太網介面搭配一個物理介面(實體端口),因此設定一組冗餘乙太網介面要占用設備兩個端口(reth0reth1),以SRX300為例,總共6個端口,光是設置HA就要占用了5個端口(fxp0fxp1reth0reth1fab),剩下的一個端口也沒有多大用途了,而node0node1加起來總共要占用掉四個端口。
HA設定中與Interface Monitoring不同的地方是,Interface Monitoring可以只監視單獨一個介面,但是node0node1加起來還是要占用兩個端口(為了達到容錯移轉的功能)

冗餘乙太網介面是偽介面(邏輯介面)其中至少包含集群每個節點的一個物理介面。
冗餘乙太網介面中必須至少包含一對快速乙太網介面或一對十億位元乙太網介面,稱為冗餘乙太網介面(冗余父級)的子介面。冗餘乙太網介面在配置命令中稱為reth
冗餘乙太網介面從其所屬冗余組x 繼承故障切換屬性。只要冗餘乙太網介面的主子介面可用或處於主動狀態,就保持為主動狀態。
可以配置的最大冗餘乙太網介面數由您所用設備類型決定,SRX100 的最大冗餘乙太網介面數為 8個。

reth1(冗餘乙太網介面)設定冗餘(redundancy group)IP位址及所屬區域(zone)
set interfaces reth1 redundant-ether-options redundancy-group 1
set interfaces reth1 unit 0 family inet address 192.168.9.1/24
set security zones security-zone trust interfaces reth1.0
reth0(冗餘乙太網介面)設定冗餘(redundancy group)IP位址及所屬區域(zone)
set interfaces reth0 redundant-ether-options redundancy-group 1
set interfaces reth0 unit 0 family inet address 192.168.188.18/24
set security zones security-zone untrust interfaces reth0.0
reth0rth1配置物理介面
set interfaces fe-0/0/2 fastether-options redundant-parent reth1
set interfaces fe-1/0/2 fastether-options redundant-parent reth1
set interfaces fe-0/0/1 fastether-options redundant-parent reth0
set interfaces fe-1/0/1 fastether-options redundant-parent reth0
reth0rth1配置Interface Monitoring
set chassis cluster redundancy-group 1 interface-monitor fe-0/0/1 weight 255
set chassis cluster redundancy-group 1 interface-monitor fe-1/0/1 weight 255
set chassis cluster redundancy-group 1 interface-monitor fe-0/0/2 weight 255
set chassis cluster redundancy-group 1 interface-monitor fe-1/0/2 weight 255
commit

確認您的配置。
輸入show interfaces reth0 命令
輸入show interfaces | match reth1 命令
輸入show chassis cluster interfaces 命令
當拔除fe-0/0/3網路線時,狀態顯示有偵測到線路故障,主、備機互換(node1主,node0),實際測試也有進行線路備援動作(網路一直暢通),代表Interface Monitoring設定已完成。
當接回fe-0/0/3網路線時,狀態顯示數值恢復正常,主、備機回復初始狀態(node0主,node1)
PS:雖然線路備援動作成功,但是卻也產生了新的問題,VPN不通了,原因在當備機啟動時,其WANIP與主機WANIP不同,而關於這個問題,我們也可以透過設定Dynamic VPN(一端是固定的IP位址,另一端則為動態的IP位址)來解決。

關於冗餘乙太網介面reth0reth1的測試,就如同本例拓樸圖中所示之線路接法一般,兩顆SRX100H及兩顆HUB(或是一顆16埠的Switches,切成四組vlan測試)即可,reth0屬於untrust zonereth1屬於trust zone,只要做好trustuntrust之間的policy及路由設定,就可正常溝通與測試。
另外,cd中示範的JSRP設定檔乃是修改4router OSPF VPN 而來(內含三個子網段)JSRP完成後依然能跟其他三顆OSPF VPN SRX或是SSG 防火牆連線溝通。
到目前為止我們的設定在Interface Monitoringreth01冗餘已太網介面皆能成功達成自動切換故障線路之功能,也就是因為設備介面本身的故障而導致的斷線,我們能夠達到容錯移轉的功能,但是當遠端網路設備斷線時,我們就無能為力了。
後續還有兩個步驟乃非必要的,大家可視個別情況來斟酌設定。







配置 Management prot,並為每個機箱做個性化配置(如主機名、帶外管理口 IP 地址等),以便於對兩台設備的區分與管理。
Juniper MX/SRX 系列帶外管理埠被命名為 " fxp0", ex系列是 " me0", Qfx系列是 "em0", ex/Qfx VC系列是 "vme (Virtual ME)"
某些機型沒有帶外(Out of Band)管理埠, 例如分支低端產品 SRX (srx300/320/220/210/100)
·示例 1: 設置 EX系列 管理介面 (me0)
root# set interfaces me0 unit 0 family inetaddress 192.168.1.1/24
·示例 2: 設置 MXSRX系列 管理介面 (fxp0)
root# set interfaces fxp0 unit 0 family inet address 192.168.1.1/24

下圖為安全設備的帶外管理埠

 下圖為SRX管理介面fxp0應用拓樸圖
Chassis Cluseter ManagementSRX管理介面fxp0應用拓樸圖


root@srx100> set groups node0 system host-name srx-1
root@srx100> set groups node0 interfaces fxp0 unit 0 family inet address 192.168. 1.11/24
root@srx100> set groups node1 system host-name srx-2
root@srx100> set groups node1 interfaces fxp0 unit 0 family inet address 192.168.1.12/24
root@srx100> set apply-groups "${node}"  ##(應用groups 配置)

下圖為SRX300 HA Chassis Cluseter線路連接拓樸圖
 






配置 IP Monitoring (要根據原廠HA拓樸圖之硬體配置(兩顆SRX,四顆EX系列Switches)去設定才行,請參考!!)
為何我們需要去配置 IP Monitoring功能,來監視遠端IP活動狀態呢?目的在當發現遠端被監視IP失聯斷線時,系統能自動切換進行容錯移轉,藉以能夠解決遠端被監視IP失聯斷線的問題。前提是遠端被監視IP必須要在正常工作狀態,且問題出在中間某節點,當系統自動切換進行容錯移轉後,要能繞過問題節點,而與遠端被監視IP正常連線才行。
以下我們就來探討如何來配置 IP Monitoring的功能。

ip 監視允許基於已配置的已監視 ip 位址的端到端可到達性進行容錯移轉。在 SRX 系列設備上,可達性測試是通過 reth 介面從主節點和輔助節點向受監視的 IP 位址發送 ping,並檢查是否返回回應。受監視的 IP 位址可以位於與 reth 介面相同的子網中的直接連接主機上,或者在通過下一躍點路由器可到達的遠端設備上。
受監視的 IP 位址的可訪問狀態是可到達的、不可訪問的和未知的。如果包轉發引擎尚未運行,則狀態為 "未知"。根據資料包轉發引擎的相應消息,狀態將變為 "可到達" "不可訪問"
不能在以透明模式運行的主機殼集群上使用IP 位址監控。
冗餘組IP 位址監控檢查端對端連接,並允許在冗餘乙太網介面(稱為reth)無法訪問配置的IP 位址時冗餘組執行故障切換。可同時監控多個位址來體現其對保持資訊流傳遞的重要性。此外,開始不可訪問,之後再次變得可訪問的IP 位址的臨界值(閾值)將恢復為監控臨界值(閾值)。不過,除非已經啟用了搶先選項,否則這樣不會導致故障容錯移轉
當監視 IP 或其他監視故障時,導致權重值在一個冗余組中被扣除,當冗余組臨界值(閾值)累計扣除0時,發生容錯移轉。當 ChassisCluster 監測 IP 在兩個節點同時觸發門限時,小設備節點 ID 將成為主要設備。
為了使 IP 位址可以在待機節點(node1)上進行監視,冗余乙太網介面的監視必須配置一個第二位址secondary-ip-address
注意: 我們不建議在 SRX 系列設備的冗余組 0 (RG0) 上配置主機殼群集 IP 監視。
對於SRX100SRX210SRX220SRX240 SRX650 服務閘道來說,可為每個集群配置的最多64個監控IP
IP 監控的最小間隔為1秒,最大值為30秒。預設間隔為1秒。
IP 監視的最低臨界值(閾值)5請求,最大為15請求。如果 ip 監視請求沒有收到對連續請求 (超過臨界值(閾值)) 的回應,則 ip 監視將報告所監視的 ip 不可訪問。閥值的預設值為5
檢查受監控IP 位址訪問性的缺省時間間隔為每秒一次。可使用retry-interval 命令調整該時間間隔。缺省的允許連續失敗ping 嘗試數為5。可使用retry-count 命令調整允許連續失敗ping 嘗試數。
Table 1: IP Monitoring Results and Failover Action
Primary Node Monitored Status
Secondary Node Monitored Status
Failover Action
Reachable
Reachable
No action
Unreachable
Reachable
Failover
Reachable
Unreachable
No action
Unreachable
Unreachable
No action

下面的三示例案例闡明瞭 IP 和介面監視值 (如優先順序、臨界值(閾值)和權重) 的工作方式,並說明這些值如何影響 SRX 的主機殼群集中的容錯移轉。
Case 1: global-weight is less than threshold valueand no interface-monitor failure. 全域權重小於臨界值(閾值),沒有介面監視器故障
Case 2: global-weight is equal to threshold valueand no interface-monitor failure. 全域權重等於臨界值(閾值),沒有介面監視器故障。
Case 3: global-weight is less than 250and interface-monitoring failure. 全域權重小於 250,介面監視失敗。

set chassis cluster redundancy-group 1 ip-monitoring global-weight 80
set chassis cluster redundancy-group 1 ip-monitoring global-threshold 255
set chassis cluster redundancy-group 1 ip-monitoring retry-interval 3  ## [3ping monitored IP一次]
set chassis cluster redundancy-group 1 ip-monitoring retry-count 6  ## [ping六次,若monitored IP不在,則18秒後才會聲明被監視的 IP 位址不可訪問]
set chassis cluster redundancy-group 1 ip-monitoring family inet 192.168.188.11 weight 255  ## [如果已聲明閘道位址不可訪問,則從全域臨界值(閾值)中扣除此權重,因此,如果結果為 0,則啟動容錯移轉,否則不進行。]
set chassis cluster redundancy-group 1 ip-monitoring family inet 192.168.188.11 interface reth1.0 secondary-ip-address 192.168.9.100  ## [此命令設置將發送 ping 請求的源 Reth 介面,還設置將用作輔助節點的源 ip 位址的輔助 ip 位址,同時 ping 受監視的 ip 位址。reth1.0 ip 192.168.9.1]
set chassis cluster redundancy-group 1 ip-monitoring family inet 192.168.188.178 weight 255 interface reth0.0 secondary-ip-address 192.168.188.100  ## [reth0.0 ip 192.168.188.18]
commit

192.168.188.11 should be remote destination that you are trying to ping.
192.168.9.18 should be source ip address for secondary node1 to ping 192.168.188.11
192.168.9.18 should be in the same subnet as reth1.0
192.168.188.11 應該是您試圖 ping 的遠端目標。
192.168.9.18 應該是第二 node1 的源 ip 位址到 ping 192.168.188.11
192.168.9.18 應與 reth1.0 在同一子網中

root@srx100# show chassis cluster    ##查看設定
reth-count 2;
redundancy-group 0 {
    node 0 priority 200;
    node 1 priority 100;
}
redundancy-group 1 {
    node 0 priority 200;
    node 1 priority 100;
    interface-monitor {
        fe-0/0/3 weight 255;
        fe-1/0/3 weight 255;
    }
    ip-monitoring {
        global-weight 80;
        global-threshold 255;
        family {
            inet {
                192.168.188.11 {
                    weight 255;
                    interface reth1.0 secondary-ip-address 192.168.9.100;
                }
                192.168.188.178 {
                    weight 255;
                    interface reth0.0 secondary-ip-address 192.168.188.100;
                }
            }
        }
    }
}
{secondary:node1}[edit]
root@SRX100-a#

delete chassis cluster redundancy-group 1 ip-monitoring family inet  ##刪除ip-monitoring命令

To Check Configuration:
root@srx100# show | display set | match ip-mon
IP Monitoring status down:
root@srx100> show chassis cluster ip-monitoring status
To Check Threshold Value:
root@srx100> show chassis cluster information detail
To check Priority value:
root@srx100> show chassis cluster status

root@SRX100-a> show chassis cluster interfaces   ##查看介面啟動情形
Control interfaces:
    Index   Interface        Status   Internal-SA
    0       fxp1             Up       Disabled
Fabric link status: Up
Fabric interfaces:
    Name    Child-interface    Status
                               (Physical/Monitored)
    fab0    fe-0/0/0           Up   / Up
    fab0
    fab1    fe-1/0/0           Up   / Up
    fab1
Redundant-ethernet Information:
    Name         Status      Redundancy-group
    reth0        Up          1
    reth1        Up          1
Redundant-pseudo-interface Information:
    Name         Status      Redundancy-group
    lo0          Up          0
Interface Monitoring:
    Interface         Weight    Status    Redundancy-group
    fe-1/0/3          255       Up        1
    fe-0/0/3          255       Up        1
{primary:node0}

結果竟然出現異常了!!
root@SRX100-a> show chassis cluster status
Cluster ID: 1
Node   Priority Status         Preempt Manual   Monitor-failures
Redundancy group: 0 Failover count: 1
node0  200      primary        no      no       None
node1  100      secondary      no      no       None
Redundancy group: 1 Failover count: 4
node0  200      secondary      no      no       IP
node1  100      primary        no      no       None
{primary:node0}
root@SRX100-a> show chassis cluster ip-monitoring status
node0:
--------------------------------------------------------------------------
Redundancy group: 1
Global weight: 250
Global threshold: 255
Current threshold: 0
IP address      Status      Failure count  Weight Reason
192.168.188.178 unreachable  0             255    reth child not up
192.168.188.11  unreachable  1             255    reth child not up
node1:
--------------------------------------------------------------------------
Redundancy group: 1
Global weight: 250
Global threshold: 255
Current threshold: 255
IP address      Status      Failure count  Weight Reason
192.168.188.178 reachable    0             255    n/a
192.168.188.11  reachable    0             255    n/a
{secondary:node1}
root@SRX100-a>

Juniper網站搜尋reth child not up,找到答案了,原來是錢不夠多,資本不夠雄厚的關係。
·             In some high-availability SRX deploymentsthe child interfaces of a RETH interface are connected to the same switch.
·             In such a scenarioif the switch crashes or loses powerboth the child interfaces go down at once.
·             The behavior of the RETH interface is as designed. Juniper does not recommend connecting all child interfaces to the same switchas this creates a single point of failure.
·             In order to avoid such a situationconnect the child interfaces to different switches.

原來要根據原廠HA拓樸圖之硬體配置(兩顆SRX,四顆EX系列Switches)去設定才行!





雖然本人已經努力的給他找了四顆hub來做實驗,可是最後結果依然不變,在此深深的了解到:原來reth child是長在juniper EX Series switchesRedundancy相關設定上的……殘念!!
                                                
結論:
根據本例所用之平民HA拓樸圖(兩顆SRX,兩顆HUB)來設定之HA系統,在Interface Monitoringreth01冗餘已太網介面皆能成功達成自動切換故障容錯線路之功能,唯IP Monitoring之部分因Juniper JUNOS OSJSRP系統設定上硬體的要求,而無法來達成IP Monitor的功能,這叫做著實遺憾來著。






JSRP 維護命令
1 取消cluster 配置
當您執行過下列指令後,srx100設備就會在重開機之後進入HA(高可用性)模式。
root@srx100a> set chassis cluster cluster-id 1 node 0 reboot
root@srx100b> set chassis cluster cluster-id 1 node 1 reboot
此時srx100面板上的HA燈號才會有作用,若HA設定運作正常則亮綠燈,不正常則亮紅燈。

相對的,如果您要取消HA(高可用性)模式,則要在兩台設備上分別執行下列命令,待系統重開機後才會升效。
root@srx100a> set chassis cluster disable reboot
root@srx100b> set chassis cluster disable reboot
PS取消HA(高可用性)模式並不會清空其設定

重開機後我們通常會為設備恢復出廠設定。您可參考下列連結:
或是執行下列命令:
root@srx100a> Load factory-default
root@srx100a> set system root-authentication plain-text-password
root@srx100a> commit

若是您想保留設備上現有的設定,只想將HA(高可用性)相關的設定刪除,則以本人的設定需要執行以下的命令才行
root@srx100# delete groups
root@srx100# delete apply-groups
root@srx100# delete chassis
root@srx100# delete interfaces fe-0/0/0
root@srx100# delete interfaces fe-0/0/1
root@srx100# delete interfaces fe-0/0/2
root@srx100# delete interfaces fe-0/0/6
root@srx100# delete interfaces fe-0/0/7
root@srx100# delete interfaces fe-1/0/1
root@srx100# delete interfaces fe-1/0/2
root@srx100# delete interfaces fe-1/0/3
root@srx100# delete interfaces fab0
root@srx100# delete interfaces fab1
root@srx100# delete interfaces reth0
root@srx100# delete interfaces reth1
root@srx100# delete security zones security-zone trust interfaces reth1.0
root@srx100# delete security zones security-zone untrust interfaces reth0.0
root@srx100# delete system services web-management http reth1.0
root@srx100# delete system services web-management https reth1.0
root@srx100# delete protocols ospf area 0.0.0.0 interface reth1.0
root@srx100# commit

CLI一行一行刪除太累,您也可以直接從J-Web來設定較方便。
Configure>CLI Tools>CLI Editor進入Configuration: 編輯區來編輯。
建議您在編輯區中按Ctrl+F鍵來搜尋關鍵字,例如搜尋"reth",這樣所有含有的"reth"的字串就會被反白顯示,方便您來編輯,並可避免您漏刪,十分方便,最後記得提交commit命令即可。

2、手工切換JSRP MasterRG1 backup 將成為Master
root@srx100> request chassis cluster failover redundancy-group 1 node 1
注意:rg1是控制層面,rg0是資料層面

3、手工恢復JSRP 狀態,按照優先順序重新確定主備關係(高值優先)
root@srx100> request chassis cluster failover reset redundancy-group 1

4、查看cluster interface
root@srx100> show chassis cluster interfaces

5、查看cluster 狀態、節點狀態、主備關係
root@srx100# run show chassis cluster status

6、清除HA統計資料
root@srx100> clear chassis cluster statistics 清除控制心跳資料統計
Cleared control-plane statistics 清除資料心跳線統計
Cleared data-plane statistics 清除Cluster資料統計
Clear chassis cluster failover-count

排錯 查看指令------------------------
show chassis cluster status
show chassis cluster interfaces
show chassis cluster statistics
show chassis cluster control-plane statistics
show chassis cluster data-plane statistics
show chassis cluster status redundancy-group 1


7、升級JSRP 軟體版本
升級步驟如下:
1.升級node 0,注意不要重啟系統 > request system software add image_name no-copy no-validate
2.升級node 1,注意不要重啟系統.> request system software add image_name no-copy no-validate
3.同時重啟兩個系統
SRX Cluster upgrade
1. Load the new image file on node 0.
2. Perform the image upgrade without rebooting the node by entering:
root@srx100> request system software add image_name no-copy no-validate reboot
3. Load the new image file on node 1.
4. Repeat Step 2.
5. Reboot both nodes simultaneously.

不間斷升級:
SRX Low end產品目前暫不支援線上軟體升級(In-service software upgradeISSU)

8、恢復處於disabled 狀態的node
control port fabric link 出現故障時,為避免出現雙master (split-brain)現象,
JSRP 會把出現故障前狀態為secdonary node 設為disabled 狀態,即除了RE
其餘部件都不工作。想要恢復必須reboot node


這個網誌中的熱門文章

如何測試網路連線--網路斷線了怎麼辦?

筆記電腦刷BIOS失敗無法開機—用CH341A編程器重刷BIOS教學!

查理王的電腦部落格-首頁