рдпрд╣рд╛рдВ рддрдХ тАЛтАЛрдХрд┐ рдПрдХ рдЕрдЪреНрдЫреЗ рдиреЗрдЯрд╡рд░реНрдХ рдореЗрдВ, рдбрд┐рдЬрд╛рдЗрди рдХреЗ рджреГрд╖реНрдЯрд┐рдХреЛрдг рд╕реЗ, рд╕рдордп-рд╕рдордп рдкрд░ рдХреБрдЫ рд╕рдВрд╕реНрдерд╛рдУрдВ рдХреЗ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдХреЛ рдЕрдкрдбреЗрдЯ рдХрд░рдиреЗ рдкрд░ рдХрд╛рдо рдХрд░рдирд╛ рдЖрд╡рд╢реНрдпрдХ рд╣реИред рдЗрд╕ рддрд░рд╣ рдХреА рдЧрддрд┐рд╡рд┐рдзрд┐ рдХреЗ рд▓рд┐рдП рд╕рдмрд╕реЗ рд╕рдореНрдореЛрд╣рдХ рдФрд░ рдкреНрд░рддреНрдпрд╛рд╢рд┐рдд рдХрд╛рд░рдгреЛрдВ рдореЗрдВ, рднреМрддрд┐рдХ рдФрд░ рддрд╛рд░реНрдХрд┐рдХ рд╡рд┐рдорд╛рдиреЛрдВ рдХреЗ рд╕рдордиреНрд╡рдп рдХреЗ рд▓рд┐рдП, рддрдХрдиреАрдХреА рд╡рд┐рдХрд╛рд╕ рдХреА рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдХреЗ рд╣рд┐рд╕реНрд╕реЗ рдХреЗ рд░реВрдк рдореЗрдВ рдиреЗрдЯрд╡рд░реНрдХ рдХреЗ рд╡рд┐рдХрд╛рд╕, рдЬреБрдбрд╝реЗ рд╣реБрдП рдЦрдВрдбреЛрдВ рдХреА рд╡рд╛рд╕реНрддреБрдХрд▓рд╛ рдХрд╛ рд╕рд╛рдордВрдЬрд╕реНрдп рдФрд░ рд╡рд┐рдХрд╛рд╕ рд╕рдорд╕реНрдпрд╛рдУрдВ рдХреЗ рд╕рдорд╛рдзрд╛рди рдХреЗ рд▓рд┐рдП рдкреНрд░рд╡рд╛рд╕рди рдкрд░ рдзреНрдпрд╛рди рджрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ, рдПрдХ рдиреЗрдЯрд╡рд░реНрдХ рдХреЗ рдЬреАрд╡рди рдЪрдХреНрд░ рдореЗрдВ рд▓рдЧрднрдЧ рд╣рдореЗрд╢рд╛ рдПрдХ рдпрд╛ рджреВрд╕рд░реЗ рд╕реНрддрд░ рдХреЗ рдЬреЛрдЦрд┐рдо рдХреЗ рд╕рд╛рде рдкрд░рд┐рд╡рд░реНрддрди рд╣реЛрддреЗ рд╣реИрдВ рдФрд░ рдПрдХ рд╕реЗрд╡рд╛ рдкрд░ рдПрдХ рдкреНрд░рднрд╛рд╡ рдкрдбрд╝рддрд╛ рд╣реИ, рдЬрд┐рд╕рдХреЗ рдореВрд▓реНрдпрд╛рдВрдХрди рдореЗрдВ рдорд╛рдирд╡ рдХрд╛рд░рдХ рдХреЛ рдЕрдирджреЗрдЦрд╛ рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред рдпрджреНрдпрдкрд┐ рдпрд╣ рдорд╛рдирд╡ рдЧрддрд┐рд╡рд┐рдзрд┐ рдХреЗ рдЕрдзрд┐рдХрд╛рдВрд╢ рдХреНрд╖реЗрддреНрд░реЛрдВ рдХреЗ рд▓рд┐рдП рдЗрд╕ рд╡рд┐рд╡рд░рдг рдХреЛ рд╕рд╛рдорд╛рдиреНрдп рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд╛рдлреА рдЙрдкрдпреБрдХреНрдд рд╣реЛрдЧрд╛, рд╕рдВрдЪрд╛рд░ рдиреЗрдЯрд╡рд░реНрдХ рдХреЗ рдХрд╛рдордХрд╛рдЬ рдореЗрдВ рдХреБрдЫ рд╡рд┐рд╢реЗрд╖рддрд╛рдПрдВ рд╣реИрдВ рдЬреЛ рд╕рдордЭрдиреЗ рдХреЗ рд▓рд╛рдпрдХ рд╣реИрдВ, рдпрд╛ рдХрдо рд╕реЗ рдХрдо рдзреНрдпрд╛рди рджреЗрдВ, - рд╕рдВрдЪрд╛рд░ рдиреЗрдЯрд╡рд░реНрдХ рдХреЗ рддрддреНрд╡ рддрдВрдЧ рд╕рдВрдЪрд╛рд░ рдореЗрдВ рд╣реИрдВ, рди рдХреЗрд╡рд▓ рдкреНрд░рддреНрдпрдХреНрд╖ рдФрд░ рдЕрдкреНрд░рддреНрдпрдХреНрд╖ рд░реВрдк рд╕реЗ рдмрд╛рддрдЪреАрдд рдХрд░рддреЗ рд╣реИрдВ, рдмрд▓реНрдХрд┐ рдЕрдкреНрд░рддреНрдпрдХреНрд╖ рднреА рд╣реИрдВред рдПрдХ рджреВрд╕рд░реЗ рдкрд░ рдкреНрд░рднрд╛рд╡ред рдЗрд╕рд▓рд┐рдП, рдЪрд▓ рд░рд╣реЗ рдХрд╛рдо рдХреА рдПрдХ рд╕рдХреНрд╖рдо рд░рдгрдиреАрддрд┐ рдХреЗрд╡рд▓ рдЕрдзрд┐рдХ рдЙрддреНрдкрд╛рджрдХ рдмрди рдЬрд╛рдПрдЧреА рдпрджрд┐ рдпрд╣ рдЙрди рддрдВрддреНрд░реЛрдВ рджреНрд╡рд╛рд░рд╛ рд╕рдорд░реНрдерд┐рдд рд╣реИ рдЬреЛ рдХрдо рд╕реЗ рдХрдо, рдЬрд╣рд╛рдВ рддрдХ тАЛтАЛрд╕рдВрднрд╡ рд╣реЛ, рдорд╛рдирд╡реАрдп рддреНрд░реБрдЯрд┐рдпреЛрдВ рдХреА рд╕рдВрднрд╛рд╡рдирд╛ рд╣реИред рд╢реНрд░реГрдВрдЦрд▓рд╛ рдХреЗ рдЕрдЧрд▓реЗ рд▓реЗрдЦ рдореЗрдВ
"рдиреЗрдЯрд╡рд░реНрдХ рдЗрдВрдЬреАрдирд┐рдпрд░реЛрдВ рдХреЛ рдХрд╛рд░реНрдпрдХреНрд░рдо рдХреНрдпреЛрдВ рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдП", рдореИрдВ рдЗрд╕ рддрд░рд╣ рдХреЗ рдПрдХ рдХрд╛рд░реНрдп рдореЗрдВ рд╕реНрд╡рдЪрд╛рд▓рди рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреЗ рд╡рд┐рдХрд▓реНрдкреЛрдВ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдмрд╛рдд рдХрд░реВрдВрдЧрд╛ред
рдиреЗрдЯрд╡рд░реНрдХ рдЖрд░реНрдХрд┐рдЯреЗрдХреНрдЪрд░ рдкрд░ рдХрдИ "рдкреНрд░рд╛рдЗрдорд░реЛрдВ" рдореЗрдВ, рдмрдбрд╝реЗ рдкреИрдорд╛рдиреЗ рдкрд░ рдиреЗрдЯрд╡рд░реНрдХ рдФрд░ рдкрджрд╛рдиреБрдХреНрд░рдорд┐рдд рдиреЗрдЯрд╡рд░реНрдХ рдХрд╛ рдЙрдкрдпреЛрдЧ рд▓рдЧрднрдЧ рд╕рдорд╛рди рд░реВрдк рд╕реЗ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, IGP рдбреЛрдореЗрди рдХреЗ рдбрд┐рдЬрд╛рдЗрди рдХреЗ рд╕рдВрдмрдВрдз рдореЗрдВ, рдПрдХ рд╕рд░рд▓ рдФрд░, рдкрд╣рд▓реА рдирдЬрд╝рд░ рдореЗрдВ, рд╕рдордЭрдиреЗ рдпреЛрдЧреНрдп рдбрд┐рдЬрд╝рд╛рдЗрди рдХрд╛ рд╕рдВрдХреЗрдд рджрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ - рдПрдХ рдбреЛрдореЗрди рдХреЛ рдбреЛрдореЗрди рдореЗрдВ рд╡рд┐рднрд╛рдЬрд┐рдд рдХрд░рдирд╛ред рдЗрд╕реА рд╕рдордп, рд╕рдВрддреГрдкреНрддрд┐ рджрд╣рд▓реАрдЬ рдПрдХ рд╡рд┐рд╢реБрджреНрдз рд░реВрдк рд╕реЗ рд╡реНрдпрдХреНрддрд┐рдЧрдд рдЪреАрдЬ рд╣реИ, рдХреБрдЫ рдорд╛рдорд▓реЛрдВ рдореЗрдВ, рдПрдХ рд╣рдЬрд╛рд░ рдЖрдзреБрдирд┐рдХ рд░рд╛рдЙрдЯрд░ рд╕рд╛рдорд╛рдиреНрдп рд░реВрдк рд╕реЗ рдПрдХ рдЖрдИрдЬреАрдкреА рдХреНрд╖реЗрддреНрд░ рдореЗрдВ рд╕рд╣-рдЕрд╕реНрддрд┐рддреНрд╡ рдореЗрдВ рдЖ рд╕рдХрддреЗ рд╣реИрдВ, рдЕрдиреНрдпрдерд╛ рдкрд░рд┐рдЪрд╛рд▓рди рд╡рд┐рд╢реЗрд╖рддрд╛рдУрдВ рдХреЛ рдХрдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рддреАрди рд╕реМ рдкрд░реНрдпрд╛рдкреНрдд рд╣реИред рдЕрдзрд┐рдХрд╛рдВрд╢ рднрд╛рдЧ рдХреЗ рд▓рд┐рдП, рдпрд╣ рд╕реАрдорд╛ рдЖрдИрдЬреАрдкреА рдкрд░ рд▓рдЧрд╛рдП рдЧрдП рдкреНрд░реЛрдЯреЛрдХреЙрд▓ рджреНрд╡рд╛рд░рд╛ рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдХреА рдЬрд╛рддреА рд╣реИ, рдЗрд╕рд▓рд┐рдП, рднрд╡рд┐рд╖реНрдп рдХреА рдиреЗрдЯрд╡рд░реНрдХ рдХреА рд╕реАрдорд╛рдУрдВ рдФрд░ рдкреИрдорд╛рдиреЛрдВ рдХреА рдХреБрдЫ рдкрд░рд┐рд╡рд░реНрддрдирд╢реАрд▓рддрд╛ рдФрд░ рдЕрдирд┐рд╢реНрдЪрд┐рддрддрд╛ рдХреА рд╕реНрдерд┐рддрд┐ рдореЗрдВ, рдЙрджреНрдпреЛрдЧ рдХрд╛ "рдмрд╛рдЗрд╕рди" рдЕрд▓рдЧ-рдЕрд▓рдЧ рдХреНрд╖реЗрддреНрд░реЛрдВ рдореЗрдВ рдЕрдкрдиреЗ рдЧрдард┐рдд рднрд╛рдЧреЛрдВ рдХреЗ рдмрд╛рдж рдХреЗ рдкреНрд░рд╡рд╛рд╕ рдХреЗ рд╕рд╛рде рдПрдХ рдлреНрд▓реИрдЯ рдбреЛрдореЗрди рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдЕрдзрд┐рдХ рд▓рдЪреАрд▓рд╛ рддрд░реАрдХрд╛ рдЦреЛрдЬрддрд╛ рд╣реИред рджреВрд╕рд░реЗ рд╢рдмреНрджреЛрдВ рдореЗрдВ, рдпрджрд┐ рдЖрдк "рдХрд▓ рдХреЛ рдирд╣реАрдВ рджреЗрдЦ рд╕рдХрддреЗ рд╣реИрдВ", рдПрдХ рдлреНрд▓реИрдЯ рдиреЗрдЯрд╡рд░реНрдХ рдХрд╛ рдирд┐рд░реНрдорд╛рдг рдХрд░реЗрдВ рдФрд░ рдЗрд╕реЗ рдЕрднрд┐рд╕рд░рдг рд╕рдордп рдпрд╛ рдЕрддреНрдпрдзрд┐рдХ рд╢реЛрд╖рдг рдХреА рдЬрдЯрд┐рд▓рддрд╛ рдХреЗ рдкрд╣рд▓реЗ рд▓рдХреНрд╖рдгреЛрдВ рдХреЗ рдкреНрд░рдХрдЯ рд╣реЛрдиреЗ рдкрд░ рд╡рд┐рднрд╛рдЬрд┐рдд рдХрд░реЗрдВ, рдХреНрдпреЛрдВрдХрд┐ рдПрдХ рдкрджрд╛рдиреБрдХреНрд░рдо рдХреА рдЕрдиреБрдкрд╕реНрдерд┐рддрд┐ рдЕрднреА рднреА рдЕрдирд┐рд╢реНрдЪрд┐рддрддрд╛ рдХреЗ рддрд╣рдд рдЪреБрдиреЗ рдЧрдП рдЧрд▓рдд рд╕реЗ рдмреЗрд╣рддрд░ рд╣реИ рд╕рдВрд░рдЪрдирд╛ [1, 2, 3]ред
рд╕рд╛рдорд╛рдиреНрдп рд╡рд┐рд╡рд░рдг рдФрд░ рдЕрдореВрд░реНрдд рдЙрджрд╛рд╣рд░рдг, рдорд╛рди рд▓реЗрдВ рдХрд┐ рд╣рдо OSPFv2 рдбреЛрдореЗрди рдХреЗ рдПрдХ рдЕрддрд┐рд╡реГрджреНрдзрд┐ рдХреНрд╖реЗрддреНрд░ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░ рд░рд╣реЗ рд╣реИрдВ, рднреМрддрд┐рдХ рддрдВрддреБрдУрдВ / рдЪреИрдирд▓реЛрдВ рдХреА рдЯреЛрдкреЛрд▓реЙрдЬреА рдЬреЛ рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рдЕрдирд╛рдХрд╛рд░ рд╕рдВрд░рдЪрдирд╛ рдореЗрдВ рднрд╡рд┐рд╖реНрдп рдХреЗ рдХреНрд╖реЗрддреНрд░реЛрдВ рдХреА рд╕реАрдорд╛рдУрдВ рдХреЛ рд╕рдордЭрдиреЗ рдХреЗ рд▓рд┐рдП рд╕рдВрднрд╡ рдмрдирд╛рддрд╛ рд╣реИред рдореИрдВ "рд╕рднреА рдпрд╛ рдХреБрдЫ рдирд╣реАрдВ" рдХреЗ рд╕рд┐рджреНрдзрд╛рдВрдд рдкрд░ рдХреБрдЫ рдмрджрд▓рдиреЗ рдХрд╛ рд╕рдорд░реНрдердХ рдирд╣реАрдВ рд╣реВрдВ, рдРрд╕рд╛ рд╣реЛ рд╕рдХрддрд╛ рд╣реИ рдХрд┐ рдЕрдкреНрд░рддреНрдпрд╛рд╢рд┐рдд рдкрд░рд┐рд╕реНрдерд┐рддрд┐рдпреЛрдВ рдХреЗ рдХрд╛рд░рдг рдЕрд╡рд╕рд░реЛрдВ рдХрд╛ рд╕реНрдерд╛рди рдмрд╣реБрдд рд╕рдВрдХреАрд░реНрдг рд╣реЛ рдЬрд╛рдПрдЧрд╛, рдФрд░ рдЕрдкреЗрдХреНрд╖рд┐рдд рдЬреЛрдЦрд┐рдо рдмрд╣реБрдд рдмрдбрд╝реЗ рд╣реИрдВред OSPFv2 рдХреНрд╖реЗрддреНрд░ рдХреЛ рдмрджрд▓рдирд╛ рдПрдХ рд╡рд┐рдирд╛рд╢рдХрд╛рд░реА рдСрдкрд░реЗрд╢рди рд╣реИ, рдЗрд╕рд▓рд┐рдП рдорд╛рдЗрдЧреНрд░реЗрд╢рди рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдХреА рд╕рдмрд╕реЗ рд╕реАрдзреА рдпреЛрдЬрдирд╛, рдЬрд┐рд╕рдореЗрдВ рднрд╡рд┐рд╖реНрдп рдХреА рд╕реАрдорд╛ рдХреЗ рдиреАрдЪреЗ рд╕реЗ рдПрдХ рдирдП рдХреНрд╖реЗрддреНрд░ рдореЗрдВ рдХреНрд░рдорд┐рдХ рд░реВрдк рд╕реЗ рд╕реНрдерд╛рдирд╛рдВрддрд░рд┐рдд рдХрд░рдиреЗ рд╡рд╛рд▓реЗ рдорд╛рд░реНрдЧ рд╢рд╛рдорд┐рд▓ рд╣реИрдВ, рд╕рднреА рдзрд░реНрдореЛрдВ рдореЗрдВ рджреВрд░ рддрдХ рд╕реБрд╡рд┐рдзрд╛рдЬрдирдХ рд╣реИред рд╕реМрднрд╛рдЧреНрдп рд╕реЗ, рдХреБрдЫ рд╕рдордп рдкрд╣рд▓реЗ, рдУрдПрд╕рдкреАрдПрдл рдХреЗ рд╡рд┐рдХрд╛рд╕ рдХреЗ рд▓рд┐рдП рд╕рд┐рдлрд╛рд░рд┐рд╢реЛрдВ рдореЗрдВ, рдХрдИ рдХреНрд╖реЗрддреНрд░реЛрдВ рдореЗрдВ рдХрдиреЗрдХреНрдЯрд┐рд╡рд┐рдЯреА рдХреЗ рдирд┐рд░реНрдорд╛рдг рдХреА рд╕рдВрднрд╛рд╡рдирд╛ рдХреЛ рд░реЗрдЦрд╛рдВрдХрд┐рдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛ [4]ред рдЗрд╕ рдЕрд╡рд╕рд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ, рд╣рдо рдкреНрд░рд╡рд╛рд╕рди рдХреЛ рддреАрди рдЪрд░рдгреЛрдВ рдореЗрдВ рд╡рд┐рднрд╛рдЬрд┐рдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ:
- рдирдП рдХреНрд╖реЗрддреНрд░ рдореЗрдВ рдЕрддрд┐рд░рд┐рдХреНрдд (рджреНрд╡рд┐рддреАрдпрдХ) рдХрдиреЗрдХреНрдЯрд┐рд╡рд┐рдЯреА рдХрд╛ рдирд┐рд░реНрдорд╛рдг
- рдПрдХ рдирдП рдХреНрд╖реЗрддреНрд░ рдХреЛ рдореБрдЦреНрдп рдореЛрдб, рдФрд░ рдкреБрд░рд╛рдиреЗ рд╕реЗ рдЕрддрд┐рд░рд┐рдХреНрдд рдореЗрдВ рд╕реНрдерд╛рдирд╛рдВрддрд░рд┐рдд рдХрд░рдирд╛
- рдкреБрд░рд╛рдиреЗ рджрд╛рдпрд░реЗ рдХреЗ рднреАрддрд░ рдХрдиреЗрдХреНрдЯрд┐рд╡рд┐рдЯреА рдХреЛ рд╣рдЯрд╛рдиреЗ
рдкрд╣рд▓реЗ рдЪрд░рдг рдореЗрдВ, рдирдП рдХреНрд╖реЗрддреНрд░ рдХреА рдЯреЛрдкреЛрд▓реЙрдЬреА рдзреАрд░реЗ-рдзреАрд░реЗ рд╡рд┐рд╕реНрддрд╛рд░ рдХрд░ рд░рд╣реА рд╣реИ, рджреВрд╕рд░реЗ рдореЗрдВ, рдкреБрд░рд╛рдиреЗ рдХреНрд╖реЗрддреНрд░ рдХреА рдЯреЛрдкреЛрд▓реЙрдЬреА рд╕рдВрдХреАрд░реНрдг рд╣реЛ рд░рд╣реА рд╣реИред рдкреБрд░рд╛рдиреЗ рдФрд░ рдирдП рдХреНрд╖реЗрддреНрд░реЛрдВ рдХреА рдЯреЛрдкреЛрд▓реЙрдЬреА рдХреЗ рд╕рдВрдЧрдо рдХреЗ рдЕрдзреАрди, рд╣рдо рдЕрдиреБрд╡рд╛рджрд┐рдд рдФрд░ рдЧреИрд░-рдЕрдиреБрд╡рд╛рджрд┐рдд рдиреЛрдбреНрд╕ рдХреЗ рдмреАрдЪ рд▓рдЧрд╛рддрд╛рд░ рд░реВрдЯрд┐рдВрдЧ рдкреНрд░рд╛рдкреНрдд рдХрд░рддреЗ рд╣реИрдВ, рдФрд░ рдпрд╣ рдмрджрд▓реЗ рдореЗрдВ, рдЪрд░рдгреЛрдВ рдХреЛ рд╕реНрд╡рддрдВрддреНрд░ рдЙрдк-рдЪрд░рдгреЛрдВ рдореЗрдВ рд╡рд┐рднрд╛рдЬрд┐рдд рдХрд░рдирд╛ рд╕рдВрднрд╡ рдмрдирд╛рддрд╛ рд╣реИ, рдЬрд┐рдирдореЗрдВ рд╕реЗ рдкреНрд░рддреНрдпреЗрдХ рдореЗрдВ рдиреЛрдбреНрд╕ рдХреЗ рдХреБрдЫ рд╣рд┐рд╕реНрд╕реЗ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред рдХрд┐рд╕реА рд╡рд┐рд╢реЗрд╖ рдиреЗрдЯрд╡рд░реНрдХ рдореЗрдВ рдЪреИрдирд▓реЛрдВ рдХреЗ рд╡рд╛рд╕реНрддрд╡рд┐рдХ рдЙрдкрдпреЛрдЧ рдХреЗ рджреГрд╖реНрдЯрд┐рдХреЛрдг рд╕реЗ рдЙрдк-рдордВрдЪ рдХреЗ рдврд╛рдВрдЪреЗ рдореЗрдВ рдХрд╛рдо рдХреЗ рд▓рд┐рдП рдиреЛрдбреНрд╕ рдХреА рдкрд╕рдВрдж рд╕реЗ рд╕рдВрдкрд░реНрдХ рдХрд░рдиреЗ рдХреА рд╕рд▓рд╛рд╣ рджреА рдЬрд╛рддреА рд╣реИ рддрд╛рдХрд┐ рдкреБрд░рд╛рдиреЗ рдФрд░ рдирдП рдХреНрд╖реЗрддреНрд░реЛрдВ рдХреА рд╕реАрдорд╛ рдкрд░ рдлрд┐рд░ рд╕реЗ рд▓реЛрдбрд┐рдВрдЧ рдХреЛ рд░реЛрдХрд╛ рдЬрд╛ рд╕рдХреЗред рдЗрд╕ рддрдереНрдп рдХреЗ рдмрд╛рд╡рдЬреВрдж рдХрд┐ рд▓реЗрдЦ рдкреНрд░реЛрдЧреНрд░рд╛рдорд┐рдВрдЧ рдХреЗ рд▓рд┐рдП рд╕рдорд░реНрдкрд┐рдд рд╣реИ, рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдмрджрд▓рддреЗ рдбреЛрдореЗрди рдХреЗ рд╕рдВрджрд░реНрдн рдореЗрдВ IGP рдкрд░ рд▓рдЧрд╛рдП рдЧрдП рдкреНрд░реЛрдЯреЛрдХреЙрд▓ рдХреЗ рд╡реНрдпрд╡рд╣рд╛рд░ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдХреБрдЫ рд╢рдмреНрдж рдХрд╣рдирд╛ рдЕрддрд┐рд╢рдпреЛрдХреНрддрд┐рдкреВрд░реНрдг рдирд╣реАрдВ рд╣реЛрдЧрд╛ред рдПрд▓рдбреАрдкреА рдХрд╛рдлреА рдЕрдиреБрдорд╛рдирд┐рдд рд░реВрдк рд╕реЗ рд╡реНрдпрд╡рд╣рд╛рд░ рдХрд░рддрд╛ рд╣реИ, рдЯреНрд░рд╛рдВрд╕рдкреЛрд░реНрдЯ-рдПрдбреНрд░реЗрд╕ рдЯрд╛рд░реНрдЧреЗрдЯ рдФрд░ рдЗрдВрдЯрд░рдлреЗрд╕ рд╕рддреНрд░реЛрдВ рдХреЗ рдмреАрдЪ рдЖрдИрдкреА рдХрдиреЗрдХреНрдЯрд┐рд╡рд┐рдЯреА рдкреНрд░рджрд╛рди рдХрд░рдХреЗ рд╕рд╣рдЬ рдЕрдиреБрд╡рд╛рдж рдкреНрд░рд╛рдкреНрдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рдЗрд╕ рддрдереНрдп рдХреЗ рдХрд╛рд░рдг рдХрд┐ рдмреАрдЬреАрдкреА рдПрдХ рдмрд╣реБрдд рд▓рдЪреАрд▓рд╛ рдкреНрд░реЛрдЯреЛрдХреЙрд▓ рд╣реИ, рдЖрдкрдХреЛ рдЗрд╕ рд╡рд┐рдорд╛рди рдкрд░ рдкреВрд░рд╛ рдзреНрдпрд╛рди рджреЗрдирд╛ рдЪрд╛рд╣рд┐рдПред рдЕрдЧрд░ рд╕реНрдерд╛рдиреАрдп рд╡рд░реАрдпрддрд╛рдПрдБ рдпрд╛ рдЕрдиреНрдп рдорд╛рдирджрдВрдб рдЬреЛ рдиреЛрдбреНрд╕ рдХреЗ рдмреАрдЪ рдЕрд╕рдВрдЧрдд рд╣реИрдВ, рд╕реНрдерд╛рдиреАрдп рд░реВрдЯрд┐рдВрдЧ рдирд┐рд░реНрдгрдп рдХреЛ рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдХрд░рддреЗ рд╣реИрдВ рддреЛ рдкрд░рд┐рд╡рд░реНрддрди рдХреЗ рд░реВрдк рдореЗрдВ рдмреАрдЬреАрдкреА рдЕрдиреБрд╡рд╛рджрд┐рдд рдиреЛрдбреНрд╕ рдкрд░ рд╡рд┐рд╢реЗрд╖ рд╕реНрд╡рддрдВрддреНрд░рддрд╛ рдХрд╛ рдкрд░рд┐рдЪрдп рдирд╣реАрдВ рджреЗрддрд╛ рд╣реИ рддреЛ рдпрд╣ рдЕрдЪреНрдЫрд╛ рд╣реИред рджреВрд╕рд░реЗ рд╢рдмреНрджреЛрдВ рдореЗрдВ, рдмреАрдЬреАрдкреА рдХрд╛ рд╡реНрдпрд╡рд╣рд╛рд░ рднреА рдЕрдиреБрдорд╛рдирд┐рдд рд╣реИ рдпрджрд┐ рдХреНрд╖реЗрддреНрд░ рдХреЗ рднреАрддрд░ рдорд╛рд░реНрдЧ рдЪрдпрди рдиреЗ рдЖрдИрдЬреАрдкреА рдкрде рдирд┐рдпрдо рдХрд╛ рдкрд╛рд▓рди рдирд╣реАрдВ рдХрд┐рдпрд╛ред рджреЛ рдХреНрд╖реЗрддреНрд░реЛрдВ рдХреЗ рд╕рд╣-рдЕрд╕реНрддрд┐рддреНрд╡ рдХреА рдЕрд╡рдзрд┐ рдХреЗ рджреМрд░рд╛рди рдЖрд░рдПрд╕рд╡реАрдкреА рдХреЗ рдХрд╛рдо рд╕реЗ рдЬреБрдбрд╝рд╛ рдПрдХ рд╕реВрдХреНрд╖реНрдо рдмрд┐рдВрджреБ рд╣реИред TED рддрд╛рд▓рд┐рдХрд╛ рдХреЛ рдЕрд▓рдЧ-рдЕрд▓рдЧ рджреГрд╢реНрдпрддрд╛ рдХреЗ рд╕рд╛рде рджреЛ рд╕реНрд░реЛрддреЛрдВ рд╕реЗ рднрд░рдиреЗ рдХрд╛ рддрдереНрдп рд╡рд┐рдЪрд╛рд░ рдХреЗ рд▓рд┐рдП рдХреБрдЫ рдЬрдореАрди рдлреЗрдВрдХрддрд╛ рд╣реИ, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдЖрдк рдХрд╛рдо рдкреВрд░рд╛ рд╣реЛрдиреЗ рддрдХ FRR рддрдВрддреНрд░ рдХреЛ рдЕрдЪреНрдЫреА рддрд░рд╣ рд╕реЗ рдЦреЛ рд╕рдХрддреЗ рд╣реИрдВред рдпрд╣ рддрдм рд╣реЛ рд╕рдХрддрд╛ рд╣реИ рдпрджрд┐ рдЙрдЪреНрдЪ рджреГрд╢реНрдпрддрд╛ рд╡рд╛рд▓реЗ рд░рд╛рдЙрдЯрд░, рдЬреЛ рджреЛ рдХреНрд╖реЗрддреНрд░реЛрдВ рдореЗрдВ рд╣реИрдВ, рдХрдо рджреГрд╢реНрдпрддрд╛ рд╡рд╛рд▓реЗ рд░рд╛рдЙрдЯрд░ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдИрдЖрд░рдУ рдХреА рдЧрдгрдирд╛ рдХрд░реЗрдВ, рдЕрд░реНрдерд╛рддред рдХрд┐рд╕реА рдЕрдиреНрдп рдХреНрд╖реЗрддреНрд░ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рд╕рд╛рдордпрд┐рдХ рдЬрд╛рдирдХрд╛рд░реА рдХреЗ рдмрд┐рдирд╛ рдЕрдиреБрд╡рд╛рджрд┐рдд рдиреЗрдЯрд╡рд░реНрдХ рдЦрдВрдб рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗред рдЗрд╕реЗ рдЖрдкрджрд╛ рдирд╣реАрдВ рдХрд╣рд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ, рдХреНрдпреЛрдВрдХрд┐ рдорд╛рд░реНрдЧ рдЕрдВрддрддрдГ рд╕реНрдерд╛рдкрд┐рдд рд╣реЛ рдЬрд╛рдПрдЧрд╛, рд▓реЗрдХрд┐рди рдЖрдкрдХреЛ рдЗрд╕рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдирд╣реАрдВ рднреВрд▓рдирд╛ рдЪрд╛рд╣рд┐рдПред рд╡рд┐рд╢реЗрд╖ рдХрд▓рд╛ рдХреЛ рдмреАрдЬреАрдкреА рд╡рд┐рдорд╛рди рдореЗрдВ рдПрдХ рд╣реА рддрд░рд╣ рдХреЗ рдХрд╛рдо рдХреЗ рд╕рд╛рде IGP рдкрджрд╛рдиреБрдХреНрд░рдо рдХреЛ рд╢реБрд░реВ рдХрд░рдиреЗ рдХреЗ рдХрд╛рдо рдХреЛ рд╕рдВрдпреЛрдЬрд┐рдд рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИ, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдорд╛рд░реНрдЧ рдкрд░рд╛рд╡рд░реНрддрдХреЛрдВ рдореЗрдВ рдлреБрд▓-рдореЗрд╢ рдХреЛ рдорд╛рдЗрдЧреНрд░реЗрдЯ рдХрд░рдХреЗред рд╡рд┐рднрд┐рдиреНрди рд╡рд┐рдорд╛рдиреЛрдВ рдореЗрдВ рдкрджрд╛рдиреБрдХреНрд░рдореЛрдВ рдХрд╛ рдкрд░рд┐рдЪрдп рдХреНрд░рдорд┐рдХ рд░реВрдк рд╕реЗ рдХрд┐рдпрд╛ рдЬрд╛рдирд╛ рдмреЗрд╣рддрд░ рд╣реИ, рд╡рд╣реА, рдореЗрд░реА рд░рд╛рдп рдореЗрдВ, рдЙрди рд╕рднреА рдЪреАрдЬреЛрдВ рдкрд░ рд▓рд╛рдЧреВ рд╣реЛрддрд╛ рд╣реИ рдЬреЛ рд░реВрдЯрд┐рдВрдЧ рдЬрд╛рдирдХрд╛рд░реА рдХреЛ рдЫрд┐рдкрд╛рддреЗ рд╣реИрдВ, рдЗрди рдЪрд░рдгреЛрдВ рдХреЛ рд╕рдВрдпреЛрдЬрд┐рдд рдХрд░рдиреЗ рдХреА рддреБрд▓рдирд╛ рдореЗрдВ рдкрджрд╛рдиреБрдХреНрд░рдорд┐рдд IGP рдХреА рдПрдХ рд╕реНрдерд┐рд░ рдиреАрдВрд╡ рдкрд░ рд╕рдВрдХреНрд╖реЗрдкрдг рдЖрд╕рд╛рди рд╣реИред
рддреЛ, рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рдПрдХ рд╕рд╛рдорд╛рдиреНрдп рдпреЛрдЬрдирд╛ рд╣реИ, рдФрд░ рдпрджрд┐ рдЖрдкрдиреЗ рдЕрднреА рддрдХ рдЕрдкрдирд╛ рдорди рдирд╣реАрдВ рдмрджрд▓рд╛ рд╣реИ, рддреЛ рдЖрдЗрдП, Pyez рдкрд░ рдПрдХ рд╕реЙрдлреНрдЯрд╡реЗрдпрд░ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рд╕реЛрдЪрддреЗ рд╣реИрдВ, рдЪрд┐рддреНрд░ рдореЗрдВ рдХреБрдЫ рдЗрд╕ рддрд░рд╣ рд╕реЗред

рдкреНрд░рддреНрдпреЗрдХ рд╕реБрдВрджрд░ рдЕрдВрдбрд╛рдХрд╛рд░ рдПрдХ рдЕрд▓рдЧ рд╕реЙрдлреНрдЯрд╡реЗрдпрд░ рдЗрдХрд╛рдИ рд╣реЛ рд╕рдХрддрд╛ рд╣реИ, рдЕрд░реНрдерд╛рддреНред рд╡рд╣ рдЪреАрдЬрд╝ рдЬреЛ рдХрд╛рд░реНрдп рдХрд░рддреА рд╣реИ рдФрд░ рдЕрдЧрд▓реЗ рдЪрд░рдг рдХреЗ рд▓рд┐рдП рдбреЗрдЯрд╛ рддреИрдпрд╛рд░ рдХрд░рддреА рд╣реИред рдкреНрд░рд╛рд░рдВрднрд┐рдХ рдбреЗрдЯрд╛ рдХрд╛ рдЕрд░реНрде рд╣реИ рдиреЗрдЯрд╡рд░реНрдХ рд╕реЗ рдЬрд╛рдирдХрд╛рд░реА, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдПрдХ рдирдП OSPF рдХреНрд╖реЗрддреНрд░ рдХреЗ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдХреЛ рддреИрдпрд╛рд░ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдЖрдкрдХреЛ рдкреБрд░рд╛рдиреЗ рдХреНрд╖реЗрддреНрд░ рд╕реЗ рд╕рдВрдмрдВрдзрд┐рдд рд╕рдХреНрд░рд┐рдп рдЗрдВрдЯрд░рдлреЗрд╕ рдХреЗ рдирд╛рдо рдФрд░ рдЙрдирдХреЗ рд╡рдЬрди рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ, рдЬрд┐рд╕рдХрд╛ рдЕрд░реНрде рд╣реИ рдХрд┐ рд╣рдореЗрдВ рдСрдкрд░реЗрд╢рди рдЯреЗрдмрд▓ рдФрд░ рд╡рд┐рдЪрд╛рд░реЛрдВ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рдиреЗ рдореЗрдВ рдХреМрд╢рд▓ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрдЧреАред рдЗрди рдЕрд╡рдзрд╛рд░рдгрд╛рдУрдВ рдХреЛ
"рдиреЗрдЯрд╡рд░реНрдХ рдЗрдВрдЬреАрдирд┐рдпрд░реНрд╕ рдХреЗ рд▓рд┐рдП рдкреНрд░реЛрдЧреНрд░рд╛рдорд┐рдВрдЧ: рдкрд╣рд▓реЗ рдорд╛рдорд▓реЗ" рд╢реНрд░реГрдВрдЦрд▓рд╛ рдореЗрдВ рдкрд┐рдЫрд▓реЗ рд▓реЗрдЦ рдореЗрдВ рдкрд╛рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред рдкрд╣рд▓реЗ рдЪрд░рдг рдореЗрдВ, рдЬрдирд░реЗрдЯрд░ рдирдП рдХреНрд╖реЗрддреНрд░ рдХреЛ рд╕рдХреНрд░рд┐рдп рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЖрд╡рд╢реНрдпрдХ рдлрд╛рдЗрд▓реЛрдВ рдХреЛ рдХрдорд╛рдВрдб рдореЗрдВ рд╕рд╣реЗрдЬрддрд╛ рд╣реИ, рджреВрд╕рд░реЗ рдкрд░ - рдкреБрд░рд╛рдиреЗ рдХреЛ рд╣рдЯрд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдФрд░ рдирдП рдХреЛ рдореБрдЦреНрдп рдореЛрдб рдореЗрдВ рд╕реНрдерд╛рдирд╛рдВрддрд░рд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рддреАрд╕рд░реЗ рдкрд░ - рдкреБрд░рд╛рдиреЗ рдХреНрд╖реЗрддреНрд░ рдХреЛ рд╣рдЯрд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдЖрджреЗрд╢ред рдЖрдЧреЗ рджреЗрдЦрддреЗ рд╣реБрдП, рдореИрдВ рдХрд╣рддрд╛ рд╣реВрдВ рдХрд┐ рдЗрд╕ рд▓реЗрдЦ рдХреЗ рд▓рд┐рдП рдореИрдВ рдЬрд╛рдирдмреВрдЭрдХрд░ рдЬрд┐рдирдЬ 2 рдЬреИрд╕реЗ рдЯреЗрдореНрдкрд▓реЗрдЯ рд╡рд┐рдЬрд╝реБрдЕрд▓рд╛рдЗрдЬрд╝рд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реВрдВред рд▓рдХреНрд╖реНрдп рд╡рд┐рд╖рдп рд╕реЗ рд╡рд┐рдЪрд▓рд┐рдд рди рд╣реЛрдиреЗ рдХреЗ рд▓рд┐рдП, рдХреЛрдб рдХреЛ рдпрдерд╛рд╕рдВрднрд╡ рд╕рд░рд▓ рд▓рд┐рдЦрд╛ рдЧрдпрд╛ рд╣реИред рдпрджрд┐ рдХреЛрдИ рд╡реНрдпрдХреНрддрд┐
"рдЬрд┐рдВрдЬрд╛ 2 рдбреЙрдХреНрдпреВрдореЗрдВрдЯреЗрд╢рди" рд▓рд┐рдВрдХ рдкрд░ рдкреНрд░рд▓реЗрдЦрди рдореЗрдВ рд░реБрдЪрд┐ рд░рдЦрддрд╛ рд╣реИред
рдЪрд░рдг рд╡рд┐рдиреНрдпрд╛рд╕ рдЬрдирд░реЗрд╢рди рдХреЛрдбimport sys import yaml from jnpr.junos.factory.factory_loader import FactoryLoader from jnpr.junos import Device def getConnection(p_host, p_user): acc = {'lab': 'lab123'} try: print ' DEBUG --- getting ssh connection to ' + p_host l_dev = Device(host=p_host, user=p_user, password=acc[p_user], auto_probe=2, gather_facts=True, port=22) l_dev.open() if (l_dev.connected): l_dev.timeout = 900 print ' DEBUG --- ssh cionnection to host ' + p_host + ' established' print ' DEBUG --- connection ' + p_host + ' named ' + l_dev.facts['hostname'] + ' established ' return l_dev else: raise Exception(' DEBUG --- ssh connection to ' + p_host + ' was not established') except Exception as ex: print ' DEBUG --- ERROR --- getConnection : connection to ' + p_host + ' was not established. ex:' + str(ex) return def close_dev(d): try: d.close() except Exception as ex: print ' DEBUG --- ERROR --- close_dev : connection to cant be closed. ex:' + str(ex) yml = ''' --- OSPFInterface: rpc: get-ospf-interface-information args: area: '0.0.0.200' detail: True item: ospf-interface view: OSPFInterfaceView OSPFInterfaceView: fields: name: interface-name type: interface-type cost: interface-cost ''' globals().update(FactoryLoader().load(yaml.load(yml))) node_list = ['10.83.20.68', '10.83.20.69', '10.83.20.70', '10.83.20.71'] abr_list = ['10.83.20.66', '10.83.20.67'] for node in node_list + abr_list: ddev = getConnection(node, 'lab') ospf_interfaces = OSPFInterface(ddev).get() with open('st1-' + node + '.txt', "w") as f_st1: for ospf_interface in ospf_interfaces: if ( 'ge' in ospf_interface.name ): f_st1.write('set protocols ospf area 0.0.0.250 interface ' + ospf_interface.name + ' secondary' + '\n') f_st1.write('set protocols ospf area 0.0.0.250 interface ' + ospf_interface.name + ' interface-type p2p' + '\n') f_st1.write('set protocols ospf area 0.0.0.250 interface ' + ospf_interface.name + ' metric ' + ospf_interface.cost + '\n') with open('st2-' + node + '.txt', "w") as f_st1: f_st1.write('delete protocols ospf area 0.0.0.200' + '\n') f_st1.write('delete protocols ospf area 0.0.0.250' + '\n') for ospf_interface in ospf_interfaces: f_st1.write('set protocols ospf area 0.0.0.250 interface ' + ospf_interface.name + ' interface-type p2p' + '\n') f_st1.write('set protocols ospf area 0.0.0.200 interface ' + ospf_interface.name + ' secondary' + '\n') f_st1.write('set protocols ospf area 0.0.0.200 interface ' + ospf_interface.name + ' interface-type p2p' + '\n') if (ospf_interface.cost != '0'): f_st1.write('set protocols ospf area 0.0.0.250 interface ' + ospf_interface.name + ' metric ' + ospf_interface.cost + '\n') f_st1.write('set protocols ospf area 0.0.0.200 interface ' + ospf_interface.name + ' metric ' + ospf_interface.cost + '\n') with open('st3-' + node + '.txt', "w") as f_st1: f_st1.write('delete protocols ospf area 0.0.0.200' + '\n')
рд╕реНрдкрд╖реНрдЯрддрд╛ рдХреЗ рд▓рд┐рдП, рдореИрдВрдиреЗ vMX рдкрд░ рдРрд╕реЗ рдиреЗрдЯрд╡рд░реНрдХ рдореЗрдВ рдПрдХ рд╕рд╛рде рд░рдЦрд╛ред

vMX рдЬреБрдирд┐рдкрд░ рдиреЗрдЯрд╡рд░реНрдХ рд╕реЗ рдПрдХ рдкреВрд░реНрдг рд╡рд┐рд╢реЗрд╖рддрд╛рдУрдВ рд╡рд╛рд▓рд╛ рд╕реЙрдлреНрдЯрд╡реЗрдпрд░ рд░рд╛рдЙрдЯрд░ рд╣реИ, рдЬреЛ рдХрд╛рдлреА рд╣рдж рддрдХ рдЕрдкрдиреЗ рдкреБрд░рд╛рдиреЗ, рд▓реЛрд╣реЗ рдХреЗ рднрд╛рдИ рдПрдордПрдХреНрд╕ рдХреЗ рд╡реНрдпрд╡рд╣рд╛рд░ рдХреЛ рджреЛрд╣рд░рд╛рддрд╛ рд╣реИред рдРрд╕рд╛ рдирд╣реАрдВ рд╣реИ рдХрд┐ рдпрд╣ рдПрдХ рдЙрддреНрдкрд╛рдж рдерд╛ рдЬрд┐рд╕реЗ рдкреЗрд╢ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ, рдпрд╣ рдкреНрд░реЛрдЧреНрд░рд╛рдорд┐рдВрдЧ рдЕрднреНрдпрд╛рд╕ рдпрд╛ рдкреНрд░рдпреЛрдЧрд╢рд╛рд▓рд╛ рдкрд░реАрдХреНрд╖рдгреЛрдВ рдХреЗ рд▓рд┐рдП рдЗрди рдЪреАрдЬреЛрдВ рдХреЛ рдХрд╛рдо рдореЗрдВ рд░рдЦрдиреЗ рдХреЗ рд▓рд┐рдП рдЙрдкрдпреЛрдЧреА рд╣реИред
рдкрд░реАрдХреНрд╖рдг рдпрд╣рд╛рдВ
"vMX рдЯреНрд░рд╛рдпрд▓ рдбрд╛рдЙрдирд▓реЛрдб" рдбрд╛рдЙрдирд▓реЛрдб рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ, рдФрд░ рдЗрд╕ рд▓рд┐рдВрдХ рдкрд░ рдЗрдВрд╕реНрдЯреЙрд▓реЗрд╢рди рдирд┐рд░реНрджреЗрд╢
"рд╕рд┐рд╕реНрдЯрдо рдХреЛ рдЗрдВрд╕реНрдЯреЙрд▓ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╡реАрдПрдХреНрд╕рдПрдХреНрд╕" рддреИрдпрд╛рд░ рдХрд░рдирд╛ рд╣реИ ред
Routers bb, abr1 рдФрд░ abr2 рд╢реВрдиреНрдп рдХреНрд╖реЗрддреНрд░ рдмрдирд╛рддреЗ рд╣реИрдВ, рд░рд╛рдЙрдЯрд░ r1, r2, r3 рдФрд░ r4 - рдХреЛ 200 рд╡реЗрдВ рдХреНрд╖реЗрддреНрд░ рд╕реЗ 250 рд╡реЗрдВ рд╕реНрдерд╛рди рдкрд░ рд▓реЗ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдПред
рд▓реИрдм @ bb> рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдкреНрд░реЛрдЯреЛрдХреЙрд▓ рджрд┐рдЦрд╛рддреЗ рд╣реИрдВ bgp { group int { type internal; local-address 10.0.0.65; neighbor 10.0.0.66; neighbor 10.0.0.67; neighbor 10.0.0.68; neighbor 10.0.0.69; neighbor 10.0.0.70; neighbor 10.0.0.71; } } ospf { area 0.0.0.0 { interface lo0.0 { passive; } interface ge-0/0/3.0 { interface-type p2p; } interface ge-0/0/2.0 { interface-type p2p; } } }
рд▓реИрдм @ abr1> рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдкреНрд░реЛрдЯреЛрдХреЙрд▓ рджрд┐рдЦрд╛рдПрдВ bgp { group int { type internal; local-address 10.0.0.66; neighbor 10.0.0.65; neighbor 10.0.0.67; neighbor 10.0.0.68; neighbor 10.0.0.69; neighbor 10.0.0.70; neighbor 10.0.0.71; } } ospf { area 0.0.0.0 { interface lo0.0 { interface-type p2p; } interface ge-0/0/3.0 { interface-type p2p; } interface ge-0/0/0.0 { interface-type p2p; } } area 0.0.0.200 { interface ge-0/0/1.0 { interface-type p2p; } } }
рд▓реИрдм @ abr2> рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдкреНрд░реЛрдЯреЛрдХреЙрд▓ рджрд┐рдЦрд╛рдПрдВ bgp { group int { type internal; local-address 10.0.0.67; neighbor 10.0.0.65; neighbor 10.0.0.66; neighbor 10.0.0.68; neighbor 10.0.0.69; neighbor 10.0.0.70; neighbor 10.0.0.71; } } ospf { area 0.0.0.0 { interface lo0.0 { interface-type p2p; } interface ge-0/0/0.0 { interface-type p2p; } interface ge-0/0/2.0 { interface-type p2p; } } area 0.0.0.200 { interface ge-0/0/1.0 { interface-type p2p; } } }
рд▓реИрдм @ r1> рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдкреНрд░реЛрдЯреЛрдХреЙрд▓ рджрд┐рдЦрд╛рдПрдВ bgp { group int { type internal; local-address 10.0.0.68; neighbor 10.0.0.65; neighbor 10.0.0.66; neighbor 10.0.0.67; neighbor 10.0.0.69; neighbor 10.0.0.70; neighbor 10.0.0.71; } } ospf { area 0.0.0.200 { interface ge-0/0/1.0 { interface-type p2p; } interface ge-0/0/2.0 { interface-type p2p; } interface ge-0/0/3.0 { interface-type p2p; } interface lo0.0 { interface-type p2p; } } }
рд▓реИрдм @ r2> рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдкреНрд░реЛрдЯреЛрдХреЙрд▓ рджрд┐рдЦрд╛рдПрдВ bgp { group int { type internal; local-address 10.0.0.69; neighbor 10.0.0.65; neighbor 10.0.0.66; neighbor 10.0.0.67; neighbor 10.0.0.68; neighbor 10.0.0.70; neighbor 10.0.0.71; } } ospf { area 0.0.0.200 { interface ge-0/0/0.0 { interface-type p2p; } interface ge-0/0/3.0 { interface-type p2p; } interface lo0.0 { interface-type p2p; } } }
рд▓реИрдм @ r3> рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдкреНрд░реЛрдЯреЛрдХреЙрд▓ рджрд┐рдЦрд╛рдПрдВ bgp { group int { type internal; local-address 10.0.0.70; neighbor 10.0.0.65; neighbor 10.0.0.66; neighbor 10.0.0.67; neighbor 10.0.0.68; neighbor 10.0.0.69; neighbor 10.0.0.71; } } ospf { area 0.0.0.200 { interface ge-0/0/0.0 { interface-type p2p; } interface ge-0/0/3.0 { interface-type p2p; } interface lo0.0 { interface-type p2p; } } }
рд▓реИрдм @ r4> рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдкреНрд░реЛрдЯреЛрдХреЙрд▓ рджрд┐рдЦрд╛рдПрдВ bgp { group int { type internal; local-address 10.0.0.71; neighbor 10.0.0.65; neighbor 10.0.0.66; neighbor 10.0.0.67; neighbor 10.0.0.68; neighbor 10.0.0.69; neighbor 10.0.0.70; } } ospf { area 0.0.0.200 { interface ge-0/0/1.0 { interface-type p2p; } interface ge-0/0/2.0 { interface-type p2p; } interface ge-0/0/3.0 { interface-type p2p; } interface lo0.0 { interface-type p2p; } } }
R2 рд░рд╛рдЙрдЯрд░ рдХреЗ рд▓рд┐рдП, рдХрдорд╛рдВрдб рдХреЗ рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рд╕реЗрдЯ рдЙрддреНрдкрдиреНрди рд╣реЛрдВрдЧреЗред
рдкрд╣рд▓реЗ рдЪрд░рдг рдХреЗ рд▓рд┐рдПрд╕реЗрдЯ рдкреНрд░реЛрдЯреЛрдХреЙрд▓ ospf рдХреНрд╖реЗрддреНрд░ 0.0.0.250 рдЗрдВрдЯрд░рдлрд╝реЗрд╕ ge-0/0 / 1.0 рдорд╛рдзреНрдпрдорд┐рдХ
рд╕реЗрдЯ рдкреНрд░реЛрдЯреЛрдХреЙрд▓ ospf рдХреНрд╖реЗрддреНрд░ 0.0.0.250 рдЗрдВрдЯрд░рдлрд╝реЗрд╕ ge-0/0 / 1.0 рдЗрдВрдЯрд░рдлрд╝реЗрд╕-рдкреНрд░рдХрд╛рд░ P2p
рд╕реЗрдЯ рдкреНрд░реЛрдЯреЛрдХреЙрд▓ ospf рдХреНрд╖реЗрддреНрд░ 0.0.0.250 рдЗрдВрдЯрд░рдлрд╝реЗрд╕ ge-0/0 / 1.0 рдореАрдЯреНрд░рд┐рдХ 1
рд╕реЗрдЯ рдкреНрд░реЛрдЯреЛрдХреЙрд▓ ospf рдХреНрд╖реЗрддреНрд░ 0.0.0.250 рдЗрдВрдЯрд░рдлрд╝реЗрд╕ ge-0/0 / 2.0 рдорд╛рдзреНрдпрдорд┐рдХ
рд╕реЗрдЯ рдкреНрд░реЛрдЯреЛрдХреЙрд▓ ospf рдХреНрд╖реЗрддреНрд░ 0.0.0.250 рдЗрдВрдЯрд░рдлрд╝реЗрд╕ ge-0/0 / 2.0 рдЗрдВрдЯрд░рдлрд╝реЗрд╕-рдкреНрд░рдХрд╛рд░ P2p
рд╕реЗрдЯ рдкреНрд░реЛрдЯреЛрдХреЙрд▓ ospf рдХреНрд╖реЗрддреНрд░ 0.0.0.250 рдЗрдВрдЯрд░рдлрд╝реЗрд╕ ge-0/0 / 2.0 рдореАрдЯреНрд░рд┐рдХ 1
рд╕реЗрдЯ рдкреНрд░реЛрдЯреЛрдХреЙрд▓ ospf рдХреНрд╖реЗрддреНрд░ 0.0.0.250 рдЗрдВрдЯрд░рдлрд╝реЗрд╕ ge-0/0 / 3.0 рдорд╛рдзреНрдпрдорд┐рдХ
рд╕реЗрдЯ рдкреНрд░реЛрдЯреЛрдХреЙрд▓ ospf рдХреНрд╖реЗрддреНрд░ 0.0.0.250 рдЗрдВрдЯрд░рдлрд╝реЗрд╕ ge-0/0 / 3.0 рдЗрдВрдЯрд░рдлрд╝реЗрд╕-рдкреНрд░рдХрд╛рд░ P2p
рд╕реЗрдЯ рдкреНрд░реЛрдЯреЛрдХреЙрд▓ ospf рдХреНрд╖реЗрддреНрд░ 0.0.0.250 рдЗрдВрдЯрд░рдлрд╝реЗрд╕ ge-0/0 / 3.0 рдореАрдЯреНрд░рд┐рдХ 1
рджреВрд╕рд░реЗ рдЪрд░рдг рдХреЗ рд▓рд┐рдПрдкреНрд░реЛрдЯреЛрдХреЙрд▓ ospf рдХреНрд╖реЗрддреНрд░ 0.0.0.200 рд╣рдЯрд╛рдПрдВ
рдкреНрд░реЛрдЯреЛрдХреЙрд▓ ospf рдХреНрд╖реЗрддреНрд░ 0.0.0.250 рд╣рдЯрд╛рдПрдВ
рд╕реЗрдЯ рдкреНрд░реЛрдЯреЛрдХреЙрд▓ ospf рдХреНрд╖реЗрддреНрд░ 0.0.0.250 рдЗрдВрдЯрд░рдлрд╝реЗрд╕ ge-0/0 / 1.0 рдЗрдВрдЯрд░рдлрд╝реЗрд╕-рдкреНрд░рдХрд╛рд░ P2p
рд╕реЗрдЯ рдкреНрд░реЛрдЯреЛрдХреЙрд▓ ospf рдХреНрд╖реЗрддреНрд░ 0.0.0.200 рдЗрдВрдЯрд░рдлрд╝реЗрд╕ ge-0/0 / 1.0 рдорд╛рдзреНрдпрдорд┐рдХ
рд╕реЗрдЯ рдкреНрд░реЛрдЯреЛрдХреЙрд▓ ospf рдХреНрд╖реЗрддреНрд░ 0.0.0.200 рдЗрдВрдЯрд░рдлрд╝реЗрд╕ ge-0/0 / 1.0 рдЗрдВрдЯрд░рдлрд╝реЗрд╕-рдкреНрд░рдХрд╛рд░ P2p
рд╕реЗрдЯ рдкреНрд░реЛрдЯреЛрдХреЙрд▓ ospf рдХреНрд╖реЗрддреНрд░ 0.0.0.250 рдЗрдВрдЯрд░рдлрд╝реЗрд╕ ge-0/0 / 1.0 рдореАрдЯреНрд░рд┐рдХ 1
рд╕реЗрдЯ рдкреНрд░реЛрдЯреЛрдХреЙрд▓ ospf рдХреНрд╖реЗрддреНрд░ 0.0.0.200 рдЗрдВрдЯрд░рдлрд╝реЗрд╕ ge-0/0 / 1.0 рдореАрдЯреНрд░рд┐рдХ 1
рд╕реЗрдЯ рдкреНрд░реЛрдЯреЛрдХреЙрд▓ ospf рдХреНрд╖реЗрддреНрд░ 0.0.0.250 рдЗрдВрдЯрд░рдлрд╝реЗрд╕ ge-0/0 / 2.0 рдЗрдВрдЯрд░рдлрд╝реЗрд╕-рдкреНрд░рдХрд╛рд░ P2p
рд╕реЗрдЯ рдкреНрд░реЛрдЯреЛрдХреЙрд▓ ospf рдХреНрд╖реЗрддреНрд░ 0.0.0.200 рдЗрдВрдЯрд░рдлрд╝реЗрд╕ ge-0/0 / 2.0 рдорд╛рдзреНрдпрдорд┐рдХ
рд╕реЗрдЯ рдкреНрд░реЛрдЯреЛрдХреЙрд▓ ospf рдХреНрд╖реЗрддреНрд░ 0.0.0.200 рдЗрдВрдЯрд░рдлрд╝реЗрд╕ ge-0/0 / 2.0 рдЗрдВрдЯрд░рдлрд╝реЗрд╕-рдкреНрд░рдХрд╛рд░ P2p
рд╕реЗрдЯ рдкреНрд░реЛрдЯреЛрдХреЙрд▓ ospf рдХреНрд╖реЗрддреНрд░ 0.0.0.250 рдЗрдВрдЯрд░рдлрд╝реЗрд╕ ge-0/0 / 2.0 рдореАрдЯреНрд░рд┐рдХ 1
рд╕реЗрдЯ рдкреНрд░реЛрдЯреЛрдХреЙрд▓ ospf рдХреНрд╖реЗрддреНрд░ 0.0.0.200 рдЗрдВрдЯрд░рдлрд╝реЗрд╕ ge-0/0 / 2.0 рдореАрдЯреНрд░рд┐рдХ 1
рд╕реЗрдЯ рдкреНрд░реЛрдЯреЛрдХреЙрд▓ ospf рдХреНрд╖реЗрддреНрд░ 0.0.0.250 рдЗрдВрдЯрд░рдлрд╝реЗрд╕ ge-0/0 / 3.0 рдЗрдВрдЯрд░рдлрд╝реЗрд╕-рдкреНрд░рдХрд╛рд░ P2p
рд╕реЗрдЯ рдкреНрд░реЛрдЯреЛрдХреЙрд▓ ospf рдХреНрд╖реЗрддреНрд░ 0.0.0.200 рдЗрдВрдЯрд░рдлрд╝реЗрд╕ ge-0/0 / 3.0 рдорд╛рдзреНрдпрдорд┐рдХ
рд╕реЗрдЯ рдкреНрд░реЛрдЯреЛрдХреЙрд▓ ospf рдХреНрд╖реЗрддреНрд░ 0.0.0.200 рдЗрдВрдЯрд░рдлрд╝реЗрд╕ ge-0/0 / 3.0 рдЗрдВрдЯрд░рдлрд╝реЗрд╕-рдкреНрд░рдХрд╛рд░ P2p
рд╕реЗрдЯ рдкреНрд░реЛрдЯреЛрдХреЙрд▓ ospf рдХреНрд╖реЗрддреНрд░ 0.0.0.250 рдЗрдВрдЯрд░рдлрд╝реЗрд╕ ge-0/0 / 3.0 рдореАрдЯреНрд░рд┐рдХ 1
рд╕реЗрдЯ рдкреНрд░реЛрдЯреЛрдХреЙрд▓ ospf рдХреНрд╖реЗрддреНрд░ 0.0.0.200 рдЗрдВрдЯрд░рдлрд╝реЗрд╕ ge-0/0 / 3.0 рдореАрдЯреНрд░рд┐рдХ 1
рд╕реЗрдЯ рдкреНрд░реЛрдЯреЛрдХреЙрд▓ ospf рдХреНрд╖реЗрддреНрд░ 0.0.0.250 рдЗрдВрдЯрд░рдлрд╝реЗрд╕ lo0.0 рдЗрдВрдЯрд░рдлрд╝реЗрд╕-рдкреНрд░рдХрд╛рд░ P2p
рд╕реЗрдЯ рдкреНрд░реЛрдЯреЛрдХреЙрд▓ ospf рдХреНрд╖реЗрддреНрд░ 0.0.0.200 рдЗрдВрдЯрд░рдлрд╝реЗрд╕ lo0.0 рдорд╛рдзреНрдпрдорд┐рдХ
рд╕реЗрдЯ рдкреНрд░реЛрдЯреЛрдХреЙрд▓ ospf рдХреНрд╖реЗрддреНрд░ 0.0.0.200 рдЗрдВрдЯрд░рдлрд╝реЗрд╕ lo0.0 рдЗрдВрдЯрд░рдлрд╝реЗрд╕-рдкреНрд░рдХрд╛рд░ P2p
рддреАрд╕рд░реЗ рдЪрд░рдг рдХреЗ рд▓рд┐рдПрдкреНрд░реЛрдЯреЛрдХреЙрд▓ ospf рдХреНрд╖реЗрддреНрд░ 0.0.0.200 рд╣рдЯрд╛рдПрдВ
рдЬреИрд╕рд╛ рдХрд┐ рдореИрдВрдиреЗ рдкрд╣рд▓реЗ рд╣реА рд▓рд┐рдЦрд╛ рдерд╛, рдиреЗрдЯрд╡рд░реНрдХ рдХреЗ рддрддреНрд╡реЛрдВ рдореЗрдВ рдПрдХ рдЖрдВрддрд░рд┐рдХ рд╕реНрдерд┐рддрд┐ рд╣реЛрддреА рд╣реИ, рдЙрдирдХреЗ рдЪрд╛рд░реЛрдВ рдУрд░ рдФрд░ рдЙрдирдХреЗ рдЕрдВрджрд░ рд▓рдЧрд╛рддрд╛рд░ рдХреБрдЫ рди рдХреБрдЫ рдШрдЯрд┐рдд рд╣реЛрддрд╛ рд░рд╣рддрд╛ рд╣реИ рдЪрд╛рд╣реЗ рд╣рдо рдЗрд╕реЗ рдЪрд╛рд╣реЗрдВ рдпрд╛ рди рдЪрд╛рд╣реЗрдВред рдЯреНрд░рд╛рдВрд╕реАрд╡рд░ рд╡рд┐рдлрд▓рддрд╛, рдиреЛрдб рдкрд░ рдмрд┐рдЬрд▓реА рдЖрдЙрдЯреЗрдЬ, рдпрд╛ рдСрдкреНрдЯрд┐рдХрд▓ рдЪреИрдирд▓ рдореЗрдВ рдПрдХ рдмреНрд░реЗрдХ рдЬреИрд╕реЗ рдШрдЯрдирд╛рдУрдВ рдХреА рдШрдЯрдирд╛ рдХреЛ рдЕрдиреБрдорддрд┐ рджреА рдЬрд╛рдиреА рдЪрд╛рд╣рд┐рдП рдФрд░ рдХрд╛рдо рдХреЗ рджреМрд░рд╛рди рдзреНрдпрд╛рди рдореЗрдВ рд░рдЦрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдПред рдореИрдВ рдорд╛рдЗрдЧреНрд░реЗрд╢рди рдЪрд░рдгреЛрдВ рдХреА рд╕рдлрд▓рддрд╛ рдХреЗ рд╕рддреНрдпрд╛рдкрди рдХреЗ рд╡рд┐рдХрд▓реНрдк рдХреЗ рд╕рдВрджрд░реНрдн рдореЗрдВ рдЗрд╕ рддрдереНрдп рдкрд░ рдзреНрдпрд╛рди рджреЗрдиреЗ рдХрд╛ рдкреНрд░рд╕реНрддрд╛рд╡ рдХрд░рддрд╛ рд╣реВрдВред рдХреЛрдИ рдлрд░реНрдХ рдирд╣реАрдВ рдкрдбрд╝рддрд╛ рдХрд┐ рдпрд╣ рдХрд┐рддрдирд╛ рд╡рд┐рд░реЛрдзрд╛рднрд╛рд╕реА рд▓рдЧ рд╕рдХрддрд╛ рд╣реИ, рдЗрд╕ рдорд╛рдорд▓реЗ рдореЗрдВ рд╣рдорд╛рд░реЗ рд▓рд┐рдП рдпрд╣ рдЬрд╛рдВрдЪрдирд╛ рдЖрд╡рд╢реНрдпрдХ рдирд╣реАрдВ рд╣реИ рдХрд┐ рдУрдПрд╕рдкреАрдПрдл рдкрдбрд╝реЛрд╕ рдЗрд╕ рдпрд╛ рдЙрд╕ рдЗрдВрдЯрд░рдлрд╝реЗрд╕ рдкрд░ рджрд┐рдЦрд╛рдИ рджрд┐рдпрд╛, рдХреНрдпреЛрдВрдХрд┐ рдЗрд╕рдХреА рдЕрдиреБрдкрд╕реНрдерд┐рддрд┐ рдХреЗ рдХрд╛рд░рдг рдкреВрд░реА рддрд░рд╣ рд╕реЗ рдЕрд▓рдЧ рд╡рд┐рдорд╛рди рдореЗрдВ рд╣реЛ рд╕рдХрддреЗ рд╣реИрдВред рдЙрдкрд░реЛрдХреНрдд рдХреЗ рдЕрд▓рд╛рд╡рд╛, рдПрдХ рддреНрд░реБрдЯрд┐ рдпрд╛ рдЕрд╢реБрджреНрдзрд┐ рд╣рдореЗрд╢рд╛ рд╕реНрд░реЛрдд рдбреЗрдЯрд╛ рдореЗрдВ рдкреНрд░рд╛рдкреНрдд рдХрд░ рд╕рдХрддреА рд╣реИ, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдПрдХ рднреВрд▓ рдЧрдП рдЗрдВрдЯрд░рдлрд╝реЗрд╕ рдХреЗ рд░реВрдк рдореЗрдВ рдЬрд┐рд╕реЗ рд╣рдЯрд╛ рджрд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдП, рд▓реЗрдХрд┐рди рд╡рд░реНрддрдорд╛рди рдореЗрдВ "рд╢реВрдиреНрдп" рдореЗрдВ рджрд┐рдЦ рд░рд╣рд╛ рд╣реИред рдирд┐рд░реАрдХреНрд╖рдг рдЙрддреНрдкрдиреНрди рдХрд░рдиреЗ рдХреА рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдореЗрдВ, рдкреНрд░рджрд╛рди рдХреА рдЧрдИ рд╕реЗрд╡рд╛рдУрдВ рдФрд░ рд▓рдЧрд╛рдП рдЧрдП рдкреНрд░реЛрдЯреЛрдХреЙрд▓ рдХреЗ рджреГрд╖реНрдЯрд┐рдХреЛрдг рд╕реЗ рдиреЗрдЯрд╡рд░реНрдХ рдХреЛ рджреЗрдЦрдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рд╕реНрддрд░ рддрдХ рдЬрд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдЙрдкрдпреЛрдЧреА рд╣реИ, рдХреНрдпреЛрдВрдХрд┐ рдЕрдВрддрддрдГ рдХреЗрд╡рд▓ рдЗрди рдЪреАрдЬреЛрдВ рдХреА рд╕реНрдерд┐рддрд┐ рдЖрдкрдХреЛ рдХрд┐рд╕реА рд╡рд┐рд╢реЗрд╖ рдЪрд░рдг рдХреА рд╕рдлрд▓рддрд╛ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдПрдХ рд╕реВрдЪрд┐рдд рдирд┐рд░реНрдгрдп рд▓реЗрдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддреА рд╣реИред рдХреБрдЫ рдЧреНрд░рд╛рд╣рдХ рдЕрдкрдиреЗ рдХрд╛рдо рдХреЗ рдкрд░рд┐рдгрд╛рдореЛрдВ рдХреЗ рдЖрдзрд╛рд░ рдкрд░ рд╕рд╛рд░реНрд╡рдЬрдирд┐рдХ рд▓реЗрдЦреЛрдВ рдХреЗ рд▓рд┐рдП рд╕рд╣рдордд рд╣реЛрддреЗ рд╣реИрдВ, рдпрд╣реА рд╡рдЬрд╣ рд╣реИ рдХрд┐ рдореИрдВрдиреЗ рдкреНрд░рджрд░реНрд╢рди рдХреЗ рд▓рд┐рдП рдПрдХ рдЖрднрд╛рд╕реА рд╡рд╛рддрд╛рд╡рд░рдг рд░рдЦрд╛ред рдЗрд╕ рдорд╛рд╣реМрд▓ рдХреЗ рднреАрддрд░, рдореИрдВ рдЕрдкрдиреЗ рдЖрдк рдХреЛ рдмреАрдЬреАрдкреА рд╕рддреНрд░реЛрдВ рдХреА рд╕реНрдерд┐рддрд┐ рдХреА рдЬрд╛рдВрдЪ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╕реАрдорд┐рдд рдХрд░ рджреВрдВрдЧрд╛, рдЬреЛ рд░рд╛рдЙрдЯрд░ рдХреЗ рдмреАрдЪ рдПрдХ-рд╕реЗ-рдПрдХ рдЖрдзрд╛рд░ рдкрд░ рдмрдирд╛рдП рдЬрд╛рддреЗ рд╣реИрдВ, рдпрд╣ рд╣рдорд╛рд░реА рд▓рдЧрд╛рдИ рдЧрдИ рд╕реЗрд╡рд╛рдПрдВ рдФрд░ рд╕реЗрд╡рд╛рдПрдВ рд╣реЛрдВрдЧреАред рдпрджрд┐, рдХрд╛рдо рдХреЗ рдмрд╛рдж, рдЙрдирдХреЗ рдкреНрд░рджрд░реНрд╢рди рдХреА рд╢рд░реНрддреЛрдВ рдХреЛ рдкреНрд░рддреНрдпреЗрдХ рдХреЗ рд╕рд╛рде рдЖрдИрдкреА рдХрдиреЗрдХреНрдЯрд┐рд╡рд┐рдЯреА рдХреЗ рд░реВрдк рдореЗрдВ рдкреВрд░рд╛ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рддреЛ рдпрд╣ рд╡рд┐рд╢реНрд╡рд╛рд╕ рдХрд░рдиреЗ рдХрд╛ рдХрд╛рд░рдг рд╣реИ рдХрд┐ рдХрд╛рдо рд╕рдлрд▓рддрд╛рдкреВрд░реНрд╡рдХ рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛ред рд╡рд╛рд╕реНрддрд╡рд┐рдХ рдкрд░рд┐рдпреЛрдЬрдирд╛рдУрдВ рдореЗрдВ, рдЪреЗрдХ рдЖрдо рддреМрд░ рдкрд░ рд▓рдЧрд╛рдП рдЧрдП рд╕реЗрд╡рд╛рдУрдВ рдФрд░ рдкреНрд░реЛрдЯреЛрдХреЙрд▓ рдХреА рдорд╛рддреНрд░рд╛ рддрдХ рд╕реАрдорд┐рдд рд╣реЛрддреЗ рд╣реИрдВ, рдЬреЛ рдЗрд╕ рдиреЗрдЯрд╡рд░реНрдХ рдореЗрдВ рдорд╣рддреНрд╡рдкреВрд░реНрдг рд╡реНрдпрд╡рд╕рд╛рдп рдХреЗ рд░реВрдк рдореЗрдВ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рд╣реИред рдпрд╣ рдкреНрд░реЛрдЧреНрд░рд╛рдорд┐рдВрдЧ рдкрд░ рд▓рд╛рдЧреВ рдирд╣реАрдВ рд╣реЛрддрд╛ рд╣реИ, рдлрд┐рд░ рднреА, рдореИрдВ рдЗрд╕ рдореБрджреНрджреЗ рдкрд░ рдзреНрдпрд╛рди рдХреЗрдВрджреНрд░рд┐рдд рдирд╣реАрдВ рдХрд░ рд╕рдХрддрд╛ рд╣реВрдВ, рдХреНрдпреЛрдВрдХрд┐ рд╕рдлрд▓рддрд╛ рдХреА рдХрд╕реМрдЯреА рдХрд╛ рдЪреБрдирд╛рд╡ рдХрд╛рдо рдХрд░рдиреЗ рдХреЗ рдмрд╛рдж рдЕрдЪреНрдЫреА рдиреАрдВрдж рдХреА рдХреБрдВрдЬреА рд╣реИред
рдмреАрдЬреАрдкреА рд╕рддреНрд░ рд╕рддреНрдпрд╛рдкрди рдХреЛрдб import sys import yaml from jnpr.junos.factory.factory_loader import FactoryLoader from jnpr.junos import Device def getConnection(p_host, p_user): acc = {'lab': 'lab123'} try: print ' DEBUG --- getting ssh connection to ' + p_host l_dev = Device(host=p_host, user=p_user, password=acc[p_user], auto_probe=2, gather_facts=True, port=22) l_dev.open() if (l_dev.connected): l_dev.timeout = 900 print ' DEBUG --- ssh cionnection to host ' + p_host + ' established' print ' DEBUG --- connection ' + p_host + ' named ' + l_dev.facts['hostname'] + ' established ' return l_dev else: raise Exception(' DEBUG --- ssh connection to ' + p_host + ' was not established') except Exception as ex: print ' DEBUG --- ERROR --- getConnection : connection to ' + p_host + ' was not established. ex:' + str(ex) return def close_dev(d): try: d.close() except Exception as ex: print ' DEBUG --- ERROR --- close_dev : connection to cant be closed. ex:' + str(ex) ip_f_name = 'ip-list-1.txt' yml = ''' --- BGPGroup: rpc: get-bgp-group-information args: group-name: 'int' item: bgp-group view: BGPGroupView BGPGroupView: fields: count: peer-count established: established-count ''' globals().update(FactoryLoader().load(yaml.load(yml))) node_list = ['10.83.20.68', '10.83.20.69', '10.83.20.70', '10.83.20.71'] abr_list = ['10.83.20.66', '10.83.20.67'] for node in node_list + abr_list: ddev = getConnection(node, 'lab') bgp_group = BGPGroup(ddev).get() for group in bgp_group: if (group.count != group.established): print 'bgp connection lost' else: print 'dont panic!'
рдЙрд╕рдХреЗ рдХрд╛рдо рдХреЗ рдкрд░рд┐рдгрд╛рдоDEBUG - 10.83.20.68 рдХреЛ ssh рдХрдиреЗрдХреНрд╢рди рдкреНрд░рд╛рдкреНрдд рдХрд░рдирд╛
DEBUG - ssh cionnection рд╣реЛрд╕реНрдЯ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП 10.83.20.68 рдХреА рд╕реНрдерд╛рдкрдирд╛ рдХреА
DEBUG - рдХрдиреЗрдХреНрд╢рди 10.83.20.68 рдирд╛рдо r1 рд╕реНрдерд╛рдкрд┐рдд
рдШрдмрд░рд╛рдУ рдордд!
DEBUG - 10.83.20.69 рдХреЛ ssh рдХрдиреЗрдХреНрд╢рди рдкреНрд░рд╛рдкреНрдд рдХрд░рдирд╛
DEBUG - 10.83.20.69 рд╣реЛрд╕реНрдЯ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП sion cionnection
DEBUG - рдХрдиреЗрдХреНрд╢рди 10.83.20.69 рдирд╛рдо r2 рд╕реНрдерд╛рдкрд┐рдд
рдШрдмрд░рд╛рдУ рдордд!
DEBUG - 10.83.20.70 рдкрд░ ssh рдХрдиреЗрдХреНрд╢рди рдкреНрд░рд╛рдкреНрдд рдХрд░рдирд╛
DEBUG - ssh cionnection рд╣реЛрд╕реНрдЯ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП 10.83.20.70 рд╕реНрдерд╛рдкрд┐рдд рдХрд┐рдпрд╛ рдЧрдпрд╛
DEBUG - рдХрдиреЗрдХреНрд╢рди 10.83.20.70 рдирд╛рдо r3 рд╕реНрдерд╛рдкрд┐рдд
рдШрдмрд░рд╛рдУ рдордд!
DEBUG - 10.83.20.71 рдХреЛ ssh рдХрдиреЗрдХреНрд╢рди рдорд┐рд▓ рд░рд╣рд╛ рд╣реИ
DEBUG - 10.83.20.71 рдХреЛ рд╣реЛрд╕реНрдЯ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП sion cionnection
DEBUG - рдХрдиреЗрдХреНрд╢рди 10.83.20.71 рдирд╛рдо r4 рд╕реНрдерд╛рдкрд┐рдд
рдШрдмрд░рд╛рдУ рдордд!
DEBUG - 10.83.20.66 рдХреЛ ssh рдХрдиреЗрдХреНрд╢рди рдкреНрд░рд╛рдкреНрдд рдХрд░рдирд╛
DEBUG - 10.83.20.66 рд╣реЛрд╕реНрдЯ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП ssh cionnection
DEBUG - рдХрдиреЗрдХреНрд╢рди 10.83.20.66 рдирд╛рдо abr1 рд╕реНрдерд╛рдкрд┐рдд рдХрд┐рдпрд╛ рдЧрдпрд╛
рдШрдмрд░рд╛рдУ рдордд!
DEBUG - 10.83.20.67 рдХреЛ ssh рдХрдиреЗрдХреНрд╢рди рдкреНрд░рд╛рдкреНрдд рдХрд░рдирд╛
DEBUG - 10.83.20.67 рдХреА рдореЗрдЬрдмрд╛рдиреА рдХреЗ рд▓рд┐рдП sion cionnection
DEBUG - рдХрдиреЗрдХреНрд╢рди 10.83.20.67 рдирд╛рдо abr2 рд╕реНрдерд╛рдкрд┐рдд рдХрд┐рдпрд╛ рдЧрдпрд╛
рдШрдмрд░рд╛рдУ рдордд!
рдЕрдм рддрдХ, рд╣рдордиреЗ рдХреБрдЫ рддрд░рд╣ рдХреА рдиреЗрдЯрд╡рд░реНрдХ рдЪреАрдЬреЛрдВ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдмрд╛рдд рдХреА рдереА, рд▓реЗрдХрд┐рди рдореИрдВрдиреЗ рдЕрднреА рднреА рдкреНрд░реЛрдЧреНрд░рд╛рдо рдХреЛрдб рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдПрдХ рд╢рдмреНрдж рдХрд╛ рдЙрд▓реНрд▓реЗрдЦ рдирд╣реАрдВ рдХрд┐рдпрд╛ рд╣реИ, рдЬреЛ рдЗрд╕ рдирд╛рдо рдХреЗ рд╕рд╛рде рдПрдХ рд▓реЗрдЦ рдореЗрдВ рдзреНрдпрд╛рди рдХреЗ рдХреЗрдВрджреНрд░ рдореЗрдВ рд▓рдЧрддрд╛ рд╣реИред рд╕рдмрд╕реЗ рдкрд╣рд▓реЗ, рдпрд╣ рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рд╡рд┐рдЪрд╛рд░ рдХреЛрдб рдХреА рддреБрд▓рдирд╛ рдореЗрдВ рдмрд╣реБрдд рдЕрдзрд┐рдХ рдорд╣рддреНрд╡рдкреВрд░реНрдг рд╣реИрдВ, рд╕рд┐рд░ рдореЗрдВ рдФрдкрдЪрд╛рд░рд┐рдХ рд╕рдВрд╕реНрдерд╛рдУрдВ рдХреЗ рд╣реЛрдиреЗ рдХреЗ рдмрд╛рдж, рдПрдХ рдЗрдВрдЬреАрдирд┐рдпрд░ рдЙрдиреНрд╣реЗрдВ рдПрдХ рдЯреВрд▓ рдореЗрдВ рдмрджрд▓ рджреЗрдЧрд╛ рдФрд░ рдЙрдиреНрд╣реЗрдВ рдХреЛрдб рдХреЗ рд░реВрдк рдореЗрдВ рдмрддрд╛рдПрдЧрд╛ред рджреВрд╕рд░реА рдмрд╛рдд, рдореИрдВ рдЦреБрдж рдХреЛ рджреЛрд╣рд░рд╛рдирд╛ рдирд╣реАрдВ рдЪрд╛рд╣рддрд╛, рд╕рдм рдХреБрдЫ рдЬреЛ рдЗрди рдЙрджрд╛рд╣рд░рдгреЛрдВ рдореЗрдВ рд╕реНрдкрд╖реНрдЯ рдирд╣реАрдВ рд▓рдЧ рд╕рдХрддрд╛ рд╣реИ, рд╕рд╛рде рд╣реА рдкрд╛рдпрдерди рдФрд░ рдкрд╛рдЗрдЬрд╝ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рдирд╛ рд╢реБрд░реВ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдиреНрдпреВрдирддрдо рдЖрд╡рд╢реНрдпрдХ рдЬреНрдЮрд╛рди, рд╢реНрд░реГрдВрдЦрд▓рд╛ рдореЗрдВ рдкрд┐рдЫрд▓реЗ рд▓реЗрдЦ рдореЗрдВ рд╢рд╛рдорд┐рд▓ рд╣реИрдВред рддреАрд╕рд░рд╛, рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рддреИрдпрд╛рд░реА рдХреЛрдб рдЕрдкрдирд╛ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ, рдЬрд┐рд╕реЗ рдСрдлрд╝рд▓рд╛рдЗрди рдХрд╣рд╛ рдЬрд╛рддрд╛ рд╣реИ рдФрд░ рдиреЗрдЯрд╡рд░реНрдХ рдкрд░ рддрддреНрдХрд╛рд▓ рдкреНрд░рднрд╛рд╡ рдирд╣реАрдВ рдкрдбрд╝рддрд╛ рд╣реИ, рдЗрд╕рд▓рд┐рдП рдпрд╣ рдХрд┐рд╕реА рднреА рдмреНрдпрд╛рдЬ рдХрд╛ рдХрд╛рд░рдг рдирд╣реАрдВ рд╣реИред рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдЪрд░рдг рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдХреЛрдб рдХреЗ рд╕рд╛рде рдЪреАрдЬреЗрдВ рдХреБрдЫ рдЕрд▓рдЧ рд╣реИрдВ, рдЗрди рдкреНрд░рдХреНрд░рд┐рдпрд╛рдУрдВ рдХрд╛ рд╡рд┐рдХрд╛рд╕ рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдкреНрд░рд╢реНрди рдмрдирд╛рддрд╛ рд╣реИ:
- рдпрд╣ рдХреИрд╕реЗ рдЬрд╛рдВрдЪреЗрдВ рдХрд┐ рдХрдорд╛рдВрдбрд░реЛрдВ рдХреА рдкреВрд░реА рдорд╛рддреНрд░рд╛ рдХреЛ рджреБрднрд╛рд╖рд┐рдпрд╛ рджреНрд╡рд╛рд░рд╛ рдкрд░реНрдпрд╛рдкреНрдд рд░реВрдк рд╕реЗ рдорд╛рдирд╛ рдЬрд╛рддрд╛ рд╣реИ?
- рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдореЗрдВ рдХрд┐рдП рдЧрдП рдкрд░рд┐рд╡рд░реНрддрдиреЛрдВ рдХреЛ рдХреИрд╕реЗ рд╕рддреНрдпрд╛рдкрд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рдП?
- рдЯреНрд░рд╛рдВрд╕реЗрдХреНрд╢рдирд▓ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рд╕реНрдХреАрдо рдХреИрд╕реЗ рд▓рд╛рдЧреВ рдХрд░реЗрдВ?
- рдирд┐рдпрдВрддреНрд░рдг рдХреЗ рдиреБрдХрд╕рд╛рди рдХреЗ рдорд╛рдорд▓реЗ рдореЗрдВ рд╡рд╛рдкрд╕ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдХреИрд╕реЗ рд░реЛрд▓ рдХрд░реЗрдВ?
- рдпрджрд┐ рдЖрджреЗрд╢реЛрдВ рдХреЗ рд╣рд╕реНрддрд╛рдВрддрд░рдг рдХреЗ рджреМрд░рд╛рди рджреБрднрд╛рд╖рд┐рдпрд╛ рдПрдХ рддреНрд░реБрдЯрд┐ рдХреА рд░рд┐рдкреЛрд░реНрдЯ рдХрд░рддрд╛ рд╣реИ, рддреЛ рд╕рдлрд╛рдИ рдХреИрд╕реЗ рдХрд░реЗрдВ?
рдЗрди рдореБрджреНрджреЛрдВ рдкрд░ рдЕрдзрд┐рдХ рдзреНрдпрд╛рди рджрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдХрдо рдЕрдХреНрд╕рд░ рдЖрд╢реНрдЪрд░реНрдп рдирд┐рд╖реНрдкрд╛рджрди рдХреЗ рд╕реНрддрд░ рдкрд░ рдкрд░реЛрд╕рд╛ рдЬрд╛рдПрдЧрд╛ред рдПрдХ рд░реВрдЯрд┐рдВрдЧ рдиреАрддрд┐ рдХрд╛ рд╡рд░реНрдгрди рдХрд░рдиреЗ рд╡рд╛рд▓реА рдПрдХ рд╕рд┐рдВрдЯреИрдХреНрд╕ рддреНрд░реБрдЯрд┐ рдХреА рдкрд░реЗрд╢рд╛рдиреА рдХреА рдХрд▓реНрдкрдирд╛ рдХрд░реЗрдВ рдЬрдм рдЗрд╕ рдиреАрддрд┐ рдХреЗ рдХреНрд▓рд╛рд╕рд┐рдлрд╛рдпрд░ рдХреЗрд╡рд▓ рджреБрднрд╛рд╖рд┐рдпрд╛ рджреНрд╡рд╛рд░рд╛ рдЖрдВрд╢рд┐рдХ рд░реВрдк рд╕реЗ рдЕрдиреБрдореЛрджрд┐рдд рд╣реЛрддреЗ рд╣реИрдВред рдпрджрд┐ рдЖрдк рд╡рд░реНрддрдорд╛рди рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдХреЗ рд╕рд╛рде рдЗрд╕ рдиреАрддрд┐ рдХреЛ рдорд░реНрдЬ рдХрд░рдиреЗ рдХреА рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдХреЛ рд▓рд╛рдЗрди рджреНрд╡рд╛рд░рд╛ рдирд┐рдпрдВрддреНрд░рд┐рдд рдирд╣реАрдВ рдХрд░рддреЗ рд╣реИрдВ, рддреЛ рдЖрдк рдПрдХ рдмрдЯрди рдХреЗ рдПрдХ рдХреНрд▓рд┐рдХ рдХреЗ рд╕рд╛рде рдЙрдкрдХрд░рдг рдвреЗрд░ рдХреЛ рдЕрдкрд░реНрдпрд╛рдкреНрдд рд╕реНрдерд┐рддрд┐ рдореЗрдВ рдбрд╛рд▓ рд╕рдХрддреЗ рд╣реИрдВред рдЗрд╕рд▓рд┐рдП, рдореИрдВ рдирд┐рд╖реНрдкрд╛рджрди рдЪрд░рдг рдЖрд░реЗрдЦ рдХреЗ рд▓рдЧрднрдЧ рдРрд╕реЗ рдмреНрд▓реЙрдХ рдХрд╛ рдкрд╛рд▓рди рдХрд░рддрд╛ рд╣реВрдВред
Pyez рдкреНрд░рд▓реЗрдЦрди рдХреЗ рд╕рд╛рде рд╕рд╢рд╕реНрддреНрд░, рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рд╕рд╛рд░реНрд╡рднреМрдорд┐рдХ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рд▓реЛрдбрд░ рдХреЛрдб рд╕рдВрдХрд▓рд┐рдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛, рдЬрд┐рд╕реЗ рдЖрдк рдЕрдкрдиреЗ рджреИрдирд┐рдХ рдХрд╛рд░реНрдп рдореЗрдВ рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ, рдЬреИрд╕реЗ рдореИрдВ рдЗрд╕реЗ рдореЗрд░рд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реВрдВред
conf_change.py import sys import yaml from jnpr.junos.factory.factory_loader import FactoryLoader from jnpr.junos import Device from jnpr.junos.utils.config import Config import copy import re import traceback import time import random from jnpr.junos.exception import * import os.path yml = ''' --- VersionInfo: rpc: get-software-information item: software-information view: VersionInfoView VersionInfoView: fields: name: host-name ''' Device.auto_probe = 3 ip_f_name = 'ip-list-1.txt' cur_stage='2' globals().update(FactoryLoader().load(yaml.load(yml))) def doTestOSPF(p_dev, p_node, f_do): print ' DEBUG --- doTestOSPF : at ' + p_node if ( p_dev == None ): print ' DEBUG --- ERROR --- doTestOSPF : connection to ' + p_node + ' is None' return else: try: d_conf = p_dev.cli("show configuration | display set").split('\n') ret_val = True set_found = 0 c_path = 'st' + cur_stage + '-' + p_node + '.txt' with open(c_path, "r") as f: for line in f: c_line = line.replace('\n', '').replace('\r\n', '') if ('delete ' not in c_line): set_found = 1 if ( (c_line not in d_conf) and (c_line != '')): print ' DEBUG --- doTestOSPF found missing line ' + c_line ret_val = False f.close() if ( (set_found == 0) and (f_do == True) ): return False return ret_val except Exception as ex: print ' DEBUG --- ERROR --- doTestOSPF : connection to ' + p_node + ' was not established. ex:' + str(ex) return def doTest(p_dev, p_node, f_do): return doTestOSPF(p_dev, p_node, f_do) def close_dev(d): try: d.close() except Exception as ex: print ' DEBUG --- ERROR --- close_dev : connection to cant be closed. ex:' + str(ex) def getConnection(p_host, p_user): acc = {'lab': 'lab123'} try: print ' DEBUG --- getting ssh connection to ' + p_host l_dev = Device(host=p_host, user=p_user, password=acc[p_user], auto_probe=2, gather_facts=True, port=22) l_dev.open() if (l_dev.connected): l_dev.timeout = 900 print ' DEBUG --- ssh cionnection to host ' + p_host + ' established' v = VersionInfo(l_dev).get() print ' DEBUG --- connection ' + p_host + ' named ' + l_dev.facts['hostname'] + ' established ' return l_dev else: raise Exception(' DEBUG --- ssh connection to ' + p_host + ' was not established') except Exception as ex: print ' DEBUG --- ERROR --- getConnection : connection to ' + p_host + ' was not established. ex:' + str(ex) traceback.print_exc() return def doCompare(p_conf, p_node): try: print ' DEBUG --- doCompare at ' + p_node if ( p_conf.diff() == None ): return False else: return True except Exception as ex: print ' DEBUG --- ERROR --- doCompare : conf.diff at ' + p_node + ' ex:' + str(ex) return def doLoad(p_conf, p_node): try: print ' DEBUG --- doLoad at ' + p_node c_path = 'st' + cur_stage + '-' + p_node + '.txt' if (os.path.isfile(c_path)): p_conf.load(path=c_path, format='set') return True except Exception as ex: print ' DEBUG --- ERROR --- doLoad : cant load config to ' + p_node + ' ex:' + str(ex) return def doRollback(p_conf, p_node, p_r): try: print ' DEBUG --- doRollback at ' + p_node if ( p_conf.rollback(rb_id=p_r) == True ): return True else: return False except Exception as ex: print ' DEBUG --- ERROR --- doRollback : cant rollback config to ' + p_node + ' ex:' + str(ex) return None def doCommitCheck(p_conf, p_node): try: print ' DEBUG --- doCommitCheck at ' + p_node p_conf.commit_check() return True except Exception as ex: print ' DEBUG --- ERROR --- doCommitCheck : cant config commit check config to ' + p_node + ' ex:' + str(ex) return None def doCommit(p_conf, p_node, p_confirm_m=None): try: print ' DEBUG --- doCommit at ' + p_node commit_res = None if (p_confirm_m == None): commit_res = p_conf.commit(timeout=30) else: commit_res = p_conf.commit(confirm=p_confirm_m, timeout=30) if (commit_res == True): return True else: return False except CommitError as c_ex: print ' DEBUG --- ERROR --- doCommit : cant config commit at ' + p_node + ' ex:' + str(c_ex) return None except RpcTimeoutError as t_ex: print ' DEBUG --- ERROR --- doCommit : config was commited at ' + p_node + ' with the following ex:' + str(t_ex) return True def doJob(p_dev, p_node): print ' DEBUG --- doJob at ' + p_node if ( p_dev == None ): print ' DEBUG --- ERROR --- doJob : connection to ' + p_node + ' is None' return else: try: with Config(p_dev) as conf: is_compare = doCompare(conf, node) if ( is_compare == None ): print ' DEBUG --- ERROR --- doJob : at config compare ' + node return if ( is_compare == True ): print ' DEBUG --- ERROR --- doJob : configuration locked at ' + node return False print ' DEBUG --- starting to do config changes at ' + node if ( doLoad(conf, node) != True ): print ' DEBUG --- ERROR --- doJob : conf.load ' + node if ( doCompare(conf, node) != False ): print ' DEBUG --- doJob : doing rollback after load at ' + node + ' deleting :' + str(conf.diff()) doRollback(conf, node, 0) return print ' DEBUG --- commit check at ' + node if (doCommitCheck(conf, node) != True): print ' DEBUG --- ERROR --- doJob : conf.doCommitCheck failed at ' + node if ( doCompare(conf, node) != False ): print ' DEBUG --- doJob : doing rollback after load at ' + node + ' deleting :' + str(conf.diff()) doRollback(conf, node, 0) return commit_m = 5 print ' DEBUG --- commiting changes at ' + node if (doCommit(conf, node, commit_m) != True): print ' DEBUG --- ERROR --- doJob : conf.commit ' + node if ( doCompare(conf, node) != False ): print ' DEBUG --- doJob : doing rollback after commit at ' + node + ' deleting :' + str(conf.diff()) doRollback(conf, node, 0) return True except Exception as ex: print ' DEBUG --- ERROR --- doJob : cant do job ' + node + ' ex:' + str(ex) return node_list = [] result_list = {} with open(ip_f_name, "r") as f_ip: for line in f_ip: c_ip_line = line.replace('\n', '').replace('\r\n', '') if (c_ip_line != ''): node_list.append(c_ip_line) for node in node_list: print 'FLOW -- ************************************ ' print 'FLOW -- checking ' + node result_list.setdefault(node, {}) cur_dev = getConnection(node, 'lab') is_test = doTest(cur_dev, node, True) if( is_test == None): print 'FLOW -- error' result_list.setdefault(node, {}).setdefault('status', 'error') break if( is_test == True): print 'FLOW -- conf exist' result_list.setdefault(node, {}).setdefault('status', 'nn') if( is_test == False): print 'FLOW -- conf not exist, doing change' is_job = doJob(cur_dev, node) if( is_job == None): print 'FLOW -- cant do job at ' + node result_list.setdefault(node, {}).setdefault('status', 'error') break if( is_job == False): print 'FLOW -- cant do job at ' + node result_list.setdefault(node, {}).setdefault('status', 'not_done') if( is_job == True): print 'FLOW -- done job at ' + node print 'FLOW -- going sleep at ' + node time.sleep(5) print 'FLOW -- checking job status ' + node cur_dev_confirm = getConnection(node, 'lab') if ( cur_dev_confirm != None ): if (doTest(cur_dev, node, False) == True): print 'FLOW -- commiting the configuration at ' + node if (doCommit(Config(cur_dev_confirm), node) != True): print 'FLOW -- ERROR cant commit the configuration at ' + node result_list.setdefault(node, {}).setdefault('status', 'not_done') break else: print 'FLOW -- configuration commited at ' + node result_list.setdefault(node, {}).setdefault('status', 'done') else: print 'FLOW -- ERROR cant find conf after job ' + node result_list.setdefault(node, {}).setdefault('status', 'not_done') close_dev(cur_dev_confirm) else: print 'FLOW -- ERROR cant access ' + node + ' for commiting' result_list.setdefault(node, {}).setdefault('status', 'not_done') close_dev(cur_dev) print result_list
рдФрд░ рддреАрди рдЪрд░рдгреЛрдВ рдореЗрдВ рдЙрдирдХреЗ рдХрд╛рдо рдХреЗ рдкрд░рд┐рдгрд╛рдо
рдЫрд┐рдкрд╛ рд╣реБрдЖ рдкрд╛рдаPython 2.7.14 (v2.7.14:84471935ed, Sep 16 2017, 20:19:30) [MSC v.1500 32 bit (Intel)] on win32
Type "copyright", "credits" or "license()" for more information.
>>>
==== RESTART: C:\Users\and_andreev\Desktop\tools\lab-case2\conf_change.py ====
FLOW -- ************************************
FLOW -- checking 10.83.20.66
DEBUG --- getting ssh connection to 10.83.20.66
DEBUG --- ssh cionnection to host 10.83.20.66 established
DEBUG --- connection 10.83.20.66 named abr1 established
DEBUG --- doTestOSPF : at 10.83.20.66
DEBUG --- doTestOSPF found missing line set protocols ospf area 0.0.0.250 interface ge-0/0/1.0 secondary
DEBUG --- doTestOSPF found missing line set protocols ospf area 0.0.0.250 interface ge-0/0/1.0 interface-type p2p
DEBUG --- doTestOSPF found missing line set protocols ospf area 0.0.0.250 interface ge-0/0/1.0 metric 1
FLOW -- conf not exist, doing change
DEBUG --- doJob at 10.83.20.66
DEBUG --- doCompare at 10.83.20.66
DEBUG --- starting to do config changes at 10.83.20.66
DEBUG --- doLoad at 10.83.20.66
DEBUG --- commit check at 10.83.20.66
DEBUG --- doCommitCheck at 10.83.20.66
DEBUG --- commiting changes at 10.83.20.66
DEBUG --- doCommit at 10.83.20.66
FLOW -- done job at 10.83.20.66
FLOW -- going sleep at 10.83.20.66
FLOW -- checking job status 10.83.20.66
DEBUG --- getting ssh connection to 10.83.20.66
DEBUG --- ssh cionnection to host 10.83.20.66 established
DEBUG --- connection 10.83.20.66 named abr1 established
DEBUG --- doTestOSPF : at 10.83.20.66
FLOW -- commiting the configuration at 10.83.20.66
DEBUG --- doCommit at 10.83.20.66
FLOW -- configuration commited at 10.83.20.66
FLOW -- ************************************
FLOW -- checking 10.83.20.67
DEBUG --- getting ssh connection to 10.83.20.67
DEBUG --- ssh cionnection to host 10.83.20.67 established
DEBUG --- connection 10.83.20.67 named abr2 established
DEBUG --- doTestOSPF : at 10.83.20.67
DEBUG --- doTestOSPF found missing line set protocols ospf area 0.0.0.250 interface ge-0/0/1.0 secondary
DEBUG --- doTestOSPF found missing line set protocols ospf area 0.0.0.250 interface ge-0/0/1.0 interface-type p2p
DEBUG --- doTestOSPF found missing line set protocols ospf area 0.0.0.250 interface ge-0/0/1.0 metric 1
FLOW -- conf not exist, doing change
DEBUG --- doJob at 10.83.20.67
DEBUG --- doCompare at 10.83.20.67
DEBUG --- starting to do config changes at 10.83.20.67
DEBUG --- doLoad at 10.83.20.67
DEBUG --- commit check at 10.83.20.67
DEBUG --- doCommitCheck at 10.83.20.67
DEBUG --- commiting changes at 10.83.20.67
DEBUG --- doCommit at 10.83.20.67
FLOW -- done job at 10.83.20.67
FLOW -- going sleep at 10.83.20.67
FLOW -- checking job status 10.83.20.67
DEBUG --- getting ssh connection to 10.83.20.67
DEBUG --- ssh cionnection to host 10.83.20.67 established
DEBUG --- connection 10.83.20.67 named abr2 established
DEBUG --- doTestOSPF : at 10.83.20.67
FLOW -- commiting the configuration at 10.83.20.67
DEBUG --- doCommit at 10.83.20.67
FLOW -- configuration commited at 10.83.20.67
FLOW -- ************************************
FLOW -- checking 10.83.20.68
DEBUG --- getting ssh connection to 10.83.20.68
DEBUG --- ssh cionnection to host 10.83.20.68 established
DEBUG --- connection 10.83.20.68 named r1 established
DEBUG --- doTestOSPF : at 10.83.20.68
DEBUG --- doTestOSPF found missing line set protocols ospf area 0.0.0.250 interface ge-0/0/1.0 secondary
DEBUG --- doTestOSPF found missing line set protocols ospf area 0.0.0.250 interface ge-0/0/1.0 interface-type p2p
DEBUG --- doTestOSPF found missing line set protocols ospf area 0.0.0.250 interface ge-0/0/1.0 metric 1
DEBUG --- doTestOSPF found missing line set protocols ospf area 0.0.0.250 interface ge-0/0/2.0 secondary
DEBUG --- doTestOSPF found missing line set protocols ospf area 0.0.0.250 interface ge-0/0/2.0 interface-type p2p
DEBUG --- doTestOSPF found missing line set protocols ospf area 0.0.0.250 interface ge-0/0/2.0 metric 1
DEBUG --- doTestOSPF found missing line set protocols ospf area 0.0.0.250 interface ge-0/0/3.0 secondary
DEBUG --- doTestOSPF found missing line set protocols ospf area 0.0.0.250 interface ge-0/0/3.0 interface-type p2p
DEBUG --- doTestOSPF found missing line set protocols ospf area 0.0.0.250 interface ge-0/0/3.0 metric 1
FLOW -- conf not exist, doing change
DEBUG --- doJob at 10.83.20.68
DEBUG --- doCompare at 10.83.20.68
DEBUG --- starting to do config changes at 10.83.20.68
DEBUG --- doLoad at 10.83.20.68
DEBUG --- commit check at 10.83.20.68
DEBUG --- doCommitCheck at 10.83.20.68
DEBUG --- commiting changes at 10.83.20.68
DEBUG --- doCommit at 10.83.20.68
FLOW -- done job at 10.83.20.68
FLOW -- going sleep at 10.83.20.68
FLOW -- checking job status 10.83.20.68
DEBUG --- getting ssh connection to 10.83.20.68
DEBUG --- ssh cionnection to host 10.83.20.68 established
DEBUG --- connection 10.83.20.68 named r1 established
DEBUG --- doTestOSPF : at 10.83.20.68
FLOW -- commiting the configuration at 10.83.20.68
DEBUG --- doCommit at 10.83.20.68
FLOW -- configuration commited at 10.83.20.68
FLOW -- ************************************
FLOW -- checking 10.83.20.69
DEBUG --- getting ssh connection to 10.83.20.69
DEBUG --- ssh cionnection to host 10.83.20.69 established
DEBUG --- connection 10.83.20.69 named r2 established
DEBUG --- doTestOSPF : at 10.83.20.69
DEBUG --- doTestOSPF found missing line set protocols ospf area 0.0.0.250 interface ge-0/0/0.0 secondary
DEBUG --- doTestOSPF found missing line set protocols ospf area 0.0.0.250 interface ge-0/0/0.0 interface-type p2p
DEBUG --- doTestOSPF found missing line set protocols ospf area 0.0.0.250 interface ge-0/0/0.0 metric 1
DEBUG --- doTestOSPF found missing line set protocols ospf area 0.0.0.250 interface ge-0/0/3.0 secondary
DEBUG --- doTestOSPF found missing line set protocols ospf area 0.0.0.250 interface ge-0/0/3.0 interface-type p2p
DEBUG --- doTestOSPF found missing line set protocols ospf area 0.0.0.250 interface ge-0/0/3.0 metric 1
FLOW -- conf not exist, doing change
DEBUG --- doJob at 10.83.20.69
DEBUG --- doCompare at 10.83.20.69
DEBUG --- starting to do config changes at 10.83.20.69
DEBUG --- doLoad at 10.83.20.69
DEBUG --- commit check at 10.83.20.69
DEBUG --- doCommitCheck at 10.83.20.69
DEBUG --- commiting changes at 10.83.20.69
DEBUG --- doCommit at 10.83.20.69
FLOW -- done job at 10.83.20.69
FLOW -- going sleep at 10.83.20.69
FLOW -- checking job status 10.83.20.69
DEBUG --- getting ssh connection to 10.83.20.69
DEBUG --- ssh cionnection to host 10.83.20.69 established
DEBUG --- connection 10.83.20.69 named r2 established
DEBUG --- doTestOSPF : at 10.83.20.69
FLOW -- commiting the configuration at 10.83.20.69
DEBUG --- doCommit at 10.83.20.69
FLOW -- configuration commited at 10.83.20.69
FLOW -- ************************************
FLOW -- checking 10.83.20.70
DEBUG --- getting ssh connection to 10.83.20.70
DEBUG --- ssh cionnection to host 10.83.20.70 established
DEBUG --- connection 10.83.20.70 named r3 established
DEBUG --- doTestOSPF : at 10.83.20.70
DEBUG --- doTestOSPF found missing line set protocols ospf area 0.0.0.250 interface ge-0/0/0.0 secondary
DEBUG --- doTestOSPF found missing line set protocols ospf area 0.0.0.250 interface ge-0/0/0.0 interface-type p2p
DEBUG --- doTestOSPF found missing line set protocols ospf area 0.0.0.250 interface ge-0/0/0.0 metric 1
DEBUG --- doTestOSPF found missing line set protocols ospf area 0.0.0.250 interface ge-0/0/3.0 secondary
DEBUG --- doTestOSPF found missing line set protocols ospf area 0.0.0.250 interface ge-0/0/3.0 interface-type p2p
DEBUG --- doTestOSPF found missing line set protocols ospf area 0.0.0.250 interface ge-0/0/3.0 metric 1
FLOW -- conf not exist, doing change
DEBUG --- doJob at 10.83.20.70
DEBUG --- doCompare at 10.83.20.70
DEBUG --- starting to do config changes at 10.83.20.70
DEBUG --- doLoad at 10.83.20.70
DEBUG --- commit check at 10.83.20.70
DEBUG --- doCommitCheck at 10.83.20.70
DEBUG --- commiting changes at 10.83.20.70
DEBUG --- doCommit at 10.83.20.70
FLOW -- done job at 10.83.20.70
FLOW -- going sleep at 10.83.20.70
FLOW -- checking job status 10.83.20.70
DEBUG --- getting ssh connection to 10.83.20.70
DEBUG --- ssh cionnection to host 10.83.20.70 established
DEBUG --- connection 10.83.20.70 named r3 established
DEBUG --- doTestOSPF : at 10.83.20.70
FLOW -- commiting the configuration at 10.83.20.70
DEBUG --- doCommit at 10.83.20.70
FLOW -- configuration commited at 10.83.20.70
FLOW -- ************************************
FLOW -- checking 10.83.20.71
DEBUG --- getting ssh connection to 10.83.20.71
DEBUG --- ssh cionnection to host 10.83.20.71 established
DEBUG --- connection 10.83.20.71 named r4 established
DEBUG --- doTestOSPF : at 10.83.20.71
DEBUG --- doTestOSPF found missing line set protocols ospf area 0.0.0.250 interface ge-0/0/1.0 secondary
DEBUG --- doTestOSPF found missing line set protocols ospf area 0.0.0.250 interface ge-0/0/1.0 interface-type p2p
DEBUG --- doTestOSPF found missing line set protocols ospf area 0.0.0.250 interface ge-0/0/1.0 metric 1
DEBUG --- doTestOSPF found missing line set protocols ospf area 0.0.0.250 interface ge-0/0/2.0 secondary
DEBUG --- doTestOSPF found missing line set protocols ospf area 0.0.0.250 interface ge-0/0/2.0 interface-type p2p
DEBUG --- doTestOSPF found missing line set protocols ospf area 0.0.0.250 interface ge-0/0/2.0 metric 1
DEBUG --- doTestOSPF found missing line set protocols ospf area 0.0.0.250 interface ge-0/0/3.0 secondary
DEBUG --- doTestOSPF found missing line set protocols ospf area 0.0.0.250 interface ge-0/0/3.0 interface-type p2p
DEBUG --- doTestOSPF found missing line set protocols ospf area 0.0.0.250 interface ge-0/0/3.0 metric 1
FLOW -- conf not exist, doing change
DEBUG --- doJob at 10.83.20.71
DEBUG --- doCompare at 10.83.20.71
DEBUG --- starting to do config changes at 10.83.20.71
DEBUG --- doLoad at 10.83.20.71
DEBUG --- commit check at 10.83.20.71
DEBUG --- doCommitCheck at 10.83.20.71
DEBUG --- commiting changes at 10.83.20.71
DEBUG --- doCommit at 10.83.20.71
FLOW -- done job at 10.83.20.71
FLOW -- going sleep at 10.83.20.71
FLOW -- checking job status 10.83.20.71
DEBUG --- getting ssh connection to 10.83.20.71
DEBUG --- ssh cionnection to host 10.83.20.71 established
DEBUG --- connection 10.83.20.71 named r4 established
DEBUG --- doTestOSPF : at 10.83.20.71
FLOW -- commiting the configuration at 10.83.20.71
DEBUG --- doCommit at 10.83.20.71
FLOW -- configuration commited at 10.83.20.71
{'10.83.20.70': {'status': 'done'}, '10.83.20.71': {'status': 'done'}, '10.83.20.67': {'status': 'done'}, '10.83.20.66': {'status': 'done'}, '10.83.20.69': {'status': 'done'}, '10.83.20.68': {'status': 'done'}}
>>>
>>>
>>>
==== RESTART: C:\Users\and_andreev\Desktop\tools\lab-case2\conf_change.py ====
FLOW -- ************************************
FLOW -- checking 10.83.20.66
DEBUG --- getting ssh connection to 10.83.20.66
DEBUG --- ssh cionnection to host 10.83.20.66 established
DEBUG --- connection 10.83.20.66 named abr1 established
DEBUG --- doTestOSPF : at 10.83.20.66
DEBUG --- doTestOSPF found missing line set protocols ospf area 0.0.0.200 interface ge-0/0/1.0 secondary
DEBUG --- doTestOSPF found missing line set protocols ospf area 0.0.0.200 interface ge-0/0/1.0 metric 1
FLOW -- conf not exist, doing change
DEBUG --- doJob at 10.83.20.66
DEBUG --- doCompare at 10.83.20.66
DEBUG --- starting to do config changes at 10.83.20.66
DEBUG --- doLoad at 10.83.20.66
DEBUG --- commit check at 10.83.20.66
DEBUG --- doCommitCheck at 10.83.20.66
DEBUG --- commiting changes at 10.83.20.66
DEBUG --- doCommit at 10.83.20.66
FLOW -- done job at 10.83.20.66
FLOW -- going sleep at 10.83.20.66
FLOW -- checking job status 10.83.20.66
DEBUG --- getting ssh connection to 10.83.20.66
DEBUG --- ssh cionnection to host 10.83.20.66 established
DEBUG --- connection 10.83.20.66 named abr1 established
DEBUG --- doTestOSPF : at 10.83.20.66
FLOW -- commiting the configuration at 10.83.20.66
DEBUG --- doCommit at 10.83.20.66
FLOW -- configuration commited at 10.83.20.66
FLOW -- ************************************
FLOW -- checking 10.83.20.67
DEBUG --- getting ssh connection to 10.83.20.67
DEBUG --- ssh cionnection to host 10.83.20.67 established
DEBUG --- connection 10.83.20.67 named abr2 established
DEBUG --- doTestOSPF : at 10.83.20.67
DEBUG --- doTestOSPF found missing line set protocols ospf area 0.0.0.200 interface ge-0/0/1.0 secondary
DEBUG --- doTestOSPF found missing line set protocols ospf area 0.0.0.200 interface ge-0/0/1.0 metric 1
FLOW -- conf not exist, doing change
DEBUG --- doJob at 10.83.20.67
DEBUG --- doCompare at 10.83.20.67
DEBUG --- starting to do config changes at 10.83.20.67
DEBUG --- doLoad at 10.83.20.67
DEBUG --- commit check at 10.83.20.67
DEBUG --- doCommitCheck at 10.83.20.67
DEBUG --- commiting changes at 10.83.20.67
DEBUG --- doCommit at 10.83.20.67
FLOW -- done job at 10.83.20.67
FLOW -- going sleep at 10.83.20.67
FLOW -- checking job status 10.83.20.67
DEBUG --- getting ssh connection to 10.83.20.67
DEBUG --- ssh cionnection to host 10.83.20.67 established
DEBUG --- connection 10.83.20.67 named abr2 established
DEBUG --- doTestOSPF : at 10.83.20.67
FLOW -- commiting the configuration at 10.83.20.67
DEBUG --- doCommit at 10.83.20.67
FLOW -- configuration commited at 10.83.20.67
FLOW -- ************************************
FLOW -- checking 10.83.20.68
DEBUG --- getting ssh connection to 10.83.20.68
DEBUG --- ssh cionnection to host 10.83.20.68 established
DEBUG --- connection 10.83.20.68 named r1 established
DEBUG --- doTestOSPF : at 10.83.20.68
DEBUG --- doTestOSPF found missing line set protocols ospf area 0.0.0.200 interface ge-0/0/1.0 secondary
DEBUG --- doTestOSPF found missing line set protocols ospf area 0.0.0.200 interface ge-0/0/1.0 metric 1
DEBUG --- doTestOSPF found missing line set protocols ospf area 0.0.0.200 interface ge-0/0/2.0 secondary
DEBUG --- doTestOSPF found missing line set protocols ospf area 0.0.0.200 interface ge-0/0/2.0 metric 1
DEBUG --- doTestOSPF found missing line set protocols ospf area 0.0.0.200 interface ge-0/0/3.0 secondary
DEBUG --- doTestOSPF found missing line set protocols ospf area 0.0.0.200 interface ge-0/0/3.0 metric 1
DEBUG --- doTestOSPF found missing line set protocols ospf area 0.0.0.250 interface lo0.0 interface-type p2p
DEBUG --- doTestOSPF found missing line set protocols ospf area 0.0.0.200 interface lo0.0 secondary
FLOW -- conf not exist, doing change
DEBUG --- doJob at 10.83.20.68
DEBUG --- doCompare at 10.83.20.68
DEBUG --- starting to do config changes at 10.83.20.68
DEBUG --- doLoad at 10.83.20.68
DEBUG --- commit check at 10.83.20.68
DEBUG --- doCommitCheck at 10.83.20.68
DEBUG --- commiting changes at 10.83.20.68
DEBUG --- doCommit at 10.83.20.68
FLOW -- done job at 10.83.20.68
FLOW -- going sleep at 10.83.20.68
FLOW -- checking job status 10.83.20.68
DEBUG --- getting ssh connection to 10.83.20.68
DEBUG --- ssh cionnection to host 10.83.20.68 established
DEBUG --- connection 10.83.20.68 named r1 established
DEBUG --- doTestOSPF : at 10.83.20.68
FLOW -- commiting the configuration at 10.83.20.68
DEBUG --- doCommit at 10.83.20.68
FLOW -- configuration commited at 10.83.20.68
FLOW -- ************************************
FLOW -- checking 10.83.20.69
DEBUG --- getting ssh connection to 10.83.20.69
DEBUG --- ssh cionnection to host 10.83.20.69 established
DEBUG --- connection 10.83.20.69 named r2 established
DEBUG --- doTestOSPF : at 10.83.20.69
DEBUG --- doTestOSPF found missing line set protocols ospf area 0.0.0.200 interface ge-0/0/0.0 secondary
DEBUG --- doTestOSPF found missing line set protocols ospf area 0.0.0.200 interface ge-0/0/0.0 metric 1
DEBUG --- doTestOSPF found missing line set protocols ospf area 0.0.0.200 interface ge-0/0/3.0 secondary
DEBUG --- doTestOSPF found missing line set protocols ospf area 0.0.0.200 interface ge-0/0/3.0 metric 1
DEBUG --- doTestOSPF found missing line set protocols ospf area 0.0.0.250 interface lo0.0 interface-type p2p
DEBUG --- doTestOSPF found missing line set protocols ospf area 0.0.0.200 interface lo0.0 secondary
FLOW -- conf not exist, doing change
DEBUG --- doJob at 10.83.20.69
DEBUG --- doCompare at 10.83.20.69
DEBUG --- starting to do config changes at 10.83.20.69
DEBUG --- doLoad at 10.83.20.69
DEBUG --- commit check at 10.83.20.69
DEBUG --- doCommitCheck at 10.83.20.69
DEBUG --- commiting changes at 10.83.20.69
DEBUG --- doCommit at 10.83.20.69
FLOW -- done job at 10.83.20.69
FLOW -- going sleep at 10.83.20.69
FLOW -- checking job status 10.83.20.69
DEBUG --- getting ssh connection to 10.83.20.69
DEBUG --- ssh cionnection to host 10.83.20.69 established
DEBUG --- connection 10.83.20.69 named r2 established
DEBUG --- doTestOSPF : at 10.83.20.69
FLOW -- commiting the configuration at 10.83.20.69
DEBUG --- doCommit at 10.83.20.69
FLOW -- configuration commited at 10.83.20.69
FLOW -- ************************************
FLOW -- checking 10.83.20.70
DEBUG --- getting ssh connection to 10.83.20.70
DEBUG --- ssh cionnection to host 10.83.20.70 established
DEBUG --- connection 10.83.20.70 named r3 established
DEBUG --- doTestOSPF : at 10.83.20.70
DEBUG --- doTestOSPF found missing line set protocols ospf area 0.0.0.200 interface ge-0/0/0.0 secondary
DEBUG --- doTestOSPF found missing line set protocols ospf area 0.0.0.200 interface ge-0/0/0.0 metric 1
DEBUG --- doTestOSPF found missing line set protocols ospf area 0.0.0.200 interface ge-0/0/3.0 secondary
DEBUG --- doTestOSPF found missing line set protocols ospf area 0.0.0.200 interface ge-0/0/3.0 metric 1
DEBUG --- doTestOSPF found missing line set protocols ospf area 0.0.0.250 interface lo0.0 interface-type p2p
DEBUG --- doTestOSPF found missing line set protocols ospf area 0.0.0.200 interface lo0.0 secondary
FLOW -- conf not exist, doing change
DEBUG --- doJob at 10.83.20.70
DEBUG --- doCompare at 10.83.20.70
DEBUG --- starting to do config changes at 10.83.20.70
DEBUG --- doLoad at 10.83.20.70
DEBUG --- commit check at 10.83.20.70
DEBUG --- doCommitCheck at 10.83.20.70
DEBUG --- commiting changes at 10.83.20.70
DEBUG --- doCommit at 10.83.20.70
FLOW -- done job at 10.83.20.70
FLOW -- going sleep at 10.83.20.70
FLOW -- checking job status 10.83.20.70
DEBUG --- getting ssh connection to 10.83.20.70
DEBUG --- ssh cionnection to host 10.83.20.70 established
DEBUG --- connection 10.83.20.70 named r3 established
DEBUG --- doTestOSPF : at 10.83.20.70
FLOW -- commiting the configuration at 10.83.20.70
DEBUG --- doCommit at 10.83.20.70
FLOW -- configuration commited at 10.83.20.70
FLOW -- ************************************
FLOW -- checking 10.83.20.71
DEBUG --- getting ssh connection to 10.83.20.71
DEBUG --- ssh cionnection to host 10.83.20.71 established
DEBUG --- connection 10.83.20.71 named r4 established
DEBUG --- doTestOSPF : at 10.83.20.71
DEBUG --- doTestOSPF found missing line set protocols ospf area 0.0.0.200 interface ge-0/0/1.0 secondary
DEBUG --- doTestOSPF found missing line set protocols ospf area 0.0.0.200 interface ge-0/0/1.0 metric 1
DEBUG --- doTestOSPF found missing line set protocols ospf area 0.0.0.200 interface ge-0/0/2.0 secondary
DEBUG --- doTestOSPF found missing line set protocols ospf area 0.0.0.200 interface ge-0/0/2.0 metric 1
DEBUG --- doTestOSPF found missing line set protocols ospf area 0.0.0.200 interface ge-0/0/3.0 secondary
DEBUG --- doTestOSPF found missing line set protocols ospf area 0.0.0.200 interface ge-0/0/3.0 metric 1
DEBUG --- doTestOSPF found missing line set protocols ospf area 0.0.0.250 interface lo0.0 interface-type p2p
DEBUG --- doTestOSPF found missing line set protocols ospf area 0.0.0.200 interface lo0.0 secondary
FLOW -- conf not exist, doing change
DEBUG --- doJob at 10.83.20.71
DEBUG --- doCompare at 10.83.20.71
DEBUG --- starting to do config changes at 10.83.20.71
DEBUG --- doLoad at 10.83.20.71
DEBUG --- commit check at 10.83.20.71
DEBUG --- doCommitCheck at 10.83.20.71
DEBUG --- commiting changes at 10.83.20.71
DEBUG --- doCommit at 10.83.20.71
FLOW -- done job at 10.83.20.71
FLOW -- going sleep at 10.83.20.71
FLOW -- checking job status 10.83.20.71
DEBUG --- getting ssh connection to 10.83.20.71
DEBUG --- ssh cionnection to host 10.83.20.71 established
DEBUG --- connection 10.83.20.71 named r4 established
DEBUG --- doTestOSPF : at 10.83.20.71
FLOW -- commiting the configuration at 10.83.20.71
DEBUG --- doCommit at 10.83.20.71
FLOW -- configuration commited at 10.83.20.71
{'10.83.20.70': {'status': 'done'}, '10.83.20.71': {'status': 'done'}, '10.83.20.67': {'status': 'done'}, '10.83.20.66': {'status': 'done'}, '10.83.20.69': {'status': 'done'}, '10.83.20.68': {'status': 'done'}}
>>>
==== RESTART: C:\Users\and_andreev\Desktop\tools\lab-case2\conf_change.py ====
FLOW -- ************************************
FLOW -- checking 10.83.20.66
DEBUG --- getting ssh connection to 10.83.20.66
DEBUG --- ssh cionnection to host 10.83.20.66 established
DEBUG --- connection 10.83.20.66 named abr1 established
DEBUG --- doTestOSPF : at 10.83.20.66
FLOW -- conf not exist, doing change
DEBUG --- doJob at 10.83.20.66
DEBUG --- doCompare at 10.83.20.66
DEBUG --- starting to do config changes at 10.83.20.66
DEBUG --- doLoad at 10.83.20.66
DEBUG --- commit check at 10.83.20.66
DEBUG --- doCommitCheck at 10.83.20.66
DEBUG --- commiting changes at 10.83.20.66
DEBUG --- doCommit at 10.83.20.66
FLOW -- done job at 10.83.20.66
FLOW -- going sleep at 10.83.20.66
FLOW -- checking job status 10.83.20.66
DEBUG --- getting ssh connection to 10.83.20.66
DEBUG --- ssh cionnection to host 10.83.20.66 established
DEBUG --- connection 10.83.20.66 named abr1 established
DEBUG --- doTestOSPF : at 10.83.20.66
FLOW -- commiting the configuration at 10.83.20.66
DEBUG --- doCommit at 10.83.20.66
FLOW -- configuration commited at 10.83.20.66
FLOW -- ************************************
FLOW -- checking 10.83.20.67
DEBUG --- getting ssh connection to 10.83.20.67
DEBUG --- ssh cionnection to host 10.83.20.67 established
DEBUG --- connection 10.83.20.67 named abr2 established
DEBUG --- doTestOSPF : at 10.83.20.67
FLOW -- conf not exist, doing change
DEBUG --- doJob at 10.83.20.67
DEBUG --- doCompare at 10.83.20.67
DEBUG --- starting to do config changes at 10.83.20.67
DEBUG --- doLoad at 10.83.20.67
DEBUG --- commit check at 10.83.20.67
DEBUG --- doCommitCheck at 10.83.20.67
DEBUG --- commiting changes at 10.83.20.67
DEBUG --- doCommit at 10.83.20.67
FLOW -- done job at 10.83.20.67
FLOW -- going sleep at 10.83.20.67
FLOW -- checking job status 10.83.20.67
DEBUG --- getting ssh connection to 10.83.20.67
DEBUG --- ssh cionnection to host 10.83.20.67 established
DEBUG --- connection 10.83.20.67 named abr2 established
DEBUG --- doTestOSPF : at 10.83.20.67
FLOW -- commiting the configuration at 10.83.20.67
DEBUG --- doCommit at 10.83.20.67
FLOW -- configuration commited at 10.83.20.67
FLOW -- ************************************
FLOW -- checking 10.83.20.68
DEBUG --- getting ssh connection to 10.83.20.68
DEBUG --- ssh cionnection to host 10.83.20.68 established
DEBUG --- connection 10.83.20.68 named r1 established
DEBUG --- doTestOSPF : at 10.83.20.68
FLOW -- conf not exist, doing change
DEBUG --- doJob at 10.83.20.68
DEBUG --- doCompare at 10.83.20.68
DEBUG --- starting to do config changes at 10.83.20.68
DEBUG --- doLoad at 10.83.20.68
DEBUG --- commit check at 10.83.20.68
DEBUG --- doCommitCheck at 10.83.20.68
DEBUG --- commiting changes at 10.83.20.68
DEBUG --- doCommit at 10.83.20.68
FLOW -- done job at 10.83.20.68
FLOW -- going sleep at 10.83.20.68
FLOW -- checking job status 10.83.20.68
DEBUG --- getting ssh connection to 10.83.20.68
DEBUG --- ssh cionnection to host 10.83.20.68 established
DEBUG --- connection 10.83.20.68 named r1 established
DEBUG --- doTestOSPF : at 10.83.20.68
FLOW -- commiting the configuration at 10.83.20.68
DEBUG --- doCommit at 10.83.20.68
FLOW -- configuration commited at 10.83.20.68
FLOW -- ************************************
FLOW -- checking 10.83.20.69
DEBUG --- getting ssh connection to 10.83.20.69
DEBUG --- ssh cionnection to host 10.83.20.69 established
DEBUG --- connection 10.83.20.69 named r2 established
DEBUG --- doTestOSPF : at 10.83.20.69
FLOW -- conf not exist, doing change
DEBUG --- doJob at 10.83.20.69
DEBUG --- doCompare at 10.83.20.69
DEBUG --- starting to do config changes at 10.83.20.69
DEBUG --- doLoad at 10.83.20.69
DEBUG --- commit check at 10.83.20.69
DEBUG --- doCommitCheck at 10.83.20.69
DEBUG --- commiting changes at 10.83.20.69
DEBUG --- doCommit at 10.83.20.69
FLOW -- done job at 10.83.20.69
FLOW -- going sleep at 10.83.20.69
FLOW -- checking job status 10.83.20.69
DEBUG --- getting ssh connection to 10.83.20.69
DEBUG --- ssh cionnection to host 10.83.20.69 established
DEBUG --- connection 10.83.20.69 named r2 established
DEBUG --- doTestOSPF : at 10.83.20.69
FLOW -- commiting the configuration at 10.83.20.69
DEBUG --- doCommit at 10.83.20.69
FLOW -- configuration commited at 10.83.20.69
FLOW -- ************************************
FLOW -- checking 10.83.20.70
DEBUG --- getting ssh connection to 10.83.20.70
DEBUG --- ssh cionnection to host 10.83.20.70 established
DEBUG --- connection 10.83.20.70 named r3 established
DEBUG --- doTestOSPF : at 10.83.20.70
FLOW -- conf not exist, doing change
DEBUG --- doJob at 10.83.20.70
DEBUG --- doCompare at 10.83.20.70
DEBUG --- starting to do config changes at 10.83.20.70
DEBUG --- doLoad at 10.83.20.70
DEBUG --- commit check at 10.83.20.70
DEBUG --- doCommitCheck at 10.83.20.70
DEBUG --- commiting changes at 10.83.20.70
DEBUG --- doCommit at 10.83.20.70
FLOW -- done job at 10.83.20.70
FLOW -- going sleep at 10.83.20.70
FLOW -- checking job status 10.83.20.70
DEBUG --- getting ssh connection to 10.83.20.70
DEBUG --- ssh cionnection to host 10.83.20.70 established
DEBUG --- connection 10.83.20.70 named r3 established
DEBUG --- doTestOSPF : at 10.83.20.70
FLOW -- commiting the configuration at 10.83.20.70
DEBUG --- doCommit at 10.83.20.70
FLOW -- configuration commited at 10.83.20.70
FLOW -- ************************************
FLOW -- checking 10.83.20.71
DEBUG --- getting ssh connection to 10.83.20.71
DEBUG --- ssh cionnection to host 10.83.20.71 established
DEBUG --- connection 10.83.20.71 named r4 established
DEBUG --- doTestOSPF : at 10.83.20.71
FLOW -- conf not exist, doing change
DEBUG --- doJob at 10.83.20.71
DEBUG --- doCompare at 10.83.20.71
DEBUG --- starting to do config changes at 10.83.20.71
DEBUG --- doLoad at 10.83.20.71
DEBUG --- commit check at 10.83.20.71
DEBUG --- doCommitCheck at 10.83.20.71
DEBUG --- commiting changes at 10.83.20.71
DEBUG --- doCommit at 10.83.20.71
FLOW -- done job at 10.83.20.71
FLOW -- going sleep at 10.83.20.71
FLOW -- checking job status 10.83.20.71
DEBUG --- getting ssh connection to 10.83.20.71
DEBUG --- ssh cionnection to host 10.83.20.71 established
DEBUG --- connection 10.83.20.71 named r4 established
DEBUG --- doTestOSPF : at 10.83.20.71
FLOW -- commiting the configuration at 10.83.20.71
DEBUG --- doCommit at 10.83.20.71
FLOW -- configuration commited at 10.83.20.71
{'10.83.20.70': {'status': 'done'}, '10.83.20.71': {'status': 'done'}, '10.83.20.67': {'status': 'done'}, '10.83.20.66': {'status': 'done'}, '10.83.20.69': {'status': 'done'}, '10.83.20.68': {'status': 'done'}}
>>>
- рдкреВрд░рд╛ рдЖрдИрдПрд╕-рдЖрдИрдПрд╕ рд░реВрдЯрд┐рдВрдЧ рдкреНрд░реЛрдЯреЛрдХреЙрд▓ - рд╣реЗрдВрд╕ рдЧреНрд░реЗрдбрд▓рд░, рд╡рд╛рд▓реНрдЯрд░ рдЧреЛрд░рд╛рд▓реНрд╕реНрдХреА
- рдУрдПрд╕рдкреАрдПрдл; рдПрдХ рдЗрдВрдЯрд░рдиреЗрдЯ рд░реВрдЯрд┐рдВрдЧ рдкреНрд░реЛрдЯреЛрдХреЙрд▓ рдХреЗ рдПрдирд╛рдЯреЙрдореА - рдЬреЙрди рдЯреАред рдореЛрдп
- рдиреЗрдЯрд╡рд░реНрдХ рд╡рд┐рд▓рдп рдФрд░ рдорд╛рдЗрдЧреНрд░реЗрд╢рди: рдЬреВрдиреЛрд╕ рдбрд┐рдЬрд╝рд╛рдЗрди рдФрд░ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди - рдЧреЛрдВрдЬрд╝рд╛рд▓реЛ рдЧреЛрдореЗрдЬрд╝ рд╣реЗрд░реЗрд░реЛ, рдЬрди рдПрдВрдЯреЛрди рдмрд░реНрдиреЛ рд╡рд╛рди рд╡реЗрди
- OSPF рдмрд╣реБ-рдХреНрд╖реЗрддреНрд░ рдЖрд╕рдиреНрди - tools.ietf.org/html/rfc5185