ircu2/AUTOCONNECT_EXPLAINED.md

258 lines
6.2 KiB
Markdown

# 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:
```bash
print " autoconnect = yes;"
```
**Rezultat în `ircd.conf`:**
```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):
```conf
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":**
```conf
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
---
## 🔧 MODIFICARE AUTOCONNECT
### **Dezactivare autoconnect (NU recomandat):**
```bash
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:**
```bash
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:**
```bash
grep -A 10 "Connect {" /home/ircd/ircd/lib/ircd.conf | grep autoconnect
```
**Output așteptat:**
```
autoconnect = yes; ✅
```
### **Test 2: Pornește serverul:**
```bash
/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:**
```bash
# 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:**
```conf
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)