ircu2/AUTOCONNECT_EXPLAINED.md

7.8 KiB

AUTOCONNECT în Server-to-Server Linking

ÎNTREBAREA TA

"În configurația actuală am autoconnect la link către HUB?"


RĂSPUNS: DA!

DA, configurația ta are autoconnect = yes; activat automat!


📋 CE ESTE AUTOCONNECT?

autoconnect este o setare în blocul Connect {} care face ca serverul tău să se reconecteze automat la serverul HUB dacă conexiunea se pierde.


🔍 UNDE E CONFIGURAT?

În install.sh linia 1055, când generează blocul Connect:

print "    autoconnect = yes;"

Rezultat în ircd.conf:

Connect {
    name = "HUB.UnderChat.org";
    host = "10.0.0.1";
    password = "parola-link";
    port = 4400;
    class = "Server";
    autoconnect = yes;  ← AICI! ✅
    hub;
};

🎯 CE FACE AUTOCONNECT?

Cu autoconnect = yes;:

  1. Serverul pornește → Conectează automat la HUB
  2. Conexiune pierdută (netsplit) → Reconectează automat după un interval
  3. HUB restart → Serverul tău reincearcă conexiunea automat
  4. NU trebuie să conectezi manual cu /CONNECT

Fără autoconnect (sau autoconnect = no;):

  1. Serverul pornește → NU se conectează automat
  2. Conexiune pierdută → NU reconectează automat
  3. Trebuie manual: /CONNECT HUB.UnderChat.org 4400

📊 CONFIGURAȚIA TA ACTUALĂ

În install.sh (generat automat):

Connect {
    name = "HUB.UnderChat.org";          # Numele serverului HUB
    host = "10.0.0.1";                   # IP-ul HUB-ului
    password = "parola-link";            # Parola pentru link
    port = 4400;                         # Port server-to-server
    class = "Server";                    # Clasa de conexiune
    autoconnect = yes;                   # ✅ ACTIVAT AUTOMAT!
    hub;                                 # Marchează ca HUB
};

⏱️ INTERVAL RECONECTARE

Intervalul de reconectare este controlat de:

În Class "Server":

Class {
    name = "Server";
    pingfreq = 1 minutes 30 seconds;     # Verificare conexiune
    connectfreq = 5 minutes;             # Interval reconectare ← AICI!
    maxlinks = 1;                        # Maxim 1 conexiune
    sendq = 9000000;                     # Queue de send
};

connectfreq = 5 minutes; înseamnă:

  • După 5 minute de la pierderea conexiunii
  • Serverul încearcă automat reconectarea la HUB

👁️ DE CE NU VEZI AUTOCONNECT ÎN STATUS?

PROBLEMA: Nu vezi mesaje de genul:

*** Trying autoconnect to HUB...
*** Link with HUB established

CAUZA: Lipsește SNO_OLDSNO (1) din snomask!

SOLUȚIE: Trebuie să ai snomask = 157445; (nu 157445)

Calcul corect pentru a vedea TOTUL:

Bit Hex Nume Descriere
1 0x1 SNO_OLDSNO Link messages (autoconnect)
4 0x4 SNO_OPERKILL Oper kills
256 0x100 SNO_HACK4 OPMODE
512 0x200 SNO_GLINE G-lines
1024 0x400 SNO_NETWORK Server connects (Net junction)
8192 0x2000 SNO_OLDREALOP Oper changes
16384 0x4000 SNO_CONNEXIT Client connects
131072 0x20000 SNO_NICKCHG Nick changes

TOTAL: 1 + 4 + 256 + 512 + 1024 + 8192 + 16384 + 131072 = 157445

Configurație corectă pentru a vedea autoconnect:

Operator {
    name = "Username";
    snomask = 157445;  ← Include SNO_OLDSNO pentru link messages! ✅
};

Ce vei vedea ACUM:

# Când serverul încearcă autoconnect:
[14:05] -irc.server.org- *** Notice -- Link with HUB.UnderChat.org[10.0.0.1] established

# Când conexiunea reușește:
[14:05] -irc.server.org- *** Notice -- Net junction: YourServer HUB.UnderChat.org

# Când conexiunea se pierde:
[14:10] -irc.server.org- *** Notice -- Link with HUB.UnderChat.org canceled: Connection lost

# După 5 minute, încearcă din nou:
[14:15] -irc.server.org- *** Notice -- Link with HUB.UnderChat.org[10.0.0.1] established

🔧 MODIFICARE AUTOCONNECT

Dezactivare autoconnect (NU recomandat):

nano /home/ircd/ircd/lib/ircd.conf

# Găsește blocul Connect și schimbă:
Connect {
    name = "HUB.UnderChat.org";
    host = "10.0.0.1";
    password = "parola-link";
    port = 4400;
    class = "Server";
    autoconnect = no;   ← Schimbat de la yes la no
    hub;
};

# Salvează: Ctrl+O, Enter, Ctrl+X
# Restart: pkill ircd && /home/ircd/ircd/bin/ircd -f /home/ircd/ircd/lib/ircd.conf

Schimbare interval reconectare:

nano /home/ircd/ircd/lib/ircd.conf

# Găsește Class "Server" și schimbă:
Class {
    name = "Server";
    pingfreq = 1 minutes 30 seconds;
    connectfreq = 2 minutes;  ← Schimbat de la 5 la 2 minute
    maxlinks = 1;
    sendq = 9000000;
};

# Salvează și restart

🎮 TESTARE AUTOCONNECT

Test 1: Verifică configurația:

grep -A 10 "Connect {" /home/ircd/ircd/lib/ircd.conf | grep autoconnect

Output așteptat:

    autoconnect = yes;  ✅

Test 2: Pornește serverul:

/home/ircd/ircd/bin/ircd -f /home/ircd/ircd/lib/ircd.conf
tail -f /home/ircd/ircd/log/ircd.log

Ar trebui să vezi:

[INFO] Attempting autoconnect to HUB.UnderChat.org
[INFO] Connected to HUB.UnderChat.org

Test 3: Simulează netsplit:

# Pe HUB, ca oper:
/SQUIT LeafServer :Test netsplit

# Așteaptă 5 minute (connectfreq)
# Serverul tău va încerca automat reconectarea!

În log ar trebui:

[INFO] Connection to HUB lost
[INFO] Waiting 5 minutes before reconnect attempt
[INFO] Attempting autoconnect to HUB.UnderChat.org
[INFO] Connected to HUB.UnderChat.org

📋 COMPARAȚIE

Aspect autoconnect = yes; autoconnect = no;
La pornire Conectează automat NU conectează
După netsplit Reconectează automat NU reconectează
Interval Folosește connectfreq N/A
Comandă manuală Nu e necesară Necesită /CONNECT
Recomandare RECOMANDAT Nu pentru production

💡 RECOMANDĂRI

Pentru Servere LEAF (non-HUB):

Păstrează autoconnect = yes; - RECOMANDAT!

  • Serverul se reconectează automat la HUB
  • Reduce downtime-ul rețelei
  • Nu necesită intervenție manuală

Pentru Servere HUB:

⚠️ Depinde de topologie:

  • Dacă HUB-ul se conectează la alt HUB superior → autoconnect = yes;
  • Dacă HUB-ul este root (top-level) → autoconnect = no; sau fără Connect blocks

Interval reconectare:

connectfreq = 5 minutes; - Interval bun pentru production

  • Nu prea des (evită spam)
  • Nu prea rar (reduce downtime)
  • Balanță între performanță și disponibilitate

🎯 CONCLUZIE

DA, ai autoconnect activat!

Configurația ta:

Connect {
    autoconnect = yes;  ← ACTIVAT AUTOMAT!
    connectfreq = 5 minutes;  ← Interval reconectare
};

CE ÎNSEAMNĂ:

  • Serverul se conectează automat la HUB la pornire
  • Se reconectează automat după netsplit
  • Interval reconectare: 5 minute
  • NU trebuie intervenție manuală

RECOMANDARE: Păstrează așa! Este configurația ideală pentru servere production!


📚 REFERINȚE

Documentație:

  • doc/example.conf - Exemplu Connect block
  • install.sh linia 1055 - Generare autoconnect

Features Related:

  • CONNECTFREQUENCY în features
  • MAXIMUM_LINKS în Class Server

Comenzi IRC:

  • /CONNECT server.name port - Conectare manuală
  • /SQUIT server :reason - Deconectare server
  • /STATS c - Vezi Connect blocks (ca oper)

Versiune: v1.7.5
Data: 15 Februarie 2026
Status: AUTOCONNECT ACTIVAT în configurație!
Interval: 5 minute (connectfreq)