__TRACE__ stage=current_baseline __FACT__ read_only=true __FACT__ refresh_ran=false __FACT__ rebalance_ran=false __FACT__ direct_failopen_changed=false __FACT__ plan_changed=false __FACT__ runner_sha256=bea82c260ba6006b524ef01c614848097bd231fa6d49a725baded99046fe5d11 __FACT__ apply_sha256=2fa6b725c5e123b7fdc3dd14747058a02415d025231054c7537d72b8edc2346f __FACT__ planner_sha256=6ec99e157235d811d6f0f3ab92de7f3371dc813f2478a654358982cda7ce34ce __FACT__ helper_sha256=9a546c2958c9fd44c927af3559966d1aa0ceb7a5e20f2373c7a95a31728dd0c0 __FACT__ hook_running=true __FACT__ hook_enabled=true __FACT__ watcher_running=true __FACT__ watcher_enabled=true __FACT__ emergency_lock_present=false __FACT__ refresh_lock_present=false __FACT__ baseline_strict_all=true __FACT__ baseline_routes_all=true __FACT__ table200_hash=a03a7a5738c031c280e4a3147e9f7c5feb4af524f4d7ea427871b3b6cafd4691 __FACT__ table200_baseline_match=true __FACT__ state_mode=NORMAL __FACT__ state_status=refresh_ok_rebalance_ok __FACT__ state_epoch=1783803369 __FACT__ commit_raw=true __BLOCK_BEGIN__ table200 10.200.0.0/24 dev eth1 scope link src 10.200.0.2 10.201.0.0/24 dev eth3 scope link src 10.201.0.2 __BLOCK_END__ table200 __BLOCK_BEGIN__ routes_201_205 === table 201 === default dev vpn1 scope link === table 202 === default dev vpn2 scope link === table 203 === default dev vpn3 scope link === table 204 === default dev vpn4 scope link === table 205 === default dev vpn5 scope link __BLOCK_END__ routes_201_205 __BLOCK_BEGIN__ wireguard_endpoints === vpn1 === === vpn2 === === vpn3 === === vpn4 === === vpn5 === __BLOCK_END__ wireguard_endpoints __BLOCK_BEGIN__ current_planner { "schema": "router-egress-hmn-plan-top5-v2", "decision": "plan_ok", "pool": "/root/hmn/cache/ok-awg1-strict-foreign-latest.tsv", "pool_mtime_epoch": 1783702742, "quarantine_enabled": true, "quarantine_excluded_count": 4, "duplicate_excluded_count": 0, "desired_count": 5, "changes_count": 3, "plan": [ {"slot":"egress1","iface":"vpn1","current":"109.248.198.4:37129","target":"192.121.163.235:42530","change":true,"target_rank":"1","target_avg_ms":"39.008"} , {"slot":"egress2","iface":"vpn2","current":"151.236.30.139:33998","target":"37.235.54.96:38971","change":true,"target_rank":"7","target_avg_ms":"62.926"} , {"slot":"egress3","iface":"vpn3","current":"95.211.68.119:45176","target":"95.211.68.119:45176","change":false,"target_rank":"2","target_avg_ms":"44.271"} , {"slot":"egress4","iface":"vpn4","current":"178.215.227.13:44408","target":"192.71.244.202:45735","change":true,"target_rank":"8","target_avg_ms":"66.349"} , {"slot":"egress5","iface":"vpn5","current":"157.173.27.69:41797","target":"157.173.27.69:41797","change":false,"target_rank":"5","target_avg_ms":"56.803"} ] } __BLOCK_END__ current_planner __BLOCK_BEGIN__ current_runner { "schema": "router-egress-emergency-refresh-v1", "mode": "dry-run", "decision": "would_run_emergency_refresh", "reason": "threshold_or_force_reached_no_commit_in_dry_run", "daily_fail_count": 16, "daily_fail_threshold": 5, "threshold_reached": true, "force": false, "cooldown_seconds": 600, "cooldown_remaining": 0, "healthy_vpn_slots": 5, "commit_enabled": true, "direct_failopen_enabled": false, "direct_failopen_action": "disabled_not_allowed_in_step050f", "helper_ok": true, "refresh_cmd": "/root/hmn/hmn-refresh-pool-safe.sh", "refresh_cmd_exists": true, "planner_cmd": "/usr/local/sbin/router-egress-hmn-plan-top5.sh", "planner_cmd_exists": true, "rebalance_apply_cmd": "/usr/local/sbin/router-egress-hmn-rebalance-top5-apply.sh", "rebalance_apply_cmd_exists": true, "watcher_cmd": "/usr/local/sbin/router-egress-health-repair-watch.sh", "watcher_cmd_exists": true, "last_emergency_refresh_status": "refresh_ok_rebalance_ok", "last_emergency_refresh_epoch": 1783803369 } __BLOCK_END__ current_runner __TRACE__ stage=exact_sources __FILE_BEGIN__ runner path=/usr/local/sbin/router-egress-emergency-refresh.sh #!/bin/sh set -u CONF="${EMERGENCY_CONF:-/etc/router-egress-emergency-refresh.conf}" [ -r "$CONF" ] && . "$CONF" EMERGENCY_DAILY_FAIL_THRESHOLD="${EMERGENCY_DAILY_FAIL_THRESHOLD:-5}" EMERGENCY_COOLDOWN_SECONDS="${EMERGENCY_COOLDOWN_SECONDS:-600}" EMERGENCY_COMMIT_ENABLED="${EMERGENCY_COMMIT_ENABLED:-false}" EMERGENCY_DIRECT_FAILOPEN_ENABLED="${EMERGENCY_DIRECT_FAILOPEN_ENABLED:-false}" EMERGENCY_STATE_HELPER="${EMERGENCY_STATE_HELPER:-/usr/local/lib/router-egress-recovery-state.sh}" EMERGENCY_REFRESH_CMD="${EMERGENCY_REFRESH_CMD:-/root/hmn/hmn-refresh-pool-safe.sh}" EMERGENCY_PLANNER_CMD="${EMERGENCY_PLANNER_CMD:-/usr/local/sbin/router-egress-hmn-plan-top5.sh}" EMERGENCY_REBALANCE_APPLY_CMD="${EMERGENCY_REBALANCE_APPLY_CMD:-/usr/local/sbin/router-egress-hmn-rebalance-top5-apply.sh}" EMERGENCY_WATCHER_CMD="${EMERGENCY_WATCHER_CMD:-/usr/local/sbin/router-egress-health-repair-watch.sh}" EMERGENCY_CONFIRM_TOKEN="${EMERGENCY_CONFIRM_TOKEN:-EMERGENCY_HMN_REFRESH}" EMERGENCY_LOCK_DIR="${EMERGENCY_LOCK_DIR:-/var/lock/router-egress-emergency-refresh.lock}" EMERGENCY_LOG="${EMERGENCY_LOG:-/var/log/router-egress-emergency-refresh.log}" mode="dry-run" force=false confirm="" emit_watcher=false emit_planner=true prev="" for arg in "$@"; do if [ "$prev" = "confirm" ]; then confirm="$arg" prev="" continue fi case "$arg" in --dry-run|--dryrun) mode="dry-run" ;; --check|--status) mode="dry-run" ;; --commit|--apply) mode="commit" ;; --selftest) mode="selftest" ;; --force) force=true ;; --with-watcher) emit_watcher=true ;; --no-planner) emit_planner=false ;; --confirm) prev="confirm" ;; esac done json_s() { printf '%s' "$1" | sed 's/\\/\\\\/g; s/"/\\"/g' } json_bool() { case "$1" in true|yes|1) echo true ;; *) echo false ;; esac } now_epoch() { date +%s } helper_ok=false if [ -r "$EMERGENCY_STATE_HELPER" ]; then . "$EMERGENCY_STATE_HELPER" if reg_init_state >/dev/null 2>&1; then helper_ok=true fi fi get_state() { key="$1" def="${2:-0}" if [ "$helper_ok" = "true" ]; then reg_get_state "$key" "$def" 2>/dev/null || echo "$def" else echo "$def" fi } set_state() { key="$1" val="$2" if [ "$helper_ok" = "true" ]; then reg_set_state "$key" "$val" >/dev/null 2>&1 || true fi } daily_count() { if [ "$helper_ok" = "true" ]; then reg_daily_repair_get 2>/dev/null || echo 0 else echo 0 fi } count_healthy_slots() { c=0 for iface in vpn1 vpn2 vpn3 vpn4 vpn5; do if ip link show dev "$iface" >/dev/null 2>&1 && ping -I "$iface" -c 1 -W 3 1.1.1.1 >/tmp/emergency-refresh-ping-${iface}.$$ 2>/dev/null; then c=$((c + 1)) fi rm -f /tmp/emergency-refresh-ping-${iface}.$$ 2>/dev/null || true done echo "$c" } json_external_status() { cmd="$1" if [ -x "$cmd" ]; then echo true else echo false fi } threshold_reached() { cnt="$1" [ "$cnt" -ge "$EMERGENCY_DAILY_FAIL_THRESHOLD" ] 2>/dev/null } cooldown_remaining() { now="$(now_epoch)" last="$(get_state last_emergency_refresh_epoch 0)" elapsed=$((now - last)) if [ "$elapsed" -lt "$EMERGENCY_COOLDOWN_SECONDS" ] 2>/dev/null; then echo $((EMERGENCY_COOLDOWN_SECONDS - elapsed)) else echo 0 fi } emit_json() { decision="$1" reason="$2" cnt="$(daily_count)" cd_rem="$(cooldown_remaining)" healthy_slots="$(count_healthy_slots)" last_status="$(get_state last_emergency_refresh_status NONE)" last_epoch="$(get_state last_emergency_refresh_epoch 0)" echo "{" echo " \"schema\": \"router-egress-emergency-refresh-v1\"," echo " \"mode\": \"$(json_s "$mode")\"," echo " \"decision\": \"$(json_s "$decision")\"," echo " \"reason\": \"$(json_s "$reason")\"," echo " \"daily_fail_count\": $cnt," echo " \"daily_fail_threshold\": $EMERGENCY_DAILY_FAIL_THRESHOLD," echo " \"threshold_reached\": $(threshold_reached "$cnt" && echo true || echo false)," echo " \"force\": $(json_bool "$force")," echo " \"cooldown_seconds\": $EMERGENCY_COOLDOWN_SECONDS," echo " \"cooldown_remaining\": $cd_rem," echo " \"healthy_vpn_slots\": $healthy_slots," echo " \"commit_enabled\": $(json_bool "$EMERGENCY_COMMIT_ENABLED")," echo " \"direct_failopen_enabled\": $(json_bool "$EMERGENCY_DIRECT_FAILOPEN_ENABLED")," echo " \"direct_failopen_action\": \"disabled_not_allowed_in_step050f\"," echo " \"helper_ok\": $(json_bool "$helper_ok")," echo " \"refresh_cmd\": \"$(json_s "$EMERGENCY_REFRESH_CMD")\"," echo " \"refresh_cmd_exists\": $(json_external_status "$EMERGENCY_REFRESH_CMD")," echo " \"planner_cmd\": \"$(json_s "$EMERGENCY_PLANNER_CMD")\"," echo " \"planner_cmd_exists\": $(json_external_status "$EMERGENCY_PLANNER_CMD")," echo " \"rebalance_apply_cmd\": \"$(json_s "$EMERGENCY_REBALANCE_APPLY_CMD")\"," echo " \"rebalance_apply_cmd_exists\": $(json_external_status "$EMERGENCY_REBALANCE_APPLY_CMD")," echo " \"watcher_cmd\": \"$(json_s "$EMERGENCY_WATCHER_CMD")\"," echo " \"watcher_cmd_exists\": $(json_external_status "$EMERGENCY_WATCHER_CMD")," echo " \"last_emergency_refresh_status\": \"$(json_s "$last_status")\"," echo " \"last_emergency_refresh_epoch\": $last_epoch" echo "}" } acquire_lock() { if mkdir "$EMERGENCY_LOCK_DIR" 2>/dev/null; then return 0 fi return 1 } release_lock() { rmdir "$EMERGENCY_LOCK_DIR" 2>/dev/null || true } selftest() { cnt="$(daily_count)" cd_rem="$(cooldown_remaining)" if threshold_reached "$cnt"; then decision="would_run_emergency_refresh" else decision="below_threshold_noop" fi emit_json "$decision" "selftest_uses_current_REG_STATE_DIR_only" } if [ "$mode" = "selftest" ]; then selftest exit 0 fi cnt="$(daily_count)" cd_rem="$(cooldown_remaining)" if [ "$mode" = "dry-run" ]; then if [ "$force" = "true" ] || threshold_reached "$cnt"; then if [ "$cd_rem" -gt 0 ]; then emit_json "cooldown_active" "threshold_or_force_reached_but_cooldown_active" else emit_json "would_run_emergency_refresh" "threshold_or_force_reached_no_commit_in_dry_run" fi else emit_json "below_threshold_noop" "daily_fail_count_below_threshold" fi exit 0 fi if [ "$mode" = "commit" ]; then if [ "$EMERGENCY_COMMIT_ENABLED" != "true" ]; then emit_json "commit_disabled_in_step050f" "skeleton_installed_but_commit_disabled_until_reviewed_followup" exit 0 fi if [ "$confirm" != "$EMERGENCY_CONFIRM_TOKEN" ]; then emit_json "missing_or_wrong_confirm_token" "commit_requires_exact_confirm_token" exit 0 fi if [ "$force" != "true" ] && ! threshold_reached "$cnt"; then emit_json "below_threshold_noop" "daily_fail_count_below_threshold" exit 0 fi if [ "$cd_rem" -gt 0 ]; then emit_json "cooldown_active" "emergency_refresh_cooldown_active" exit 0 fi if ! acquire_lock; then emit_json "lock_busy" "another_emergency_refresh_is_running" exit 0 fi now="$(now_epoch)" set_state mode EMERGENCY_REFRESH set_state last_emergency_refresh_epoch "$now" mkdir -p "$(dirname "$EMERGENCY_LOG")" 2>/dev/null || true printf '%s action=emergency_refresh_start count=%s threshold=%s direct_failopen=false\n' "$(date -u '+%Y-%m-%dT%H:%M:%SZ' 2>/dev/null || date)" "$cnt" "$EMERGENCY_DAILY_FAIL_THRESHOLD" >> "$EMERGENCY_LOG" 2>/dev/null || true if [ ! -x "$EMERGENCY_REFRESH_CMD" ]; then set_state last_emergency_refresh_status refresh_cmd_missing release_lock emit_json "refresh_cmd_missing" "configured_refresh_command_missing" exit 0 fi "$EMERGENCY_REFRESH_CMD" >> "$EMERGENCY_LOG" 2>&1 refresh_rc=$? if [ "$refresh_rc" = "0" ]; then set_state last_emergency_refresh_status refresh_ok_rebalance_pending if [ -x "$EMERGENCY_REBALANCE_APPLY_CMD" ]; then "$EMERGENCY_REBALANCE_APPLY_CMD" --commit --confirm REBALANCE_TOP5_DAILY >> "$EMERGENCY_LOG" 2>&1 rebalance_rc=$? set_state last_emergency_rebalance_rc "$rebalance_rc" else rebalance_rc=127 set_state last_emergency_rebalance_rc "$rebalance_rc" fi if [ "$rebalance_rc" = "0" ]; then set_state mode NORMAL set_state last_emergency_refresh_status refresh_ok_rebalance_ok release_lock emit_json "refresh_ok_rebalance_ok" "fresh_pool_and_top5_rebalance_completed" exit 0 else set_state mode DEGRADED_NO_FRESH_POOL set_state last_emergency_refresh_status refresh_ok_rebalance_failed release_lock emit_json "refresh_ok_rebalance_failed" "refresh_succeeded_but_rebalance_failed_no_direct_failopen" exit 0 fi else set_state mode DEGRADED_NO_FRESH_POOL set_state last_emergency_refresh_status refresh_failed set_state last_emergency_refresh_rc "$refresh_rc" release_lock emit_json "refresh_failed_degraded_no_direct" "refresh_failed_but_direct_failopen_disabled_in_state_machine" exit 0 fi fi emit_json "unknown_mode" "unsupported_mode" exit 0 __FILE_END__ runner __FILE_BEGIN__ rebalance_apply path=/usr/local/sbin/router-egress-hmn-rebalance-top5-apply.sh #!/bin/sh set -u SLOTS_CONF="${SLOTS_CONF:-/etc/router-egress-slots.d/slots.conf}" CACHE_DIR="${CACHE_DIR:-/root/hmn/cache}" STATE_DIR="${STATE_DIR:-/var/lib/router-egress-recovery}" LOG="${LOG:-/var/log/router-egress-rebalance-top5.log}" MAX_POOL_AGE_SEC="${MAX_POOL_AGE_SEC:-129600}" PREFERRED_POOL_FILES="${PREFERRED_POOL_FILES:-ok-awg1-strict-foreign-latest.tsv ok-awg1-strict-all-latest.tsv}" POST_APPLY_SLEEP_SEC="${POST_APPLY_SLEEP_SEC:-12}" MODE="--dry-run" CONFIRM="" while [ $# -gt 0 ]; do case "$1" in --dry-run) MODE="--dry-run"; shift ;; --commit) MODE="--commit"; shift ;; --confirm) CONFIRM="${2:-}"; shift 2 ;; *) shift ;; esac done mkdir -p "$STATE_DIR" "$(dirname "$LOG")" json_escape() { printf '%s' "$1" | sed 's/\\/\\\\/g; s/"/\\"/g'; } strict_ping() { iface="$1" ok=true for target in 1.1.1.1 8.8.8.8; do ping -I "$iface" -c 3 -W 2 "$target" >/tmp/rebalance-ping.out 2>/tmp/rebalance-ping.err rc=$? recv="$(grep -Eo '[0-9]+ packets received' /tmp/rebalance-ping.out 2>/dev/null | awk '{print $1}' | tail -1)" [ -n "$recv" ] || recv=0 [ "$rc" = "0" ] && [ "$recv" = "3" ] || ok=false done rm -f /tmp/rebalance-ping.out /tmp/rebalance-ping.err [ "$ok" = "true" ] } now="$(date +%s)" pool="" pool_age=999999999 pool_endpoints=0 for name in $PREFERRED_POOL_FILES; do f="${CACHE_DIR}/${name}" [ -s "$f" ] || continue epc="$(awk -F '\t' 'NR>1 && $3 ~ /:[0-9][0-9]*$/ {n++} END{print n+0}' "$f" 2>/dev/null)" [ "$epc" -ge 5 ] || continue mt="$(date -r "$f" +%s 2>/dev/null || echo 0)" age=$((now - mt)) [ "$age" -le "$MAX_POOL_AGE_SEC" ] || continue pool="$f" pool_age="$age" pool_endpoints="$epc" break done tmp_top="/tmp/rebalance-top.$$" tmp_current="/tmp/rebalance-current.$$" tmp_missing="/tmp/rebalance-missing.$$" tmp_plan="/tmp/rebalance-plan.$$" trap 'rm -f "$tmp_top" "$tmp_current" "$tmp_missing" "$tmp_plan"' EXIT : > "$tmp_top" : > "$tmp_current" : > "$tmp_missing" : > "$tmp_plan" if [ -n "$pool" ]; then awk -F '\t' ' NR==1 {next} $3 ~ /:[0-9][0-9]*$/ { rank=$1; file=$2; ep=$3; avg=$4; loss=$5; cfg=$6 if (!(ep in seen)) { seen[ep]=1 print rank "\t" avg "\t" ep "\t" file "\t" loss "\t" cfg } } ' "$pool" | sort -n -k1,1 | head -5 > "$tmp_top" fi grep -Ev '^[[:space:]]*(#|$)' "$SLOTS_CONF" 2>/dev/null | awk '{print $1 "\t" $2 "\t" $3 "\t" $4 "\t" $5 "\t" $6 "\t" $7}' | while IFS="$(printf '\t')" read -r slot iface table mark dscp provider adapter; do cur="$(uci -q get network.${iface}.hmn_endpoint 2>/dev/null || true)" printf '%s\t%s\t%s\t%s\t%s\t%s\t%s\t%s\n' "$slot" "$iface" "$table" "$mark" "$dscp" "$provider" "$adapter" "$cur" done > "$tmp_current" awk -F '\t' ' NR==FNR {cur[$8]=1; next} !($3 in cur) {print} ' "$tmp_current" "$tmp_top" > "$tmp_missing" awk -F '\t' ' NR==FNR { top_ep[$3]=1 top_rank[$3]=$1 top_avg[$3]=$2 top_file[$3]=$4 next } FILENAME==ARGV[2] { missing[++m]=$3 missing_rank[m]=$1 missing_avg[m]=$2 missing_file[m]=$4 next } FILENAME==ARGV[3] { slot=$1; iface=$2; table=$3; mark=$4; dscp=$5; provider=$6; adapter=$7; cur=$8 if (cur in top_ep) { target=cur; change="false"; rank=top_rank[cur]; avg=top_avg[cur]; file=top_file[cur] } else { mi++ target=missing[mi]; change="true"; rank=missing_rank[mi]; avg=missing_avg[mi]; file=missing_file[mi] } if (target == "") { target=cur; change="false"; rank=""; avg=""; file="" } print slot "\t" iface "\t" table "\t" mark "\t" dscp "\t" provider "\t" adapter "\t" cur "\t" target "\t" change "\t" rank "\t" avg "\t" file } ' "$tmp_top" "$tmp_missing" "$tmp_current" > "$tmp_plan" changes_count="$(awk -F '\t' '$10=="true"{n++} END{print n+0}' "$tmp_plan")" top_count="$(wc -l < "$tmp_top" 2>/dev/null || echo 0)" decision="plan_ok" reason="top5_pool_ready" apply_performed=false apply_ok=true [ -n "$pool" ] || { decision="refuse"; reason="no_fresh_pool_with_5_endpoints"; } [ "$top_count" = "5" ] || { decision="refuse"; reason="top_count_not_5"; } if [ "$MODE" = "--commit" ]; then if [ "$CONFIRM" != "REBALANCE_TOP5_DAILY" ]; then decision="refuse" reason="missing_or_wrong_confirm" elif [ "$decision" = "plan_ok" ]; then if [ "$changes_count" = "0" ]; then decision="noop" reason="already_top5" apply_performed=false else decision="commit_ok" reason="changes_applied" while IFS="$(printf '\t')" read -r slot iface table mark dscp provider adapter cur target change rank avg file; do [ "$change" = "true" ] || continue apply_performed=true backup_dir="${STATE_DIR}/rebalance-${slot}-$(date +%Y%m%d-%H%M%S)" mkdir -p "$backup_dir" uci show network > "$backup_dir/network.uci.before" 2>/dev/null || true ip route show table "$table" > "$backup_dir/table.before" 2>/dev/null || true cat > "$backup_dir/rollback-${slot}.sh" </dev/null 2>&1 || true ifup ${iface} >/dev/null 2>&1 || true sleep ${POST_APPLY_SLEEP_SEC} [ -x /usr/local/sbin/router-egress-slots-apply.sh ] && /usr/local/sbin/router-egress-slots-apply.sh >/dev/null 2>&1 || true echo rollback_done=true EOF chmod 700 "$backup_dir/rollback-${slot}.sh" uci set network.${iface}.hmn_endpoint="$target" uci commit network ifdown "$iface" >/dev/null 2>&1 || true ifup "$iface" >/dev/null 2>&1 rc=$? sleep "$POST_APPLY_SLEEP_SEC" [ -x /usr/local/sbin/router-egress-slots-apply.sh ] && /usr/local/sbin/router-egress-slots-apply.sh >/dev/null 2>&1 || true if [ "$rc" != "0" ] || ! ip route show table "$table" 2>/dev/null | grep -q . || ! strict_ping "$iface"; then apply_ok=false decision="commit_failed" reason="slot_apply_failed_${slot}" "$backup_dir/rollback-${slot}.sh" >/dev/null 2>&1 || true break fi done < "$tmp_plan" fi fi elif [ "$MODE" = "--dry-run" ]; then : else decision="refuse" reason="unsupported_mode" fi echo "{" echo ' "schema": "router-egress-hmn-rebalance-top5-v1",' echo " \"mode\": \"$(json_escape "$MODE")\"," echo " \"decision\": \"$(json_escape "$decision")\"," echo " \"reason\": \"$(json_escape "$reason")\"," echo " \"pool\": \"$(json_escape "$pool")\"," echo " \"pool_age_sec\": $pool_age," echo " \"pool_endpoint_count\": $pool_endpoints," echo " \"top_count\": $top_count," echo " \"changes_count\": $changes_count," echo " \"apply_performed\": $apply_performed," echo " \"apply_ok\": $apply_ok," echo ' "plan": [' first=1 while IFS="$(printf '\t')" read -r slot iface table mark dscp provider adapter cur target change rank avg file; do [ "$first" = "1" ] || echo "," first=0 printf ' {"slot":"%s","iface":"%s","table":"%s","mark":"%s","dscp":"%s","provider":"%s","adapter":"%s","current":"%s","target":"%s","change":%s,"target_rank":"%s","target_avg_ms":"%s","target_file":"%s"}' \ "$(json_escape "$slot")" "$(json_escape "$iface")" "$(json_escape "$table")" "$(json_escape "$mark")" "$(json_escape "$dscp")" \ "$(json_escape "$provider")" "$(json_escape "$adapter")" "$(json_escape "$cur")" "$(json_escape "$target")" "$change" "$(json_escape "$rank")" "$(json_escape "$avg")" "$(json_escape "$file")" done < "$tmp_plan" echo echo ' ],' echo ' "safety": {"commit_requires_confirm": true, "per_slot_strict_check": true, "per_slot_rollback": true}' echo "}" echo "rebalance_top5 ts=$(date -Is) mode=$MODE decision=$decision reason=$reason changes=$changes_count apply=$apply_performed" >> "$LOG" __FILE_END__ rebalance_apply __FILE_BEGIN__ planner path=/usr/local/sbin/router-egress-hmn-plan-top5.sh #!/bin/sh set -u HELPER="${HELPER:-/usr/local/lib/router-egress-recovery-state.sh}" POOL="${POOL:-/root/hmn/cache/ok-awg1-strict-foreign-latest.tsv}" FALLBACK_POOL="${FALLBACK_POOL:-/root/hmn/cache/ok-awg1-strict-all-latest.tsv}" WORK="/tmp/router-egress-hmn-plan-top5.$$" SLOTS="egress1:vpn1 egress2:vpn2 egress3:vpn3 egress4:vpn4 egress5:vpn5" mkdir -p "$WORK" 2>/dev/null || exit 2 trap 'rm -rf "$WORK"' EXIT INT TERM json_s() { printf '%s' "$1" | sed 's/\\/\\\\/g; s/"/\\"/g' } pool_mtime_epoch_local() { p="$1" if [ -n "$p" ] && [ -e "$p" ]; then v="$(stat -c %Y "$p" 2>/dev/null | head -1)" if printf '%s\n' "$v" | grep -Eq '^[0-9]+$'; then echo "$v" return 0 fi v="$(date -r "$p" +%s 2>/dev/null | head -1)" if printf '%s\n' "$v" | grep -Eq '^[0-9]+$'; then echo "$v" return 0 fi fi echo 0 } contains_endpoint() { ep="$1" file="$2" [ -n "$ep" ] || return 1 [ -f "$file" ] || return 1 awk -F '\t' -v ep="$ep" '$1 == ep { found=1 } END { exit found ? 0 : 1 }' "$file" } candidate_row_for_endpoint() { ep="$1" file="$2" awk -F '\t' -v ep="$ep" '$1 == ep { print; exit }' "$file" } pick_replacement() { desired="$1" keepers="$2" assigned="$3" while IFS="$(printf '\t')" read -r ep rank avg; do [ -n "$ep" ] || continue if contains_endpoint "$ep" "$keepers"; then continue fi if contains_endpoint "$ep" "$assigned"; then continue fi printf '%s\t%s\t%s\n' "$ep" "$rank" "$avg" return 0 done < "$desired" return 1 } if [ ! -f "$POOL" ] && [ -f "$FALLBACK_POOL" ]; then POOL="$FALLBACK_POOL" fi if [ ! -f "$POOL" ]; then echo "{\"schema\":\"router-egress-hmn-plan-top5-v2\",\"decision\":\"missing_pool\",\"pool\":\"$(json_s "$POOL")\",\"changes_count\":0,\"plan\":[]}" exit 0 fi if [ -r "$HELPER" ]; then . "$HELPER" reg_init_state >/dev/null 2>&1 || true QUARANTINE_ENABLED=true else QUARANTINE_ENABLED=false fi CAND="$WORK/candidates.tsv" DESIRED="$WORK/desired.tsv" CURRENT="$WORK/current.tsv" KEEPERS="$WORK/keepers.tsv" ASSIGNED="$WORK/assigned.tsv" PLAN="$WORK/plan.tsv" : > "$CAND" : > "$DESIRED" : > "$CURRENT" : > "$KEEPERS" : > "$ASSIGNED" : > "$PLAN" quarantine_excluded=0 duplicate_excluded=0 { read -r header || true while IFS="$(printf '\t')" read -r rank file endpoint avg_ms ping_loss config_path rest; do [ -n "$endpoint" ] || continue case "$endpoint" in endpoint|\#*) continue ;; esac if contains_endpoint "$endpoint" "$CAND"; then duplicate_excluded=$((duplicate_excluded + 1)) continue fi if [ "$QUARANTINE_ENABLED" = "true" ] && reg_endpoint_quarantined_for_pool "$endpoint" "$POOL"; then quarantine_excluded=$((quarantine_excluded + 1)) continue fi printf '%s\t%s\t%s\n' "$endpoint" "${rank:-0}" "${avg_ms:-}" >> "$CAND" done } < "$POOL" sed -n '1,5p' "$CAND" > "$DESIRED" desired_count="$(wc -l < "$DESIRED" | tr -d ' ')" for pair in $SLOTS; do slot="${pair%%:*}" iface="${pair#*:}" cur="$(uci -q get network.${iface}.hmn_endpoint 2>/dev/null || true)" printf '%s\t%s\t%s\n' "$slot" "$iface" "$cur" >> "$CURRENT" if contains_endpoint "$cur" "$DESIRED"; then printf '%s\n' "$cur" >> "$KEEPERS" fi done changes=0 while IFS="$(printf '\t')" read -r slot iface cur; do if contains_endpoint "$cur" "$DESIRED"; then row="$(candidate_row_for_endpoint "$cur" "$DESIRED")" target="$cur" rank="$(printf '%s\n' "$row" | awk -F '\t' '{print $2}')" avg="$(printf '%s\n' "$row" | awk -F '\t' '{print $3}')" change=false else row="$(pick_replacement "$DESIRED" "$KEEPERS" "$ASSIGNED" || true)" target="$(printf '%s\n' "$row" | awk -F '\t' '{print $1}')" rank="$(printf '%s\n' "$row" | awk -F '\t' '{print $2}')" avg="$(printf '%s\n' "$row" | awk -F '\t' '{print $3}')" if [ -n "$target" ]; then printf '%s\n' "$target" >> "$ASSIGNED" fi if [ "$target" = "$cur" ]; then change=false else change=true changes=$((changes + 1)) fi fi printf '%s\t%s\t%s\t%s\t%s\t%s\t%s\n' "$slot" "$iface" "$cur" "$target" "$change" "$rank" "$avg" >> "$PLAN" done < "$CURRENT" decision="plan_ok" if [ "$desired_count" -lt 5 ]; then decision="not_enough_candidates" fi pool_mtime="$(pool_mtime_epoch_local "$POOL")" echo "{" echo " \"schema\": \"router-egress-hmn-plan-top5-v2\"," echo " \"decision\": \"$(json_s "$decision")\"," echo " \"pool\": \"$(json_s "$POOL")\"," echo " \"pool_mtime_epoch\": $pool_mtime," echo " \"quarantine_enabled\": $QUARANTINE_ENABLED," echo " \"quarantine_excluded_count\": $quarantine_excluded," echo " \"duplicate_excluded_count\": $duplicate_excluded," echo " \"desired_count\": $desired_count," echo " \"changes_count\": $changes," echo " \"plan\": [" i=0 while IFS="$(printf '\t')" read -r slot iface cur target change rank avg; do [ "$i" -gt 0 ] && echo " ," printf ' {"slot":"%s","iface":"%s","current":"%s","target":"%s","change":%s,"target_rank":"%s","target_avg_ms":"%s"}\n' \ "$(json_s "$slot")" \ "$(json_s "$iface")" \ "$(json_s "$cur")" \ "$(json_s "$target")" \ "$change" \ "$(json_s "$rank")" \ "$(json_s "$avg")" i=$((i + 1)) done < "$PLAN" echo " ]" echo "}" __FILE_END__ planner __TRACE__ stage=adapter_discovery __BLOCK_BEGIN__ discovered_adapter_paths /usr/local/sbin/router-egress-slots-apply.sh __BLOCK_END__ discovered_adapter_paths __ADAPTER_FILE_BEGIN__ path=/usr/local/sbin/router-egress-slots-apply.sh #!/bin/sh set -u ensure_link() { iface="$1" ip link show "$iface" >/dev/null 2>&1 || { echo "BLOCK: missing_iface_$iface" exit 10 } } ensure_rule() { pref="$1" mark="$2" table="$3" ip rule show | grep -E "fwmark $mark.*lookup $table|fwmark $mark/0xffffffff.*lookup $table" >/dev/null && return 0 ip rule add pref "$pref" fwmark "$mark" lookup "$table" } case "${1:-start}" in start|restart|reload) ensure_link vpn1 ensure_link vpn2 ensure_link vpn3 ensure_link vpn4 ensure_link vpn5 ip route replace default dev vpn1 table 201 ip route replace default dev vpn2 table 202 ip route replace default dev vpn3 table 203 ip route replace default dev vpn4 table 204 ip route replace default dev vpn5 table 205 ensure_rule 10011 0x201 201 ensure_rule 10012 0x202 202 ensure_rule 10013 0x203 203 ensure_rule 10014 0x204 204 ensure_rule 10015 0x205 205 ip route flush cache 2>/dev/null || true ip route show table 200 | grep -F "default dev vpn1" >/dev/null || { echo "BLOCK: legacy_table200_default_vpn1_missing" exit 20 } echo "applied_router_egress_slots_5=1" ;; stop) for mark_table in "0x201 201 10011" "0x202 202 10012" "0x203 203 10013" "0x204 204 10014" "0x205 205 10015"; do set -- $mark_table mark="$1" table="$2" pref="$3" while ip rule show | grep -E "fwmark $mark.*lookup $table|fwmark $mark/0xffffffff.*lookup $table" >/dev/null; do ip rule del fwmark "$mark" lookup "$table" 2>/dev/null || ip rule del pref "$pref" 2>/dev/null || break done done ip route flush table 201 2>/dev/null || true ip route flush table 202 2>/dev/null || true ip route flush table 203 2>/dev/null || true ip route flush table 204 2>/dev/null || true ip route flush table 205 2>/dev/null || true echo "stopped_router_egress_slots_5=1" ;; status) ip rule show | grep -E 'fwmark 0x20[1-5]|lookup 20[1-5]' || true for t in 201 202 203 204 205; do echo "--- table $t ---" ip route show table "$t" || true done ;; *) echo "usage: $0 {start|stop|restart|reload|status}" exit 1 ;; esac __ADAPTER_FILE_END__ path=/usr/local/sbin/router-egress-slots-apply.sh __TRACE__ stage=source_excerpts __BLOCK_BEGIN__ runner_contract_excerpt 15:EMERGENCY_REBALANCE_APPLY_CMD="${EMERGENCY_REBALANCE_APPLY_CMD:-/usr/local/sbin/router-egress-hmn-rebalance-top5-apply.sh}" 41: --commit|--apply) 42: mode="commit" 148: decision="$1" 159: echo " \"decision\": \"$(json_s "$decision")\"," 168: echo " \"commit_enabled\": $(json_bool "$EMERGENCY_COMMIT_ENABLED")," 176: echo " \"rebalance_apply_cmd\": \"$(json_s "$EMERGENCY_REBALANCE_APPLY_CMD")\"," 177: echo " \"rebalance_apply_cmd_exists\": $(json_external_status "$EMERGENCY_REBALANCE_APPLY_CMD")," 200: decision="would_run_emergency_refresh" 202: decision="below_threshold_noop" 204: emit_json "$decision" "selftest_uses_current_REG_STATE_DIR_only" 209: exit 0 220: emit_json "would_run_emergency_refresh" "threshold_or_force_reached_no_commit_in_dry_run" 225: exit 0 228:if [ "$mode" = "commit" ]; then 230: emit_json "commit_disabled_in_step050f" "skeleton_installed_but_commit_disabled_until_reviewed_followup" 231: exit 0 235: emit_json "missing_or_wrong_confirm_token" "commit_requires_exact_confirm_token" 236: exit 0 241: exit 0 246: exit 0 251: exit 0 264: exit 0 272: if [ -x "$EMERGENCY_REBALANCE_APPLY_CMD" ]; then 273: "$EMERGENCY_REBALANCE_APPLY_CMD" --commit --confirm REBALANCE_TOP5_DAILY >> "$EMERGENCY_LOG" 2>&1 282: set_state last_emergency_refresh_status refresh_ok_rebalance_ok 284: emit_json "refresh_ok_rebalance_ok" "fresh_pool_and_top5_rebalance_completed" 285: exit 0 288: set_state last_emergency_refresh_status refresh_ok_rebalance_failed 290: emit_json "refresh_ok_rebalance_failed" "refresh_succeeded_but_rebalance_failed_no_direct_failopen" 291: exit 0 299: exit 0 304:exit 0 __BLOCK_END__ runner_contract_excerpt __BLOCK_BEGIN__ apply_contract_excerpt 9:PREFERRED_POOL_FILES="${PREFERRED_POOL_FILES:-ok-awg1-strict-foreign-latest.tsv ok-awg1-strict-all-latest.tsv}" 27:strict_ping() { 84:grep -Ev '^[[:space:]]*(#|$)' "$SLOTS_CONF" 2>/dev/null | awk '{print $1 "\t" $2 "\t" $3 "\t" $4 "\t" $5 "\t" $6 "\t" $7}' | while IFS="$(printf '\t')" read -r slot iface table mark dscp provider adapter; do 86: printf '%s\t%s\t%s\t%s\t%s\t%s\t%s\t%s\n' "$slot" "$iface" "$table" "$mark" "$dscp" "$provider" "$adapter" "$cur" 110: slot=$1; iface=$2; table=$3; mark=$4; dscp=$5; provider=$6; adapter=$7; cur=$8 118: print slot "\t" iface "\t" table "\t" mark "\t" dscp "\t" provider "\t" adapter "\t" cur "\t" target "\t" change "\t" rank "\t" avg "\t" file 124:decision="plan_ok" 127:apply_ok=true 129:[ -n "$pool" ] || { decision="refuse"; reason="no_fresh_pool_with_5_endpoints"; } 130:[ "$top_count" = "5" ] || { decision="refuse"; reason="top_count_not_5"; } 134: decision="refuse" 136: elif [ "$decision" = "plan_ok" ]; then 138: decision="noop" 142: decision="commit_ok" 144: while IFS="$(printf '\t')" read -r slot iface table mark dscp provider adapter cur target change rank avg file; do 151: cat > "$backup_dir/rollback-${slot}.sh" </dev/null | grep -q . || ! strict_ping "$iface"; then 172: apply_ok=false 173: decision="commit_failed" 174: reason="slot_apply_failed_${slot}" 175: "$backup_dir/rollback-${slot}.sh" >/dev/null 2>&1 || true 184: decision="refuse" 191:echo " \"decision\": \"$(json_escape "$decision")\"," 199:echo " \"apply_ok\": $apply_ok," 202:while IFS="$(printf '\t')" read -r slot iface table mark dscp provider adapter cur target change rank avg file; do 205: printf ' {"slot":"%s","iface":"%s","table":"%s","mark":"%s","dscp":"%s","provider":"%s","adapter":"%s","current":"%s","target":"%s","change":%s,"target_rank":"%s","target_avg_ms":"%s","target_file":"%s"}' \ 207: "$(json_escape "$provider")" "$(json_escape "$adapter")" "$(json_escape "$cur")" "$(json_escape "$target")" "$change" "$(json_escape "$rank")" "$(json_escape "$avg")" "$(json_escape "$file")" 211:echo ' "safety": {"commit_requires_confirm": true, "per_slot_strict_check": true, "per_slot_rollback": true}' 213:echo "rebalance_top5 ts=$(date -Is) mode=$MODE decision=$decision reason=$reason changes=$changes_count apply=$apply_performed" >> "$LOG" __BLOCK_END__ apply_contract_excerpt __BLOCK_BEGIN__ planner_contract_excerpt 10:mkdir -p "$WORK" 2>/dev/null || exit 2 23: return 0 28: return 0 37: [ -n "$ep" ] || return 1 38: [ -f "$file" ] || return 1 39: awk -F '\t' -v ep="$ep" '$1 == ep { found=1 } END { exit found ? 0 : 1 }' "$file" 45: awk -F '\t' -v ep="$ep" '$1 == ep { print; exit }' "$file" 61: return 0 63: return 1 71: echo "{\"schema\":\"router-egress-hmn-plan-top5-v2\",\"decision\":\"missing_pool\",\"pool\":\"$(json_s "$POOL")\",\"changes_count\":0,\"plan\":[]}" 72: exit 0 85:CURRENT="$WORK/current.tsv" 96:quarantine_excluded=0 110: if [ "$QUARANTINE_ENABLED" = "true" ] && reg_endpoint_quarantined_for_pool "$endpoint" "$POOL"; then 111: quarantine_excluded=$((quarantine_excluded + 1)) 137: target="$cur" 143: target="$(printf '%s\n' "$row" | awk -F '\t' '{print $1}')" 146: if [ -n "$target" ]; then 147: printf '%s\n' "$target" >> "$ASSIGNED" 149: if [ "$target" = "$cur" ]; then 157: printf '%s\t%s\t%s\t%s\t%s\t%s\t%s\n' "$slot" "$iface" "$cur" "$target" "$change" "$rank" "$avg" >> "$PLAN" 160:decision="plan_ok" 172:echo " \"quarantine_enabled\": $QUARANTINE_ENABLED," 173:echo " \"quarantine_excluded_count\": $quarantine_excluded," 176:echo " \"changes_count\": $changes," 179:while IFS="$(printf '\t')" read -r slot iface cur target change rank avg; do 181: printf ' {"slot":"%s","iface":"%s","current":"%s","target":"%s","change":%s,"target_rank":"%s","target_avg_ms":"%s"}\n' \ 185: "$(json_s "$target")" \ __BLOCK_END__ planner_contract_excerpt __TRACE__ stage=failure_artifacts __BLOCK_BEGIN__ recent_recovery_files -rw------- 1 root root 5 Jul 11 18:28 /var/lib/router-egress-recovery/step050m07b-20260711-182854-8532/emergency-decision-last.existed -rw------- 1 root root 5 Jul 11 18:28 /var/lib/router-egress-recovery/step050m07b-20260711-182854-8532/state.kv.existed -rw------- 1 root root 29 Jul 11 21:00 /var/lib/router-egress-recovery/rebalance-egress1-20260711-210053/table.before -rw------- 1 root root 664 Jul 11 18:28 /var/lib/router-egress-recovery/step050m07b-20260711-182854-8532/slot-rollbacks.before -rw------- 1 root root 664 Jul 11 18:29 /var/lib/router-egress-recovery/step050m07b-20260711-182854-8532/slot-rollbacks.after -rw------- 1 root root 999 Jul 11 18:28 /var/lib/router-egress-recovery/step050m07b-20260711-182854-8532/emergency-decision-last.json.before -rw------- 1 root root 8218 Jul 11 18:13 /var/lib/router-egress-recovery/step050m07b-20260711-182854-8532/network.before -rw------- 1 root root 10481 Jul 11 21:00 /var/lib/router-egress-recovery/rebalance-egress1-20260711-210053/network.uci.before -rw-r--r-- 1 root root 0 Jul 11 21:08 /var/lib/router-egress-recovery/health-watch/last.err -rw-r--r-- 1 root root 2 Jul 11 21:08 /var/lib/router-egress-recovery/health-watch/fail-egress1 -rw-r--r-- 1 root root 2 Jul 11 21:08 /var/lib/router-egress-recovery/health-watch/fail-egress2 -rw-r--r-- 1 root root 2 Jul 11 21:08 /var/lib/router-egress-recovery/health-watch/fail-egress3 -rw-r--r-- 1 root root 2 Jul 11 21:08 /var/lib/router-egress-recovery/health-watch/fail-egress4 -rw-r--r-- 1 root root 2 Jul 11 21:08 /var/lib/router-egress-recovery/health-watch/fail-egress5 -rw-r--r-- 1 root root 3 Jul 11 21:01 /var/lib/router-egress-recovery/fail-counter/repairs_20260711.count -rw-r--r-- 1 root root 11 Jul 11 21:01 /var/lib/router-egress-recovery/health-watch/cooldown-egress4 -rw-r--r-- 1 root root 29 Jul 11 17:10 /var/lib/router-egress-recovery/backup-egress4-20260711-171001/table.before -rw-r--r-- 1 root root 29 Jul 11 17:26 /var/lib/router-egress-recovery/backup-egress4-20260711-172616/table.before -rw-r--r-- 1 root root 29 Jul 11 17:42 /var/lib/router-egress-recovery/backup-egress4-20260711-174234/table.before -rw-r--r-- 1 root root 29 Jul 11 17:57 /var/lib/router-egress-recovery/backup-egress4-20260711-175738/table.before -rw-r--r-- 1 root root 29 Jul 11 18:13 /var/lib/router-egress-recovery/backup-egress4-20260711-181356/table.before -rw-r--r-- 1 root root 29 Jul 11 18:29 /var/lib/router-egress-recovery/backup-egress4-20260711-182916/table.before -rw-r--r-- 1 root root 29 Jul 11 18:45 /var/lib/router-egress-recovery/backup-egress4-20260711-184533/table.before -rw-r--r-- 1 root root 29 Jul 11 19:04 /var/lib/router-egress-recovery/backup-egress4-20260711-190443/table.before -rw-r--r-- 1 root root 29 Jul 11 19:35 /var/lib/router-egress-recovery/backup-egress4-20260711-193554/table.before -rw-r--r-- 1 root root 29 Jul 11 19:52 /var/lib/router-egress-recovery/backup-egress4-20260711-195218/table.before -rw-r--r-- 1 root root 29 Jul 11 20:07 /var/lib/router-egress-recovery/backup-egress4-20260711-200719/table.before -rw-r--r-- 1 root root 29 Jul 11 20:22 /var/lib/router-egress-recovery/backup-egress4-20260711-202222/table.before -rw-r--r-- 1 root root 29 Jul 11 20:38 /var/lib/router-egress-recovery/backup-egress4-20260711-203836/table.before -rw-r--r-- 1 root root 29 Jul 11 21:01 /var/lib/router-egress-recovery/backup-egress4-20260711-210141/table.before -rw-r--r-- 1 root root 192 Jul 11 18:28 /var/lib/router-egress-recovery/step050m07b-20260711-182854-8532/state.kv.before -rw-r--r-- 1 root root 329 Jul 11 21:08 /var/lib/router-egress-recovery/state.kv -rw-r--r-- 1 root root 791 Jul 11 21:08 /var/lib/router-egress-recovery/health-watch/last.json -rw-r--r-- 1 root root 1028 Jul 11 21:08 /var/lib/router-egress-recovery/emergency-decision-last.json -rw-r--r-- 1 root root 1105 Jul 11 21:01 /var/lib/router-egress-recovery/hmn-pool-replace-last.json -rw-r--r-- 1 root root 3260 Jul 11 21:01 /var/lib/router-egress-recovery/quarantine.tsv -rw-r--r-- 1 root root 10478 Jul 11 17:10 /var/lib/router-egress-recovery/backup-egress4-20260711-171001/network.uci.before -rw-r--r-- 1 root root 10480 Jul 11 17:26 /var/lib/router-egress-recovery/backup-egress4-20260711-172616/network.uci.before -rw-r--r-- 1 root root 10480 Jul 11 17:42 /var/lib/router-egress-recovery/backup-egress4-20260711-174234/network.uci.before -rw-r--r-- 1 root root 10480 Jul 11 17:57 /var/lib/router-egress-recovery/backup-egress4-20260711-175738/network.uci.before -rw-r--r-- 1 root root 10480 Jul 11 18:13 /var/lib/router-egress-recovery/backup-egress4-20260711-181356/network.uci.before -rw-r--r-- 1 root root 10480 Jul 11 18:29 /var/lib/router-egress-recovery/backup-egress4-20260711-182916/network.uci.before -rw-r--r-- 1 root root 10480 Jul 11 18:45 /var/lib/router-egress-recovery/backup-egress4-20260711-184533/network.uci.before -rw-r--r-- 1 root root 10480 Jul 11 19:04 /var/lib/router-egress-recovery/backup-egress4-20260711-190443/network.uci.before -rw-r--r-- 1 root root 10480 Jul 11 19:35 /var/lib/router-egress-recovery/backup-egress4-20260711-193554/network.uci.before -rw-r--r-- 1 root root 10480 Jul 11 19:52 /var/lib/router-egress-recovery/backup-egress4-20260711-195218/network.uci.before -rw-r--r-- 1 root root 10480 Jul 11 20:07 /var/lib/router-egress-recovery/backup-egress4-20260711-200719/network.uci.before -rw-r--r-- 1 root root 10480 Jul 11 20:22 /var/lib/router-egress-recovery/backup-egress4-20260711-202222/network.uci.before -rw-r--r-- 1 root root 10480 Jul 11 20:38 /var/lib/router-egress-recovery/backup-egress4-20260711-203836/network.uci.before -rw-r--r-- 1 root root 10481 Jul 11 21:01 /var/lib/router-egress-recovery/backup-egress4-20260711-210141/network.uci.before -rwx------ 1 root root 312 Jul 11 21:00 /var/lib/router-egress-recovery/rebalance-egress1-20260711-210053/rollback-egress1.sh -rwx------ 1 root root 331 Jul 11 17:10 /var/lib/router-egress-recovery/backup-egress4-20260711-171001/rollback-egress4.sh -rwx------ 1 root root 333 Jul 11 17:26 /var/lib/router-egress-recovery/backup-egress4-20260711-172616/rollback-egress4.sh -rwx------ 1 root root 333 Jul 11 17:42 /var/lib/router-egress-recovery/backup-egress4-20260711-174234/rollback-egress4.sh -rwx------ 1 root root 333 Jul 11 17:57 /var/lib/router-egress-recovery/backup-egress4-20260711-175738/rollback-egress4.sh -rwx------ 1 root root 333 Jul 11 18:13 /var/lib/router-egress-recovery/backup-egress4-20260711-181356/rollback-egress4.sh -rwx------ 1 root root 333 Jul 11 18:29 /var/lib/router-egress-recovery/backup-egress4-20260711-182916/rollback-egress4.sh -rwx------ 1 root root 333 Jul 11 18:45 /var/lib/router-egress-recovery/backup-egress4-20260711-184533/rollback-egress4.sh -rwx------ 1 root root 333 Jul 11 19:04 /var/lib/router-egress-recovery/backup-egress4-20260711-190443/rollback-egress4.sh -rwx------ 1 root root 333 Jul 11 19:35 /var/lib/router-egress-recovery/backup-egress4-20260711-193554/rollback-egress4.sh -rwx------ 1 root root 333 Jul 11 19:52 /var/lib/router-egress-recovery/backup-egress4-20260711-195218/rollback-egress4.sh -rwx------ 1 root root 333 Jul 11 20:07 /var/lib/router-egress-recovery/backup-egress4-20260711-200719/rollback-egress4.sh -rwx------ 1 root root 333 Jul 11 20:22 /var/lib/router-egress-recovery/backup-egress4-20260711-202222/rollback-egress4.sh -rwx------ 1 root root 333 Jul 11 20:38 /var/lib/router-egress-recovery/backup-egress4-20260711-203836/rollback-egress4.sh -rwx------ 1 root root 333 Jul 11 21:01 /var/lib/router-egress-recovery/backup-egress4-20260711-210141/rollback-egress4.sh __BLOCK_END__ recent_recovery_files __BLOCK_BEGIN__ recent_tmp_files -rw------- 1 root root 1328 Jul 11 20:56 /tmp/step050m07c5-backup-20260711-205606-17419/slot-rollbacks.before -rw-r--r-- 1 root root 0 Jul 11 18:29 /tmp/health-watch-egress1-vpn1-8_8_8_8-9659.err -rw-r--r-- 1 root root 0 Jul 11 19:29 /tmp/health-watch-egress1-vpn1-8_8_8_8-5572.err -rw-r--r-- 1 root root 0 Jul 11 19:30 /tmp/health-watch-egress1-vpn1-1_1_1_1-8686.err -rw-r--r-- 1 root root 331 Jul 11 19:30 /tmp/health-watch-egress1-vpn1-1_1_1_1-8686.out -rw-r--r-- 1 root root 334 Jul 11 18:29 /tmp/health-watch-egress1-vpn1-8_8_8_8-9659.out -rw-r--r-- 1 root root 334 Jul 11 19:29 /tmp/health-watch-egress1-vpn1-8_8_8_8-5572.out -rw-r--r-- 1 root root 733 Jul 11 21:01 /tmp/log/router-egress-rebalance-top5.log __BLOCK_END__ recent_tmp_files __BLOCK_BEGIN__ recent_hmn_logs -rw------- 1 root root 9013 Jul 11 19:28 /root/hmn/logs/validate-current-pool-20260711-191751.log -rw------- 1 root root 9936 Jul 11 21:00 /root/hmn/logs/validate-current-pool-20260711-205653.log -rw------- 1 root root 19481 Jul 11 19:28 /root/hmn/logs/refresh-pool-safe-20260711-191751-11798.log -rw------- 1 root root 34710 Jul 11 21:00 /root/hmn/logs/refresh-pool-safe-20260711-205609-18433.log __BLOCK_END__ recent_hmn_logs __BLOCK_BEGIN__ relevant_log_lines /var/lib/router-egress-recovery/backup-egress2-20260711-091232/network.uci.before:48:network.vpn1.addresses='10.91.233.132/32' /var/lib/router-egress-recovery/backup-egress2-20260711-091232/network.uci.before:49:network.vpn1.dns='1.1.1.1' /var/lib/router-egress-recovery/backup-egress2-20260711-091232/network.uci.before:50:network.vpn1.hmn_role='active_spare_slot' /var/lib/router-egress-recovery/backup-egress2-20260711-091232/network.uci.before:51:network.vpn1.hmn_source_config='/root/hmn/configs/awg1/latest/150-NL-Netherlands-Amsterdam-R5-178.215.227.13-awg1.conf' /var/lib/router-egress-recovery/backup-egress2-20260711-091232/network.uci.before:52:network.vpn1.hmn_loaded_at='2026-07-06T17:07:53+00:00' /var/lib/router-egress-recovery/backup-egress2-20260711-091232/network.uci.before:53:network.vpn1.hmn_endpoint='178.215.227.13:44408' /var/lib/router-egress-recovery/backup-egress2-20260711-091232/network.uci.before:54:network.@amneziawg_vpn1[0]=amneziawg_vpn1 /var/lib/router-egress-recovery/backup-egress2-20260711-091232/network.uci.before:55:network.@amneziawg_vpn1[0].description='150-NL-Netherlands-Amsterdam-R5-178.215.227.13-awg1.conf' /var/lib/router-egress-recovery/backup-egress2-20260711-091232/network.uci.before:56:network.@amneziawg_vpn1[0].public_key='CAZ2FgESKM67A3XofKNoftcFcy9mtaVga8t/3qcCABI=' /var/lib/router-egress-recovery/backup-egress2-20260711-091232/network.uci.before:57:network.@amneziawg_vpn1[0].allowed_ips='0.0.0.0/0' /var/lib/router-egress-recovery/backup-egress2-20260711-091232/network.uci.before:58:network.@amneziawg_vpn1[0].route_allowed_ips='0' /var/lib/router-egress-recovery/backup-egress2-20260711-091232/network.uci.before:59:network.@amneziawg_vpn1[0].persistent_keepalive='23' /var/lib/router-egress-recovery/backup-egress2-20260711-091232/network.uci.before:60:network.@amneziawg_vpn1[0].endpoint_host='178.215.227.13' /var/lib/router-egress-recovery/backup-egress2-20260711-091232/network.uci.before:61:network.@amneziawg_vpn1[0].endpoint_port='44408' /var/lib/router-egress-recovery/backup-egress2-20260711-091232/rollback-egress2.sh:11:echo "rollback_done=true" /var/lib/router-egress-recovery/quarantine.tsv:3:1783787212 2026-07-11T16:26:52Z egress1 vpn1 178.215.227.13:44408 109.248.198.4:37129 repair_replaced_endpoint /root/hmn/cache/ok-awg1-strict-foreign-latest.tsv 1783702742 STEP_050D_REPAIR_WRAPPER /var/lib/router-egress-recovery/backup-egress2-20260711-104857/network.uci.before:31:network.vpn1=interface /var/lib/router-egress-recovery/backup-egress2-20260711-104857/network.uci.before:32:network.vpn1.proto='amneziawg' /var/lib/router-egress-recovery/backup-egress2-20260711-104857/network.uci.before:33:network.vpn1.private_key='CF/y7ER2K59rSMWf9G90u10yQlWfKu1WiE/zYcrY7EI=' /var/lib/router-egress-recovery/backup-egress2-20260711-104857/network.uci.before:34:network.vpn1.awg_jc='3' /var/lib/router-egress-recovery/backup-egress2-20260711-104857/network.uci.before:35:network.vpn1.awg_jmin='50' /var/lib/router-egress-recovery/backup-egress2-20260711-104857/network.uci.before:36:network.vpn1.awg_jmax='100' /var/lib/router-egress-recovery/backup-egress2-20260711-104857/network.uci.before:37:network.vpn1.awg_s1='92' /var/lib/router-egress-recovery/backup-egress2-20260711-104857/network.uci.before:38:network.vpn1.awg_s2='90' /var/lib/router-egress-recovery/backup-egress2-20260711-104857/network.uci.before:39:network.vpn1.awg_h1='1128827374' /var/lib/router-egress-recovery/backup-egress2-20260711-104857/network.uci.before:40:network.vpn1.awg_h2='1959569870' /var/lib/router-egress-recovery/backup-egress2-20260711-104857/network.uci.before:41:network.vpn1.awg_h3='96441901' /var/lib/router-egress-recovery/backup-egress2-20260711-104857/network.uci.before:42:network.vpn1.awg_h4='2091878015' /var/lib/router-egress-recovery/backup-egress2-20260711-104857/network.uci.before:43:network.vpn1.auto='0' /var/lib/router-egress-recovery/backup-egress2-20260711-104857/network.uci.before:44:network.vpn1.disabled='0' /var/lib/router-egress-recovery/backup-egress2-20260711-104857/network.uci.before:45:network.vpn1.delegate='0' /var/lib/router-egress-recovery/backup-egress2-20260711-104857/network.uci.before:46:network.vpn1.peerdns='0' /var/lib/router-egress-recovery/backup-egress2-20260711-104857/network.uci.before:47:network.vpn1.defaultroute='0' /var/lib/router-egress-recovery/backup-egress2-20260711-104857/network.uci.before:48:network.vpn1.addresses='10.91.233.132/32' /var/lib/router-egress-recovery/backup-egress2-20260711-104857/network.uci.before:49:network.vpn1.dns='1.1.1.1' /var/lib/router-egress-recovery/backup-egress2-20260711-104857/network.uci.before:50:network.vpn1.hmn_role='active_spare_slot' /var/lib/router-egress-recovery/backup-egress2-20260711-104857/network.uci.before:51:network.vpn1.hmn_source_config='/root/hmn/configs/awg1/latest/150-NL-Netherlands-Amsterdam-R5-178.215.227.13-awg1.conf' /var/lib/router-egress-recovery/backup-egress2-20260711-104857/network.uci.before:52:network.vpn1.hmn_loaded_at='2026-07-06T17:07:53+00:00' /var/lib/router-egress-recovery/backup-egress2-20260711-104857/network.uci.before:53:network.vpn1.hmn_endpoint='178.215.227.13:44408' /var/lib/router-egress-recovery/backup-egress2-20260711-104857/network.uci.before:54:network.@amneziawg_vpn1[0]=amneziawg_vpn1 /var/lib/router-egress-recovery/backup-egress2-20260711-104857/network.uci.before:55:network.@amneziawg_vpn1[0].description='150-NL-Netherlands-Amsterdam-R5-178.215.227.13-awg1.conf' /var/lib/router-egress-recovery/backup-egress2-20260711-104857/network.uci.before:56:network.@amneziawg_vpn1[0].public_key='CAZ2FgESKM67A3XofKNoftcFcy9mtaVga8t/3qcCABI=' /var/lib/router-egress-recovery/backup-egress2-20260711-104857/network.uci.before:57:network.@amneziawg_vpn1[0].allowed_ips='0.0.0.0/0' /var/lib/router-egress-recovery/backup-egress2-20260711-104857/network.uci.before:58:network.@amneziawg_vpn1[0].route_allowed_ips='0' /var/lib/router-egress-recovery/backup-egress2-20260711-104857/network.uci.before:59:network.@amneziawg_vpn1[0].persistent_keepalive='23' /var/lib/router-egress-recovery/backup-egress2-20260711-104857/network.uci.before:60:network.@amneziawg_vpn1[0].endpoint_host='178.215.227.13' /var/lib/router-egress-recovery/backup-egress2-20260711-104857/network.uci.before:61:network.@amneziawg_vpn1[0].endpoint_port='44408' /var/lib/router-egress-recovery/backup-egress2-20260711-104857/rollback-egress2.sh:11:echo "rollback_done=true" /var/lib/router-egress-recovery/backup-egress1-20260711-162636/network.uci.before:31:network.vpn1=interface /var/lib/router-egress-recovery/backup-egress1-20260711-162636/network.uci.before:32:network.vpn1.proto='amneziawg' /var/lib/router-egress-recovery/backup-egress1-20260711-162636/network.uci.before:33:network.vpn1.private_key='CF/y7ER2K59rSMWf9G90u10yQlWfKu1WiE/zYcrY7EI=' /var/lib/router-egress-recovery/backup-egress1-20260711-162636/network.uci.before:34:network.vpn1.awg_jc='3' /var/lib/router-egress-recovery/backup-egress1-20260711-162636/network.uci.before:35:network.vpn1.awg_jmin='50' /var/lib/router-egress-recovery/backup-egress1-20260711-162636/network.uci.before:36:network.vpn1.awg_jmax='100' /var/lib/router-egress-recovery/backup-egress1-20260711-162636/network.uci.before:37:network.vpn1.awg_s1='92' /var/lib/router-egress-recovery/backup-egress1-20260711-162636/network.uci.before:38:network.vpn1.awg_s2='90' /var/lib/router-egress-recovery/backup-egress1-20260711-162636/network.uci.before:39:network.vpn1.awg_h1='1128827374' /var/lib/router-egress-recovery/backup-egress1-20260711-162636/network.uci.before:40:network.vpn1.awg_h2='1959569870' /var/lib/router-egress-recovery/backup-egress1-20260711-162636/network.uci.before:41:network.vpn1.awg_h3='96441901' /var/lib/router-egress-recovery/backup-egress1-20260711-162636/network.uci.before:42:network.vpn1.awg_h4='2091878015' /var/lib/router-egress-recovery/backup-egress1-20260711-162636/network.uci.before:43:network.vpn1.auto='0' /var/lib/router-egress-recovery/backup-egress1-20260711-162636/network.uci.before:44:network.vpn1.disabled='0' /var/lib/router-egress-recovery/backup-egress1-20260711-162636/network.uci.before:45:network.vpn1.delegate='0' /var/lib/router-egress-recovery/backup-egress1-20260711-162636/network.uci.before:46:network.vpn1.peerdns='0' /var/lib/router-egress-recovery/backup-egress1-20260711-162636/network.uci.before:47:network.vpn1.defaultroute='0' /var/lib/router-egress-recovery/backup-egress1-20260711-162636/network.uci.before:48:network.vpn1.addresses='10.91.233.132/32' /var/lib/router-egress-recovery/backup-egress1-20260711-162636/network.uci.before:49:network.vpn1.dns='1.1.1.1' /var/lib/router-egress-recovery/backup-egress1-20260711-162636/network.uci.before:50:network.vpn1.hmn_role='active_spare_slot' /var/lib/router-egress-recovery/backup-egress1-20260711-162636/network.uci.before:51:network.vpn1.hmn_source_config='/root/hmn/configs/awg1/latest/150-NL-Netherlands-Amsterdam-R5-178.215.227.13-awg1.conf' /var/lib/router-egress-recovery/backup-egress1-20260711-162636/network.uci.before:52:network.vpn1.hmn_loaded_at='2026-07-06T17:07:53+00:00' /var/lib/router-egress-recovery/backup-egress1-20260711-162636/network.uci.before:53:network.vpn1.hmn_endpoint='178.215.227.13:44408' /var/lib/router-egress-recovery/backup-egress1-20260711-162636/network.uci.before:54:network.@amneziawg_vpn1[0]=amneziawg_vpn1 /var/lib/router-egress-recovery/backup-egress1-20260711-162636/network.uci.before:55:network.@amneziawg_vpn1[0].description='150-NL-Netherlands-Amsterdam-R5-178.215.227.13-awg1.conf' /var/lib/router-egress-recovery/backup-egress1-20260711-162636/network.uci.before:56:network.@amneziawg_vpn1[0].public_key='CAZ2FgESKM67A3XofKNoftcFcy9mtaVga8t/3qcCABI=' /var/lib/router-egress-recovery/backup-egress1-20260711-162636/network.uci.before:57:network.@amneziawg_vpn1[0].allowed_ips='0.0.0.0/0' /var/lib/router-egress-recovery/backup-egress1-20260711-162636/network.uci.before:58:network.@amneziawg_vpn1[0].route_allowed_ips='0' /var/lib/router-egress-recovery/backup-egress1-20260711-162636/network.uci.before:59:network.@amneziawg_vpn1[0].persistent_keepalive='23' /var/lib/router-egress-recovery/backup-egress1-20260711-162636/network.uci.before:60:network.@amneziawg_vpn1[0].endpoint_host='178.215.227.13' /var/lib/router-egress-recovery/backup-egress1-20260711-162636/network.uci.before:61:network.@amneziawg_vpn1[0].endpoint_port='44408' /var/lib/router-egress-recovery/backup-egress1-20260711-162636/table.before:1:default dev vpn1 scope link /var/lib/router-egress-recovery/backup-egress1-20260711-162636/rollback-egress1.sh:3:uci set network.vpn1.hmn_endpoint='178.215.227.13:44408' /var/lib/router-egress-recovery/backup-egress1-20260711-162636/rollback-egress1.sh:5:ifdown vpn1 >/dev/null 2>&1 || true /var/lib/router-egress-recovery/backup-egress1-20260711-162636/rollback-egress1.sh:6:ifup vpn1 >/dev/null 2>&1 || true /var/lib/router-egress-recovery/backup-egress1-20260711-162636/rollback-egress1.sh:11:echo "rollback_done=true" /var/lib/router-egress-recovery/backup-egress4-20260711-171001/network.uci.before:31:network.vpn1=interface /var/lib/router-egress-recovery/backup-egress4-20260711-171001/network.uci.before:32:network.vpn1.proto='amneziawg' /var/lib/router-egress-recovery/backup-egress4-20260711-171001/network.uci.before:33:network.vpn1.private_key='CF/y7ER2K59rSMWf9G90u10yQlWfKu1WiE/zYcrY7EI=' /var/lib/router-egress-recovery/backup-egress4-20260711-171001/network.uci.before:34:network.vpn1.awg_jc='3' /var/lib/router-egress-recovery/backup-egress4-20260711-171001/network.uci.before:35:network.vpn1.awg_jmin='50' /var/lib/router-egress-recovery/backup-egress4-20260711-171001/network.uci.before:36:network.vpn1.awg_jmax='100' /var/lib/router-egress-recovery/backup-egress4-20260711-171001/network.uci.before:37:network.vpn1.awg_s1='92' /var/lib/router-egress-recovery/backup-egress4-20260711-171001/network.uci.before:38:network.vpn1.awg_s2='90' /var/lib/router-egress-recovery/backup-egress4-20260711-171001/network.uci.before:39:network.vpn1.awg_h1='1128827374' /var/lib/router-egress-recovery/backup-egress4-20260711-171001/network.uci.before:40:network.vpn1.awg_h2='1959569870' /var/lib/router-egress-recovery/backup-egress4-20260711-171001/network.uci.before:41:network.vpn1.awg_h3='96441901' /var/lib/router-egress-recovery/backup-egress4-20260711-171001/network.uci.before:42:network.vpn1.awg_h4='2091878015' /var/lib/router-egress-recovery/backup-egress4-20260711-171001/network.uci.before:43:network.vpn1.auto='0' /var/lib/router-egress-recovery/backup-egress4-20260711-171001/network.uci.before:44:network.vpn1.disabled='0' /var/lib/router-egress-recovery/backup-egress4-20260711-171001/network.uci.before:45:network.vpn1.delegate='0' /var/lib/router-egress-recovery/backup-egress4-20260711-171001/network.uci.before:46:network.vpn1.peerdns='0' /var/lib/router-egress-recovery/backup-egress4-20260711-171001/network.uci.before:47:network.vpn1.defaultroute='0' /var/lib/router-egress-recovery/backup-egress4-20260711-171001/network.uci.before:48:network.vpn1.addresses='10.91.233.132/32' /var/lib/router-egress-recovery/backup-egress4-20260711-171001/network.uci.before:49:network.vpn1.dns='1.1.1.1' /var/lib/router-egress-recovery/backup-egress4-20260711-171001/network.uci.before:50:network.vpn1.hmn_role='active_spare_slot' /var/lib/router-egress-recovery/backup-egress4-20260711-171001/network.uci.before:51:network.vpn1.hmn_source_config='/root/hmn/configs/awg1/latest/150-NL-Netherlands-Amsterdam-R5-178.215.227.13-awg1.conf' /var/lib/router-egress-recovery/backup-egress4-20260711-171001/network.uci.before:52:network.vpn1.hmn_loaded_at='2026-07-06T17:07:53+00:00' /var/lib/router-egress-recovery/backup-egress4-20260711-171001/network.uci.before:53:network.vpn1.hmn_endpoint='109.248.198.4:37129' /var/lib/router-egress-recovery/backup-egress4-20260711-171001/network.uci.before:54:network.@amneziawg_vpn1[0]=amneziawg_vpn1 /var/lib/router-egress-recovery/backup-egress4-20260711-171001/network.uci.before:55:network.@amneziawg_vpn1[0].description='150-NL-Netherlands-Amsterdam-R5-178.215.227.13-awg1.conf' /var/lib/router-egress-recovery/backup-egress4-20260711-171001/network.uci.before:56:network.@amneziawg_vpn1[0].public_key='CAZ2FgESKM67A3XofKNoftcFcy9mtaVga8t/3qcCABI=' /var/lib/router-egress-recovery/backup-egress4-20260711-171001/network.uci.before:57:network.@amneziawg_vpn1[0].allowed_ips='0.0.0.0/0' /var/lib/router-egress-recovery/backup-egress4-20260711-171001/network.uci.before:58:network.@amneziawg_vpn1[0].route_allowed_ips='0' /var/lib/router-egress-recovery/backup-egress4-20260711-171001/network.uci.before:59:network.@amneziawg_vpn1[0].persistent_keepalive='23' /var/lib/router-egress-recovery/backup-egress4-20260711-171001/network.uci.before:60:network.@amneziawg_vpn1[0].endpoint_host='178.215.227.13' /var/lib/router-egress-recovery/backup-egress4-20260711-171001/network.uci.before:61:network.@amneziawg_vpn1[0].endpoint_port='44408' /var/lib/router-egress-recovery/backup-egress4-20260711-171001/rollback-egress4.sh:11:echo "rollback_done=true" /var/lib/router-egress-recovery/backup-egress4-20260711-172616/network.uci.before:31:network.vpn1=interface /var/lib/router-egress-recovery/backup-egress4-20260711-172616/network.uci.before:32:network.vpn1.proto='amneziawg' /var/lib/router-egress-recovery/backup-egress4-20260711-172616/network.uci.before:33:network.vpn1.private_key='CF/y7ER2K59rSMWf9G90u10yQlWfKu1WiE/zYcrY7EI=' /var/lib/router-egress-recovery/backup-egress4-20260711-172616/network.uci.before:34:network.vpn1.awg_jc='3' /var/lib/router-egress-recovery/backup-egress4-20260711-172616/network.uci.before:35:network.vpn1.awg_jmin='50' /var/lib/router-egress-recovery/backup-egress4-20260711-172616/network.uci.before:36:network.vpn1.awg_jmax='100' /var/lib/router-egress-recovery/backup-egress4-20260711-172616/network.uci.before:37:network.vpn1.awg_s1='92' /var/lib/router-egress-recovery/backup-egress4-20260711-172616/network.uci.before:38:network.vpn1.awg_s2='90' /var/lib/router-egress-recovery/backup-egress4-20260711-172616/network.uci.before:39:network.vpn1.awg_h1='1128827374' /var/lib/router-egress-recovery/backup-egress4-20260711-172616/network.uci.before:40:network.vpn1.awg_h2='1959569870' /var/lib/router-egress-recovery/backup-egress4-20260711-172616/network.uci.before:41:network.vpn1.awg_h3='96441901' /var/lib/router-egress-recovery/backup-egress4-20260711-172616/network.uci.before:42:network.vpn1.awg_h4='2091878015' /var/lib/router-egress-recovery/backup-egress4-20260711-172616/network.uci.before:43:network.vpn1.auto='0' /var/lib/router-egress-recovery/backup-egress4-20260711-172616/network.uci.before:44:network.vpn1.disabled='0' /var/lib/router-egress-recovery/backup-egress4-20260711-172616/network.uci.before:45:network.vpn1.delegate='0' /var/lib/router-egress-recovery/backup-egress4-20260711-172616/network.uci.before:46:network.vpn1.peerdns='0' /var/lib/router-egress-recovery/backup-egress4-20260711-172616/network.uci.before:47:network.vpn1.defaultroute='0' /var/lib/router-egress-recovery/backup-egress4-20260711-172616/network.uci.before:48:network.vpn1.addresses='10.91.233.132/32' /var/lib/router-egress-recovery/backup-egress4-20260711-172616/network.uci.before:49:network.vpn1.dns='1.1.1.1' /var/lib/router-egress-recovery/backup-egress4-20260711-172616/network.uci.before:50:network.vpn1.hmn_role='active_spare_slot' /var/lib/router-egress-recovery/backup-egress4-20260711-172616/network.uci.before:51:network.vpn1.hmn_source_config='/root/hmn/configs/awg1/latest/150-NL-Netherlands-Amsterdam-R5-178.215.227.13-awg1.conf' /var/lib/router-egress-recovery/backup-egress4-20260711-172616/network.uci.before:52:network.vpn1.hmn_loaded_at='2026-07-06T17:07:53+00:00' /var/lib/router-egress-recovery/backup-egress4-20260711-172616/network.uci.before:53:network.vpn1.hmn_endpoint='109.248.198.4:37129' /var/lib/router-egress-recovery/backup-egress4-20260711-172616/network.uci.before:54:network.@amneziawg_vpn1[0]=amneziawg_vpn1 /var/lib/router-egress-recovery/backup-egress4-20260711-172616/network.uci.before:55:network.@amneziawg_vpn1[0].description='150-NL-Netherlands-Amsterdam-R5-178.215.227.13-awg1.conf' /var/lib/router-egress-recovery/backup-egress4-20260711-172616/network.uci.before:56:network.@amneziawg_vpn1[0].public_key='CAZ2FgESKM67A3XofKNoftcFcy9mtaVga8t/3qcCABI=' /var/lib/router-egress-recovery/backup-egress4-20260711-172616/network.uci.before:57:network.@amneziawg_vpn1[0].allowed_ips='0.0.0.0/0' /var/lib/router-egress-recovery/backup-egress4-20260711-172616/network.uci.before:58:network.@amneziawg_vpn1[0].route_allowed_ips='0' /var/lib/router-egress-recovery/backup-egress4-20260711-172616/network.uci.before:59:network.@amneziawg_vpn1[0].persistent_keepalive='23' /var/lib/router-egress-recovery/backup-egress4-20260711-172616/network.uci.before:60:network.@amneziawg_vpn1[0].endpoint_host='178.215.227.13' /var/lib/router-egress-recovery/backup-egress4-20260711-172616/network.uci.before:61:network.@amneziawg_vpn1[0].endpoint_port='44408' /var/lib/router-egress-recovery/backup-egress4-20260711-172616/rollback-egress4.sh:11:echo "rollback_done=true" /var/lib/router-egress-recovery/backup-egress4-20260711-174234/network.uci.before:31:network.vpn1=interface /var/lib/router-egress-recovery/backup-egress4-20260711-174234/network.uci.before:32:network.vpn1.proto='amneziawg' /var/lib/router-egress-recovery/backup-egress4-20260711-174234/network.uci.before:33:network.vpn1.private_key='CF/y7ER2K59rSMWf9G90u10yQlWfKu1WiE/zYcrY7EI=' /var/lib/router-egress-recovery/backup-egress4-20260711-174234/network.uci.before:34:network.vpn1.awg_jc='3' /var/lib/router-egress-recovery/backup-egress4-20260711-174234/network.uci.before:35:network.vpn1.awg_jmin='50' /var/lib/router-egress-recovery/backup-egress4-20260711-174234/network.uci.before:36:network.vpn1.awg_jmax='100' /var/lib/router-egress-recovery/backup-egress4-20260711-174234/network.uci.before:37:network.vpn1.awg_s1='92' /var/lib/router-egress-recovery/backup-egress4-20260711-174234/network.uci.before:38:network.vpn1.awg_s2='90' /var/lib/router-egress-recovery/backup-egress4-20260711-174234/network.uci.before:39:network.vpn1.awg_h1='1128827374' /var/lib/router-egress-recovery/backup-egress4-20260711-174234/network.uci.before:40:network.vpn1.awg_h2='1959569870' /var/lib/router-egress-recovery/backup-egress4-20260711-174234/network.uci.before:41:network.vpn1.awg_h3='96441901' /var/lib/router-egress-recovery/backup-egress4-20260711-174234/network.uci.before:42:network.vpn1.awg_h4='2091878015' /var/lib/router-egress-recovery/backup-egress4-20260711-174234/network.uci.before:43:network.vpn1.auto='0' /var/lib/router-egress-recovery/backup-egress4-20260711-174234/network.uci.before:44:network.vpn1.disabled='0' /var/lib/router-egress-recovery/backup-egress4-20260711-174234/network.uci.before:45:network.vpn1.delegate='0' /var/lib/router-egress-recovery/backup-egress4-20260711-174234/network.uci.before:46:network.vpn1.peerdns='0' /var/lib/router-egress-recovery/backup-egress4-20260711-174234/network.uci.before:47:network.vpn1.defaultroute='0' /var/lib/router-egress-recovery/backup-egress4-20260711-174234/network.uci.before:48:network.vpn1.addresses='10.91.233.132/32' /var/lib/router-egress-recovery/backup-egress4-20260711-174234/network.uci.before:49:network.vpn1.dns='1.1.1.1' /var/lib/router-egress-recovery/backup-egress4-20260711-174234/network.uci.before:50:network.vpn1.hmn_role='active_spare_slot' /var/lib/router-egress-recovery/backup-egress4-20260711-174234/network.uci.before:51:network.vpn1.hmn_source_config='/root/hmn/configs/awg1/latest/150-NL-Netherlands-Amsterdam-R5-178.215.227.13-awg1.conf' /var/lib/router-egress-recovery/backup-egress4-20260711-174234/network.uci.before:52:network.vpn1.hmn_loaded_at='2026-07-06T17:07:53+00:00' /var/lib/router-egress-recovery/backup-egress4-20260711-174234/network.uci.before:53:network.vpn1.hmn_endpoint='109.248.198.4:37129' /var/lib/router-egress-recovery/backup-egress4-20260711-174234/network.uci.before:54:network.@amneziawg_vpn1[0]=amneziawg_vpn1 /var/lib/router-egress-recovery/backup-egress4-20260711-174234/network.uci.before:55:network.@amneziawg_vpn1[0].description='150-NL-Netherlands-Amsterdam-R5-178.215.227.13-awg1.conf' /var/lib/router-egress-recovery/backup-egress4-20260711-174234/network.uci.before:56:network.@amneziawg_vpn1[0].public_key='CAZ2FgESKM67A3XofKNoftcFcy9mtaVga8t/3qcCABI=' /var/lib/router-egress-recovery/backup-egress4-20260711-174234/network.uci.before:57:network.@amneziawg_vpn1[0].allowed_ips='0.0.0.0/0' /var/lib/router-egress-recovery/backup-egress4-20260711-174234/network.uci.before:58:network.@amneziawg_vpn1[0].route_allowed_ips='0' /var/lib/router-egress-recovery/backup-egress4-20260711-174234/network.uci.before:59:network.@amneziawg_vpn1[0].persistent_keepalive='23' /var/lib/router-egress-recovery/backup-egress4-20260711-174234/network.uci.before:60:network.@amneziawg_vpn1[0].endpoint_host='178.215.227.13' /var/lib/router-egress-recovery/backup-egress4-20260711-174234/network.uci.before:61:network.@amneziawg_vpn1[0].endpoint_port='44408' /var/lib/router-egress-recovery/backup-egress4-20260711-174234/rollback-egress4.sh:11:echo "rollback_done=true" /var/lib/router-egress-recovery/backup-egress4-20260711-175738/network.uci.before:31:network.vpn1=interface /var/lib/router-egress-recovery/backup-egress4-20260711-175738/network.uci.before:32:network.vpn1.proto='amneziawg' /var/lib/router-egress-recovery/backup-egress4-20260711-175738/network.uci.before:33:network.vpn1.private_key='CF/y7ER2K59rSMWf9G90u10yQlWfKu1WiE/zYcrY7EI=' /var/lib/router-egress-recovery/backup-egress4-20260711-175738/network.uci.before:34:network.vpn1.awg_jc='3' /var/lib/router-egress-recovery/backup-egress4-20260711-175738/network.uci.before:35:network.vpn1.awg_jmin='50' /var/lib/router-egress-recovery/backup-egress4-20260711-175738/network.uci.before:36:network.vpn1.awg_jmax='100' /var/lib/router-egress-recovery/backup-egress4-20260711-175738/network.uci.before:37:network.vpn1.awg_s1='92' /var/lib/router-egress-recovery/backup-egress4-20260711-175738/network.uci.before:38:network.vpn1.awg_s2='90' /var/lib/router-egress-recovery/backup-egress4-20260711-175738/network.uci.before:39:network.vpn1.awg_h1='1128827374' /var/lib/router-egress-recovery/backup-egress4-20260711-175738/network.uci.before:40:network.vpn1.awg_h2='1959569870' /var/lib/router-egress-recovery/backup-egress4-20260711-175738/network.uci.before:41:network.vpn1.awg_h3='96441901' /var/lib/router-egress-recovery/backup-egress4-20260711-175738/network.uci.before:42:network.vpn1.awg_h4='2091878015' /var/lib/router-egress-recovery/backup-egress4-20260711-175738/network.uci.before:43:network.vpn1.auto='0' /var/lib/router-egress-recovery/backup-egress4-20260711-175738/network.uci.before:44:network.vpn1.disabled='0' /var/lib/router-egress-recovery/backup-egress4-20260711-175738/network.uci.before:45:network.vpn1.delegate='0' /var/lib/router-egress-recovery/backup-egress4-20260711-175738/network.uci.before:46:network.vpn1.peerdns='0' /var/lib/router-egress-recovery/backup-egress4-20260711-175738/network.uci.before:47:network.vpn1.defaultroute='0' /var/lib/router-egress-recovery/backup-egress4-20260711-175738/network.uci.before:48:network.vpn1.addresses='10.91.233.132/32' /var/lib/router-egress-recovery/backup-egress4-20260711-175738/network.uci.before:49:network.vpn1.dns='1.1.1.1' /var/lib/router-egress-recovery/backup-egress4-20260711-175738/network.uci.before:50:network.vpn1.hmn_role='active_spare_slot' /var/lib/router-egress-recovery/backup-egress4-20260711-175738/network.uci.before:51:network.vpn1.hmn_source_config='/root/hmn/configs/awg1/latest/150-NL-Netherlands-Amsterdam-R5-178.215.227.13-awg1.conf' /var/lib/router-egress-recovery/backup-egress4-20260711-175738/network.uci.before:52:network.vpn1.hmn_loaded_at='2026-07-06T17:07:53+00:00' /var/lib/router-egress-recovery/backup-egress4-20260711-175738/network.uci.before:53:network.vpn1.hmn_endpoint='109.248.198.4:37129' /var/lib/router-egress-recovery/backup-egress4-20260711-175738/network.uci.before:54:network.@amneziawg_vpn1[0]=amneziawg_vpn1 /var/lib/router-egress-recovery/backup-egress4-20260711-175738/network.uci.before:55:network.@amneziawg_vpn1[0].description='150-NL-Netherlands-Amsterdam-R5-178.215.227.13-awg1.conf' /var/lib/router-egress-recovery/backup-egress4-20260711-175738/network.uci.before:56:network.@amneziawg_vpn1[0].public_key='CAZ2FgESKM67A3XofKNoftcFcy9mtaVga8t/3qcCABI=' /var/lib/router-egress-recovery/backup-egress4-20260711-175738/network.uci.before:57:network.@amneziawg_vpn1[0].allowed_ips='0.0.0.0/0' /var/lib/router-egress-recovery/backup-egress4-20260711-175738/network.uci.before:58:network.@amneziawg_vpn1[0].route_allowed_ips='0' /var/lib/router-egress-recovery/backup-egress4-20260711-175738/network.uci.before:59:network.@amneziawg_vpn1[0].persistent_keepalive='23' /var/lib/router-egress-recovery/backup-egress4-20260711-175738/network.uci.before:60:network.@amneziawg_vpn1[0].endpoint_host='178.215.227.13' /var/lib/router-egress-recovery/backup-egress4-20260711-175738/network.uci.before:61:network.@amneziawg_vpn1[0].endpoint_port='44408' /var/lib/router-egress-recovery/backup-egress4-20260711-175738/rollback-egress4.sh:11:echo "rollback_done=true" /var/lib/router-egress-recovery/backup-egress4-20260711-181356/network.uci.before:31:network.vpn1=interface /var/lib/router-egress-recovery/backup-egress4-20260711-181356/network.uci.before:32:network.vpn1.proto='amneziawg' /var/lib/router-egress-recovery/backup-egress4-20260711-181356/network.uci.before:33:network.vpn1.private_key='CF/y7ER2K59rSMWf9G90u10yQlWfKu1WiE/zYcrY7EI=' /var/lib/router-egress-recovery/backup-egress4-20260711-181356/network.uci.before:34:network.vpn1.awg_jc='3' /var/lib/router-egress-recovery/backup-egress4-20260711-181356/network.uci.before:35:network.vpn1.awg_jmin='50' /var/lib/router-egress-recovery/backup-egress4-20260711-181356/network.uci.before:36:network.vpn1.awg_jmax='100' /var/lib/router-egress-recovery/backup-egress4-20260711-181356/network.uci.before:37:network.vpn1.awg_s1='92' /var/lib/router-egress-recovery/backup-egress4-20260711-181356/network.uci.before:38:network.vpn1.awg_s2='90' /var/lib/router-egress-recovery/backup-egress4-20260711-181356/network.uci.before:39:network.vpn1.awg_h1='1128827374' /var/lib/router-egress-recovery/backup-egress4-20260711-181356/network.uci.before:40:network.vpn1.awg_h2='1959569870' /var/lib/router-egress-recovery/backup-egress4-20260711-181356/network.uci.before:41:network.vpn1.awg_h3='96441901' /var/lib/router-egress-recovery/backup-egress4-20260711-181356/network.uci.before:42:network.vpn1.awg_h4='2091878015' /var/lib/router-egress-recovery/backup-egress4-20260711-181356/network.uci.before:43:network.vpn1.auto='0' /var/lib/router-egress-recovery/backup-egress4-20260711-181356/network.uci.before:44:network.vpn1.disabled='0' /var/lib/router-egress-recovery/backup-egress4-20260711-181356/network.uci.before:45:network.vpn1.delegate='0' /var/lib/router-egress-recovery/backup-egress4-20260711-181356/network.uci.before:46:network.vpn1.peerdns='0' /var/lib/router-egress-recovery/backup-egress4-20260711-181356/network.uci.before:47:network.vpn1.defaultroute='0' /var/lib/router-egress-recovery/backup-egress4-20260711-181356/network.uci.before:48:network.vpn1.addresses='10.91.233.132/32' /var/lib/router-egress-recovery/backup-egress4-20260711-181356/network.uci.before:49:network.vpn1.dns='1.1.1.1' /var/lib/router-egress-recovery/backup-egress4-20260711-181356/network.uci.before:50:network.vpn1.hmn_role='active_spare_slot' /var/lib/router-egress-recovery/backup-egress4-20260711-181356/network.uci.before:51:network.vpn1.hmn_source_config='/root/hmn/configs/awg1/latest/150-NL-Netherlands-Amsterdam-R5-178.215.227.13-awg1.conf' /var/lib/router-egress-recovery/backup-egress4-20260711-181356/network.uci.before:52:network.vpn1.hmn_loaded_at='2026-07-06T17:07:53+00:00' /var/lib/router-egress-recovery/backup-egress4-20260711-181356/network.uci.before:53:network.vpn1.hmn_endpoint='109.248.198.4:37129' /var/lib/router-egress-recovery/backup-egress4-20260711-181356/network.uci.before:54:network.@amneziawg_vpn1[0]=amneziawg_vpn1 /var/lib/router-egress-recovery/backup-egress4-20260711-181356/network.uci.before:55:network.@amneziawg_vpn1[0].description='150-NL-Netherlands-Amsterdam-R5-178.215.227.13-awg1.conf' /var/lib/router-egress-recovery/backup-egress4-20260711-181356/network.uci.before:56:network.@amneziawg_vpn1[0].public_key='CAZ2FgESKM67A3XofKNoftcFcy9mtaVga8t/3qcCABI=' /var/lib/router-egress-recovery/backup-egress4-20260711-181356/network.uci.before:57:network.@amneziawg_vpn1[0].allowed_ips='0.0.0.0/0' /var/lib/router-egress-recovery/backup-egress4-20260711-181356/network.uci.before:58:network.@amneziawg_vpn1[0].route_allowed_ips='0' /var/lib/router-egress-recovery/backup-egress4-20260711-181356/network.uci.before:59:network.@amneziawg_vpn1[0].persistent_keepalive='23' /var/lib/router-egress-recovery/backup-egress4-20260711-181356/network.uci.before:60:network.@amneziawg_vpn1[0].endpoint_host='178.215.227.13' /var/lib/router-egress-recovery/backup-egress4-20260711-181356/network.uci.before:61:network.@amneziawg_vpn1[0].endpoint_port='44408' /var/lib/router-egress-recovery/backup-egress4-20260711-181356/rollback-egress4.sh:11:echo "rollback_done=true" /var/lib/router-egress-recovery/step050m07b-20260711-182854-8532/cache.before/selected-awg1-20260601-110707.tsv:2:vpn1 214-EE-Estonia-Tallinn-S2-95.156.206.18-awg1.conf 95.156.206.18:37498 000028.642 /root/hmn/configs/awg1/latest/214-EE-Estonia-Tallinn-S2-95.156.206.18-awg1.conf /var/lib/router-egress-recovery/step050m07b-20260711-182854-8532/cache.before/selected-awg1-latest.tsv:3:vpn1 150-NL-Netherlands-Amsterdam-R5-178.215.227.13-awg1.conf 178.215.227.13:44408 53.234 /root/hmn/configs/awg1/latest/150-NL-Netherlands-Amsterdam-R5-178.215.227.13-awg1.conf /var/lib/router-egress-recovery/step050m07b-20260711-182854-8532/cache.before/selected-awg1-20260601-135559.tsv:2:vpn1 214-EE-Estonia-Tallinn-S2-95.156.206.18-awg1.conf 95.156.206.18:37498 000028.642 /root/hmn/configs/awg1/latest/214-EE-Estonia-Tallinn-S2-95.156.206.18-awg1.conf /var/lib/router-egress-recovery/step050m07b-20260711-182854-8532/cache.before/selected-awg1-loadpath-check.tsv:3:vpn1 150-NL-Netherlands-Amsterdam-R5-178.215.227.13-awg1.conf 178.215.227.13:44408 000054.398 /root/hmn/configs/awg1/latest/150-NL-Netherlands-Amsterdam-R5-178.215.227.13-awg1.conf /var/lib/router-egress-recovery/step050m07b-20260711-182854-8532/cache.before/selected-awg1-20260601-145208.tsv:2:vpn1 133-SE-Sweden-Stockholm-S2-46.246.127.84-awg1.conf 46.246.127.84:36230 000031.403 /root/hmn/configs/awg1/latest/133-SE-Sweden-Stockholm-S2-46.246.127.84-awg1.conf /var/lib/router-egress-recovery/step050m07b-20260711-182854-8532/cache.before/selected-awg1-20260601-152436.tsv:2:vpn1 214-EE-Estonia-Tallinn-S2-95.156.206.18-awg1.conf 95.156.206.18:37498 000030.679 /root/hmn/configs/awg1/latest/214-EE-Estonia-Tallinn-S2-95.156.206.18-awg1.conf /var/lib/router-egress-recovery/step050m07b-20260711-182854-8532/cache.before/selected-awg1-latest.tsv.before-refill-20260708-061633:2:vpn1 150-NL-Netherlands-Amsterdam-R5-178.215.227.13-awg1.conf 178.215.227.13:44408 53.234 /root/hmn/configs/awg1/latest/150-NL-Netherlands-Amsterdam-R5-178.215.227.13-awg1.conf /var/lib/router-egress-recovery/step050m07b-20260711-182854-8532/cache.before/selected-awg1-latest.tsv.before-refill-20260706-165740:2:vpn1 146-GB-United-Kingdom-London-S1-37.235.54.96-awg1.conf 37.235.54.96:38971 67.297 /root/hmn/configs/awg1/latest/146-GB-United-Kingdom-London-S1-37.235.54.96-awg1.conf /var/lib/router-egress-recovery/step050m07b-20260711-182854-8532/cache.before/selected-awg1-latest.tsv.before-refill-20260706-170839:3:vpn1 146-GB-United-Kingdom-London-S1-37.235.54.96-awg1.conf 37.235.54.96:38971 67.297 /root/hmn/configs/awg1/latest/146-GB-United-Kingdom-London-S1-37.235.54.96-awg1.conf /var/lib/router-egress-recovery/step050m07b-20260711-182854-8532/network.before:40:config interface 'vpn1' /var/lib/router-egress-recovery/step050m07b-20260711-182854-8532/network.before:64:config amneziawg_vpn1 /var/lib/router-egress-recovery/step050m07b-20260711-182854-8532/slot-rollbacks.before:1:/var/lib/router-egress-recovery/backup-egress1-20260711-162636/rollback-egress1.sh /var/lib/router-egress-recovery/step050m07b-20260711-182854-8532/slot-rollbacks.before:2:/var/lib/router-egress-recovery/backup-egress2-20260711-091232/rollback-egress2.sh /var/lib/router-egress-recovery/step050m07b-20260711-182854-8532/slot-rollbacks.before:3:/var/lib/router-egress-recovery/backup-egress2-20260711-104857/rollback-egress2.sh /var/lib/router-egress-recovery/step050m07b-20260711-182854-8532/slot-rollbacks.before:4:/var/lib/router-egress-recovery/backup-egress4-20260711-171001/rollback-egress4.sh /var/lib/router-egress-recovery/step050m07b-20260711-182854-8532/slot-rollbacks.before:5:/var/lib/router-egress-recovery/backup-egress4-20260711-172616/rollback-egress4.sh /var/lib/router-egress-recovery/step050m07b-20260711-182854-8532/slot-rollbacks.before:6:/var/lib/router-egress-recovery/backup-egress4-20260711-174234/rollback-egress4.sh /var/lib/router-egress-recovery/step050m07b-20260711-182854-8532/slot-rollbacks.before:7:/var/lib/router-egress-recovery/backup-egress4-20260711-175738/rollback-egress4.sh /var/lib/router-egress-recovery/step050m07b-20260711-182854-8532/slot-rollbacks.before:8:/var/lib/router-egress-recovery/backup-egress4-20260711-181356/rollback-egress4.sh /var/lib/router-egress-recovery/step050m07b-20260711-182854-8532/slot-rollbacks.after:1:/var/lib/router-egress-recovery/backup-egress4-20260711-181356/rollback-egress4.sh /var/lib/router-egress-recovery/step050m07b-20260711-182854-8532/slot-rollbacks.after:2:/var/lib/router-egress-recovery/backup-egress4-20260711-175738/rollback-egress4.sh /var/lib/router-egress-recovery/step050m07b-20260711-182854-8532/slot-rollbacks.after:3:/var/lib/router-egress-recovery/backup-egress4-20260711-174234/rollback-egress4.sh /var/lib/router-egress-recovery/step050m07b-20260711-182854-8532/slot-rollbacks.after:4:/var/lib/router-egress-recovery/backup-egress4-20260711-172616/rollback-egress4.sh /var/lib/router-egress-recovery/step050m07b-20260711-182854-8532/slot-rollbacks.after:5:/var/lib/router-egress-recovery/backup-egress4-20260711-171001/rollback-egress4.sh /var/lib/router-egress-recovery/step050m07b-20260711-182854-8532/slot-rollbacks.after:6:/var/lib/router-egress-recovery/backup-egress2-20260711-104857/rollback-egress2.sh /var/lib/router-egress-recovery/step050m07b-20260711-182854-8532/slot-rollbacks.after:7:/var/lib/router-egress-recovery/backup-egress2-20260711-091232/rollback-egress2.sh /var/lib/router-egress-recovery/step050m07b-20260711-182854-8532/slot-rollbacks.after:8:/var/lib/router-egress-recovery/backup-egress1-20260711-162636/rollback-egress1.sh /var/lib/router-egress-recovery/backup-egress4-20260711-182916/network.uci.before:31:network.vpn1=interface /var/lib/router-egress-recovery/backup-egress4-20260711-182916/network.uci.before:32:network.vpn1.proto='amneziawg' /var/lib/router-egress-recovery/backup-egress4-20260711-182916/network.uci.before:33:network.vpn1.private_key='CF/y7ER2K59rSMWf9G90u10yQlWfKu1WiE/zYcrY7EI=' /var/lib/router-egress-recovery/backup-egress4-20260711-182916/network.uci.before:34:network.vpn1.awg_jc='3' /var/lib/router-egress-recovery/backup-egress4-20260711-182916/network.uci.before:35:network.vpn1.awg_jmin='50' /var/lib/router-egress-recovery/backup-egress4-20260711-182916/network.uci.before:36:network.vpn1.awg_jmax='100' /var/lib/router-egress-recovery/backup-egress4-20260711-182916/network.uci.before:37:network.vpn1.awg_s1='92' /var/lib/router-egress-recovery/backup-egress4-20260711-182916/network.uci.before:38:network.vpn1.awg_s2='90' /var/lib/router-egress-recovery/backup-egress4-20260711-182916/network.uci.before:39:network.vpn1.awg_h1='1128827374' /var/lib/router-egress-recovery/backup-egress4-20260711-182916/network.uci.before:40:network.vpn1.awg_h2='1959569870' /var/lib/router-egress-recovery/backup-egress4-20260711-182916/network.uci.before:41:network.vpn1.awg_h3='96441901' /var/lib/router-egress-recovery/backup-egress4-20260711-182916/network.uci.before:42:network.vpn1.awg_h4='2091878015' /var/lib/router-egress-recovery/backup-egress4-20260711-182916/network.uci.before:43:network.vpn1.auto='0' /var/lib/router-egress-recovery/backup-egress4-20260711-182916/network.uci.before:44:network.vpn1.disabled='0' /var/lib/router-egress-recovery/backup-egress4-20260711-182916/network.uci.before:45:network.vpn1.delegate='0' /var/lib/router-egress-recovery/backup-egress4-20260711-182916/network.uci.before:46:network.vpn1.peerdns='0' /var/lib/router-egress-recovery/backup-egress4-20260711-182916/network.uci.before:47:network.vpn1.defaultroute='0' /var/lib/router-egress-recovery/backup-egress4-20260711-182916/network.uci.before:48:network.vpn1.addresses='10.91.233.132/32' /var/lib/router-egress-recovery/backup-egress4-20260711-182916/network.uci.before:49:network.vpn1.dns='1.1.1.1' /var/lib/router-egress-recovery/backup-egress4-20260711-182916/network.uci.before:50:network.vpn1.hmn_role='active_spare_slot' /var/lib/router-egress-recovery/backup-egress4-20260711-182916/network.uci.before:51:network.vpn1.hmn_source_config='/root/hmn/configs/awg1/latest/150-NL-Netherlands-Amsterdam-R5-178.215.227.13-awg1.conf' /var/lib/router-egress-recovery/backup-egress4-20260711-182916/network.uci.before:52:network.vpn1.hmn_loaded_at='2026-07-06T17:07:53+00:00' /var/lib/router-egress-recovery/backup-egress4-20260711-182916/network.uci.before:53:network.vpn1.hmn_endpoint='109.248.198.4:37129' /var/lib/router-egress-recovery/backup-egress4-20260711-182916/network.uci.before:54:network.@amneziawg_vpn1[0]=amneziawg_vpn1 /var/lib/router-egress-recovery/backup-egress4-20260711-182916/network.uci.before:55:network.@amneziawg_vpn1[0].description='150-NL-Netherlands-Amsterdam-R5-178.215.227.13-awg1.conf' /var/lib/router-egress-recovery/backup-egress4-20260711-182916/network.uci.before:56:network.@amneziawg_vpn1[0].public_key='CAZ2FgESKM67A3XofKNoftcFcy9mtaVga8t/3qcCABI=' /var/lib/router-egress-recovery/backup-egress4-20260711-182916/network.uci.before:57:network.@amneziawg_vpn1[0].allowed_ips='0.0.0.0/0' /var/lib/router-egress-recovery/backup-egress4-20260711-182916/network.uci.before:58:network.@amneziawg_vpn1[0].route_allowed_ips='0' /var/lib/router-egress-recovery/backup-egress4-20260711-182916/network.uci.before:59:network.@amneziawg_vpn1[0].persistent_keepalive='23' /var/lib/router-egress-recovery/backup-egress4-20260711-182916/network.uci.before:60:network.@amneziawg_vpn1[0].endpoint_host='178.215.227.13' /var/lib/router-egress-recovery/backup-egress4-20260711-182916/network.uci.before:61:network.@amneziawg_vpn1[0].endpoint_port='44408' /var/lib/router-egress-recovery/backup-egress4-20260711-182916/rollback-egress4.sh:11:echo "rollback_done=true" /var/lib/router-egress-recovery/backup-egress4-20260711-184533/network.uci.before:31:network.vpn1=interface /var/lib/router-egress-recovery/backup-egress4-20260711-184533/network.uci.before:32:network.vpn1.proto='amneziawg' /var/lib/router-egress-recovery/backup-egress4-20260711-184533/network.uci.before:33:network.vpn1.private_key='CF/y7ER2K59rSMWf9G90u10yQlWfKu1WiE/zYcrY7EI=' /var/lib/router-egress-recovery/backup-egress4-20260711-184533/network.uci.before:34:network.vpn1.awg_jc='3' /var/lib/router-egress-recovery/backup-egress4-20260711-184533/network.uci.before:35:network.vpn1.awg_jmin='50' /var/lib/router-egress-recovery/backup-egress4-20260711-184533/network.uci.before:36:network.vpn1.awg_jmax='100' /var/lib/router-egress-recovery/backup-egress4-20260711-184533/network.uci.before:37:network.vpn1.awg_s1='92' /var/lib/router-egress-recovery/backup-egress4-20260711-184533/network.uci.before:38:network.vpn1.awg_s2='90' /var/lib/router-egress-recovery/backup-egress4-20260711-184533/network.uci.before:39:network.vpn1.awg_h1='1128827374' /var/lib/router-egress-recovery/backup-egress4-20260711-184533/network.uci.before:40:network.vpn1.awg_h2='1959569870' /var/lib/router-egress-recovery/backup-egress4-20260711-184533/network.uci.before:41:network.vpn1.awg_h3='96441901' /var/lib/router-egress-recovery/backup-egress4-20260711-184533/network.uci.before:42:network.vpn1.awg_h4='2091878015' /var/lib/router-egress-recovery/backup-egress4-20260711-184533/network.uci.before:43:network.vpn1.auto='0' /var/lib/router-egress-recovery/backup-egress4-20260711-184533/network.uci.before:44:network.vpn1.disabled='0' /var/lib/router-egress-recovery/backup-egress4-20260711-184533/network.uci.before:45:network.vpn1.delegate='0' /var/lib/router-egress-recovery/backup-egress4-20260711-184533/network.uci.before:46:network.vpn1.peerdns='0' /var/lib/router-egress-recovery/backup-egress4-20260711-184533/network.uci.before:47:network.vpn1.defaultroute='0' /var/lib/router-egress-recovery/backup-egress4-20260711-184533/network.uci.before:48:network.vpn1.addresses='10.91.233.132/32' /var/lib/router-egress-recovery/backup-egress4-20260711-184533/network.uci.before:49:network.vpn1.dns='1.1.1.1' /var/lib/router-egress-recovery/backup-egress4-20260711-184533/network.uci.before:50:network.vpn1.hmn_role='active_spare_slot' /var/lib/router-egress-recovery/backup-egress4-20260711-184533/network.uci.before:51:network.vpn1.hmn_source_config='/root/hmn/configs/awg1/latest/150-NL-Netherlands-Amsterdam-R5-178.215.227.13-awg1.conf' /var/lib/router-egress-recovery/backup-egress4-20260711-184533/network.uci.before:52:network.vpn1.hmn_loaded_at='2026-07-06T17:07:53+00:00' /var/lib/router-egress-recovery/backup-egress4-20260711-184533/network.uci.before:53:network.vpn1.hmn_endpoint='109.248.198.4:37129' /var/lib/router-egress-recovery/backup-egress4-20260711-184533/network.uci.before:54:network.@amneziawg_vpn1[0]=amneziawg_vpn1 /var/lib/router-egress-recovery/backup-egress4-20260711-184533/network.uci.before:55:network.@amneziawg_vpn1[0].description='150-NL-Netherlands-Amsterdam-R5-178.215.227.13-awg1.conf' /var/lib/router-egress-recovery/backup-egress4-20260711-184533/network.uci.before:56:network.@amneziawg_vpn1[0].public_key='CAZ2FgESKM67A3XofKNoftcFcy9mtaVga8t/3qcCABI=' /var/lib/router-egress-recovery/backup-egress4-20260711-184533/network.uci.before:57:network.@amneziawg_vpn1[0].allowed_ips='0.0.0.0/0' /var/lib/router-egress-recovery/backup-egress4-20260711-184533/network.uci.before:58:network.@amneziawg_vpn1[0].route_allowed_ips='0' /var/lib/router-egress-recovery/backup-egress4-20260711-184533/network.uci.before:59:network.@amneziawg_vpn1[0].persistent_keepalive='23' /var/lib/router-egress-recovery/backup-egress4-20260711-184533/network.uci.before:60:network.@amneziawg_vpn1[0].endpoint_host='178.215.227.13' /var/lib/router-egress-recovery/backup-egress4-20260711-184533/network.uci.before:61:network.@amneziawg_vpn1[0].endpoint_port='44408' /var/lib/router-egress-recovery/backup-egress4-20260711-184533/rollback-egress4.sh:11:echo "rollback_done=true" /var/lib/router-egress-recovery/backup-egress4-20260711-190443/network.uci.before:31:network.vpn1=interface /var/lib/router-egress-recovery/backup-egress4-20260711-190443/network.uci.before:32:network.vpn1.proto='amneziawg' /var/lib/router-egress-recovery/backup-egress4-20260711-190443/network.uci.before:33:network.vpn1.private_key='CF/y7ER2K59rSMWf9G90u10yQlWfKu1WiE/zYcrY7EI=' /var/lib/router-egress-recovery/backup-egress4-20260711-190443/network.uci.before:34:network.vpn1.awg_jc='3' /var/lib/router-egress-recovery/backup-egress4-20260711-190443/network.uci.before:35:network.vpn1.awg_jmin='50' /var/lib/router-egress-recovery/backup-egress4-20260711-190443/network.uci.before:36:network.vpn1.awg_jmax='100' /var/lib/router-egress-recovery/backup-egress4-20260711-190443/network.uci.before:37:network.vpn1.awg_s1='92' /var/lib/router-egress-recovery/backup-egress4-20260711-190443/network.uci.before:38:network.vpn1.awg_s2='90' /var/lib/router-egress-recovery/backup-egress4-20260711-190443/network.uci.before:39:network.vpn1.awg_h1='1128827374' /var/lib/router-egress-recovery/backup-egress4-20260711-190443/network.uci.before:40:network.vpn1.awg_h2='1959569870' /var/lib/router-egress-recovery/backup-egress4-20260711-190443/network.uci.before:41:network.vpn1.awg_h3='96441901' /var/lib/router-egress-recovery/backup-egress4-20260711-190443/network.uci.before:42:network.vpn1.awg_h4='2091878015' /var/lib/router-egress-recovery/backup-egress4-20260711-190443/network.uci.before:43:network.vpn1.auto='0' /var/lib/router-egress-recovery/backup-egress4-20260711-190443/network.uci.before:44:network.vpn1.disabled='0' /var/lib/router-egress-recovery/backup-egress4-20260711-190443/network.uci.before:45:network.vpn1.delegate='0' /var/lib/router-egress-recovery/backup-egress4-20260711-190443/network.uci.before:46:network.vpn1.peerdns='0' /var/lib/router-egress-recovery/backup-egress4-20260711-190443/network.uci.before:47:network.vpn1.defaultroute='0' /var/lib/router-egress-recovery/backup-egress4-20260711-190443/network.uci.before:48:network.vpn1.addresses='10.91.233.132/32' /var/lib/router-egress-recovery/backup-egress4-20260711-190443/network.uci.before:49:network.vpn1.dns='1.1.1.1' /var/lib/router-egress-recovery/backup-egress4-20260711-190443/network.uci.before:50:network.vpn1.hmn_role='active_spare_slot' /var/lib/router-egress-recovery/backup-egress4-20260711-190443/network.uci.before:51:network.vpn1.hmn_source_config='/root/hmn/configs/awg1/latest/150-NL-Netherlands-Amsterdam-R5-178.215.227.13-awg1.conf' /var/lib/router-egress-recovery/backup-egress4-20260711-190443/network.uci.before:52:network.vpn1.hmn_loaded_at='2026-07-06T17:07:53+00:00' /var/lib/router-egress-recovery/backup-egress4-20260711-190443/network.uci.before:53:network.vpn1.hmn_endpoint='109.248.198.4:37129' /var/lib/router-egress-recovery/backup-egress4-20260711-190443/network.uci.before:54:network.@amneziawg_vpn1[0]=amneziawg_vpn1 /var/lib/router-egress-recovery/backup-egress4-20260711-190443/network.uci.before:55:network.@amneziawg_vpn1[0].description='150-NL-Netherlands-Amsterdam-R5-178.215.227.13-awg1.conf' /var/lib/router-egress-recovery/backup-egress4-20260711-190443/network.uci.before:56:network.@amneziawg_vpn1[0].public_key='CAZ2FgESKM67A3XofKNoftcFcy9mtaVga8t/3qcCABI=' /var/lib/router-egress-recovery/backup-egress4-20260711-190443/network.uci.before:57:network.@amneziawg_vpn1[0].allowed_ips='0.0.0.0/0' /var/lib/router-egress-recovery/backup-egress4-20260711-190443/network.uci.before:58:network.@amneziawg_vpn1[0].route_allowed_ips='0' /var/lib/router-egress-recovery/backup-egress4-20260711-190443/network.uci.before:59:network.@amneziawg_vpn1[0].persistent_keepalive='23' /var/lib/router-egress-recovery/backup-egress4-20260711-190443/network.uci.before:60:network.@amneziawg_vpn1[0].endpoint_host='178.215.227.13' /var/lib/router-egress-recovery/backup-egress4-20260711-190443/network.uci.before:61:network.@amneziawg_vpn1[0].endpoint_port='44408' /var/lib/router-egress-recovery/backup-egress4-20260711-190443/rollback-egress4.sh:11:echo "rollback_done=true" /root/hmn/logs/refresh-pool-safe-20260706-161226-12417.log:408:vpn1 146-GB-United-Kingdom-London-S1-37.235.54.96-awg1.conf 37.235.54.96:38971 67.297 /root/hmn/configs/awg1/latest/146-GB-United-Kingdom-London-S1-37.235.54.96-awg1.conf /root/hmn/logs/refresh-pool-safe-20260706-161226-12417.log:411:vpn1 endpoint 37.235.54.96:38971: OK in current strict foreign table /root/hmn/logs/refresh-pool-safe-20260706-161226-12417.log:498:vpn1 146-GB-United-Kingdom-London-S1-37.235.54.96-awg1.conf 37.235.54.96:38971 67.297 /root/hmn/configs/awg1/latest/146-GB-United-Kingdom-London-S1-37.235.54.96-awg1.conf /root/hmn/logs/vpn-user-override.log:1:2026-07-06T17:03:40+00:00 activate requested config=075-NL-Netherlands-Amsterdam-H13-95.211.68.119-awg1.conf endpoint=95.211.68.119:45176 minutes=15 prev_default_dev=vpn1 /root/hmn/logs/vpn-user-override.log:2:2026-07-06T17:03:43+00:00 ERROR: strict health failed for vpn_user /root/hmn/logs/vpn-user-override.log:3:2026-07-06T17:03:54+00:00 activate requested config=075-NL-Netherlands-Amsterdam-H13-95.211.68.119-awg1.conf endpoint=95.211.68.119:45176 minutes=15 prev_default_dev=vpn1 /root/hmn/logs/vpn-user-override.log:4:2026-07-06T17:03:57+00:00 ERROR: strict health failed for vpn_user /root/hmn/logs/vpn-user-override.log:5:2026-07-06T17:04:03+00:00 activate requested config=075-NL-Netherlands-Amsterdam-H13-95.211.68.119-awg1.conf endpoint=95.211.68.119:45176 minutes=15 prev_default_dev=vpn1 /root/hmn/logs/vpn-user-override.log:6:2026-07-06T17:04:06+00:00 ERROR: strict health failed for vpn_user /root/hmn/logs/vpn-user-override.log:8:2026-07-06T17:09:44+00:00 ERROR: strict health failed for vpn_user /root/hmn/logs/vpn-user-override.log:13:2026-07-06T17:24:26+00:00 ERROR: strict health failed for vpn_user /root/hmn/logs/vpn-user-override.log:17:2026-07-06T17:25:54+00:00 ERROR: strict health failed for vpn_user /root/hmn/logs/vpn-user-override.log:39:2026-07-06T17:40:43+00:00 ERROR: strict health failed for vpn_user /root/hmn/logs/refresh-pool-safe-20260707-042000-9733.log:432:vpn1 150-NL-Netherlands-Amsterdam-R5-178.215.227.13-awg1.conf 178.215.227.13:44408 53.234 /root/hmn/configs/awg1/latest/150-NL-Netherlands-Amsterdam-R5-178.215.227.13-awg1.conf /root/hmn/logs/refresh-pool-safe-20260707-042000-9733.log:435:vpn1 endpoint 178.215.227.13:44408: OK in current strict foreign table /root/hmn/logs/refresh-pool-safe-20260707-042000-9733.log:522:vpn1 150-NL-Netherlands-Amsterdam-R5-178.215.227.13-awg1.conf 178.215.227.13:44408 53.234 /root/hmn/configs/awg1/latest/150-NL-Netherlands-Amsterdam-R5-178.215.227.13-awg1.conf /root/hmn/logs/low-watermark-last.log:11:vpn1_ep=178.215.227.13:44408 /root/hmn/logs/low-watermark-last.log:13:active_slot=vpn1 /root/hmn/logs/h42e-reboot-forensics-vm101-20260603-165459.txt:69:vpn1 062-BE-Belgium-Oostkamp-S7-194.71.227.212-awg1.conf 194.71.227.212:32583 59.538 /root/hmn/configs/awg1/latest/062-BE-Belgium-Oostkamp-S7-194.71.227.212-awg1.conf /root/hmn/logs/h42e-reboot-forensics-vm101-20260603-165459.txt:390:--- ifstatus vpn1 --- /root/hmn/logs/h42e-reboot-forensics-vm101-20260603-165459.txt:486:--- vpn1 --- /root/hmn/logs/h42e-reboot-forensics-vm101-20260603-165459.txt:487:vpn1 not up /root/hmn/logs/h42e-reboot-forensics-vm101-20260603-165459.txt:535:target: VPN vpn1 /root/hmn/logs/h42e-reboot-forensics-vm101-20260603-165459.txt:536:route: default dev vpn1 scope link /root/hmn/logs/h42e-reboot-forensics-vm101-20260603-165459.txt:538:vpn1 state=unknown rx=220 tx=587 /root/hmn/logs/h42e-reboot-forensics-vm101-20260603-165459.txt:545:target: VPN vpn1 /root/hmn/logs/h42e-reboot-forensics-vm101-20260603-165459.txt:546:route: default dev vpn1 scope link /root/hmn/logs/h42e-reboot-forensics-vm101-20260603-165459.txt:548:vpn1 state=unknown rx=71572 tx=57584 /root/hmn/logs/h42e-reboot-forensics-vm101-20260603-165459.txt:585:target: VPN vpn1 /root/hmn/logs/h42e-reboot-forensics-vm101-20260603-165459.txt:586:active-slot: vpn1 /root/hmn/logs/h42e-reboot-forensics-vm101-20260603-165459.txt:587:route: default dev vpn1 scope link /root/hmn/logs/h42e-reboot-forensics-vm101-20260603-165459.txt:589:vpn1 state=unknown rx=220 tx=592 /root/hmn/logs/h42e-reboot-forensics-vm101-20260603-165459.txt:600:vpn1 state=unknown rx=700 tx=125923 /root/hmn/logs/h42e-reboot-forensics-vm101-20260603-165459.txt:607:target: VPN vpn1 /root/hmn/logs/h42e-reboot-forensics-vm101-20260603-165459.txt:608:active-slot: vpn1 /root/hmn/logs/h42e-reboot-forensics-vm101-20260603-165459.txt:609:route: default dev vpn1 scope link /root/hmn/logs/h42e-reboot-forensics-vm101-20260603-165459.txt:611:vpn1 state=unknown rx=451197388 tx=428290790 /root/hmn/logs/h42e-reboot-forensics-vm101-20260603-165459.txt:622:vpn1 state=unknown rx=460317248 tx=442985280 /root/hmn/logs/h42e-reboot-forensics-vm101-20260603-165459.txt:629:target: VPN vpn1 /root/hmn/logs/h42e-reboot-forensics-vm101-20260603-165459.txt:630:active-slot: vpn1 /root/hmn/logs/h42e-reboot-forensics-vm101-20260603-165459.txt:631:route: default dev vpn1 scope link /root/hmn/logs/h42e-reboot-forensics-vm101-20260603-165459.txt:633:vpn1 state=unknown rx=1004 tx=548 /root/hmn/logs/h42e-reboot-forensics-vm101-20260603-165459.txt:644:vpn1 state=unknown rx=444634944 tx=475901058 /root/hmn/logs/h42e-reboot-forensics-vm101-20260603-165459.txt:651:target: VPN vpn1 /root/hmn/logs/h42e-reboot-forensics-vm101-20260603-165459.txt:652:active-slot: vpn1 /root/hmn/logs/h42e-reboot-forensics-vm101-20260603-165459.txt:653:route: default dev vpn1 scope link /root/hmn/logs/h42e-reboot-forensics-vm101-20260603-165459.txt:655:vpn1 state=unknown rx=220 tx=596 /root/hmn/logs/h42e-reboot-forensics-vm101-20260603-165459.txt:666:vpn1 state=unknown rx=684 tx=7212 /root/hmn/logs/h42e-reboot-forensics-vm101-20260603-165459.txt:673:target: VPN vpn1 /root/hmn/logs/h42e-reboot-forensics-vm101-20260603-165459.txt:674:active-slot: vpn1 /root/hmn/logs/h42e-reboot-forensics-vm101-20260603-165459.txt:675:route: default dev vpn1 scope link /root/hmn/logs/h42e-reboot-forensics-vm101-20260603-165459.txt:677:vpn1 state=unknown rx=220 tx=588 /root/hmn/logs/h42e-reboot-forensics-vm101-20260603-165459.txt:685:active-slot: vpn1 /root/hmn/logs/h42e-reboot-forensics-vm101-20260603-165459.txt:688:vpn1 state=unknown rx=684 tx=7532 /root/hmn/logs/h42e-reboot-forensics-vm101-20260603-165459.txt:694:target: VPN vpn1 /root/hmn/logs/h42e-reboot-forensics-vm101-20260603-165459.txt:695:active-slot: vpn1 /root/hmn/logs/h42e-reboot-forensics-vm101-20260603-165459.txt:696:route: default dev vpn1 scope link /root/hmn/logs/h42e-reboot-forensics-vm101-20260603-165459.txt:698:vpn1 state=unknown rx=1372 tx=1758 /root/hmn/logs/h42e-reboot-forensics-vm101-20260603-165459.txt:709:vpn1 state=unknown rx=188 tx=477 /root/hmn/logs/h42e-reboot-forensics-vm101-20260603-165459.txt:752:vpn1_ep=194.71.227.212:32583 /root/hmn/logs/h42e-reboot-forensics-vm101-20260603-165459.txt:826:Wed Jun 3 16:48:02 2026 daemon.notice netifd: Interface 'vpn1' is setting up now /root/hmn/logs/h42e-reboot-forensics-vm101-20260603-165459.txt:830:Wed Jun 3 16:48:02 2026 user.notice vpn-egress: active slot vpn1 is down or skipped, trying standby vpn2 /root/hmn/logs/h42e-reboot-forensics-vm101-20260603-165459.txt:834:Wed Jun 3 16:48:02 2026 daemon.notice netifd: Interface 'vpn1' is now up /root/hmn/logs/h42e-reboot-forensics-vm101-20260603-165459.txt:835:Wed Jun 3 16:48:02 2026 daemon.notice netifd: Network device 'vpn1' link is up /root/hmn/logs/h42e-reboot-forensics-vm101-20260603-165459.txt:838:Wed Jun 3 16:48:02 2026 user.notice firewall: Reloading firewall due to ifup of vpn1 (vpn1) /root/hmn/logs/h42e-reboot-forensics-vm101-20260603-165459.txt:842:Wed Jun 3 16:48:20 2026 user.notice vpn-egress: refill start: failed=vpn1 active=vpn2 /root/hmn/logs/h42e-reboot-forensics-vm101-20260603-165459.txt:843:Wed Jun 3 16:48:20 2026 daemon.notice netifd: vpn1 (3286): ./amneziawg.sh: eval: line 298: proto_amneziawg_check_installed: not found /root/hmn/logs/h42e-reboot-forensics-vm101-20260603-165459.txt:844:Wed Jun 3 16:48:20 2026 daemon.notice netifd: Network device 'vpn1' link is down /root/hmn/logs/h42e-reboot-forensics-vm101-20260603-165459.txt:845:Wed Jun 3 16:48:20 2026 daemon.notice netifd: Interface 'vpn1' is now down /root/hmn/logs/h42e-reboot-forensics-vm101-20260603-165459.txt:854:Wed Jun 3 16:48:38 2026 daemon.notice netifd: Interface 'vpn1' is setting up now /root/hmn/logs/h42e-reboot-forensics-vm101-20260603-165459.txt:856:Wed Jun 3 16:48:38 2026 daemon.notice netifd: Interface 'vpn1' is now up /root/hmn/logs/h42e-reboot-forensics-vm101-20260603-165459.txt:857:Wed Jun 3 16:48:38 2026 daemon.notice netifd: Network device 'vpn1' link is up /root/hmn/logs/h42e-reboot-forensics-vm101-20260603-165459.txt:858:Wed Jun 3 16:48:38 2026 user.notice firewall: Reloading firewall due to ifup of vpn1 (vpn1) /root/hmn/logs/h42e-reboot-forensics-vm101-20260603-165459.txt:861:Wed Jun 3 16:49:08 2026 daemon.notice netifd: vpn1 (3962): ./amneziawg.sh: eval: line 298: proto_amneziawg_check_installed: not found /root/hmn/logs/h42e-reboot-forensics-vm101-20260603-165459.txt:862:Wed Jun 3 16:49:08 2026 daemon.notice netifd: Network device 'vpn1' link is down /root/hmn/logs/h42e-reboot-forensics-vm101-20260603-165459.txt:863:Wed Jun 3 16:49:08 2026 daemon.notice netifd: Interface 'vpn1' is now down /root/hmn/logs/h42e-reboot-forensics-vm101-20260603-165459.txt:864:Wed Jun 3 16:49:12 2026 user.notice vpn-egress: refill success: failed=vpn1 active=vpn2 /root/hmn/logs/cron-refresh-pool-safe-last.log:440:vpn1 150-NL-Netherlands-Amsterdam-R5-178.215.227.13-awg1.conf 178.215.227.13:44408 53.234 /root/hmn/configs/awg1/latest/150-NL-Netherlands-Amsterdam-R5-178.215.227.13-awg1.conf /root/hmn/logs/cron-refresh-pool-safe-last.log:443:vpn1 endpoint 178.215.227.13:44408: OK in current strict foreign table /root/hmn/logs/cron-refresh-pool-safe-last.log:530:vpn1 150-NL-Netherlands-Amsterdam-R5-178.215.227.13-awg1.conf 178.215.227.13:44408 53.234 /root/hmn/configs/awg1/latest/150-NL-Netherlands-Amsterdam-R5-178.215.227.13-awg1.conf /root/hmn/logs/refresh-pool-safe-20260708-042000-24122.log:437:vpn1 150-NL-Netherlands-Amsterdam-R5-178.215.227.13-awg1.conf 178.215.227.13:44408 53.234 /root/hmn/configs/awg1/latest/150-NL-Netherlands-Amsterdam-R5-178.215.227.13-awg1.conf /root/hmn/logs/refresh-pool-safe-20260708-042000-24122.log:440:vpn1 endpoint 178.215.227.13:44408: OK in current strict foreign table /root/hmn/logs/refresh-pool-safe-20260708-042000-24122.log:527:vpn1 150-NL-Netherlands-Amsterdam-R5-178.215.227.13-awg1.conf 178.215.227.13:44408 53.234 /root/hmn/configs/awg1/latest/150-NL-Netherlands-Amsterdam-R5-178.215.227.13-awg1.conf /root/hmn/logs/step048i2-controlled-refresh-20260710-163600.log:9:[16:36:00] [downloader] Request interface: vpn1 /root/hmn/logs/step048i2-controlled-refresh-20260710-163600.log:13:[16:36:00] [downloader] 0/4 Проверяю доступ к hide-my-name.net через vpn1... /root/hmn/logs/step048i2-controlled-refresh-20260710-163600.log:316:[16:45:31] [tester] endpoint already UP on vpn1; testing existing interface, not starting duplicate /root/hmn/logs/step048i2-controlled-refresh-20260710-163600.log:386:[16:47:54] [tester] default dev vpn1 scope link /root/hmn/logs/step048i2-controlled-refresh-20260710-163600.log:407:[16:47:54] [validator] active=vpn1 /root/hmn/logs/step048i2-controlled-refresh-20260710-163600.log:408:[16:47:54] [validator] default dev vpn1 scope link /root/hmn/logs/step048i2-controlled-refresh-20260710-163600.log:411:[16:47:54] [validator] 9.9.9.9 from 10.200.0.2 dev vpn1 table 200 uid 0 /root/hmn/logs/step048i2-controlled-refresh-20260710-163600.log:534:[16:56:39] [validator] endpoint already UP on vpn1; testing existing interface, not starting duplicate /root/hmn/logs/step048i2-controlled-refresh-20260710-163600.log:604:[16:59:02] [validator] default dev vpn1 scope link /root/hmn/logs/step048i2-controlled-refresh-20260710-163600.log:623:[16:59:02] [validator] vpn1 150-NL-Netherlands-Amsterdam-R5-178.215.227.13-awg1.conf 178.215.227.13:44408 53.234 KEYMASK-NL-Netherlands-Amsterdam-R5-178.215.227.13-awg1.conf /root/hmn/logs/step048i2-controlled-refresh-20260710-163600.log:625:[16:59:02] [validator] vpn1 endpoint 178.215.227.13:44408: OK in current strict foreign table /root/hmn/logs/step048i2-controlled-refresh-20260710-163600.log:634:[16:59:10] [validator] vpn1 /root/hmn/logs/step048i2-controlled-refresh-20260710-163600.log:635:[16:59:10] [validator] default dev vpn1 scope link /root/hmn/logs/step048i2-controlled-refresh-20260710-163600.log:638:[16:59:10] [validator] 9.9.9.9 from 10.200.0.2 dev vpn1 table 200 uid 0 /root/hmn/logs/validate-current-pool-20260710-164754.log:120: endpoint already UP on vpn1; testing existing interface, not starting duplicate /root/hmn/logs/validate-current-pool-20260710-164754.log:190:default dev vpn1 scope link /root/hmn/logs/refresh-pool-safe-20260711-191751-11798.log:8:active=vpn1 /root/hmn/logs/refresh-pool-safe-20260711-191751-11798.log:39:active=vpn1 /root/hmn/logs/refresh-pool-safe-20260711-191751-11798.log:165: endpoint already UP on vpn1; testing existing interface, not starting duplicate /root/hmn/logs/refresh-pool-safe-20260711-191751-11798.log:254:vpn1 150-NL-Netherlands-Amsterdam-R5-178.215.227.13-awg1.conf 178.215.227.13:44408 53.234 /root/hmn/configs/awg1/latest/150-NL-Netherlands-Amsterdam-R5-178.215.227.13-awg1.conf /root/hmn/logs/refresh-pool-safe-20260711-191751-11798.log:256:vpn1 endpoint 109.248.198.4:37129: OK in current strict foreign table /root/hmn/logs/refresh-pool-safe-20260711-191751-11798.log:265:vpn1 /root/hmn/logs/refresh-pool-safe-20260711-191751-11798.log:266:default dev vpn1 scope link /root/hmn/logs/refresh-pool-safe-20260711-191751-11798.log:269:9.9.9.9 from 10.200.0.2 dev vpn1 table 200 uid 0 /root/hmn/logs/refresh-pool-safe-20260711-191751-11798.log:312:active=vpn1 /root/hmn/logs/refresh-pool-safe-20260711-191751-11798.log:313:default dev vpn1 scope link /root/hmn/logs/refresh-pool-safe-20260711-191751-11798.log:316:9.9.9.9 from 10.200.0.2 dev vpn1 table 200 uid 0 /root/hmn/logs/refresh-pool-safe-20260711-191751-11798.log:346:vpn1 150-NL-Netherlands-Amsterdam-R5-178.215.227.13-awg1.conf 178.215.227.13:44408 53.234 /root/hmn/configs/awg1/latest/150-NL-Netherlands-Amsterdam-R5-178.215.227.13-awg1.conf /root/hmn/logs/validate-current-pool-20260711-191751.log:120: endpoint already UP on vpn1; testing existing interface, not starting duplicate /root/hmn/logs/refresh-pool-safe-20260711-205609-18433.log:8:active=vpn1 /root/hmn/logs/refresh-pool-safe-20260711-205609-18433.log:9:default dev vpn1 scope link /root/hmn/logs/refresh-pool-safe-20260711-205609-18433.log:12:9.9.9.9 from 10.200.0.2 dev vpn1 table 200 uid 0 /root/hmn/logs/refresh-pool-safe-20260711-205609-18433.log:24:Request interface: vpn1 /root/hmn/logs/refresh-pool-safe-20260711-205609-18433.log:28:0/4 Проверяю доступ к hide-my-name.net через vpn1... /root/hmn/logs/refresh-pool-safe-20260711-205609-18433.log:223:active=vpn1 /root/hmn/logs/refresh-pool-safe-20260711-205609-18433.log:224:default dev vpn1 scope link /root/hmn/logs/refresh-pool-safe-20260711-205609-18433.log:227:9.9.9.9 from 10.200.0.2 dev vpn1 table 200 uid 0 /root/hmn/logs/refresh-pool-safe-20260711-205609-18433.log:364: endpoint already UP on vpn1; testing existing interface, not starting duplicate /root/hmn/logs/refresh-pool-safe-20260711-205609-18433.log:425:default dev vpn1 scope link /root/hmn/logs/refresh-pool-safe-20260711-205609-18433.log:466:vpn1 150-NL-Netherlands-Amsterdam-R5-178.215.227.13-awg1.conf 178.215.227.13:44408 53.234 /root/hmn/configs/awg1/latest/150-NL-Netherlands-Amsterdam-R5-178.215.227.13-awg1.conf /root/hmn/logs/refresh-pool-safe-20260711-205609-18433.log:468:vpn1 endpoint 109.248.198.4:37129: OK in current strict foreign table /root/hmn/logs/refresh-pool-safe-20260711-205609-18433.log:477:vpn1 /root/hmn/logs/refresh-pool-safe-20260711-205609-18433.log:478:default dev vpn1 scope link /root/hmn/logs/refresh-pool-safe-20260711-205609-18433.log:481:9.9.9.9 from 10.200.0.2 dev vpn1 table 200 uid 0 /root/hmn/logs/refresh-pool-safe-20260711-205609-18433.log:524:active=vpn1 /root/hmn/logs/refresh-pool-safe-20260711-205609-18433.log:525:default dev vpn1 scope link /root/hmn/logs/refresh-pool-safe-20260711-205609-18433.log:528:9.9.9.9 from 10.200.0.2 dev vpn1 table 200 uid 0 /root/hmn/logs/refresh-pool-safe-20260711-205609-18433.log:557:vpn1 150-NL-Netherlands-Amsterdam-R5-178.215.227.13-awg1.conf 178.215.227.13:44408 53.234 /root/hmn/configs/awg1/latest/150-NL-Netherlands-Amsterdam-R5-178.215.227.13-awg1.conf /root/hmn/logs/validate-current-pool-20260711-205653.log:134: endpoint already UP on vpn1; testing existing interface, not starting duplicate /root/hmn/logs/validate-current-pool-20260711-205653.log:195:default dev vpn1 scope link __BLOCK_END__ relevant_log_lines __BLOCK_BEGIN__ recent_small_artifact_contents ===== FILE /tmp/health-watch-egress1-vpn1-1_1_1_1-8686.err ===== ===== FILE /tmp/health-watch-egress1-vpn1-1_1_1_1-8686.out ===== PING 1.1.1.1 (1.1.1.1): 56 data bytes 64 bytes from 1.1.1.1: seq=0 ttl=57 time=52.058 ms 64 bytes from 1.1.1.1: seq=1 ttl=57 time=52.358 ms 64 bytes from 1.1.1.1: seq=2 ttl=57 time=52.213 ms --- 1.1.1.1 ping statistics --- 3 packets transmitted, 3 packets received, 0% packet loss round-trip min/avg/max = 52.058/52.209/52.358 ms ===== FILE /tmp/health-watch-egress1-vpn1-8_8_8_8-5572.err ===== ===== FILE /tmp/health-watch-egress1-vpn1-8_8_8_8-5572.out ===== PING 8.8.8.8 (8.8.8.8): 56 data bytes 64 bytes from 8.8.8.8: seq=0 ttl=117 time=50.443 ms 64 bytes from 8.8.8.8: seq=1 ttl=117 time=50.453 ms 64 bytes from 8.8.8.8: seq=2 ttl=117 time=50.970 ms --- 8.8.8.8 ping statistics --- 3 packets transmitted, 3 packets received, 0% packet loss round-trip min/avg/max = 50.443/50.622/50.970 ms ===== FILE /tmp/health-watch-egress1-vpn1-8_8_8_8-9659.err ===== ===== FILE /tmp/health-watch-egress1-vpn1-8_8_8_8-9659.out ===== PING 8.8.8.8 (8.8.8.8): 56 data bytes 64 bytes from 8.8.8.8: seq=0 ttl=117 time=50.199 ms 64 bytes from 8.8.8.8: seq=1 ttl=117 time=50.117 ms 64 bytes from 8.8.8.8: seq=2 ttl=117 time=50.153 ms --- 8.8.8.8 ping statistics --- 3 packets transmitted, 3 packets received, 0% packet loss round-trip min/avg/max = 50.117/50.156/50.199 ms ===== FILE /tmp/lib/router-egress-recovery/backup-egress4-20260711-171001/rollback-egress4.sh ===== #!/bin/sh set -u uci set network.vpn4.hmn_endpoint='78.31.250.16:41729' uci commit network ifdown vpn4 >/dev/null 2>&1 || true ifup vpn4 >/dev/null 2>&1 || true sleep 12 if [ -x /usr/local/sbin/router-egress-slots-apply.sh ]; then /usr/local/sbin/router-egress-slots-apply.sh >/dev/null 2>&1 || true fi echo "rollback_done=true" ===== FILE /tmp/lib/router-egress-recovery/backup-egress4-20260711-172616/rollback-egress4.sh ===== #!/bin/sh set -u uci set network.vpn4.hmn_endpoint='157.173.25.198:34340' uci commit network ifdown vpn4 >/dev/null 2>&1 || true ifup vpn4 >/dev/null 2>&1 || true sleep 12 if [ -x /usr/local/sbin/router-egress-slots-apply.sh ]; then /usr/local/sbin/router-egress-slots-apply.sh >/dev/null 2>&1 || true fi echo "rollback_done=true" ===== FILE /tmp/lib/router-egress-recovery/backup-egress4-20260711-174234/rollback-egress4.sh ===== #!/bin/sh set -u uci set network.vpn4.hmn_endpoint='178.215.227.13:44408' uci commit network ifdown vpn4 >/dev/null 2>&1 || true ifup vpn4 >/dev/null 2>&1 || true sleep 12 if [ -x /usr/local/sbin/router-egress-slots-apply.sh ]; then /usr/local/sbin/router-egress-slots-apply.sh >/dev/null 2>&1 || true fi echo "rollback_done=true" ===== FILE /tmp/lib/router-egress-recovery/backup-egress4-20260711-175738/rollback-egress4.sh ===== #!/bin/sh set -u uci set network.vpn4.hmn_endpoint='157.173.25.198:34340' uci commit network ifdown vpn4 >/dev/null 2>&1 || true ifup vpn4 >/dev/null 2>&1 || true sleep 12 if [ -x /usr/local/sbin/router-egress-slots-apply.sh ]; then /usr/local/sbin/router-egress-slots-apply.sh >/dev/null 2>&1 || true fi echo "rollback_done=true" ===== FILE /tmp/lib/router-egress-recovery/backup-egress4-20260711-181356/rollback-egress4.sh ===== #!/bin/sh set -u uci set network.vpn4.hmn_endpoint='178.215.227.13:44408' uci commit network ifdown vpn4 >/dev/null 2>&1 || true ifup vpn4 >/dev/null 2>&1 || true sleep 12 if [ -x /usr/local/sbin/router-egress-slots-apply.sh ]; then /usr/local/sbin/router-egress-slots-apply.sh >/dev/null 2>&1 || true fi echo "rollback_done=true" ===== FILE /tmp/lib/router-egress-recovery/backup-egress4-20260711-182916/rollback-egress4.sh ===== #!/bin/sh set -u uci set network.vpn4.hmn_endpoint='157.173.25.198:34340' uci commit network ifdown vpn4 >/dev/null 2>&1 || true ifup vpn4 >/dev/null 2>&1 || true sleep 12 if [ -x /usr/local/sbin/router-egress-slots-apply.sh ]; then /usr/local/sbin/router-egress-slots-apply.sh >/dev/null 2>&1 || true fi echo "rollback_done=true" ===== FILE /tmp/lib/router-egress-recovery/backup-egress4-20260711-184533/rollback-egress4.sh ===== #!/bin/sh set -u uci set network.vpn4.hmn_endpoint='178.215.227.13:44408' uci commit network ifdown vpn4 >/dev/null 2>&1 || true ifup vpn4 >/dev/null 2>&1 || true sleep 12 if [ -x /usr/local/sbin/router-egress-slots-apply.sh ]; then /usr/local/sbin/router-egress-slots-apply.sh >/dev/null 2>&1 || true fi echo "rollback_done=true" ===== FILE /tmp/lib/router-egress-recovery/backup-egress4-20260711-190443/rollback-egress4.sh ===== #!/bin/sh set -u uci set network.vpn4.hmn_endpoint='157.173.25.198:34340' uci commit network ifdown vpn4 >/dev/null 2>&1 || true ifup vpn4 >/dev/null 2>&1 || true sleep 12 if [ -x /usr/local/sbin/router-egress-slots-apply.sh ]; then /usr/local/sbin/router-egress-slots-apply.sh >/dev/null 2>&1 || true fi echo "rollback_done=true" ===== FILE /tmp/lib/router-egress-recovery/backup-egress4-20260711-193554/rollback-egress4.sh ===== #!/bin/sh set -u uci set network.vpn4.hmn_endpoint='178.215.227.13:44408' uci commit network ifdown vpn4 >/dev/null 2>&1 || true ifup vpn4 >/dev/null 2>&1 || true sleep 12 if [ -x /usr/local/sbin/router-egress-slots-apply.sh ]; then /usr/local/sbin/router-egress-slots-apply.sh >/dev/null 2>&1 || true fi echo "rollback_done=true" ===== FILE /tmp/lib/router-egress-recovery/backup-egress4-20260711-195218/rollback-egress4.sh ===== #!/bin/sh set -u uci set network.vpn4.hmn_endpoint='157.173.25.198:34340' uci commit network ifdown vpn4 >/dev/null 2>&1 || true ifup vpn4 >/dev/null 2>&1 || true sleep 12 if [ -x /usr/local/sbin/router-egress-slots-apply.sh ]; then /usr/local/sbin/router-egress-slots-apply.sh >/dev/null 2>&1 || true fi echo "rollback_done=true" ===== FILE /tmp/lib/router-egress-recovery/backup-egress4-20260711-200719/rollback-egress4.sh ===== #!/bin/sh set -u uci set network.vpn4.hmn_endpoint='178.215.227.13:44408' uci commit network ifdown vpn4 >/dev/null 2>&1 || true ifup vpn4 >/dev/null 2>&1 || true sleep 12 if [ -x /usr/local/sbin/router-egress-slots-apply.sh ]; then /usr/local/sbin/router-egress-slots-apply.sh >/dev/null 2>&1 || true fi echo "rollback_done=true" ===== FILE /tmp/lib/router-egress-recovery/backup-egress4-20260711-202222/rollback-egress4.sh ===== #!/bin/sh set -u uci set network.vpn4.hmn_endpoint='157.173.25.198:34340' uci commit network ifdown vpn4 >/dev/null 2>&1 || true ifup vpn4 >/dev/null 2>&1 || true sleep 12 if [ -x /usr/local/sbin/router-egress-slots-apply.sh ]; then /usr/local/sbin/router-egress-slots-apply.sh >/dev/null 2>&1 || true fi echo "rollback_done=true" ===== FILE /tmp/lib/router-egress-recovery/backup-egress4-20260711-203836/rollback-egress4.sh ===== #!/bin/sh set -u uci set network.vpn4.hmn_endpoint='178.215.227.13:44408' uci commit network ifdown vpn4 >/dev/null 2>&1 || true ifup vpn4 >/dev/null 2>&1 || true sleep 12 if [ -x /usr/local/sbin/router-egress-slots-apply.sh ]; then /usr/local/sbin/router-egress-slots-apply.sh >/dev/null 2>&1 || true fi echo "rollback_done=true" ===== FILE /tmp/lib/router-egress-recovery/backup-egress4-20260711-210141/rollback-egress4.sh ===== #!/bin/sh set -u uci set network.vpn4.hmn_endpoint='157.173.25.198:34340' uci commit network ifdown vpn4 >/dev/null 2>&1 || true ifup vpn4 >/dev/null 2>&1 || true sleep 12 if [ -x /usr/local/sbin/router-egress-slots-apply.sh ]; then /usr/local/sbin/router-egress-slots-apply.sh >/dev/null 2>&1 || true fi echo "rollback_done=true" ===== FILE /tmp/lib/router-egress-recovery/health-watch/fail-egress1 ===== 0 ===== FILE /tmp/lib/router-egress-recovery/rebalance-egress1-20260711-210053/rollback-egress1.sh ===== #!/bin/sh uci set network.vpn1.hmn_endpoint='109.248.198.4:37129' uci commit network ifdown vpn1 >/dev/null 2>&1 || true ifup vpn1 >/dev/null 2>&1 || true sleep 12 [ -x /usr/local/sbin/router-egress-slots-apply.sh ] && /usr/local/sbin/router-egress-slots-apply.sh >/dev/null 2>&1 || true echo rollback_done=true ===== FILE /tmp/log/router-egress-rebalance-top5.log ===== rebalance_top5 ts=2026-07-11T08:22:08+00:00 mode=--dry-run decision=plan_ok reason=top5_pool_ready changes=0 apply=false rebalance_top5 ts=2026-07-11T08:22:08+00:00 mode=--commit decision=noop reason=already_top5 changes=0 apply=false rebalance_top5 ts=2026-07-11T08:30:59+00:00 mode=--dry-run decision=plan_ok reason=top5_pool_ready changes=0 apply=false rebalance_top5 ts=2026-07-11T09:20:08+00:00 mode=--dry-run decision=plan_ok reason=top5_pool_ready changes=1 apply=false rebalance_top5 ts=2026-07-11T19:29:32+00:00 mode=--commit decision=commit_ok reason=changes_applied changes=2 apply=true rebalance_top5 ts=2026-07-11T21:01:22+00:00 mode=--commit decision=commit_failed reason=slot_apply_failed_egress1 changes=3 apply=true ===== FILE /tmp/step050m07c5-backup-20260711-205606-17419/state.before/health-watch/fail-egress1 ===== 0 ===== FILE /var/lib/router-egress-recovery/backup-egress4-20260711-171001/rollback-egress4.sh ===== #!/bin/sh set -u uci set network.vpn4.hmn_endpoint='78.31.250.16:41729' uci commit network ifdown vpn4 >/dev/null 2>&1 || true ifup vpn4 >/dev/null 2>&1 || true sleep 12 if [ -x /usr/local/sbin/router-egress-slots-apply.sh ]; then /usr/local/sbin/router-egress-slots-apply.sh >/dev/null 2>&1 || true fi echo "rollback_done=true" ===== FILE /var/lib/router-egress-recovery/backup-egress4-20260711-172616/rollback-egress4.sh ===== #!/bin/sh set -u uci set network.vpn4.hmn_endpoint='157.173.25.198:34340' uci commit network ifdown vpn4 >/dev/null 2>&1 || true ifup vpn4 >/dev/null 2>&1 || true sleep 12 if [ -x /usr/local/sbin/router-egress-slots-apply.sh ]; then /usr/local/sbin/router-egress-slots-apply.sh >/dev/null 2>&1 || true fi echo "rollback_done=true" ===== FILE /var/lib/router-egress-recovery/backup-egress4-20260711-174234/rollback-egress4.sh ===== #!/bin/sh set -u uci set network.vpn4.hmn_endpoint='178.215.227.13:44408' uci commit network ifdown vpn4 >/dev/null 2>&1 || true ifup vpn4 >/dev/null 2>&1 || true sleep 12 if [ -x /usr/local/sbin/router-egress-slots-apply.sh ]; then /usr/local/sbin/router-egress-slots-apply.sh >/dev/null 2>&1 || true fi echo "rollback_done=true" ===== FILE /var/lib/router-egress-recovery/backup-egress4-20260711-175738/rollback-egress4.sh ===== #!/bin/sh set -u uci set network.vpn4.hmn_endpoint='157.173.25.198:34340' uci commit network ifdown vpn4 >/dev/null 2>&1 || true ifup vpn4 >/dev/null 2>&1 || true sleep 12 if [ -x /usr/local/sbin/router-egress-slots-apply.sh ]; then /usr/local/sbin/router-egress-slots-apply.sh >/dev/null 2>&1 || true fi echo "rollback_done=true" ===== FILE /var/lib/router-egress-recovery/backup-egress4-20260711-181356/rollback-egress4.sh ===== #!/bin/sh set -u uci set network.vpn4.hmn_endpoint='178.215.227.13:44408' uci commit network ifdown vpn4 >/dev/null 2>&1 || true ifup vpn4 >/dev/null 2>&1 || true sleep 12 if [ -x /usr/local/sbin/router-egress-slots-apply.sh ]; then /usr/local/sbin/router-egress-slots-apply.sh >/dev/null 2>&1 || true fi echo "rollback_done=true" ===== FILE /var/lib/router-egress-recovery/backup-egress4-20260711-182916/rollback-egress4.sh ===== #!/bin/sh set -u uci set network.vpn4.hmn_endpoint='157.173.25.198:34340' uci commit network ifdown vpn4 >/dev/null 2>&1 || true ifup vpn4 >/dev/null 2>&1 || true sleep 12 if [ -x /usr/local/sbin/router-egress-slots-apply.sh ]; then /usr/local/sbin/router-egress-slots-apply.sh >/dev/null 2>&1 || true fi echo "rollback_done=true" ===== FILE /var/lib/router-egress-recovery/backup-egress4-20260711-184533/rollback-egress4.sh ===== #!/bin/sh set -u uci set network.vpn4.hmn_endpoint='178.215.227.13:44408' uci commit network ifdown vpn4 >/dev/null 2>&1 || true ifup vpn4 >/dev/null 2>&1 || true sleep 12 if [ -x /usr/local/sbin/router-egress-slots-apply.sh ]; then /usr/local/sbin/router-egress-slots-apply.sh >/dev/null 2>&1 || true fi echo "rollback_done=true" ===== FILE /var/lib/router-egress-recovery/backup-egress4-20260711-190443/rollback-egress4.sh ===== #!/bin/sh set -u uci set network.vpn4.hmn_endpoint='157.173.25.198:34340' uci commit network ifdown vpn4 >/dev/null 2>&1 || true ifup vpn4 >/dev/null 2>&1 || true sleep 12 if [ -x /usr/local/sbin/router-egress-slots-apply.sh ]; then /usr/local/sbin/router-egress-slots-apply.sh >/dev/null 2>&1 || true fi echo "rollback_done=true" ===== FILE /var/lib/router-egress-recovery/backup-egress4-20260711-193554/rollback-egress4.sh ===== #!/bin/sh set -u uci set network.vpn4.hmn_endpoint='178.215.227.13:44408' uci commit network ifdown vpn4 >/dev/null 2>&1 || true ifup vpn4 >/dev/null 2>&1 || true sleep 12 if [ -x /usr/local/sbin/router-egress-slots-apply.sh ]; then /usr/local/sbin/router-egress-slots-apply.sh >/dev/null 2>&1 || true fi echo "rollback_done=true" ===== FILE /var/lib/router-egress-recovery/backup-egress4-20260711-195218/rollback-egress4.sh ===== #!/bin/sh set -u uci set network.vpn4.hmn_endpoint='157.173.25.198:34340' uci commit network ifdown vpn4 >/dev/null 2>&1 || true ifup vpn4 >/dev/null 2>&1 || true sleep 12 if [ -x /usr/local/sbin/router-egress-slots-apply.sh ]; then /usr/local/sbin/router-egress-slots-apply.sh >/dev/null 2>&1 || true fi echo "rollback_done=true" ===== FILE /var/lib/router-egress-recovery/backup-egress4-20260711-200719/rollback-egress4.sh ===== #!/bin/sh set -u uci set network.vpn4.hmn_endpoint='178.215.227.13:44408' uci commit network ifdown vpn4 >/dev/null 2>&1 || true ifup vpn4 >/dev/null 2>&1 || true sleep 12 if [ -x /usr/local/sbin/router-egress-slots-apply.sh ]; then /usr/local/sbin/router-egress-slots-apply.sh >/dev/null 2>&1 || true fi echo "rollback_done=true" ===== FILE /var/lib/router-egress-recovery/backup-egress4-20260711-202222/rollback-egress4.sh ===== #!/bin/sh set -u uci set network.vpn4.hmn_endpoint='157.173.25.198:34340' uci commit network ifdown vpn4 >/dev/null 2>&1 || true ifup vpn4 >/dev/null 2>&1 || true sleep 12 if [ -x /usr/local/sbin/router-egress-slots-apply.sh ]; then /usr/local/sbin/router-egress-slots-apply.sh >/dev/null 2>&1 || true fi echo "rollback_done=true" ===== FILE /var/lib/router-egress-recovery/backup-egress4-20260711-203836/rollback-egress4.sh ===== #!/bin/sh set -u uci set network.vpn4.hmn_endpoint='178.215.227.13:44408' uci commit network ifdown vpn4 >/dev/null 2>&1 || true ifup vpn4 >/dev/null 2>&1 || true sleep 12 if [ -x /usr/local/sbin/router-egress-slots-apply.sh ]; then /usr/local/sbin/router-egress-slots-apply.sh >/dev/null 2>&1 || true fi echo "rollback_done=true" ===== FILE /var/lib/router-egress-recovery/backup-egress4-20260711-210141/rollback-egress4.sh ===== #!/bin/sh set -u uci set network.vpn4.hmn_endpoint='157.173.25.198:34340' uci commit network ifdown vpn4 >/dev/null 2>&1 || true ifup vpn4 >/dev/null 2>&1 || true sleep 12 if [ -x /usr/local/sbin/router-egress-slots-apply.sh ]; then /usr/local/sbin/router-egress-slots-apply.sh >/dev/null 2>&1 || true fi echo "rollback_done=true" ===== FILE /var/lib/router-egress-recovery/health-watch/fail-egress1 ===== 0 ===== FILE /var/lib/router-egress-recovery/rebalance-egress1-20260711-210053/rollback-egress1.sh ===== #!/bin/sh uci set network.vpn1.hmn_endpoint='109.248.198.4:37129' uci commit network ifdown vpn1 >/dev/null 2>&1 || true ifup vpn1 >/dev/null 2>&1 || true sleep 12 [ -x /usr/local/sbin/router-egress-slots-apply.sh ] && /usr/local/sbin/router-egress-slots-apply.sh >/dev/null 2>&1 || true echo rollback_done=true __BLOCK_END__ recent_small_artifact_contents __TRACE__ stage=storage __BLOCK_BEGIN__ filesystem_usage Filesystem 1024-blocks Used Available Capacity Mounted on /dev/root 100692 58752 39812 60% / tmpfs 246808 10140 236668 4% /tmp /dev/sda1 16084 5800 9960 37% /boot /dev/sda1 16084 5800 9960 37% /boot tmpfs 512 0 512 0% /dev __BLOCK_END__ filesystem_usage __BLOCK_BEGIN__ relevant_directory_sizes 184 /root/hmn/cache 512 /tmp/step050m07c5-backup-20260711-205606-17419 624 /var/lib/router-egress-recovery 1088 /root/hmn/runs 2444 /root/hmn/configs/awg1 2980 /root/hmn/backups __BLOCK_END__ relevant_directory_sizes __BLOCK_BEGIN__ latest_links -rw------- 1 root root 37 Jul 11 20:56 /root/hmn/cache/fail-awg1-latest.tsv -rw------- 1 root root 3576 Jul 10 16:59 /root/hmn/cache/ok-awg1-strict-all-latest.tsv -rw------- 1 root root 3203 Jul 6 16:24 /root/hmn/cache/ok-awg1-strict-all-latest.tsv.before-validate-20260707-042048 -rw------- 1 root root 3754 Jul 7 04:31 /root/hmn/cache/ok-awg1-strict-all-latest.tsv.before-validate-20260708-042044 -rw------- 1 root root 3754 Jul 8 04:31 /root/hmn/cache/ok-awg1-strict-all-latest.tsv.before-validate-20260710-164754 -rw------- 1 root root 2829 Jul 10 16:59 /root/hmn/cache/ok-awg1-strict-foreign-latest.tsv -rw------- 1 root root 2456 Jul 6 16:24 /root/hmn/cache/ok-awg1-strict-foreign-latest.tsv.before-validate-20260707-042048 -rw------- 1 root root 2829 Jul 7 04:31 /root/hmn/cache/ok-awg1-strict-foreign-latest.tsv.before-validate-20260708-042044 -rw------- 1 root root 2829 Jul 8 04:31 /root/hmn/cache/ok-awg1-strict-foreign-latest.tsv.before-validate-20260710-164754 -rw------- 1 root root 3576 Jul 10 16:59 /root/hmn/cache/ok-awg1-strict-latest.tsv -rw------- 1 root root 3203 Jul 6 16:24 /root/hmn/cache/ok-awg1-strict-latest.tsv.before-validate-20260707-042048 -rw------- 1 root root 3754 Jul 7 04:31 /root/hmn/cache/ok-awg1-strict-latest.tsv.before-validate-20260708-042044 -rw------- 1 root root 3754 Jul 8 04:31 /root/hmn/cache/ok-awg1-strict-latest.tsv.before-validate-20260710-164754 -rw------- 1 root root 30 Jul 11 21:00 /root/hmn/cache/quarantine-awg1-latest.tsv -rw------- 1 root root 30 Jul 6 16:14 /root/hmn/cache/quarantine-awg1-latest.tsv.before-validate-20260706-161434 -rw------- 1 root root 30 Jul 7 04:20 /root/hmn/cache/quarantine-awg1-latest.tsv.before-validate-20260707-042048 -rw------- 1 root root 30 Jul 8 04:20 /root/hmn/cache/quarantine-awg1-latest.tsv.before-validate-20260708-042044 -rw------- 1 root root 30 Jul 10 16:36 /root/hmn/cache/quarantine-awg1-latest.tsv.before-validate-20260710-164754 -rw------- 1 root root 2410 Jun 1 15:24 /root/hmn/cache/ranked-awg1-latest.tsv -rw------- 1 root root 375 Jul 8 06:16 /root/hmn/cache/selected-awg1-latest.tsv -rw------- 1 root root 386 Jul 6 16:09 /root/hmn/cache/selected-awg1-latest.tsv.before-refill-20260706-165740 -rw-r--r-- 1 root root 385 Jul 6 16:57 /root/hmn/cache/selected-awg1-latest.tsv.before-refill-20260706-170839 -rw------- 1 root root 391 Jul 6 17:08 /root/hmn/cache/selected-awg1-latest.tsv.before-refill-20260708-061633 -rw------- 1 root root 33274 Jul 11 20:56 /root/hmn/cache/serverlist-latest.json -rw------- 1 root root 1653 Jul 11 20:56 /root/hmn/cache/wg-candidates-latest.tsv -rw------- 1 root root 6294 Jul 11 20:56 /root/hmn/cache/working-awg1-latest.tsv lrwxrwxrwx 1 root root 38 Jul 11 20:56 /root/hmn/configs/awg1/latest -> /root/hmn/configs/awg1/20260711-205609 /root/hmn/configs/awg1/20260711-205609 __BLOCK_END__ latest_links __TRACE__ stage=complete