312 lines
7.8 KiB
Markdown
312 lines
7.8 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
|
|
|
|
---
|
|
|
|
## 👁️ 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:**
|
|
|
|
```conf
|
|
Operator {
|
|
name = "Username";
|
|
snomask = 157445; ← Include SNO_OLDSNO pentru link messages! ✅
|
|
};
|
|
```
|
|
|
|
### **Ce vei vedea ACUM:**
|
|
|
|
```irc
|
|
# 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):**
|
|
|
|
```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)
|
|
|