docs: Add Yggdrasil IPv6 overlay network milestone

- Deployed Yggdrasil on master (aarch64) and clone (x86_64)
- Connected to 2 public peers + LAN multicast auto-discovery
- Bidirectional ping6 and SSH over Yggdrasil working
- Fixed firewall zones: device="ygg0" required for nftables
- IPv6: master 201:e4d4:..., clone 201:a9d8:...
- Marks v1.1+ Yggdrasil overlay as complete

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
This commit is contained in:
CyberMind-FR 2026-02-26 09:24:17 +01:00
parent 57ff4de960
commit 495d5da768
5 changed files with 58 additions and 17 deletions

View File

@ -194,7 +194,7 @@ All cloud providers are **opt-in**. Offline resilience: local tier always active
### v1.1+ — Extended Mesh ### v1.1+ — Extended Mesh
- [ ] Yggdrasil overlay - [x] Yggdrasil overlay — Done 2026-02-26 (bidirectional IPv6, SSH, LAN multicast discovery)
- [ ] Meshname DNS - [ ] Meshname DNS
- [ ] Extended peer discovery - [ ] Extended peer discovery

View File

@ -64,6 +64,19 @@ _Last updated: 2026-02-25 (Factory Dashboard LuCI)_
### Just Completed (2026-02-26) ### Just Completed (2026-02-26)
- **Yggdrasil IPv6 Overlay Network** — DONE (2026-02-26)
- Deployed Yggdrasil on both master (aarch64) and clone (x86_64)
- Connected to 2 public peers (51.15.204.214, ygg.mkg20001.io)
- LAN multicast discovery: clone auto-peered with master via br-lan (1.73ms RTT)
- Bidirectional ping6 working:
- Master → Clone: ~6.2ms avg
- Clone → Master: ~2.2ms avg
- SSH over Yggdrasil working bidirectionally
- Fixed firewall zones: added `device="ygg0"` to nftables zones on both nodes
- IPv6 addresses:
- Master: `201:e4d4:9d55:9a02:7427:7081:9cf9:9e46`
- Clone: `201:a9d8:5a5:e493:bd0b:2c2f:5e85:34fe`
- **ZKP Cross-Node Verification Testing** — DONE (2026-02-26) - **ZKP Cross-Node Verification Testing** — DONE (2026-02-26)
- Full bidirectional ZKP authentication tested between master (aarch64) and clone (x86_64) - Full bidirectional ZKP authentication tested between master (aarch64) and clone (x86_64)
- Generated 50-node Hamiltonian graphs on both nodes - Generated 50-node Hamiltonian graphs on both nodes

View File

@ -436,7 +436,31 @@
"Bash(do if ping -c 1 -W 2 192.168.255.156)", "Bash(do if ping -c 1 -W 2 192.168.255.156)",
"Bash(break)", "Bash(break)",
"Bash(if ping -c 1 -W 3 192.168.255.156)", "Bash(if ping -c 1 -W 3 192.168.255.156)",
"Bash(else)" "Bash(else)",
"Bash(timeout 5 nmap:*)",
"Bash(# Check if extension 103 is registered via WebRTC ssh root@192.168.255.1 ''lxc-attach -n voip -- asterisk -rx \"\"pjsip show endpoint 103\"\"'')",
"Bash(__NEW_LINE_fbba53781de06448__ echo \"\")",
"Bash(__NEW_LINE_7adb9e690b841028__ echo \"\")",
"Bash(# Check working handler for comparison ssh root@192.168.255.1 ''grep -B2 -A2 \"\"\\\\\"\"date\\\\\"\"\"\" /usr/libexec/rpcd/luci.*'')",
"Bash(__NEW_LINE_ee8b189db819820d__ echo \"=== With today ===\")",
"Bash(__NEW_LINE_e1793f41c1d27989__ echo \"\")",
"Bash(__NEW_LINE_7e8dc30c01cd1540__ echo \"\")",
"Bash(__NEW_LINE_0a0a0b37fa13066b__ echo \"\")",
"Bash(__NEW_LINE_d0cebf6ba4912400__ echo \"\")",
"Bash(__NEW_LINE_41137796261af220__ echo \"\")",
"Bash(__NEW_LINE_8122080078617a43__ echo \"\")",
"Bash(__NEW_LINE_8d3e1ffe310240e9__ cat /home/reepost/CyberMindStudio/secubox-openwrt/package/secubox/zkp-hamiltonian/build-x86/zkp_keygen)",
"Bash(__NEW_LINE_3381982c6fa3c38b__ cat /home/reepost/CyberMindStudio/secubox-openwrt/package/secubox/zkp-hamiltonian/build-x86/zkp_prover)",
"Bash(__NEW_LINE_ffe3f82cb7ee419e__ echo \"\")",
"Bash(__NEW_LINE_022e6caf7fe283a0__ echo \"=== Deploy zkp_keygen ===\")",
"Bash(__NEW_LINE_cd413f540bbce32c__ echo \"=== Deploy zkp_prover ===\")",
"Bash(__NEW_LINE_de05005644963f24__ echo \"\")",
"Bash(__NEW_LINE_bdbb5578159f1cea__ echo \"=== Transfer clone proof to master ===\")",
"Bash(__NEW_LINE_ccff6a83615ec364__ echo \"\")",
"Bash(__NEW_LINE_4ae32f0682f969f7__ echo \"\")",
"Bash(__NEW_LINE_9355573ea4eaaf97__ echo \"\")",
"Bash(__NEW_LINE_2d1b6ec757fae311__ echo \"\")",
"Bash(__NEW_LINE_f8bfff16bb831fd7__ echo \"\")"
] ]
} }
} }

View File

@ -260,9 +260,9 @@
<div class="service-name">Jitsi Meet</div> <div class="service-name">Jitsi Meet</div>
<div class="service-url">meet.gk2.secubox.in</div> <div class="service-url">meet.gk2.secubox.in</div>
</a> </a>
<a href="https://voip.gk2.secubox.in/" class="service-card" target="_blank"> <a href="https://voip.gk2.secubox.in/voip/phone.html" class="service-card" target="_blank">
<div class="service-icon">📞</div> <div class="service-icon">📞</div>
<div class="service-name">VoIP</div> <div class="service-name">WebRTC Phone</div>
<div class="service-url">voip.gk2.secubox.in</div> <div class="service-url">voip.gk2.secubox.in</div>
</a> </a>
</div> </div>

View File

@ -43,24 +43,28 @@ JSON
$VOIPCTL status $VOIPCTL status
;; ;;
extensions) extensions)
json_init . /lib/functions.sh
json_add_array "extensions"
_add_ext() {
uci show voip 2>/dev/null | grep "=extension" | while read -r line; do local section="$1"
section=$(echo "$line" | cut -d'.' -f2 | cut -d'=' -f1) local name context vm
ext=$(echo "$section" | sed 's/ext_//') config_get name "$section" name
name=$(uci -q get "voip.$section.name") config_get context "$section" context "internal"
context=$(uci -q get "voip.$section.context" || echo "internal") config_get vm "$section" voicemail "0"
vm=$(uci -q get "voip.$section.voicemail" || echo "0") local number="${section#ext_}"
json_add_object json_add_object
json_add_string "number" "$ext" json_add_string "number" "$number"
json_add_string "name" "$name" json_add_string "name" "$name"
json_add_string "context" "$context" json_add_string "context" "$context"
json_add_boolean "voicemail" "$vm" json_add_boolean "voicemail" "$vm"
json_close_object json_close_object
done }
json_init
json_add_array "extensions"
config_load voip
config_foreach _add_ext extension
json_close_array json_close_array
json_dump json_dump
;; ;;