From 566df3c3f3b9a2eff7d8d743cb5d210fcaefc516 Mon Sep 17 00:00:00 2001 From: sinavir Date: Sat, 24 Jan 2026 00:21:10 +0100 Subject: [PATCH 01/10] init shell --- .gitignore | 1 + shell.nix | 12 ++++++++++++ 2 files changed, 13 insertions(+) create mode 100644 .gitignore create mode 100644 shell.nix diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..43147b8 --- /dev/null +++ b/.gitignore @@ -0,0 +1 @@ +/serve/config.txt diff --git a/shell.nix b/shell.nix new file mode 100644 index 0000000..c3d10c9 --- /dev/null +++ b/shell.nix @@ -0,0 +1,12 @@ +{ pkgs ? import {} }: +pkgs.mkShell { + name = "junos-testing"; + packages = [ + (pkgs.python3.withPackages (p: [ + p.scapy + p.tqdm + p.ipython + p.libpcap + ])) + ]; +} From 1f8cba7da2b353d08cb92b3c5af81f93e928f697 Mon Sep 17 00:00:00 2001 From: sinavir Date: Sat, 24 Jan 2026 00:24:06 +0100 Subject: [PATCH 02/10] init script --- script.py | 19 +++++++++++++++++++ 1 file changed, 19 insertions(+) create mode 100644 script.py diff --git a/script.py b/script.py new file mode 100644 index 0000000..682219d --- /dev/null +++ b/script.py @@ -0,0 +1,19 @@ +from time import sleep + +from scapy.all import ICMP, IP, Dot1Q, Ether, sendp +from tqdm import tqdm + +a = AsyncSniffer(iface="enp5s0d1", filter="icmp") +a.start() +for i in tqdm(range(1, 4095)): + sendp( + Ether(dst="00:02:c9:27:10:73", src="00:f0:cb:ef:e0:3b") + / Dot1Q(vlan=i) + / IP(dst="10.0.45.45", src="10.0.45.5") + / ICMP(id=i), + iface="enp2s0", + verbose=False, + ) +sleep(1) +plist = a.stop() +print(plist) From 1a4a959b5de0530395c8297bbb55881210884355 Mon Sep 17 00:00:00 2001 From: sinavir Date: Fri, 23 Jan 2026 12:37:07 +0100 Subject: [PATCH 03/10] Add some configurations --- serve/base_config.txt | 903 ++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 903 insertions(+) create mode 100644 serve/base_config.txt diff --git a/serve/base_config.txt b/serve/base_config.txt new file mode 100644 index 0000000..51504cb --- /dev/null +++ b/serve/base_config.txt @@ -0,0 +1,903 @@ +system { + host-name Taccess00; + root-authentication { + encrypted-password "$2b$05$3h26h8rJ5yks1vJYXZG.fuHagYBwrVMlGR7iFmsV1FTJlMUj97fl2"; ## SECRET-DATA + ssh-rsa "ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDcEkYM1r8QVNM/G5CxJInEdoBCWjEHHDdHlzDYNSUIdHHsn04QY+XI67AdMCm8w30GZnLUIj5RiJEWXREUApby0GrfxGGcy8otforygfgtmuUKAUEHdU2MMwrQI7RtTZ8oQ0USRGuqvmegxz3l5caVU7qGvBllJ4NUHXrkZSja2/51vq80RF4MKkDGiz7xUTixI2UcBwQBCA/kQedKV9G28EH+1XfvePqmMivZjl+7VyHsgUVj9eRGA1XWFw59UPZG8a7VkxO/Eb3K9NF297HUAcFMcbY6cPFi9AaBgu3VC4eetDnoN/+xT1owiHi7BReQhGAy/6cdf7C/my5ehZwD foo@bar"; ## SECRET-DATA + ssh-ed25519 "ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIFfIJ8BToZ9EDxBsEJXQhUju7gm+rUDjGCNMvFSZCl1o openpgp:0x5CADCA1B"; ## SECRET-DATA + ssh-ed25519 "ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAICdOxx4I8BSbYPdouvuzDepwTwzQzGSBCNIV8TB5dduT openpgp:0xF6018131"; ## SECRET-DATA + ssh-ed25519 "ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIL+EZXYziiaynJX99EW8KesnmRTZMof3BoIs3mdEl8L3 foo@bar"; ## SECRET-DATA + ssh-ed25519 "ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIHL4M4HKjs4cjRAYRk9pmmI8U0R4+T/jQh6Fxp/i1Eoy foo@bar"; ## SECRET-DATA + ssh-ed25519 "ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIPM1jpXR7BWQa7Sed7ii3SbvIPRRlKb3G91qC0vOwfJn foo@bar"; ## SECRET-DATA + ssh-ed25519 "ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIE0xMwWedkKosax9+7D2OlnMxFL/eV4CvFZLsbLptpXr foo@bar"; ## SECRET-DATA + ssh-ed25519 "ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIKiXXYkhRh+s7ixZ8rvG8ntIqd6FELQ9hh7HoaHQJRPU foo@bar"; ## SECRET-DATA + ssh-ed25519 "ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIEpwF+XD3HgX64kqD42pcEZRNYAWoO4YNiOm5KO4tH6o maurice@polaris"; ## SECRET-DATA + ssh-ed25519 "ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIFdDnSl3cyWil+S5JiyGqOvBR3wVh+lduw58S5WvraoL maurice@fekda"; ## SECRET-DATA + ssh-ed25519 "ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIIGmU7yEOCGuGNt4PlQbzd0Cms1RePpo8yEA7Ij/+TdA foo@bar"; ## SECRET-DATA + ssh-ed25519 "ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIDz9zePZXeH96RotT+xl4ux2kOh3qIp94txtcMjsf3vx foo@bar"; ## SECRET-DATA + } + services { + netconf { + ssh { + port 830; + } + rfc-compliant; + yang-compliant; + } + ssh { + root-login deny-password; + allow-tcp-forwarding; + sftp-server; + } + } + auto-snapshot; + syslog { + file interactive-commands { + interactive-commands any; + } + file messages { + any notice; + authorization info; + } + } + processes { + dhcp-service { + traceoptions { + file dhcp_logfile size 10m; + level all; + flag packet; + } + } + } + phone-home { + server https://redirect.juniper.net; + rfc-compliant; + } +} +chassis { + redundancy { + graceful-switchover; + } +} +interfaces { + ge-0/0/0 { + description IR203; + unit 0 { + family ethernet-switching { + interface-mode access; + vlan { + members 2566; + } + storm-control default; + } + } + } + ge-0/0/1 { + description IR205; + unit 0 { + family ethernet-switching { + interface-mode access; + vlan { + members 2567; + } + storm-control default; + } + } + } + ge-0/0/2 { + description IR207; + unit 0 { + family ethernet-switching { + interface-mode access; + vlan { + members 2568; + } + storm-control default; + } + } + } + ge-0/0/3 { + description IR209; + unit 0 { + family ethernet-switching { + interface-mode access; + vlan { + members 2569; + } + storm-control default; + } + } + } + ge-0/0/4 { + description IR211; + unit 0 { + family ethernet-switching { + interface-mode access; + vlan { + members 2570; + } + storm-control default; + } + } + } + ge-0/0/5 { + description IR213; + unit 0 { + family ethernet-switching { + interface-mode access; + vlan { + members 2571; + } + storm-control default; + } + } + } + ge-0/0/6 { + description IR215; + unit 0 { + family ethernet-switching { + interface-mode access; + vlan { + members 2572; + } + storm-control default; + } + } + } + ge-0/0/7 { + description IR217; + unit 0 { + family ethernet-switching { + interface-mode access; + vlan { + members 2573; + } + storm-control default; + } + } + } + ge-0/0/8 { + description IR219; + unit 0 { + family ethernet-switching { + interface-mode access; + vlan { + members 2574; + } + storm-control default; + } + } + } + ge-0/0/9 { + description IR221; + unit 0 { + family ethernet-switching { + interface-mode access; + vlan { + members 2575; + } + storm-control default; + } + } + } + ge-0/0/10 { + description IR223; + unit 0 { + family ethernet-switching { + interface-mode access; + vlan { + members 2576; + } + storm-control default; + } + } + } + ge-0/0/11 { + description IR225; + unit 0 { + family ethernet-switching { + interface-mode access; + vlan { + members 2577; + } + storm-control default; + } + } + } + ge-0/0/12 { + description IR227; + unit 0 { + family ethernet-switching { + interface-mode access; + vlan { + members 2578; + } + storm-control default; + } + } + } + ge-0/0/13 { + description IR229; + unit 0 { + family ethernet-switching { + interface-mode access; + vlan { + members 2579; + } + storm-control default; + } + } + } + ge-0/0/14 { + description IR231; + unit 0 { + family ethernet-switching { + interface-mode access; + vlan { + members 2580; + } + storm-control default; + } + } + } + ge-0/0/15 { + description IR233; + unit 0 { + family ethernet-switching { + interface-mode access; + vlan { + members 2581; + } + storm-control default; + } + } + } + ge-0/0/16 { + description IR235; + unit 0 { + family ethernet-switching { + interface-mode access; + vlan { + members 2582; + } + storm-control default; + } + } + } + ge-0/0/17 { + description IR237; + unit 0 { + family ethernet-switching { + interface-mode access; + vlan { + members 2583; + } + storm-control default; + } + } + } + ge-0/0/18 { + description IR239; + unit 0 { + family ethernet-switching { + interface-mode access; + vlan { + members 2584; + } + storm-control default; + } + } + } + ge-0/0/19 { + disable; + } + ge-0/0/20 { + disable; + } + ge-0/0/21 { + disable; + } + ge-0/0/22 { + disable; + } + ge-0/0/23 { + disable; + } + ge-0/0/24 { + description IR301; + unit 0 { + family ethernet-switching { + interface-mode access; + vlan { + members 2585; + } + storm-control default; + } + } + } + ge-0/0/25 { + description IR303; + unit 0 { + family ethernet-switching { + interface-mode access; + vlan { + members 2586; + } + storm-control default; + } + } + } + ge-0/0/26 { + description IR305; + unit 0 { + family ethernet-switching { + interface-mode access; + vlan { + members 2587; + } + storm-control default; + } + } + } + ge-0/0/27 { + description IR307; + unit 0 { + family ethernet-switching { + interface-mode access; + vlan { + members 2588; + } + storm-control default; + } + } + } + ge-0/0/28 { + description IR309; + unit 0 { + family ethernet-switching { + interface-mode access; + vlan { + members 2589; + } + storm-control default; + } + } + } + ge-0/0/29 { + description IR311; + unit 0 { + family ethernet-switching { + interface-mode access; + vlan { + members 2590; + } + storm-control default; + } + } + } + ge-0/0/30 { + description IR313; + unit 0 { + family ethernet-switching { + interface-mode access; + vlan { + members 2591; + } + storm-control default; + } + } + } + ge-0/0/31 { + description IR315; + unit 0 { + family ethernet-switching { + interface-mode access; + vlan { + members 2592; + } + storm-control default; + } + } + } + ge-0/0/32 { + description IR317; + unit 0 { + family ethernet-switching { + interface-mode access; + vlan { + members 2593; + } + storm-control default; + } + } + } + ge-0/0/33 { + description IR319; + unit 0 { + family ethernet-switching { + interface-mode access; + vlan { + members 2594; + } + storm-control default; + } + } + } + ge-0/0/34 { + description IR323; + unit 0 { + family ethernet-switching { + interface-mode access; + vlan { + members 2595; + } + storm-control default; + } + } + } + ge-0/0/35 { + description IR325; + unit 0 { + family ethernet-switching { + interface-mode access; + vlan { + members 2596; + } + storm-control default; + } + } + } + ge-0/0/36 { + description IR327; + unit 0 { + family ethernet-switching { + interface-mode access; + vlan { + members 2597; + } + storm-control default; + } + } + } + ge-0/0/37 { + description IR329; + unit 0 { + family ethernet-switching { + interface-mode access; + vlan { + members 2598; + } + storm-control default; + } + } + } + ge-0/0/38 { + description IR331; + unit 0 { + family ethernet-switching { + interface-mode access; + vlan { + members 2599; + } + storm-control default; + } + } + } + ge-0/0/39 { + description IR333; + unit 0 { + family ethernet-switching { + interface-mode access; + vlan { + members 2600; + } + storm-control default; + } + } + } + ge-0/0/40 { + description IR335; + unit 0 { + family ethernet-switching { + interface-mode access; + vlan { + members 2601; + } + storm-control default; + } + } + } + ge-0/0/41 { + description IR337; + unit 0 { + family ethernet-switching { + interface-mode access; + vlan { + members 2602; + } + storm-control default; + } + } + } + ge-0/0/42 { + description IR339; + unit 0 { + family ethernet-switching { + interface-mode access; + vlan { + members 2603; + } + storm-control default; + } + } + } + ge-0/0/43 { + disable; + } + ge-0/0/44 { + description AP_IR4_1; + native-vlan-id 2000; + unit 0 { + family ethernet-switching { + interface-mode trunk; + vlan { + members [ admin-ap apro wifi-user ]; + } + storm-control default; + } + } + } + ge-0/0/45 { + description AP_IR4_2; + native-vlan-id 2000; + unit 0 { + family ethernet-switching { + interface-mode trunk; + vlan { + members [ admin-ap apro wifi-user ]; + } + storm-control default; + } + } + } + ge-0/0/46 { + description AP_IR4_3; + native-vlan-id 2000; + unit 0 { + family ethernet-switching { + interface-mode trunk; + vlan { + members [ admin-ap apro wifi-user ]; + } + storm-control default; + } + } + } + ge-0/0/47 { + description AP_IR4_4; + native-vlan-id 2000; + unit 0 { + family ethernet-switching { + interface-mode trunk; + vlan { + members [ admin-ap apro wifi-user ]; + } + storm-control default; + } + } + } + et-0/1/0 { + disable; + } + ge-0/1/0 { + disable; + } + xe-0/1/0 { + disable; + } + et-0/1/1 { + disable; + } + ge-0/1/1 { + disable; + } + xe-0/1/1 { + disable; + } + et-0/1/2 { + disable; + } + ge-0/1/2 { + disable; + } + xe-0/1/2 { + disable; + } + et-0/1/3 { + disable; + } + ge-0/1/3 { + disable; + } + xe-0/1/3 { + disable; + } + ge-0/2/0 { + disable; + } + xe-0/2/0 { + description netcore03; + native-vlan-id 2000; + unit 0 { + family ethernet-switching { + interface-mode trunk; + vlan { + members [ IR2-rooms IR3-rooms IR4-rooms admin admin-ap apro wifi-user ]; + } + storm-control default; + } + } + } + ge-0/2/1 { + disable; + } + xe-0/2/1 { + description Paccess14; + native-vlan-id 2000; + unit 0 { + family ethernet-switching { + interface-mode trunk; + vlan { + members [ admin admin-ap apro wifi-user ]; + } + storm-control default; + } + } + } + ge-0/2/2 { + disable; + } + xe-0/2/2 { + disable; + } + ge-0/2/3 { + disable; + } + xe-0/2/3 { + disable; + } + irb { + unit 0 { + description Admin; + family inet { + address 10.0.255.158/24; + } + } + } + me0 { + unit 0 { + family inet { + address 192.168.42.6/24; + } + } + } +} +snmp { + filter-interfaces; + community public { + authorization read-only; + } +} +forwarding-options { + storm-control-profiles default { + all; + } +} +protocols { + router-advertisement { + interface vme.0 { + managed-configuration; + } + interface irb.0 { + managed-configuration; + } + } + lldp { + interface all; + } + lldp-med { + interface all; + } + igmp-snooping { + vlan default; + } + rstp { + interface ge-0/0/0; + interface ge-0/0/1; + interface ge-0/0/2; + interface ge-0/0/3; + interface ge-0/0/4; + interface ge-0/0/5; + interface ge-0/0/6; + interface ge-0/0/7; + interface ge-0/0/8; + interface ge-0/0/9; + interface ge-0/0/10; + interface ge-0/0/11; + interface ge-0/0/12; + interface ge-0/0/13; + interface ge-0/0/14; + interface ge-0/0/15; + interface ge-0/0/16; + interface ge-0/0/17; + interface ge-0/0/18; + interface ge-0/0/24; + interface ge-0/0/25; + interface ge-0/0/26; + interface ge-0/0/27; + interface ge-0/0/28; + interface ge-0/0/29; + interface ge-0/0/30; + interface ge-0/0/31; + interface ge-0/0/32; + interface ge-0/0/33; + interface ge-0/0/34; + interface ge-0/0/35; + interface ge-0/0/36; + interface ge-0/0/37; + interface ge-0/0/38; + interface ge-0/0/39; + interface ge-0/0/40; + interface ge-0/0/41; + interface ge-0/0/42; + interface ge-0/0/44; + interface ge-0/0/45; + interface ge-0/0/46; + interface ge-0/0/47; + interface xe-0/2/0; + interface xe-0/2/1; + } +} +poe { + interface ge-0/0/0 { + disable; + } + interface ge-0/0/1 { + disable; + } + interface ge-0/0/10 { + disable; + } + interface ge-0/0/11 { + disable; + } + interface ge-0/0/12 { + disable; + } + interface ge-0/0/13 { + disable; + } + interface ge-0/0/14 { + disable; + } + interface ge-0/0/15 { + disable; + } + interface ge-0/0/16 { + disable; + } + interface ge-0/0/17 { + disable; + } + interface ge-0/0/18 { + disable; + } + interface ge-0/0/2 { + disable; + } + interface ge-0/0/24 { + disable; + } + interface ge-0/0/25 { + disable; + } + interface ge-0/0/26 { + disable; + } + interface ge-0/0/27 { + disable; + } + interface ge-0/0/28 { + disable; + } + interface ge-0/0/29 { + disable; + } + interface ge-0/0/3 { + disable; + } + interface ge-0/0/30 { + disable; + } + interface ge-0/0/31 { + disable; + } + interface ge-0/0/32 { + disable; + } + interface ge-0/0/33 { + disable; + } + interface ge-0/0/34 { + disable; + } + interface ge-0/0/35 { + disable; + } + interface ge-0/0/36 { + disable; + } + interface ge-0/0/37 { + disable; + } + interface ge-0/0/38 { + disable; + } + interface ge-0/0/39 { + disable; + } + interface ge-0/0/4 { + disable; + } + interface ge-0/0/40 { + disable; + } + interface ge-0/0/41 { + disable; + } + interface ge-0/0/42 { + disable; + } + interface ge-0/0/44; + interface ge-0/0/45; + interface ge-0/0/46; + interface ge-0/0/47; + interface ge-0/0/5 { + disable; + } + interface ge-0/0/6 { + disable; + } + interface ge-0/0/7 { + disable; + } + interface ge-0/0/8 { + disable; + } + interface ge-0/0/9 { + disable; + } +} +vlans { + IR2-rooms { + vlan-id-list 2566-2584; + } + IR3-rooms { + vlan-id-list 2585-2603; + } + IR4-rooms { + vlan-id-list 2604-2622; + } + admin { + vlan-id 3000; + l3-interface irb.0; + } + admin-ap { + vlan-id 3001; + } + apro { + vlan-id 2000; + } + wifi-user { + vlan-id-list 3245-4094; + } +} From 0d0d50b061790178328f57a51c9041f9a49ed0b8 Mon Sep 17 00:00:00 2001 From: sinavir Date: Sat, 24 Jan 2026 00:31:26 +0100 Subject: [PATCH 04/10] script to flash the switch --- flash.sh | 20 ++++++++++++++++++++ serve.sh | 1 + serve/flash.sh | 20 ++++++++++++++++++++ serve/serve.sh | 1 + 4 files changed, 42 insertions(+) create mode 100755 flash.sh create mode 100755 serve.sh create mode 100644 serve/flash.sh create mode 100755 serve/serve.sh diff --git a/flash.sh b/flash.sh new file mode 100755 index 0000000..ea600cb --- /dev/null +++ b/flash.sh @@ -0,0 +1,20 @@ +#!/usr/bin/env bash + +SSH_OPTS="-o StrictHostKeychecking=no" + +ssh $SSH_OPTS root@192.168.42.6 "cli request system zeroize" + +echo "sleeping for 10" + +sleep 10 + +./serve.sh & + +while true; +do + if ping -w 1 -c 1 192.168.42.6 > /dev/null then + break + fi +done + +echo "finished" diff --git a/serve.sh b/serve.sh new file mode 100755 index 0000000..83424a6 --- /dev/null +++ b/serve.sh @@ -0,0 +1 @@ +python -m http.server 8080 -d ./serve diff --git a/serve/flash.sh b/serve/flash.sh new file mode 100644 index 0000000..ea600cb --- /dev/null +++ b/serve/flash.sh @@ -0,0 +1,20 @@ +#!/usr/bin/env bash + +SSH_OPTS="-o StrictHostKeychecking=no" + +ssh $SSH_OPTS root@192.168.42.6 "cli request system zeroize" + +echo "sleeping for 10" + +sleep 10 + +./serve.sh & + +while true; +do + if ping -w 1 -c 1 192.168.42.6 > /dev/null then + break + fi +done + +echo "finished" diff --git a/serve/serve.sh b/serve/serve.sh new file mode 100755 index 0000000..83424a6 --- /dev/null +++ b/serve/serve.sh @@ -0,0 +1 @@ +python -m http.server 8080 -d ./serve From 33488d8073d5f718264c8140a4073f7916afd5d6 Mon Sep 17 00:00:00 2001 From: sinavir Date: Sat, 24 Jan 2026 00:21:10 +0100 Subject: [PATCH 05/10] init shell --- .gitignore | 2 ++ shell.nix | 12 ++++++++++++ 2 files changed, 14 insertions(+) create mode 100644 .gitignore create mode 100644 shell.nix diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..d588798 --- /dev/null +++ b/.gitignore @@ -0,0 +1,2 @@ +/serve/config.txt +/logs diff --git a/shell.nix b/shell.nix new file mode 100644 index 0000000..c3d10c9 --- /dev/null +++ b/shell.nix @@ -0,0 +1,12 @@ +{ pkgs ? import {} }: +pkgs.mkShell { + name = "junos-testing"; + packages = [ + (pkgs.python3.withPackages (p: [ + p.scapy + p.tqdm + p.ipython + p.libpcap + ])) + ]; +} From 32fe61a20db01d348e5a307529fcc76ea1be0352 Mon Sep 17 00:00:00 2001 From: sinavir Date: Sat, 24 Jan 2026 00:24:06 +0100 Subject: [PATCH 06/10] init script --- script.py | 52 ++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 52 insertions(+) create mode 100644 script.py diff --git a/script.py b/script.py new file mode 100644 index 0000000..026a5bd --- /dev/null +++ b/script.py @@ -0,0 +1,52 @@ +from time import sleep + +from scapy.all import ICMP, IP, Dot1Q, Ether, sendp, AsyncSniffer, wrpcap +from tqdm import tqdm + +a = AsyncSniffer(iface="enp5s0d1", filter="icmp") +a.start() +for i in tqdm(range(0, 4095)): + sendp( + Ether(dst="00:02:c9:27:10:73", src="00:f0:cb:ef:e0:3b") + / Dot1Q(vlan=i) + / IP(dst="10.0.45.45", src="10.0.45.5") + / ICMP(id=i), + iface="enp2s0", + verbose=False, + ) +print("Wrapping up and waiting for last packets") +sleep(1) +plist = a.stop() + +seen = [False for i in range(4095)] +icmpid = [False for i in range(4095)] + +def pprint(seen): + last = None + s = "" + for k, v in enumerate(seen): + if v and last is None: + last = k + s += str(k) + if not v and last is not None: + if k-1 == last: + s += "," + else: + s += f"-{k-1}," + last = None + if last is not None and last < k: + s += f"-{k}" + return s + "\n" + + +for p in plist: + if Dot1Q in p: + vlan = int(p[Dot1Q].vlan) + seen[vlan] = True + if ICMP in p and p[ICMP].id == vlan: + icmpid[vlan] = True + +print("Icmp correspondance") +print(pprint(icmpid)) +print("Seen vlans") +print(pprint(seen)) From ee1c2f6788e5adf39a2cd5eb4b8da128ec770824 Mon Sep 17 00:00:00 2001 From: sinavir Date: Fri, 23 Jan 2026 12:37:07 +0100 Subject: [PATCH 07/10] Add some configurations --- serve/base_config.txt | 904 ++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 904 insertions(+) create mode 100644 serve/base_config.txt diff --git a/serve/base_config.txt b/serve/base_config.txt new file mode 100644 index 0000000..8b4b3cd --- /dev/null +++ b/serve/base_config.txt @@ -0,0 +1,904 @@ +system { + host-name Taccess00; + root-authentication { + encrypted-password "$2b$05$3h26h8rJ5yks1vJYXZG.fuHagYBwrVMlGR7iFmsV1FTJlMUj97fl2"; ## SECRET-DATA + ssh-rsa "ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDcEkYM1r8QVNM/G5CxJInEdoBCWjEHHDdHlzDYNSUIdHHsn04QY+XI67AdMCm8w30GZnLUIj5RiJEWXREUApby0GrfxGGcy8otforygfgtmuUKAUEHdU2MMwrQI7RtTZ8oQ0USRGuqvmegxz3l5caVU7qGvBllJ4NUHXrkZSja2/51vq80RF4MKkDGiz7xUTixI2UcBwQBCA/kQedKV9G28EH+1XfvePqmMivZjl+7VyHsgUVj9eRGA1XWFw59UPZG8a7VkxO/Eb3K9NF297HUAcFMcbY6cPFi9AaBgu3VC4eetDnoN/+xT1owiHi7BReQhGAy/6cdf7C/my5ehZwD foo@bar"; ## SECRET-DATA + ssh-ed25519 "ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIFfIJ8BToZ9EDxBsEJXQhUju7gm+rUDjGCNMvFSZCl1o openpgp:0x5CADCA1B"; ## SECRET-DATA + ssh-ed25519 "ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAICdOxx4I8BSbYPdouvuzDepwTwzQzGSBCNIV8TB5dduT openpgp:0xF6018131"; ## SECRET-DATA + ssh-ed25519 "ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIL+EZXYziiaynJX99EW8KesnmRTZMof3BoIs3mdEl8L3 foo@bar"; ## SECRET-DATA + ssh-ed25519 "ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIHL4M4HKjs4cjRAYRk9pmmI8U0R4+T/jQh6Fxp/i1Eoy foo@bar"; ## SECRET-DATA + ssh-ed25519 "ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIPM1jpXR7BWQa7Sed7ii3SbvIPRRlKb3G91qC0vOwfJn foo@bar"; ## SECRET-DATA + ssh-ed25519 "ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIE0xMwWedkKosax9+7D2OlnMxFL/eV4CvFZLsbLptpXr foo@bar"; ## SECRET-DATA + ssh-ed25519 "ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIKiXXYkhRh+s7ixZ8rvG8ntIqd6FELQ9hh7HoaHQJRPU foo@bar"; ## SECRET-DATA + ssh-ed25519 "ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIEpwF+XD3HgX64kqD42pcEZRNYAWoO4YNiOm5KO4tH6o maurice@polaris"; ## SECRET-DATA + ssh-ed25519 "ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIFdDnSl3cyWil+S5JiyGqOvBR3wVh+lduw58S5WvraoL maurice@fekda"; ## SECRET-DATA + ssh-ed25519 "ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIIGmU7yEOCGuGNt4PlQbzd0Cms1RePpo8yEA7Ij/+TdA foo@bar"; ## SECRET-DATA + ssh-ed25519 "ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIDz9zePZXeH96RotT+xl4ux2kOh3qIp94txtcMjsf3vx foo@bar"; ## SECRET-DATA + ssh-ed25519 "ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIIBicEt7xV6tjMURJO/dXbxF0VGE3RtxuFaE7ba+1qSN root@elnath"; ## SECRET-DATA + } + services { + netconf { + ssh { + port 830; + } + rfc-compliant; + yang-compliant; + } + ssh { + root-login deny-password; + allow-tcp-forwarding; + sftp-server; + } + } + auto-snapshot; + syslog { + file interactive-commands { + interactive-commands any; + } + file messages { + any notice; + authorization info; + } + } + processes { + dhcp-service { + traceoptions { + file dhcp_logfile size 10m; + level all; + flag packet; + } + } + } + phone-home { + server https://redirect.juniper.net; + rfc-compliant; + } +} +chassis { + redundancy { + graceful-switchover; + } +} +interfaces { + ge-0/0/0 { + description IR203; + unit 0 { + family ethernet-switching { + interface-mode access; + vlan { + members 2566; + } + storm-control default; + } + } + } + ge-0/0/1 { + description IR205; + unit 0 { + family ethernet-switching { + interface-mode access; + vlan { + members 2567; + } + storm-control default; + } + } + } + ge-0/0/2 { + description IR207; + unit 0 { + family ethernet-switching { + interface-mode access; + vlan { + members 2568; + } + storm-control default; + } + } + } + ge-0/0/3 { + description IR209; + unit 0 { + family ethernet-switching { + interface-mode access; + vlan { + members 2569; + } + storm-control default; + } + } + } + ge-0/0/4 { + description IR211; + unit 0 { + family ethernet-switching { + interface-mode access; + vlan { + members 2570; + } + storm-control default; + } + } + } + ge-0/0/5 { + description IR213; + unit 0 { + family ethernet-switching { + interface-mode access; + vlan { + members 2571; + } + storm-control default; + } + } + } + ge-0/0/6 { + description IR215; + unit 0 { + family ethernet-switching { + interface-mode access; + vlan { + members 2572; + } + storm-control default; + } + } + } + ge-0/0/7 { + description IR217; + unit 0 { + family ethernet-switching { + interface-mode access; + vlan { + members 2573; + } + storm-control default; + } + } + } + ge-0/0/8 { + description IR219; + unit 0 { + family ethernet-switching { + interface-mode access; + vlan { + members 2574; + } + storm-control default; + } + } + } + ge-0/0/9 { + description IR221; + unit 0 { + family ethernet-switching { + interface-mode access; + vlan { + members 2575; + } + storm-control default; + } + } + } + ge-0/0/10 { + description IR223; + unit 0 { + family ethernet-switching { + interface-mode access; + vlan { + members 2576; + } + storm-control default; + } + } + } + ge-0/0/11 { + description IR225; + unit 0 { + family ethernet-switching { + interface-mode access; + vlan { + members 2577; + } + storm-control default; + } + } + } + ge-0/0/12 { + description IR227; + unit 0 { + family ethernet-switching { + interface-mode access; + vlan { + members 2578; + } + storm-control default; + } + } + } + ge-0/0/13 { + description IR229; + unit 0 { + family ethernet-switching { + interface-mode access; + vlan { + members 2579; + } + storm-control default; + } + } + } + ge-0/0/14 { + description IR231; + unit 0 { + family ethernet-switching { + interface-mode access; + vlan { + members 2580; + } + storm-control default; + } + } + } + ge-0/0/15 { + description IR233; + unit 0 { + family ethernet-switching { + interface-mode access; + vlan { + members 2581; + } + storm-control default; + } + } + } + ge-0/0/16 { + description IR235; + unit 0 { + family ethernet-switching { + interface-mode access; + vlan { + members 2582; + } + storm-control default; + } + } + } + ge-0/0/17 { + description IR237; + unit 0 { + family ethernet-switching { + interface-mode access; + vlan { + members 2583; + } + storm-control default; + } + } + } + ge-0/0/18 { + description IR239; + unit 0 { + family ethernet-switching { + interface-mode access; + vlan { + members 2584; + } + storm-control default; + } + } + } + ge-0/0/19 { + disable; + } + ge-0/0/20 { + disable; + } + ge-0/0/21 { + disable; + } + ge-0/0/22 { + disable; + } + ge-0/0/23 { + disable; + } + ge-0/0/24 { + description IR301; + unit 0 { + family ethernet-switching { + interface-mode access; + vlan { + members 2585; + } + storm-control default; + } + } + } + ge-0/0/25 { + description IR303; + unit 0 { + family ethernet-switching { + interface-mode access; + vlan { + members 2586; + } + storm-control default; + } + } + } + ge-0/0/26 { + description IR305; + unit 0 { + family ethernet-switching { + interface-mode access; + vlan { + members 2587; + } + storm-control default; + } + } + } + ge-0/0/27 { + description IR307; + unit 0 { + family ethernet-switching { + interface-mode access; + vlan { + members 2588; + } + storm-control default; + } + } + } + ge-0/0/28 { + description IR309; + unit 0 { + family ethernet-switching { + interface-mode access; + vlan { + members 2589; + } + storm-control default; + } + } + } + ge-0/0/29 { + description IR311; + unit 0 { + family ethernet-switching { + interface-mode access; + vlan { + members 2590; + } + storm-control default; + } + } + } + ge-0/0/30 { + description IR313; + unit 0 { + family ethernet-switching { + interface-mode access; + vlan { + members 2591; + } + storm-control default; + } + } + } + ge-0/0/31 { + description IR315; + unit 0 { + family ethernet-switching { + interface-mode access; + vlan { + members 2592; + } + storm-control default; + } + } + } + ge-0/0/32 { + description IR317; + unit 0 { + family ethernet-switching { + interface-mode access; + vlan { + members 2593; + } + storm-control default; + } + } + } + ge-0/0/33 { + description IR319; + unit 0 { + family ethernet-switching { + interface-mode access; + vlan { + members 2594; + } + storm-control default; + } + } + } + ge-0/0/34 { + description IR323; + unit 0 { + family ethernet-switching { + interface-mode access; + vlan { + members 2595; + } + storm-control default; + } + } + } + ge-0/0/35 { + description IR325; + unit 0 { + family ethernet-switching { + interface-mode access; + vlan { + members 2596; + } + storm-control default; + } + } + } + ge-0/0/36 { + description IR327; + unit 0 { + family ethernet-switching { + interface-mode access; + vlan { + members 2597; + } + storm-control default; + } + } + } + ge-0/0/37 { + description IR329; + unit 0 { + family ethernet-switching { + interface-mode access; + vlan { + members 2598; + } + storm-control default; + } + } + } + ge-0/0/38 { + description IR331; + unit 0 { + family ethernet-switching { + interface-mode access; + vlan { + members 2599; + } + storm-control default; + } + } + } + ge-0/0/39 { + description IR333; + unit 0 { + family ethernet-switching { + interface-mode access; + vlan { + members 2600; + } + storm-control default; + } + } + } + ge-0/0/40 { + description IR335; + unit 0 { + family ethernet-switching { + interface-mode access; + vlan { + members 2601; + } + storm-control default; + } + } + } + ge-0/0/41 { + description IR337; + unit 0 { + family ethernet-switching { + interface-mode access; + vlan { + members 2602; + } + storm-control default; + } + } + } + ge-0/0/42 { + description IR339; + unit 0 { + family ethernet-switching { + interface-mode access; + vlan { + members 2603; + } + storm-control default; + } + } + } + ge-0/0/43 { + disable; + } + ge-0/0/44 { + description AP_IR4_1; + native-vlan-id 2000; + unit 0 { + family ethernet-switching { + interface-mode trunk; + vlan { + members [ admin-ap apro wifi-user ]; + } + storm-control default; + } + } + } + ge-0/0/45 { + description AP_IR4_2; + native-vlan-id 2000; + unit 0 { + family ethernet-switching { + interface-mode trunk; + vlan { + members [ admin-ap apro wifi-user ]; + } + storm-control default; + } + } + } + ge-0/0/46 { + description AP_IR4_3; + native-vlan-id 2000; + unit 0 { + family ethernet-switching { + interface-mode trunk; + vlan { + members [ admin-ap apro wifi-user ]; + } + storm-control default; + } + } + } + ge-0/0/47 { + description AP_IR4_4; + native-vlan-id 2000; + unit 0 { + family ethernet-switching { + interface-mode trunk; + vlan { + members [ admin-ap apro wifi-user ]; + } + storm-control default; + } + } + } + et-0/1/0 { + disable; + } + ge-0/1/0 { + disable; + } + xe-0/1/0 { + disable; + } + et-0/1/1 { + disable; + } + ge-0/1/1 { + disable; + } + xe-0/1/1 { + disable; + } + et-0/1/2 { + disable; + } + ge-0/1/2 { + disable; + } + xe-0/1/2 { + disable; + } + et-0/1/3 { + disable; + } + ge-0/1/3 { + disable; + } + xe-0/1/3 { + disable; + } + ge-0/2/0 { + disable; + } + xe-0/2/0 { + description netcore03; + native-vlan-id 2000; + unit 0 { + family ethernet-switching { + interface-mode trunk; + vlan { + members [ IR2-rooms IR3-rooms IR4-rooms admin admin-ap apro wifi-user ]; + } + storm-control default; + } + } + } + ge-0/2/1 { + disable; + } + xe-0/2/1 { + description Paccess14; + native-vlan-id 2000; + unit 0 { + family ethernet-switching { + interface-mode trunk; + vlan { + members [ admin admin-ap apro wifi-user ]; + } + storm-control default; + } + } + } + ge-0/2/2 { + disable; + } + xe-0/2/2 { + disable; + } + ge-0/2/3 { + disable; + } + xe-0/2/3 { + disable; + } + irb { + unit 0 { + description Admin; + family inet { + address 10.0.255.158/24; + } + } + } + me0 { + unit 0 { + family inet { + address 192.168.42.6/24; + } + } + } +} +snmp { + filter-interfaces; + community public { + authorization read-only; + } +} +forwarding-options { + storm-control-profiles default { + all; + } +} +protocols { + router-advertisement { + interface vme.0 { + managed-configuration; + } + interface irb.0 { + managed-configuration; + } + } + lldp { + interface all; + } + lldp-med { + interface all; + } + igmp-snooping { + vlan default; + } + rstp { + interface ge-0/0/0; + interface ge-0/0/1; + interface ge-0/0/2; + interface ge-0/0/3; + interface ge-0/0/4; + interface ge-0/0/5; + interface ge-0/0/6; + interface ge-0/0/7; + interface ge-0/0/8; + interface ge-0/0/9; + interface ge-0/0/10; + interface ge-0/0/11; + interface ge-0/0/12; + interface ge-0/0/13; + interface ge-0/0/14; + interface ge-0/0/15; + interface ge-0/0/16; + interface ge-0/0/17; + interface ge-0/0/18; + interface ge-0/0/24; + interface ge-0/0/25; + interface ge-0/0/26; + interface ge-0/0/27; + interface ge-0/0/28; + interface ge-0/0/29; + interface ge-0/0/30; + interface ge-0/0/31; + interface ge-0/0/32; + interface ge-0/0/33; + interface ge-0/0/34; + interface ge-0/0/35; + interface ge-0/0/36; + interface ge-0/0/37; + interface ge-0/0/38; + interface ge-0/0/39; + interface ge-0/0/40; + interface ge-0/0/41; + interface ge-0/0/42; + interface ge-0/0/44; + interface ge-0/0/45; + interface ge-0/0/46; + interface ge-0/0/47; + interface xe-0/2/0; + interface xe-0/2/1; + } +} +poe { + interface ge-0/0/0 { + disable; + } + interface ge-0/0/1 { + disable; + } + interface ge-0/0/10 { + disable; + } + interface ge-0/0/11 { + disable; + } + interface ge-0/0/12 { + disable; + } + interface ge-0/0/13 { + disable; + } + interface ge-0/0/14 { + disable; + } + interface ge-0/0/15 { + disable; + } + interface ge-0/0/16 { + disable; + } + interface ge-0/0/17 { + disable; + } + interface ge-0/0/18 { + disable; + } + interface ge-0/0/2 { + disable; + } + interface ge-0/0/24 { + disable; + } + interface ge-0/0/25 { + disable; + } + interface ge-0/0/26 { + disable; + } + interface ge-0/0/27 { + disable; + } + interface ge-0/0/28 { + disable; + } + interface ge-0/0/29 { + disable; + } + interface ge-0/0/3 { + disable; + } + interface ge-0/0/30 { + disable; + } + interface ge-0/0/31 { + disable; + } + interface ge-0/0/32 { + disable; + } + interface ge-0/0/33 { + disable; + } + interface ge-0/0/34 { + disable; + } + interface ge-0/0/35 { + disable; + } + interface ge-0/0/36 { + disable; + } + interface ge-0/0/37 { + disable; + } + interface ge-0/0/38 { + disable; + } + interface ge-0/0/39 { + disable; + } + interface ge-0/0/4 { + disable; + } + interface ge-0/0/40 { + disable; + } + interface ge-0/0/41 { + disable; + } + interface ge-0/0/42 { + disable; + } + interface ge-0/0/44; + interface ge-0/0/45; + interface ge-0/0/46; + interface ge-0/0/47; + interface ge-0/0/5 { + disable; + } + interface ge-0/0/6 { + disable; + } + interface ge-0/0/7 { + disable; + } + interface ge-0/0/8 { + disable; + } + interface ge-0/0/9 { + disable; + } +} +vlans { + IR2-rooms { + vlan-id-list 2566-2584; + } + IR3-rooms { + vlan-id-list 2585-2603; + } + IR4-rooms { + vlan-id-list 2604-2622; + } + admin { + vlan-id 3000; + l3-interface irb.0; + } + admin-ap { + vlan-id 3001; + } + apro { + vlan-id 2000; + } + wifi-user { + vlan-id-list 3245-4094; + } +} From 761105d3373bc20b60a8f055acbaf96bbe5355d9 Mon Sep 17 00:00:00 2001 From: sinavir Date: Sat, 24 Jan 2026 00:31:26 +0100 Subject: [PATCH 08/10] script to flash the switch --- flash.sh | 23 +++++++++++++++++++++++ serve.sh | 1 + serve/flash.sh | 20 ++++++++++++++++++++ serve/serve.sh | 1 + 4 files changed, 45 insertions(+) create mode 100755 flash.sh create mode 100755 serve.sh create mode 100644 serve/flash.sh create mode 100755 serve/serve.sh diff --git a/flash.sh b/flash.sh new file mode 100755 index 0000000..6f50ee3 --- /dev/null +++ b/flash.sh @@ -0,0 +1,23 @@ +#!/usr/bin/env bash + +if ! curl -s -f http://127.0.0.1:8080/config.txt > /dev/null; then + echo "!!!!!!!!!!!!! please start server" + exit 1 +fi + +SSH_OPTS="-o StrictHostKeyChecking=no" + +ssh $SSH_OPTS root@192.168.42.6 "cli request system zeroize" + +echo "sleeping for 80s, then ping until up" + +sleep 80 + +while true; +do + if ping -w 1 -c 1 192.168.42.6 > /dev/null; then + break + fi +done + +echo "finished" diff --git a/serve.sh b/serve.sh new file mode 100755 index 0000000..83424a6 --- /dev/null +++ b/serve.sh @@ -0,0 +1 @@ +python -m http.server 8080 -d ./serve diff --git a/serve/flash.sh b/serve/flash.sh new file mode 100644 index 0000000..ea600cb --- /dev/null +++ b/serve/flash.sh @@ -0,0 +1,20 @@ +#!/usr/bin/env bash + +SSH_OPTS="-o StrictHostKeychecking=no" + +ssh $SSH_OPTS root@192.168.42.6 "cli request system zeroize" + +echo "sleeping for 10" + +sleep 10 + +./serve.sh & + +while true; +do + if ping -w 1 -c 1 192.168.42.6 > /dev/null then + break + fi +done + +echo "finished" diff --git a/serve/serve.sh b/serve/serve.sh new file mode 100755 index 0000000..83424a6 --- /dev/null +++ b/serve/serve.sh @@ -0,0 +1 @@ +python -m http.server 8080 -d ./serve From 9271aeb39a13a9fe789d1b21e5bbb4e5749a82e9 Mon Sep 17 00:00:00 2001 From: sinavir Date: Sat, 24 Jan 2026 13:11:51 +0100 Subject: [PATCH 09/10] collect logs --- flash.sh | 11 +++++++++++ script.py | 37 +++++++++++++++++++++++++++++++++++++ 2 files changed, 48 insertions(+) diff --git a/flash.sh b/flash.sh index 6f50ee3..4df4e6f 100755 --- a/flash.sh +++ b/flash.sh @@ -20,4 +20,15 @@ do fi done +echo "collecting logs" + +dir="./logs/$(date +"%Y%m%d_%H%M%S")-zeroize" + +mkdir -p "$dir" + +touch "$dir/zeroize" + +cp "./serve/config.txt" "$dir/" +cp ./flash.sh "$dir" + echo "finished" diff --git a/script.py b/script.py index 026a5bd..eda71e9 100644 --- a/script.py +++ b/script.py @@ -50,3 +50,40 @@ print("Icmp correspondance") print(pprint(icmpid)) print("Seen vlans") print(pprint(seen)) + +print("Collecting :") +import subprocess +from datetime import datetime +from pathlib import Path +import shutil + +timestamp = datetime.now().strftime("%Y%m%d_%H%M%S") + "-test" +log_dir = Path("./logs") / timestamp +log_dir.mkdir(parents=True, exist_ok=True) + +with open(log_dir / "seen_vlans.txt", "w") as f: + f.write(pprint(seen)) + +with open(log_dir / "seen_icmp_ids.txt", "w") as f: + f.write(pprint(icmpid)) + +shutil.copy(Path("./script.py"), log_dir / "script.py") + +print(" - [x] script.py") + +with open(log_dir / "egress.pcap", "wb") as file: + wrpcap(file, plist) + +print(" - [x] pcap") + +cmd_config = ["ssh", "-o", "StrictHostKeyChecking=no", "root@192.168.42.6", "cli show config"] +cmd_rsi = ["ssh", "-o", "StrictHostKeyChecking=no", "root@192.168.42.6", "cli request support information"] + +result = subprocess.run(cmd_config, stdout=subprocess.PIPE, stderr=subprocess.STDOUT, text=True) + +with open(log_dir / "config.txt", "w") as f: + f.write(result.stdout) + +print(" - [x] config") + +print("Finished, saved to", log_dir) From 0351216f3475cc623ae6d5167a595151d47e7d2b Mon Sep 17 00:00:00 2001 From: sinavir Date: Sat, 24 Jan 2026 13:12:16 +0100 Subject: [PATCH 10/10] powercuts and reboots --- powercut.sh | 24 ++++++++++++++++++++++++ reboot.sh | 28 ++++++++++++++++++++++++++++ 2 files changed, 52 insertions(+) create mode 100755 powercut.sh create mode 100755 reboot.sh diff --git a/powercut.sh b/powercut.sh new file mode 100755 index 0000000..3650a42 --- /dev/null +++ b/powercut.sh @@ -0,0 +1,24 @@ +#!/usr/bin/env bash + +echo "sleeping for 80s, then ping until up" + +sleep 80 + +while true; +do + if ping -w 1 -c 1 192.168.42.6 > /dev/null; then + break + fi +done + +echo "collecting logs" + +dir="./logs/$(date +"%Y%m%d_%H%M%S")-powercut" + +mkdir -p "$dir" + +touch "$dir/powercut" + +cp ./powercut.sh "$dir" + +echo "finished" diff --git a/reboot.sh b/reboot.sh new file mode 100755 index 0000000..420c8f4 --- /dev/null +++ b/reboot.sh @@ -0,0 +1,28 @@ +#!/usr/bin/env bash + +SSH_OPTS="-o StrictHostKeyChecking=no" + +ssh $SSH_OPTS root@192.168.42.6 "reboot" + +echo "sleeping for 80s, then ping until up" + +sleep 80 + +while true; +do + if ping -w 1 -c 1 192.168.42.6 > /dev/null; then + break + fi +done + +echo "collecting logs" + +dir="./logs/$(date +"%Y%m%d_%H%M%S")-reboot" + +mkdir -p "$dir" + +touch "$dir/reboot" + +cp ./reboot.sh "$dir" + +echo "finished"