diff --git a/Days/Images/Day27_Networking1.png b/Days/Images/Day27_Networking1.png new file mode 100644 index 0000000..dc69ce9 Binary files /dev/null and b/Days/Images/Day27_Networking1.png differ diff --git a/Days/Images/Day27_Networking10.png b/Days/Images/Day27_Networking10.png new file mode 100644 index 0000000..a47e806 Binary files /dev/null and b/Days/Images/Day27_Networking10.png differ diff --git a/Days/Images/Day27_Networking2.png b/Days/Images/Day27_Networking2.png new file mode 100644 index 0000000..10c2802 Binary files /dev/null and b/Days/Images/Day27_Networking2.png differ diff --git a/Days/Images/Day27_Networking3.png b/Days/Images/Day27_Networking3.png new file mode 100644 index 0000000..12e4504 Binary files /dev/null and b/Days/Images/Day27_Networking3.png differ diff --git a/Days/Images/Day27_Networking4.png b/Days/Images/Day27_Networking4.png new file mode 100644 index 0000000..1c6e510 Binary files /dev/null and b/Days/Images/Day27_Networking4.png differ diff --git a/Days/Images/Day27_Networking5.png b/Days/Images/Day27_Networking5.png new file mode 100644 index 0000000..d970586 Binary files /dev/null and b/Days/Images/Day27_Networking5.png differ diff --git a/Days/Images/Day27_Networking6.png b/Days/Images/Day27_Networking6.png new file mode 100644 index 0000000..781a242 Binary files /dev/null and b/Days/Images/Day27_Networking6.png differ diff --git a/Days/Images/Day27_Networking7.png b/Days/Images/Day27_Networking7.png new file mode 100644 index 0000000..80b0a72 Binary files /dev/null and b/Days/Images/Day27_Networking7.png differ diff --git a/Days/Images/Day27_Networking8.png b/Days/Images/Day27_Networking8.png new file mode 100644 index 0000000..bc655c3 Binary files /dev/null and b/Days/Images/Day27_Networking8.png differ diff --git a/Days/Images/Day27_Networking9.png b/Days/Images/Day27_Networking9.png new file mode 100644 index 0000000..3a6be76 Binary files /dev/null and b/Days/Images/Day27_Networking9.png differ diff --git a/Days/Networking/192.168.169.115_20220127_145846 b/Days/Networking/192.168.169.115_20220127_145846 new file mode 100644 index 0000000..76ada05 --- /dev/null +++ b/Days/Networking/192.168.169.115_20220127_145846 @@ -0,0 +1,197 @@ + +************************************************************************** +* IOSv is strictly limited to use for evaluation, demonstration and IOS * +* education. IOSv is provided as-is and is not supported by Cisco's * +* Technical Advisory Center. Any use or disclosure, in whole or in part, * +* of the IOSv Software or Documentation to any third party for any * +* purposes is expressly prohibited except as otherwise authorized by * +* Cisco in writing. * +************************************************************************** +R1>enable +Password: +R1#term len 0 +R1#sh run +Building configuration... + + +Current configuration : 3846 bytes +! +! Last configuration change at 09:18:04 UTC Thu Jan 27 2022 +! +version 15.6 +service timestamps debug datetime msec +service timestamps log datetime msec +no service password-encryption +! +hostname R1 +! +boot-start-marker +boot-end-marker +! +! +enable password access123 +! +aaa new-model +! +! +aaa authentication login default local +aaa authorization exec default local none +! +! +! +! +! +aaa session-id unique +ethernet lmi ce +! +! +! +mmi polling-interval 60 +no mmi auto-configure +no mmi pvc +mmi snmp-timeout 180 +! +! +! +! +! +! +! +! +! +! +! +no ip domain lookup +ip domain name 90DaysOfDevOps.net +ip cef +no ipv6 cef +! +multilink bundle-name authenticated +! +! +! +! +username admin password 0 access123 +! +redundancy +! +lldp run +! +! +! +! +! +! +! +! +! +! +! +! +! +! +interface GigabitEthernet0/0 + ip address 10.10.88.110 255.255.255.0 + duplex auto + speed auto + media-type rj45 +! +interface GigabitEthernet0/1 + no ip address + shutdown + duplex auto + speed auto + media-type rj45 +! +interface GigabitEthernet0/2 + no ip address + shutdown + duplex auto + speed auto + media-type rj45 +! +interface GigabitEthernet0/3 + ip address dhcp + duplex auto + speed auto + media-type rj45 +! +ip forward-protocol nd +! +! +no ip http server +no ip http secure-server +ip ssh version 2 +ip scp server enable +! +logging history debugging +logging snmp-trap emergencies +logging snmp-trap alerts +logging snmp-trap critical +logging snmp-trap errors +logging snmp-trap warnings +logging snmp-trap notifications +logging snmp-trap informational +logging snmp-trap debugging +! +snmp-server community public RW +snmp-server trap link ietf +snmp-server chassis-id +snmp-server enable traps snmp linkdown linkup +snmp-server enable traps syslog +snmp-server manager +! +! +! +! +control-plane +! +banner exec ^C +************************************************************************** +* IOSv is strictly limited to use for evaluation, demonstration and IOS * +* education. IOSv is provided as-is and is not supported by Cisco's * +* Technical Advisory Center. Any use or disclosure, in whole or in part, * +* of the IOSv Software or Documentation to any third party for any * +* purposes is expressly prohibited except as otherwise authorized by * +* Cisco in writing. * +**************************************************************************^C +banner incoming ^C +************************************************************************** +* IOSv is strictly limited to use for evaluation, demonstration and IOS * +* education. IOSv is provided as-is and is not supported by Cisco's * +* Technical Advisory Center. Any use or disclosure, in whole or in part, * +* of the IOSv Software or Documentation to any third party for any * +* purposes is expressly prohibited except as otherwise authorized by * +* Cisco in writing. * +**************************************************************************^C +banner login ^C +************************************************************************** +* IOSv is strictly limited to use for evaluation, demonstration and IOS * +* education. IOSv is provided as-is and is not supported by Cisco's * +* Technical Advisory Center. Any use or disclosure, in whole or in part, * +* of the IOSv Software or Documentation to any third party for any * +* purposes is expressly prohibited except as otherwise authorized by * +* Cisco in writing. * +**************************************************************************^C +! +line con 0 + exec-timeout 0 0 + privilege level 15 + logging synchronous +line aux 0 +line vty 0 4 + exec-timeout 0 0 + privilege level 15 + logging synchronous + transport input all +line vty 5 15 + exec-timeout 0 0 + privilege level 15 + logging synchronous + transport input all +! +no scheduler allocate +! +end + +R1# \ No newline at end of file diff --git a/Days/Networking/192.168.169.125_20220127_145846 b/Days/Networking/192.168.169.125_20220127_145846 new file mode 100644 index 0000000..1db869e --- /dev/null +++ b/Days/Networking/192.168.169.125_20220127_145846 @@ -0,0 +1,193 @@ + +************************************************************************** +* IOSv is strictly limited to use for evaluation, demonstration and IOS * +* education. IOSv is provided as-is and is not supported by Cisco's * +* Technical Advisory Center. Any use or disclosure, in whole or in part, * +* of the IOSv Software or Documentation to any third party for any * +* purposes is expressly prohibited except as otherwise authorized by * +* Cisco in writing. * +************************************************************************** +SW3>enable +Password: +SW3#term len 0 +SW3#sh run +Building configuration... + + +Current configuration : 3939 bytes +! +! Last configuration change at 09:22:10 UTC Thu Jan 27 2022 +! +version 15.2 +service timestamps debug datetime msec +service timestamps log datetime msec +no service password-encryption +service compress-config +! +hostname SW3 +! +boot-start-marker +boot-end-marker +! +! +enable password access123 +! +username admin password 0 access123 +aaa new-model +! +! +aaa authentication login default local +aaa authorization exec default local none +! +! +! +! +! +! +aaa session-id unique +! +! +! +! +! +vtp mode transparent +! +! +! +no ip domain-lookup +ip domain-name 90DaysOfDevOps.net +ip cef +no ipv6 cef +! +! +! +spanning-tree mode rapid-pvst +spanning-tree extend system-id +! +vlan internal allocation policy ascending +lldp run +! +! +! +! +! +! +! +! +! +! +! +! +! +! +interface GigabitEthernet0/1 + media-type rj45 + negotiation auto +! +interface GigabitEthernet0/2 + media-type rj45 + negotiation auto +! +interface GigabitEthernet0/3 + media-type rj45 + negotiation auto +! +interface GigabitEthernet0/0 + no switchport + ip address dhcp + negotiation auto +! +interface GigabitEthernet1/0 + media-type rj45 + negotiation auto +! +interface GigabitEthernet1/1 + media-type rj45 + negotiation auto +! +interface GigabitEthernet1/2 + media-type rj45 + negotiation auto +! +interface GigabitEthernet1/3 + media-type rj45 + negotiation auto +! +ip forward-protocol nd +! +no ip http server +no ip http secure-server +! +ip ssh version 2 +ip scp server enable +! +! +logging history debugging +logging snmp-trap emergencies +logging snmp-trap alerts +logging snmp-trap critical +logging snmp-trap errors +logging snmp-trap warnings +logging snmp-trap notifications +logging snmp-trap informational +logging snmp-trap debugging +! +! +snmp-server community public RW +snmp-server trap link ietf +snmp-server enable traps snmp linkdown linkup +snmp-server enable traps syslog +snmp-server manager +! +! +! +control-plane +! +banner exec ^C +************************************************************************** +* IOSv is strictly limited to use for evaluation, demonstration and IOS * +* education. IOSv is provided as-is and is not supported by Cisco's * +* Technical Advisory Center. Any use or disclosure, in whole or in part, * +* of the IOSv Software or Documentation to any third party for any * +* purposes is expressly prohibited except as otherwise authorized by * +* Cisco in writing. * +**************************************************************************^C +banner incoming ^C +************************************************************************** +* IOSv is strictly limited to use for evaluation, demonstration and IOS * +* education. IOSv is provided as-is and is not supported by Cisco's * +* Technical Advisory Center. Any use or disclosure, in whole or in part, * +* of the IOSv Software or Documentation to any third party for any * +* purposes is expressly prohibited except as otherwise authorized by * +* Cisco in writing. * +**************************************************************************^C +banner login ^C +************************************************************************** +* IOSv is strictly limited to use for evaluation, demonstration and IOS * +* education. IOSv is provided as-is and is not supported by Cisco's * +* Technical Advisory Center. Any use or disclosure, in whole or in part, * +* of the IOSv Software or Documentation to any third party for any * +* purposes is expressly prohibited except as otherwise authorized by * +* Cisco in writing. * +**************************************************************************^C +! +line con 0 + exec-timeout 0 0 + privilege level 15 + logging synchronous +line aux 0 +line vty 0 4 + exec-timeout 0 0 + privilege level 15 + logging synchronous + transport input all +line vty 5 15 + exec-timeout 0 0 + privilege level 15 + logging synchronous + transport input all +! +! +end + +SW3# \ No newline at end of file diff --git a/Days/Networking/192.168.169.178_20220127_145846 b/Days/Networking/192.168.169.178_20220127_145846 new file mode 100644 index 0000000..2c1a71a --- /dev/null +++ b/Days/Networking/192.168.169.178_20220127_145846 @@ -0,0 +1,194 @@ + +************************************************************************** +* IOSv is strictly limited to use for evaluation, demonstration and IOS * +* education. IOSv is provided as-is and is not supported by Cisco's * +* Technical Advisory Center. Any use or disclosure, in whole or in part, * +* of the IOSv Software or Documentation to any third party for any * +* purposes is expressly prohibited except as otherwise authorized by * +* Cisco in writing. * +************************************************************************** +SW1>enable +Password: +SW1#term len 0 +SW1#sh run +Building configuration... + + +Current configuration : 3976 bytes +! +! Last configuration change at 14:04:42 UTC Thu Jan 27 2022 +! +version 15.2 +service timestamps debug datetime msec +service timestamps log datetime msec +no service password-encryption +service compress-config +! +hostname SW1 +! +boot-start-marker +boot-end-marker +! +! +enable password access123 +! +username admin password 0 access123 +aaa new-model +! +! +aaa authentication login default local +aaa authorization exec default local none +! +! +! +! +! +! +aaa session-id unique +! +! +! +! +! +vtp mode transparent +! +! +! +no ip domain-lookup +ip domain-name 90DaysOfDevOps.net +ip cef +no ipv6 cef +! +! +! +spanning-tree mode rapid-pvst +spanning-tree extend system-id +! +vlan internal allocation policy ascending +lldp run +! +! +! +! +! +! +! +! +! +! +! +! +! +! +interface GigabitEthernet0/1 + media-type rj45 + negotiation auto +! +interface GigabitEthernet0/2 + media-type rj45 + negotiation auto +! +interface GigabitEthernet0/3 + media-type rj45 + negotiation auto +! +interface GigabitEthernet0/0 + no switchport + ip address dhcp + negotiation auto +! +interface GigabitEthernet1/0 + media-type rj45 + negotiation auto +! +interface GigabitEthernet1/2 + media-type rj45 + negotiation auto +! +interface GigabitEthernet1/3 + media-type rj45 + negotiation auto +! +interface GigabitEthernet1/1 + no switchport + ip address 10.10.88.111 255.255.255.0 + negotiation auto +! +ip forward-protocol nd +! +no ip http server +no ip http secure-server +! +ip ssh version 2 +ip scp server enable +! +! +logging history debugging +logging snmp-trap emergencies +logging snmp-trap alerts +logging snmp-trap critical +logging snmp-trap errors +logging snmp-trap warnings +logging snmp-trap notifications +logging snmp-trap informational +logging snmp-trap debugging +! +! +snmp-server community public RW +snmp-server trap link ietf +snmp-server enable traps snmp linkdown linkup +snmp-server enable traps syslog +snmp-server manager +! +! +! +control-plane +! +banner exec ^C +************************************************************************** +* IOSv is strictly limited to use for evaluation, demonstration and IOS * +* education. IOSv is provided as-is and is not supported by Cisco's * +* Technical Advisory Center. Any use or disclosure, in whole or in part, * +* of the IOSv Software or Documentation to any third party for any * +* purposes is expressly prohibited except as otherwise authorized by * +* Cisco in writing. * +**************************************************************************^C +banner incoming ^C +************************************************************************** +* IOSv is strictly limited to use for evaluation, demonstration and IOS * +* education. IOSv is provided as-is and is not supported by Cisco's * +* Technical Advisory Center. Any use or disclosure, in whole or in part, * +* of the IOSv Software or Documentation to any third party for any * +* purposes is expressly prohibited except as otherwise authorized by * +* Cisco in writing. * +**************************************************************************^C +banner login ^C +************************************************************************** +* IOSv is strictly limited to use for evaluation, demonstration and IOS * +* education. IOSv is provided as-is and is not supported by Cisco's * +* Technical Advisory Center. Any use or disclosure, in whole or in part, * +* of the IOSv Software or Documentation to any third party for any * +* purposes is expressly prohibited except as otherwise authorized by * +* Cisco in writing. * +**************************************************************************^C +! +line con 0 + exec-timeout 0 0 + privilege level 15 + logging synchronous +line aux 0 +line vty 0 4 + exec-timeout 0 0 + privilege level 15 + logging synchronous + transport input all +line vty 5 15 + exec-timeout 0 0 + privilege level 15 + logging synchronous + transport input all +! +! +end + +SW1# \ No newline at end of file diff --git a/Days/Networking/192.168.169.193_20220127_145846 b/Days/Networking/192.168.169.193_20220127_145846 new file mode 100644 index 0000000..3149604 --- /dev/null +++ b/Days/Networking/192.168.169.193_20220127_145846 @@ -0,0 +1,199 @@ + +************************************************************************** +* IOSv is strictly limited to use for evaluation, demonstration and IOS * +* education. IOSv is provided as-is and is not supported by Cisco's * +* Technical Advisory Center. Any use or disclosure, in whole or in part, * +* of the IOSv Software or Documentation to any third party for any * +* purposes is expressly prohibited except as otherwise authorized by * +* Cisco in writing. * +************************************************************************** +SW2>enable +Password: +SW2#term len 0 +SW2#sh run +Building configuration... + + +Current configuration : 4140 bytes +! +! Last configuration change at 14:17:13 UTC Thu Jan 27 2022 by admin +! +version 15.2 +service timestamps debug datetime msec +service timestamps log datetime msec +no service password-encryption +service compress-config +! +hostname SW2 +! +boot-start-marker +boot-end-marker +! +! +enable password access123 +! +username admin password 0 access123 +aaa new-model +! +! +aaa authentication login default local +aaa authorization exec default local none +! +! +! +! +! +! +aaa session-id unique +! +! +! +! +! +vtp mode transparent +! +! +! +no ip domain-lookup +ip domain-name 90DaysOfDevOps.net +ip cef +no ipv6 cef +! +! +! +spanning-tree mode rapid-pvst +spanning-tree extend system-id +! +vlan internal allocation policy ascending +lldp run +! +! +! +! +! +! +! +! +! +! +! +! +! +! +interface GigabitEthernet0/1 + switchport trunk allowed vlan 1,2 + switchport trunk encapsulation dot1q + switchport mode trunk + media-type rj45 + negotiation auto +! +interface GigabitEthernet0/2 + switchport trunk allowed vlan 1,2 + switchport trunk encapsulation dot1q + switchport mode trunk + media-type rj45 + negotiation auto +! +interface GigabitEthernet0/3 + media-type rj45 + negotiation auto +! +interface GigabitEthernet0/0 + no switchport + ip address dhcp + negotiation auto +! +interface GigabitEthernet1/0 + media-type rj45 + negotiation auto +! +interface GigabitEthernet1/1 + media-type rj45 + negotiation auto +! +interface GigabitEthernet1/2 + media-type rj45 + negotiation auto +! +interface GigabitEthernet1/3 + media-type rj45 + negotiation auto +! +ip forward-protocol nd +! +no ip http server +no ip http secure-server +! +ip ssh version 2 +ip scp server enable +! +! +logging history debugging +logging snmp-trap emergencies +logging snmp-trap alerts +logging snmp-trap critical +logging snmp-trap errors +logging snmp-trap warnings +logging snmp-trap notifications +logging snmp-trap informational +logging snmp-trap debugging +! +! +snmp-server community public RW +snmp-server trap link ietf +snmp-server enable traps snmp linkdown linkup +snmp-server enable traps syslog +snmp-server manager +! +! +! +control-plane +! +banner exec ^C +************************************************************************** +* IOSv is strictly limited to use for evaluation, demonstration and IOS * +* education. IOSv is provided as-is and is not supported by Cisco's * +* Technical Advisory Center. Any use or disclosure, in whole or in part, * +* of the IOSv Software or Documentation to any third party for any * +* purposes is expressly prohibited except as otherwise authorized by * +* Cisco in writing. * +**************************************************************************^C +banner incoming ^C +************************************************************************** +* IOSv is strictly limited to use for evaluation, demonstration and IOS * +* education. IOSv is provided as-is and is not supported by Cisco's * +* Technical Advisory Center. Any use or disclosure, in whole or in part, * +* of the IOSv Software or Documentation to any third party for any * +* purposes is expressly prohibited except as otherwise authorized by * +* Cisco in writing. * +**************************************************************************^C +banner login ^C +************************************************************************** +* IOSv is strictly limited to use for evaluation, demonstration and IOS * +* education. IOSv is provided as-is and is not supported by Cisco's * +* Technical Advisory Center. Any use or disclosure, in whole or in part, * +* of the IOSv Software or Documentation to any third party for any * +* purposes is expressly prohibited except as otherwise authorized by * +* Cisco in writing. * +**************************************************************************^C +! +line con 0 + exec-timeout 0 0 + privilege level 15 + logging synchronous +line aux 0 +line vty 0 4 + exec-timeout 0 0 + privilege level 15 + logging synchronous + transport input all +line vty 5 15 + exec-timeout 0 0 + privilege level 15 + logging synchronous + transport input all +! +! +end + +SW2# \ No newline at end of file diff --git a/Days/Networking/192.168.169.197_20220127_145846 b/Days/Networking/192.168.169.197_20220127_145846 new file mode 100644 index 0000000..f5c8f22 --- /dev/null +++ b/Days/Networking/192.168.169.197_20220127_145846 @@ -0,0 +1,195 @@ + +************************************************************************** +* IOSv is strictly limited to use for evaluation, demonstration and IOS * +* education. IOSv is provided as-is and is not supported by Cisco's * +* Technical Advisory Center. Any use or disclosure, in whole or in part, * +* of the IOSv Software or Documentation to any third party for any * +* purposes is expressly prohibited except as otherwise authorized by * +* Cisco in writing. * +************************************************************************** +SW4>enable +Password: +SW4#term len 0 +SW4#sh run +Building configuration... + + +Current configuration : 3982 bytes +! +! Last configuration change at 09:22:39 UTC Thu Jan 27 2022 +! +version 15.2 +service timestamps debug datetime msec +service timestamps log datetime msec +no service password-encryption +service compress-config +! +hostname SW4 +! +boot-start-marker +boot-end-marker +! +! +enable password access123 +! +username admin password 0 access123 +aaa new-model +! +! +aaa authentication login default local +aaa authorization exec default local none +! +! +! +! +! +! +aaa session-id unique +! +! +! +! +! +vtp mode transparent +! +! +! +no ip domain-lookup +ip domain-name 90DaysOfDevOps.net +ip cef +no ipv6 cef +! +! +! +spanning-tree mode rapid-pvst +spanning-tree extend system-id +! +vlan internal allocation policy ascending +! +vlan 10,20,30,40,50,60,70,80,90,100,200 +lldp run +! +! +! +! +! +! +! +! +! +! +! +! +! +! +interface GigabitEthernet0/1 + media-type rj45 + negotiation auto +! +interface GigabitEthernet0/2 + media-type rj45 + negotiation auto +! +interface GigabitEthernet0/3 + media-type rj45 + negotiation auto +! +interface GigabitEthernet0/0 + no switchport + ip address dhcp + negotiation auto +! +interface GigabitEthernet1/0 + media-type rj45 + negotiation auto +! +interface GigabitEthernet1/1 + media-type rj45 + negotiation auto +! +interface GigabitEthernet1/2 + media-type rj45 + negotiation auto +! +interface GigabitEthernet1/3 + media-type rj45 + negotiation auto +! +ip forward-protocol nd +! +no ip http server +no ip http secure-server +! +ip ssh version 2 +ip scp server enable +! +! +logging history debugging +logging snmp-trap emergencies +logging snmp-trap alerts +logging snmp-trap critical +logging snmp-trap errors +logging snmp-trap warnings +logging snmp-trap notifications +logging snmp-trap informational +logging snmp-trap debugging +! +! +snmp-server community public RW +snmp-server trap link ietf +snmp-server enable traps snmp linkdown linkup +snmp-server enable traps syslog +snmp-server manager +! +! +! +control-plane +! +banner exec ^C +************************************************************************** +* IOSv is strictly limited to use for evaluation, demonstration and IOS * +* education. IOSv is provided as-is and is not supported by Cisco's * +* Technical Advisory Center. Any use or disclosure, in whole or in part, * +* of the IOSv Software or Documentation to any third party for any * +* purposes is expressly prohibited except as otherwise authorized by * +* Cisco in writing. * +**************************************************************************^C +banner incoming ^C +************************************************************************** +* IOSv is strictly limited to use for evaluation, demonstration and IOS * +* education. IOSv is provided as-is and is not supported by Cisco's * +* Technical Advisory Center. Any use or disclosure, in whole or in part, * +* of the IOSv Software or Documentation to any third party for any * +* purposes is expressly prohibited except as otherwise authorized by * +* Cisco in writing. * +**************************************************************************^C +banner login ^C +************************************************************************** +* IOSv is strictly limited to use for evaluation, demonstration and IOS * +* education. IOSv is provided as-is and is not supported by Cisco's * +* Technical Advisory Center. Any use or disclosure, in whole or in part, * +* of the IOSv Software or Documentation to any third party for any * +* purposes is expressly prohibited except as otherwise authorized by * +* Cisco in writing. * +**************************************************************************^C +! +line con 0 + exec-timeout 0 0 + privilege level 15 + logging synchronous +line aux 0 +line vty 0 4 + exec-timeout 0 0 + privilege level 15 + logging synchronous + transport input all +line vty 5 15 + exec-timeout 0 0 + privilege level 15 + logging synchronous + transport input all +! +! +end + +SW4# \ No newline at end of file diff --git a/Days/Networking/R1 b/Days/Networking/R1 index 20d250c..c0b5e80 100644 --- a/Days/Networking/R1 +++ b/Days/Networking/R1 @@ -17,7 +17,7 @@ no ip domain-lookup lldp run -ip domain-name PythonTraining.net +ip domain-name 90DaysOfDevOps.net ip ssh version 2 ip scp server enable crypto key generate rsa general-keys modulus 1024 diff --git a/Days/Networking/SW1 b/Days/Networking/SW1 index 0af92b1..9d81428 100644 --- a/Days/Networking/SW1 +++ b/Days/Networking/SW1 @@ -20,7 +20,7 @@ enable password access123 username admin password access123 no ip domain-lookup -ip domain-name PythonTraining.net +ip domain-name 90DaysOfDevOps.net ip ssh version 2 ip scp server enable crypto key generate rsa general-keys modulus 1024 diff --git a/Days/Networking/SW2 b/Days/Networking/SW2 index 8678f62..5eee50f 100644 --- a/Days/Networking/SW2 +++ b/Days/Networking/SW2 @@ -20,7 +20,7 @@ enable password access123 username admin password access123 no ip domain-lookup -ip domain-name PythonTraining.net +ip domain-name 90DaysOfDevOps.net ip ssh version 2 ip scp server enable crypto key generate rsa general-keys modulus 1024 diff --git a/Days/Networking/SW3 b/Days/Networking/SW3 index 4231f53..397ef9b 100644 --- a/Days/Networking/SW3 +++ b/Days/Networking/SW3 @@ -20,7 +20,7 @@ enable password access123 username admin password access123 no ip domain-lookup -ip domain-name PythonTraining.net +ip domain-name 90DaysOfDevOps.net ip ssh version 2 ip scp server enable crypto key generate rsa general-keys modulus 1024 diff --git a/Days/Networking/SW4 b/Days/Networking/SW4 index 79f744c..79b39f3 100644 --- a/Days/Networking/SW4 +++ b/Days/Networking/SW4 @@ -21,7 +21,7 @@ enable password access123 username admin password access123 no ip domain-lookup -ip domain-name PythonTraining.net +ip domain-name 90DaysOfDevOps.net ip ssh version 2 ip scp server enable crypto key generate rsa general-keys modulus 1024 diff --git a/Days/Networking/backup.py b/Days/Networking/backup.py new file mode 100644 index 0000000..0db70dc --- /dev/null +++ b/Days/Networking/backup.py @@ -0,0 +1,49 @@ +import sys +import time +import paramiko +import os +import cmd +import datetime + +now = datetime.datetime.now() +dt_string = now.strftime("%d/%m/%Y %H:%M:%S") +print("Your backup has started at", dt_string) +tic = time.perf_counter() + +#user = input("Enter username:") +#password = input("Enter Paswd:") +#enable_password = input("Enter enable pswd:") +user = "admin" +password = "access123" +enable_password = "access123" + +port=22 +f0 = open('backup.txt') +for ip in f0.readlines(): + ip = ip.strip() + filename_prefix ='/Users/shambhu/Documents' + ip + ssh = paramiko.SSHClient() + ssh.set_missing_host_key_policy(paramiko.AutoAddPolicy()) + ssh.connect(ip,port, user, password, look_for_keys=False) + chan = ssh.invoke_shell() + time.sleep(2) + chan.send('enable\n') + chan.send(enable_password +'\n') + time.sleep(1) + chan.send('term len 0\n') + time.sleep(1) + chan.send('sh run\n') + time.sleep(20) + output = chan.recv(999999) + filename = "%s_%.2i%.2i%i_%.2i%.2i%.2i" % (ip,now.year,now.month,now.day,now.hour,now.minute,now.second) + f1 = open(filename, 'a') + f1.write(output.decode("utf-8") ) + f1.close() + ssh.close() + f0.close() +toc = time.perf_counter() +print("Congratulations You Have Backed Up Your 90DaysOfDevOps Lab") +print(f"Your backup duration was {toc - tic:0.4f} seconds") + +dt_string = now.strftime("%d/%m/%Y %H:%M:%S") +print("Your backup completed at", dt_string) diff --git a/Days/Networking/backup.txt b/Days/Networking/backup.txt new file mode 100644 index 0000000..01ce670 --- /dev/null +++ b/Days/Networking/backup.txt @@ -0,0 +1,5 @@ +192.168.169.115 +192.168.169.178 +192.168.169.193 +192.168.169.125 +192.168.169.197 \ No newline at end of file diff --git a/Days/Networking/netmiko_con_multi.py b/Days/Networking/netmiko_con_multi.py new file mode 100644 index 0000000..ead5306 --- /dev/null +++ b/Days/Networking/netmiko_con_multi.py @@ -0,0 +1,46 @@ +#!/usr/bin/env python +from netmiko import ConnectHandler +from getpass import getpass + +#password = getpass() + +R1 = { + "device_type": "cisco_ios", + "host": "192.168.169.115", + "username": "admin", + "password": "access123", +} + +SW1 = { + "device_type": "cisco_ios", + "host": "192.168.169.178", + "username": "admin", + "password": "access123", +} + +SW2 = { + "device_type": "cisco_ios", + "host": "192.168.169.193", + "username": "admin", + "password": "access123", +} + +SW3 = { + "device_type": "cisco_ios", + "host": "192.168.169.125", + "username": "admin", + "password": "access123", +} + +SW4 = { + "device_type": "cisco_ios", + "host": "192.168.169.197", + "username": "admin", + "password": "access123", +} +command = "show ip int brief" +for device in (R1, SW1, SW2, SW3, SW4): + net_connect = ConnectHandler(**device) + print(net_connect.find_prompt()) + print(net_connect.send_command(command)) + net_connect.disconnect() \ No newline at end of file diff --git a/Days/Networking/netmiko_con_multi_vlan.py b/Days/Networking/netmiko_con_multi_vlan.py new file mode 100644 index 0000000..e64a164 --- /dev/null +++ b/Days/Networking/netmiko_con_multi_vlan.py @@ -0,0 +1,39 @@ +#!/usr/bin/env python +from netmiko import ConnectHandler +from getpass import getpass + +#password = getpass() + +SW1 = { + "device_type": "cisco_ios", + "host": "192.168.169.178", + "username": "admin", + "password": "access123", +} + +SW2 = { + "device_type": "cisco_ios", + "host": "192.168.169.193", + "username": "admin", + "password": "access123", +} + +SW3 = { + "device_type": "cisco_ios", + "host": "192.168.169.125", + "username": "admin", + "password": "access123", +} + +SW4 = { + "device_type": "cisco_ios", + "host": "192.168.169.197", + "username": "admin", + "password": "access123", +} +command = "show int trunk" +for device in (SW1, SW2, SW3, SW4): + net_connect = ConnectHandler(**device) + print(net_connect.find_prompt()) + print(net_connect.send_command(command)) + net_connect.disconnect() \ No newline at end of file diff --git a/Days/Networking/netmiko_sendchange.py b/Days/Networking/netmiko_sendchange.py new file mode 100644 index 0000000..cfb5448 --- /dev/null +++ b/Days/Networking/netmiko_sendchange.py @@ -0,0 +1,19 @@ +from netmiko import ConnectHandler + +SW2 = { + "device_type": "cisco_ios", + "host": "192.168.169.193", + "username": "admin", + "password": "access123", + "secret": "access123", +} + +core_sw_config = ["int range gig0/1 - 2", "switchport trunk encapsulation dot1q", + "switchport mode trunk", "switchport trunk allowed vlan 1,2"] + +print("########## Connecting to Device {0} ############".format(SW2)) +net_connect = ConnectHandler(**SW2) +net_connect.enable() + +print("***** Sending Configuration to Device *****") +net_connect.send_config_set(core_sw_config) diff --git a/Days/Networking/paramiko_show.py b/Days/Networking/paramiko_show.py new file mode 100644 index 0000000..63dba74 --- /dev/null +++ b/Days/Networking/paramiko_show.py @@ -0,0 +1,22 @@ +#!/usr/bin/python + +import paramiko +import time + +Channel = paramiko.SSHClient() + +Channel.set_missing_host_key_policy(paramiko.AutoAddPolicy()) +Channel.connect(hostname="192.168.169.115", username='admin', password='access123', look_for_keys=False, allow_agent=False) + +shell = Channel.invoke_shell() # This will set interactive shell +shell.send("enable\n") +shell.send("access123\n") +shell.send("terminal length 0\n") +shell.send("show ip int b\n") +shell.send("show arp \n") +time.sleep(2) + +print(shell.recv(5000)) +# This will receive everything from the buffer, if you need to receive specifc output, the you should execute the command +# and immediately receive the output before executing the 2nd command, Also you should sleep a little +Channel.close() \ No newline at end of file diff --git a/Days/day27.md b/Days/day27.md index e69de29..b2d8689 100644 --- a/Days/day27.md +++ b/Days/day27.md @@ -0,0 +1,129 @@ +## Getting Hands-On with Python & Network + +In this final section of Networking fundamentals, we are going to cover some automation tasks and tools with our lab environment created on [Day 26](day26.md) + +We will be using an SSH tunnel to connect to our devices from our client vs telnet. The SSH tunnel created between client and device is encrypted. We also covered SSH in the Linux section on [Day 18](day18.md) + +## Access our virtual emulated environment + +For us to interact with our switches we either need a workstation inside the EVE-NG network and you can deploy a Linux box there with Python installed to perform your automation ([Resource for setting up Linux inside EVE-NG](https://www.youtube.com/watch?v=3Qstk3zngrY)) or you can do something like me and define a cloud for access from your workstation. + +![](Images/Day27_Networking3.png) + +To do this, we have right-clicked on our canvas and we have selected network and then selected "Management(Cloud0)" this will bridge out to our home network. + +![](Images/Day27_Networking4.png) + +However, we do not have anything inside this network so we need to add connections from the new network to each of our devices. (My networking knowledge needs more attention and I feel that you could just do this next step to the top router and then have connectivity to the rest of the network through this one cable?) + +I have then logged on to each of our devices and I have run through the following commands for the interfaces applicable for where the cloud comes in. + +``` +enable +config t +int gi0/0 +ip add dhcp +no sh +exit +exit +sh ip int br +``` + +The final step gives us the DHCP address from our home network. My device network list is as follows: + +| Node | IP Address | Home Network IP | +| ----------- | ----------- | ----------- | +| Router | 10.10.88.110| 192.168.169.115 | +| Switch1 | 10.10.88.111| 192.168.169.178 | +| Switch2 | 10.10.88.112| 192.168.169.193 | +| Switch3 | 10.10.88.113| 192.168.169.125 | +| Switch4 | 10.10.88.114| 192.168.169.197 | + +### SSH to a network device + +With the above in place, we can now connect to our devices on our home network using our workstation. I am using Putty but also have access to other terminals such as git bash that give me the ability to SSH to our devices. + +Below you can see we have an SSH connection to our router device. (R1) + +![](Images/Day27_Networking5.png) + +### Using Python to gather information from our devices + +The first example of how we can leverage Python is to gather information from all of our devices and in particular, I want to be able to connect to each one and run a simple command to provide me with interface configuration and settings. I have stored this script here [netmiko_con_multi.py](Networking/netmiko_con_multi.py) + +Now when I run this I can see each port configuration over all of my devices. + +![](Images/Day27_Networking6.png) + +This could be handy if you have a lot of different devices, create this one script so that you can centrally control and understand quickly all of the configurations in one place. + +### Using Python to configure our devices + +The above is useful but what about using Python to configure our devices, in our scenario we have a trunked port between `SW1` and `SW2` again imagine if this was to be done across many of the same switches we want to automate that and not have to manually connect to each switch to make the configuration change. + +We can use [netmiko_sendchange.py](Networking/netmiko_sendchange.py) to achieve this. This will connect over SSH and perform that change on our `SW1` which will also change to `SW2`. + +![](Images/Day27_Networking7.png) + +Now for those that look at the code, you will see the message appears and tells us `sending configuration to device` but there is no confirmation that this has happened to we could add additional code to our script to perform that check and validation on our switch or we could modify our script before to show us this. [netmiko_con_multi_vlan.py](Networking/netmiko_con_multi_vlan.py) + +![](Images/Day27_Networking8.png) + +### backing up your device configurations + +Another use case would be to capture our network configurations and make sure we have those backed up, but again we don't want to be connecting to every device we have on our network so we can also automate this using [backup.py](Networking/backup.py). You will also need to populate the [backup.txt](Networking/backup.txt) with the IP addresses you want to backup. + +Run your script and you should see something like the below. + +![](Images/Day27_Networking9.png) + +That could be me just writing a simple print script in python so I should show you the backup files as well. + +![](Images/Day27_Networking10.png) + +### Paramiko + +A widely used Python module for SSH. You can find out more at the official GitHub link [here](https://github.com/paramiko/paramiko) + +We can install this module using the `pip install paramiko` command. + +![](Images/Day27_Networking1.png) + +We can verify the installation by entering the Python shell and importing the paramiko module. + +![](Images/Day27_Networking2.png) + +### Netmiko + +The netmiko module targets network devices specifically whereas paramiko is a broader tool for handling SSH connections overall. + +Netmiko which we have used above alongside paramiko can be installed using `pip install netmiko` + +Netmiko supports many network vendors and devices, you can find a list of supported devices on the [GitHub Page](https://github.com/ktbyers/netmiko#supports) + +### Other modules + +It is also worth mentioning a few other modules that we have not had the chance to look at but they give a lot more functionality when it comes to network automation. + +`netaddr` is used for working with and manipulating IP addresses, again the installation is simple with `pip install netaddr` + +you might find yourself wanting to store a lot of your switch configuration in an excel spreadsheet, the `xlrd` will allow your scripts to read the excel workbook and convert rows and columns into a matrix. `pip install xlrd` to get the module installed. + +Some more use cases where network automation can be used that I have not had the chance to look into can be found [here](https://github.com/ktbyers/pynet/tree/master/presentations/dfwcug/examples) + +I think this wraps up our Networking section of the #90DaysOfDevOps, Networking is one area that I have not touched for a while really and there is so much more to cover but I am hoping between my notes and the resources shared throughout it is helpful for some. + +## Resources + +- [Free Course: Introduction to EVE-NG](https://www.youtube.com/watch?v=g6B0f_E0NMg) +- [EVE-NG - Creating your first lab](https://www.youtube.com/watch?v=9dPWARirtK8) +- [3 Necessary Skills for Network Automation](https://www.youtube.com/watch?v=KhiJ7Fu9kKA&list=WL&index=122&t=89s) +- [Computer Networking full course](https://www.youtube.com/watch?v=IPvYjXCsTg8) +- [Practical Networking](http://www.practicalnetworking.net/) +- [Python Network Automation](https://www.youtube.com/watch?v=xKPzLplPECU&list=WL&index=126) + +Most of the examples I am using here as I am not a Network Engineer have come from this extensive book which is not free but I am using some of the scenarios to help understand Network Automation. + +- [Hands-On Enterprise Automation with Python (Book)](https://www.packtpub.com/product/hands-on-enterprise-automation-with-python/9781788998512) + +See you on [Day 28](day28.md) where will start looking into cloud computing and get a good grasp and foundational knowledge of the topic and what is available. \ No newline at end of file diff --git a/README.md b/README.md index 590aa3f..cf8f1da 100644 --- a/README.md +++ b/README.md @@ -48,7 +48,7 @@ This will not cover all things DevOps but it will cover the areas that I feel wi - [✔️] 🌐 24 > [Network Automation](Days/day24.md) - [✔️] 🌐 25 > [Python for Network Automation](Days/day25.md) - [✔️] 🌐 26 > [Building our Lab](Days/day26.md) -- [🚧] 🌐 27 > [](Days/day27.md) +- [🚧] 🌐 27 > [Getting Hands-On with Python & Network](Days/day27.md) ### Stick to one Cloud Provider