Overview： RFC2811 state table
Goal: Visualize HSRP RFC 2281 state table to learn HSRP state changes (current state: event, action/next state)
Topology: 2 routers are cinnected by a switch.
Steps: 1) Highlight RFC state table's event and state when R1 receives R2's Hello and sends Coupl.
2) Highlight state table and R2 status table when R2 receives R1's hello and changes to Speak.
3) Hightlight state table, R2 status table when R2 timeout and becomes Standby.
R2, R1: Active, send Hello
At init, R1 and R2 don't know thier HSRP neighbors. Both think themselves are Active.
R2 sends a multicast Hello first. The destination IP is 188.8.131.52 (All routers on the subnet)
R2: Active-g-AB/4 (change to Speak)
- R2 receives Hello, and sees that R1 has higher priority. R2 backs off from Active and becomes Speak.
It sends Resign (I'm not running for Active), Hello (I'm a Speaker).
- RC2281 state table shows:
a) Active: h > G: HSRP current state is Active. With event h, the action is G, state remains unchanged.
b) R2's current state is Active (column 6). Event is g (row 7).
c) The crossing cell is Action is AB/4. AB: Start Active timer, Start Standby timer.
/4: change state to Speak (column 4)
R1：Active-h-G (send Coup)
- R1 receives Hello from R2. It finds out that R2 has lower priority and thinks that itself is Active.
To respond, R1 sends a Coup to declare R1 is electing for Active.
- RC2281 state table shows:
a) R1's current state is Active (column 6). Event is h (row 8)
b) The cross cell contains G. send Coup.
R2：Speak-e-F (periodical Hello)
- When R2 sends a Hello, it starts Hello timer (3 seconds). This triggers R2 sending Hello periodically.
- RFC 2281 state table shows:
a) Current state is Speak (column 4), event e (row 5): Hello timeut.
b) The cross cell is F. an acttion to send Hello.
R1：Active-e-F (periodical Hello)
When R1 sends a Hello, it starts Hello timer (3 seconds). It makes R1 sending Hello periodicallu.
In RFC 2281 state table, we see the following:
- State Active (column 6), event e (row 5): Hello timeut.
- Acttion F: send Hello.
R2: Speak-d-D/5 (become Standby)
- At tick 9, R2 changes to Speak and starts Standby timer. After 25 ticks, Standby timer expires (Holdtime 10
sec), R2 changes to Standby. Sounds complicated.
- This is a bit involvled. But it is clearly defined in RFC2281 state table:
a) State Speak: event d > Action D/5.
b) Event d: Standby timer timeout. Action D: Stop Standby timer. Next state /5: change state to Standby.,
R1: Active-l-B (restart Standby timer)
When R2 changes to Standby时, it sends Hello to notify everyone. When R1 receives Hello, it changes Standby router from unkknown to R2.
RFC2281 state table makes this transition simple:
- R1 state Active: Event I triggers Action B.
- Event I: R1 recevies Standby's Hello with lower priority.
Action B: start Standby timeer.
Q1: What is RFC?
RFC stands for Request For Comment. RFCs are protocol standards defined by IETF (Internet Standard Body). The purpose of RFC is to use a common rule by all network equipment vendors to achieve interoperability. RFC defines protocol behaviors precisely, but not easy to read.
Q2: Why do we care for RFC state table?
RFC's state table is the core of RFC. It looks complicated. Howeverm RFC state table is really a math formula. Once you know how to assign input values, you can get correct results quickly and easily regardless how complicated the internal algorithms are.
Q3: Can I grasp a RFC state table in 30 minutes?
This animation visualizes the state table lookup. Readers can relate status table, packets, state table, bubbles, and captions to understand state-event-actions.
Q4: How to find RFC2281?
Ans: http://www.faqs.org/rfcs/rfc2281.html， Section 5.7 is HSRP State Transition s
FAQ: HSRP RFC state table
Q1: What is RFC state table?
RFC2281, section 5.7 State Transitions. It includes a table, definitions for states, events, and actions.
Q2: How does R2 change its state from Active to Speak?
State tablle is a 2-dimensional State-Event table. We need to identify State and Event first. In this case,
- State: Active, column 6.
- Event g, row 7 of state table,
- ActionL AB4 (row 7, column 6)
A: Start Active timer.
B: Start Standby timer.
/4 Change to state (Speak)
Q3: How does R2 change from Speaak to Standby?
When R2 receives the first Hello from R1, R2 elects R1 for Active sine R1 has higher priority. R2 back off and does challenge R1. It changes state to Speak and starts Standby timer. When Standby timer expires,
R2 changes to Standby. This change ca be seen from RFC2281 state table:
- Event: d. Standby timer expires. RFC2281 5.5 Events > d)
- State: Speak
- Action: D/5
D: Stop Standby timer 。(5.6 Actions > D)
/5: change state to Standby
Q4: How does R1 know Standby is elected by R2?
After R2 changes to Standby, it sends a Hello. R1 recevies the Hello and sees R2 is Standby. and updates its HSRP status. This change can be observed from state table also.
- Event: l. Receive a Hello from Standby with lower priority (see RFC2281 5.5 Events > l)
- State: Active.
- Actions: R1 starts Standby timer. B. (5.6 Actions )R1 does not change state.
|Single step forward|
|Backup one step|
|Read the next page|
|Read the last page|
|Don’t show me this message next time.|