%# -*- coding: utf-8-unix -*-

\section{动态路由（OSPF）}
\label{sec:c:ensp:s:ospf}

\subsection{实验目的}
\label{subsec:c:ensp:s:ospf_object}

理解动态路由协议OSPF的工作原理；
掌握采用动态路由协议OSPF进行网络设计的基本原则和方法。

\subsection{实验内容}
\label{subsec:c:ensp:s:ospf_content}

\begin{itemize}
  \item 华为路由器IP地址的配置；
  \item 动态路由协议ospf的配置；
  \item 路由规划；
  \item 网络测试与排错操作；
  \item rip与ospf路由协议的区别。
\end{itemize}

\subsection{实验原理、方法和手段}
\label{subsec:c:ensp:s:ospf_principle}

简要说明OSPF工作原理和适用范围；
可设计至少包括3个由OSPF协议互连起来的网络；
观察并记录各设备状态变化情况，特别留意路由信息的交换和路由表。
分析说明相对于RIP协议，OSPF做了哪些改进。
解释说明与路由协议、路由表的相关性。

可参考图\ref{fig:c:ensp_OSPF-topo}连线，具体联线情况请自行标注。

\begin{figure}[!htp]
  \centering
  \includegraphics[width=8cm]{OSPF-topo}
  \caption{选中特定的捕获类型}
  \label{fig:c:ensp_OSPF-topo}
\end{figure}

\subsection{实验条件}
\label{subsec:c:ensp:s:ospf_requirement}

\begin{itemize}
  \item 华为ENSP仿真平台中：2台PC，3台路由器；
  \item 双绞线若干。
\end{itemize}

\subsection{实验步骤}
\label{subsec:c:ensp:s:ospf_procedure}

实验说明：路由器端口以具体选用的设备为准，如果是实际设备，
请观察路由器前面板和后面板的端口名称
，并使用disp int或者disp cur命令查看端口的实际名称。
在对路由器进行配置时，可使用disp cur命令来检查当前路由器上生效的配置命令。

(如保存了实验3.2-rip，则在原rip实验基础上选下文第7步，
即跳过前6步已配置完成的命令，直接配置第7步；
如是全新实验，则从第一步开始，顺序配置，第7步跳过。)

\begin{enumerate}
  \item 硬件连接，完成PC1、PC2到路由器的网络连接；
  PC1到路由器RT1控制线的连接，PC2到路由器RT2控制线的连接。
  拓扑图检查无误后方可进行后面的实验步骤,
  实验报告中的拓扑图必须标清路由器实际连接的端口。
  \item 为PC1、PC2分别设置IP地址、掩码和网关。
  \item 使用sysname命令为三个路由器命名。
  路由器R1的名称为学生自己的姓名拼音+R1，
  路由器R2的名称为学生自己的姓名拼音+R2，
  路由器R3的名称为学生自己的姓名拼音+R3，
  要求记录输入的命令和输出（截屏）。

  R1上的命令:
  \begin{code}[text]
    <Huawei>system-view
    [Huawei]sysname zhangsanR1
  \end{code}

  输出结果如图\ref{fig:c:ensp_sysname-R1_3}所示。
  \begin{figure}[!htp]
    \centering
    \includegraphics[width=10cm]{sysname-R1_3}
    \caption{R1配置图}
    \label{fig:c:ensp_sysname-R1_3}
  \end{figure}
 
  R2上的命令:
  \begin{code}[text]
    <Huawei>system-view
    [Huawei]sysname zhangsanR2
  \end{code}

  输出结果如图\ref{fig:c:ensp_sysname-R2_3}所示。
  \begin{figure}[!htp]
    \centering
    \includegraphics[width=10cm]{sysname-R2_3}
    \caption{R2配置图}
    \label{fig:c:ensp_sysname-R2_3}
  \end{figure}

  R3上的命令:
  \begin{code}[text]
    <Huawei>system-view
    [Huawei]sysname zhangsanR3
  \end{code}

  \item （从左至右配置）为路由器R1的两个接口配置IP地址。
  配置完成后PC1应该可以Ping通RT1的E0口的地址。
  要求记录输入的命令和输出（截屏）。
  (本模拟器R1实际使用的接口名由实际使用的路由器型号确定，可能有Ethernet0/0/0；
  或GigabitEthernet0/0/x；或FastEthernet0/0/x)
  R1上的命令:
  \begin{code}[text]
    [zhangsanR1]interface  GigabitEthernet 0/0/0
    [zhangsanR1- GigabitEthernet0/0/0]ip address 192.168.1.1 255.255.255.0
    [zhangsanR1- GigabitEthernet0/0/0]
  \end{code}
 
  PC1可以Ping通R1的192.168.1.1地址
  \begin{code}[text]
    PC1>ping 192.168.1.1
  \end{code}

  图3.3-4 Ping通效果图
  
  为路由器R1的 GE1接口配置IP地址。
  \begin{code}[text]
    [zhangsanR1]interface  GigabitEthernet 0/0/1
    [zhangsanR1-GigabitEthernet0/0/1]ip address 192.168.2.1 255.255.255.0
    [zhangsanR1-GigabitEthernet0/0/1]quit
  \end{code}
  \item 为路由器R2的GE0、GE1接口配置IP地址。
  配置完成后路由器R1和R2应该可以互相Ping通。要求记录输入的命令和输出（截屏）
  \begin{code}[text]
    [zhangsanR2]interface  GigabitEthernet 0/0/0
    [zhangsanR2-GigabitEthernet0/0/0]ip address 192.168.2.2 255.255.255.0
    [zhangsanR2-GigabitEthernet0/0/0]quit
  \end{code}

  \begin{code}[text]
    [zhangsanR2]interface  GigabitEthernet 0/0/1
    [zhangsanR2-GigabitEthernet0/0/1]ip address 192.168.3.1 255.255.255.0
    [zhangsanR2-GigabitEthernet0/0/1]quit
  \end{code}
  \item 为路由器R3的GE0、GE1接口配置IP地址。
  配置完成后，直连路由应可相互Ping通，如PC2应可Ping通R3的GE1口的地址。
  \begin{code}[text]
    [zhangsanR3]interface  GigabitEthernet 0/0/0
    [zhangsanR3-GigabitEthernet0/0/0]ip address 192.168.3.2 255.255.255.0
    [zhangsanR3-GigabitEthernet0/0/0]quit
  \end{code}
 
  \begin{code}[text]
    [zhangsanR3]interface  GigabitEthernet 0/0/1
    [zhangsanR3-GigabitEthernet0/0/1]ip address 192.168.4.1 255.255.255.0
    [zhangsanR3-GigabitEthernet0/0/1]quit
  \end{code}
  PC2可以Ping通R2的192.168.4.1地址
  \begin{code}[text]
    PC1>ping 192.168.4.1
  \end{code}
 
  (此前同实验3.2-rip的1-6步骤，如在原rip基础上配置则配置下文第7步；
  如是全新实验，则跳过第7步，直接配置第8步)
  
  \item （视情况选择）为3个路由器配置动态路由协议ospf，首先删除原来的rip配置。
  要求记录输入的命令和输出（截屏或文本复制）。
  配置后可以用display current configuration检查配置，
  或者display ip routing-table检查路由表。要求记录输入的命令和输出（截屏）。
  \begin{code}[text]
    [zhangsanR1]undo rip
  \end{code}
  确认删除？Y

  此时用disp cur检查配置，rip相关配置全部删除；

  disp ip routing-table检查路由表，rip那条路由也将被删除
   
  \begin{code}[text]
    [zhangsanR2]undo rip
  \end{code}
  确认删除？Y
   
  \begin{code}[text]
    [zhangsanR3]undo rip
  \end{code}
  确认删除？Y
  
  \item 为3个路由器分别配置动态路由协议ospf。
  配置后可以用disp cur检查配置，或者disp ip routing-table检查路由表。
  配置完成后，网络收敛，则网络任意两点间，应该可以互相Ping通。
  要求记录输入的命令和输出（截屏）。
  \begin{code}[text]
    [zhangsanR1]ospf
    [zhangsanR1-ospf-1]area 0
    [zhangsanR1-ospf-1-area-0.0.0.0]network  192.168.1.0  0.0.0.255
    [zhangsanR1-ospf-1-area-0.0.0.0]network  192.168.2.0  0.0.0.255
    [ctrl+z]
    [zhangsanR1]ping 192.168.4.2
  \end{code}
   
  \begin{code}[text]
    [zhangsanR2]ospf
    [zhangsanR2-ospf-1]area 0
    [zhangsanR2-ospf-1-area-0.0.0.0]network  192.168.2.0  0.0.0.255
    [zhangsanR2-ospf-1-area-0.0.0.0]network  192.168.3.0  0.0.0.255
    [zhangsanR2-ospf-1-area-0.0.0.0]display ip routing-table
    [ctrl+z]
    [zhangsanR2]ping 192.168.1.2
  \end{code}
  
  \begin{code}[text]
    [zhangsanR3]ospf
    [zhangsanR3-ospf-1]area 0
    [zhangsanR3-ospf-1-area-0.0.0.0]network  192.168.3.0  0.0.0.255
    [zhangsanR3-ospf-1-area-0.0.0.0]network  192.168.4.0  0.0.0.255
    [zhangsanR3-ospf-1-area-0.0.0.0]display ip routing-table
    [ctrl+z]
    [zhangsanR3]ping 192.168.1.2
  \end{code}
  如未ping通，则可能网络未收敛，当网络收敛时，网络任意两点间，
  应该可以互相ping通。请复核。
   
  \begin{code}[text]
    [zhangsanR1]display ip routing-table
  \end{code}
  （R1路由表截屏）
  \begin{code}[text]
    [zhangsanR2]display ip routing-table
  \end{code}
  （R2路由表截屏）
  \begin{code}[text]
    [zhangsanR3]display ip routing-table
  \end{code}
  （R3路由表截屏）
\end{enumerate}

\subsection{思考题}
\label{subsec:c:ensp:s:ospf_rethink}

Rip和OSPF协议的区别是什么？请对比路由表，收敛速度等。

\subsection{注意事项及有关说明}
\label{subsec:c:ensp:s:ospf_notice}

\begin{enumerate}
  \item 路由器端口以具体选用的设备为准，
  请将E0口和E1口对应到实际设备上的端口名称，
  接口名由实际使用的路由器型号确定，可能有Ethernet0/0/0；
  或GigabitEthernet0/0/x；或FastEthernet0/0/x。
  如果是实际设备，请观察路由器前面板和后面板的端口名称，
  并使用disp int或者disp cur命令查看端口的实际名称。
  在对路由器进行配置时，可使用disp cur命令来检查当前路由器上生效的配置命令。
  \item 此实验的第1-6步骤同前一实验3.2-rip，
  如保存了实验3.2-rip，则在原rip实验基础上选下文第7步，
  即跳过前6步已配置完成的命令，直接配置第7步；
  如是全新实验，则从第一步开始，顺序配置，第7步跳过。
 \end{enumerate}