📄 pim_testsuite.tex
字号:
\begin{verbatim}Xorp> show pim interface dc2Interface State Mode V PIMstate Priority DRaddr Neighborsdc2 UP Sparse 2 NotDR 1 10.2.0.1 1\end{verbatim} \item After the DR priority of TR1 is decreased to 0, the RUT should become the DR for LAN1:\begin{verbatim}Xorp> show pim interface dc2Interface State Mode V PIMstate Priority DRaddr Neighborsdc2 UP Sparse 2 DR 1 10.2.0.2 1\end{verbatim} \item After the DR priority of TR1 is increased to 1, the RUT should continue to be the DR for LAN1: \begin{verbatim}Xorp> show pim interface dc2Interface State Mode V PIMstate Priority DRaddr Neighborsdc2 UP Sparse 2 DR 1 10.2.0.2 1\end{verbatim} \item After the DR priority of the RUT is increased to 2, the RUT should continue to be the DR for LAN1:\begin{verbatim}Xorp> show pim interface dc2Interface State Mode V PIMstate Priority DRaddr Neighborsdc2 UP Sparse 2 DR 2 10.2.0.2 1\end{verbatim} \item After the DR priority of the RUT is decreased to 0, TR1 should become the DR for LAN1. The DR state information in the RUT should show that the RUT is not the DR anymore:\begin{verbatim}Xorp> show pim interface dc2Interface State Mode V PIMstate Priority DRaddr Neighborsdc2 UP Sparse 2 NotDR 0 10.2.0.1 1\end{verbatim} \item After the DR priority of the RUT is increased to 1, the RUT should become the DR for LAN1:\begin{verbatim}Xorp> show pim interface dc2Interface State Mode V PIMstate Priority DRaddr Neighborsdc2 UP Sparse 2 DR 1 10.2.0.2 1\end{verbatim}\end{enumerate}\subpara{Part B:}\begin{enumerate} \item After the RUT is started with default DR priority of 1, it should be the DR for LAN1:\begin{verbatim}Xorp> show pim interface dc2Interface State Mode V PIMstate Priority DRaddr Neighborsdc2 UP Sparse 2 DR 1 10.2.0.2 0\end{verbatim} \item After TR1 is started with default DR priority of 1, it should become the DR for LAN1. The DR state information in the RUT should show that the RUT is not the DR anymore:\begin{verbatim}Xorp> show pim interface dc2Interface State Mode V PIMstate Priority DRaddr Neighborsdc2 UP Sparse 2 NotDR 1 10.2.0.3 1\end{verbatim} \item After the DR priority of TR1 is increased to 2, TR1 should continue to be the DR for LAN1. The DR state information in the RUT should show that the RUT is not the DR:\begin{verbatim}Xorp> show pim interface dc2Interface State Mode V PIMstate Priority DRaddr Neighborsdc2 UP Sparse 2 NotDR 1 10.2.0.3 1\end{verbatim} \item After the DR priority of TR1 is decreased to 0, the RUT should become the DR for LAN1:\begin{verbatim}Xorp> show pim interface dc2Interface State Mode V PIMstate Priority DRaddr Neighborsdc2 UP Sparse 2 DR 1 10.2.0.2 1\end{verbatim} \item After the DR priority of TR1 is increased to 1, TR1 should become the DR for LAN1. The DR state in the RUT should show that the RUT is not the DR:\begin{verbatim}Xorp> show pim interface dc2Interface State Mode V PIMstate Priority DRaddr Neighborsdc2 UP Sparse 2 NotDR 1 10.2.0.3 1\end{verbatim} \item After the DR priority of the RUT is increased to 2, the RUT should become the DR for LAN1:\begin{verbatim}Xorp> show pim interface dc2Interface State Mode V PIMstate Priority DRaddr Neighborsdc2 UP Sparse 2 DR 2 10.2.0.2 1\end{verbatim} \item After the DR priority of the RUT is decreased to 0, TR1 should become the DR for LAN1. The DR state in the RUT should show that the RUT is not the DR:\begin{verbatim}Xorp> show pim interface dc2Interface State Mode V PIMstate Priority DRaddr Neighborsdc2 UP Sparse 2 NotDR 0 10.2.0.3 1\end{verbatim} \item After the DR priority of the RUT is increased to 1, TR1 should continue to be the DR for LAN1. The DR state information in the RUT should show that the RUT is not the DR:\begin{verbatim}Xorp> show pim interface dc2Interface State Mode V PIMstate Priority DRaddr Neighborsdc2 UP Sparse 2 NotDR 1 10.2.0.3 1\end{verbatim}\end{enumerate}\para{Possible Problems:}None.%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%\newpage\section{Generation ID Option}\para{Purpose:}Verify that a router properly sends and receives Hello messages withGeneration ID option.\para{References:}\begin{itemize} \item draft-ietf-pim-sm-v2-new-05 -- Sections 4.3.1 and 4.10.2\end{itemize}\para{Discussion:}The Generation ID (GenID) option contains a randomly generated 32-bit valuethat is regenerated each time PIM forwarding is started or restarted on theinterface, including when the router itself restarts. When a Hello messagewith a new GenID is received from a neighbor, any old Hello information aboutthat neighbor should be discarded and superseded by the information from thenew Hello message. In addition, if a router needs to send a Join/Prune or someother control messages to the new neighbor, then it must send a Hellomessage, immediately followed by the relevant control messages.\para{Test Setup:}Connect the RUT, TR1, and Rx1 according toFigure~\ref{fig:pim_test_2_6_generation_id_option}.Enable PIM-SM on both the RUT and TR1.\begin{figure}[htbp] \begin{center} \includegraphics[scale=0.8]{figs/pim_test_2_6_generation_id_option} \caption{Generation ID option test setup} \label{fig:pim_test_2_6_generation_id_option} \end{center}\end{figure}\para{Procedure:}\subpara{Part A: Transmission of a PIM Hello message containing a Generation IDoption.}\begin{enumerate} \item Start the RUT. \item Observe the messages transmitted by the RUT on LAN2 for at least \verb=Triggered_Hello_Delay= + 3 * \verb=Hello_Holdtime= (\ie ({\PimsmTriggeredHelloDelay}) + 3 * ({\PimsmHelloHoldtime})). \item Restart the RUT interface that connects the RUT to LAN2. \item Observe the messages transmitted by the RUT on LAN2 for at least \verb=Triggered_Hello_Delay= ({\PimsmTriggeredHelloDelay}). \item Restart the RUT. \item Observe the messages transmitted by the RUT on LAN2 for at least \verb=Triggered_Hello_Delay= ({\PimsmTriggeredHelloDelay}).\end{enumerate}\subpara{Part B: Reception of a PIM Hello message containing a Generation IDoption.}\begin{enumerate} \item Start both the RUT and TR1. \item Observe the messages transmitted by the RUT on LAN2. \item Quit TR1 (\ie stop it without graceful shutdown), and start it immediately.\end{enumerate}\subpara{Part C: Reception of a PIM Hello message containing a Generation IDoption when the RUT has pending Join messages to send.}Configure both the RUT and TR1 such that it is the RP for group224.0.1.20. This configuration can be either manual, or implicit through theBootstrap mechanism. Configure Rx1 such that it is the receiver for group224.0.1.20.\begin{enumerate} \item Start both the RUT and TR1. If necessary, wait until the RP-set in the RUT and TR1 converges. \item Start Rx1, and observe the Join state in the RUT and TR1. \item Observe the messages transmitted by the RUT on LAN2. \item Quit TR1 (\ie stop it without graceful shutdown), and start it immediately.\end{enumerate}\para{Observable Results:}\subpara{Part A:}\begin{itemize} \item After the RUT is started, after a random interval between 0 and \verb=Triggered_Hello_Delay= ({\PimsmTriggeredHelloDelay}) the RUT should start transmitting Hello message with Generation ID option included. There should be a Hello message every \verb=Hello_Holdtime= ({\PimsmHelloHoldtime}), and the value of the Generation ID must be same for all messages. \item After the RUT interface that connects the RUT to LAN2 is restarted, after a random interval between 0 and \verb=Triggered_Hello_Delay= ({\PimsmTriggeredHelloDelay}) the RUT should transmit on LAN2 a Hello message with Generation ID option included. The value of this Generation ID must be different from the value of the Hello message before the restart. \item After the RUT is restarted, after a random interval between 0 and \verb=Triggered_Hello_Delay= ({\PimsmTriggeredHelloDelay}) the RUT should transmit on LAN2 a Hello message with Generation ID option included. The value of this Generation ID must be different from the value of the Hello message before the restart. \end{itemize}\subpara{Part B:}\begin{itemize} \item After the RUT receives the first Hello message from TR1 that has different Generation ID from the one before the restart, after a random interval between 0 and \verb=Triggered_Hello_Delay= ({\PimsmTriggeredHelloDelay}) the RUT should transmit on LAN2 a Hello message.\end{itemize}\subpara{Part C:}\begin{itemize} \item After the RUT receives the first Hello message from TR1 that has different Generation ID from the one before the restart, the RUT should transmit immediately on LAN2 a Hello message followed by a PIM Join/Prune message with group 224.0.1.20 included in the list of joined groups.\end{itemize}\para{Possible Problems:}None.%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%\newpage\section{Two-Way Neighbor Adjacency Without Hello Messages}\para{Purpose:}Verify that a router can be configured to form a two-way neighbor adjacencyeven if no Hello message was received.\para{References:}\begin{itemize} \item draft-ietf-pim-sm-v2-new-05 -- Sections 4.3.1, and 4.5 \item draft-ietf-pim-sm-bsr-03 -- Section 3\end{itemize}\para{Discussion:}The following PIM control messages should only be accepted for processing ifthey come from a known PIM neighbor: Join/Prune, Bootstrap, Assert, Graft, andGraft-Ack. A PIM router hears about PIM neighborsthrough PIM Hello messages. However, some older PIM implementationsincorrectly fail to send Hello messages on point-to-point interfaces. Hence,the protocol specification recommends that a configuration option should beprovided to allow interoperation with such old routers (disabled by default). More specifically,if the option is enabled, then the above PIM control messages should beaccepted from a neighbor even if no Hello message was received first from thatneighbor.\para{Test Setup:}Connect the RUT, TR1, S1, and Rx1 according toFigure~\ref{fig:pim_test_2_7_two_way_neighbor_adjacency_without_hello_messages}.Enable PIM-SM on both TR1 and the RUT. Configure TR1as a Candidate-BSR, and the RUT as a Candidate-RP. Modify or configure TR1such that it never sends PIM Hello messages. Configure Rx1 and S1 suchthat Rx1 is a receiver, and S1 is a sender, both for group 224.0.1.20.\begin{figure}[htbp] \begin{center} \includegraphics[scale=0.8]{figs/pim_test_2_7_two_way_neighbor_adjacency_without_hello_messages} \caption{Two-way neighbor adjacency without Hello messages test setup} \label{fig:pim_test_2_7_two_way_neighbor_adjacency_without_hello_messages} \end{center}\end{figure}\para{Procedure:}\begin{enumerate} \item Start TR1 and the RUT. \item Observe the messages transmitted by TR1 and the RUT, and the neighbor and Bootstrap state information in the RUT. \item Wait until TR1 transmits 2-3 Bootstrap messages. \item Enable the interoperability option in the RUT (without restarting it), such that the RUT would accept PIM control messages from TR1 even if TR1 does not send Hello messages. \item Wait until TR1 transmits 2-3 Bootstrap messages. \item Start Rx1. \item Start S1.\end{enumerate}\para{Observable Results:}\begin{itemize} \item After TR1 and the RUT are started, the RUT should start transmitting PIM Hello messages on LAN2. \item After TR1 receives the first Hello message from the RUT, TR1 should unicast a Bootstrap message to the RUT. After that it start transmitting periodically only Bootstrap messages on LAN2. \item Each Bootstrap message received by the RUT should be ignored because it comes from an unknown neighbor. Therefore, the RUT should not have a BSR:\begin{verbatim}Xorp> show pim bootstrapActive zones:BSR Pri LocalAddress Pri State Timeout SZTimeoutExpiring zones:BSR Pri LocalAddress Pri State Timeout SZTimeoutConfigured zones:
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -