ircu2/CRULE_QUICK_START.md

388 lines
7.4 KiB
Markdown

# Ghid Rapid: Configurare CRULE pentru Rețea EU + US
## 🎯 Scenariul Tău
**Ai:**
- Servere în **Europa** (EU)
- Servere în **SUA** (US)
**Vrei:**
- Optimizare topologie rețea
- Prevenire link-uri redundante
- Reducere costuri trafic
---
## 🚀 QUICK START
### **Pasul 1: Upgrade la v1.4.0**
```bash
cd ~/ircu2
git pull origin main
git fetch --tags
git checkout v1.4.0
```
### **Pasul 2: Rulează instalarea**
```bash
./install.sh
```
### **Pasul 3: La configurare**
Când ajungi la această secțiune:
```
═══════════════════════════════════════
CONFIGURARE CRULE (Reguli Conexiune)
═══════════════════════════════════════
CRULE permite optimizarea topologiei rețelei IRC.
Previne link-uri redundante între servere.
Exemplu: Dacă ai servere în EU și US, CRULE poate
limita la 1 singur link EU-US în loc de multiple.
Configurare CRULE pentru optimizare rețea? (y/n) [n]:
```
**Răspunde:** `y`
### **Pasul 4: Alege opțiunea**
```
Selectați tipul de optimizare:
1) Previne link-uri redundante către o regiune (recomandat)
2) Necesită operator online pentru link-uri
3) Ambele (1+2)
4) Custom (configurare manuală ulterior)
Opțiune [1]:
```
**Pentru rețea EU + US, alege:** `1`
### **Pasul 5: Configurează pattern-ul**
```
Regiune/pattern de blocat (ex: *.eu.*, *.us.*, *.asia.*) [*.eu.*]:
```
---
## 📋 CONFIGURĂRI RECOMANDATE
### **Opțiunea A: Pe servere US - Blochează EU redundante**
```
Opțiune: 1
Pattern: *.eu.*
```
**Rezultat în ircd.conf:**
```conf
# Previne link-uri redundante către *.eu.*
CRule {
server = "*.eu.*";
all = no;
rule = "connected(*.eu.*)";
};
```
**Efect:**
- ✅ Prima conexiune US→EU: **PERMISĂ**
- ❌ A doua conexiune US→EU: **BLOCATĂ** (autoconnect)
- ✅ Operatorii pot forța cu `/CONNECT` dacă e nevoie
---
### **Opțiunea B: Pe servere EU - Blochează US redundante**
```
Opțiune: 1
Pattern: *.us.*
```
**Rezultat în ircd.conf:**
```conf
# Previne link-uri redundante către *.us.*
CRule {
server = "*.us.*";
all = no;
rule = "connected(*.us.*)";
};
```
**Efect:**
- ✅ Prima conexiune EU→US: **PERMISĂ**
- ❌ A doua conexiune EU→US: **BLOCATĂ** (autoconnect)
---
### **Opțiunea C: Configurare avansată (pentru experți)**
Dacă vrei control mai precis, alege opțiunea `3` (Ambele):
```
Opțiune: 3
Regiune de blocat: *.eu.underchat.org
Pattern servere care necesită oper: *.test.underchat.org
```
**Rezultat:**
```conf
# Previne link-uri redundante către *.eu.underchat.org
CRule {
server = "*.eu.underchat.org";
all = no;
rule = "connected(*.eu.underchat.org)";
};
# Necesită operator online pentru *.test.underchat.org
CRule {
server = "*.test.underchat.org";
all = no;
rule = "!directop()";
};
```
---
## 🎯 EXEMPLE PRACTICE
### **Exemplu 1: Rețea simplă (2 EU + 2 US)**
**Topologie:**
- US: `boston.us.underchat.org`, `newyork.us.underchat.org`
- EU: `madrid.es.underchat.org`, `paris.fr.underchat.org`
**Configurare:**
**Pe TOATE serverele US:**
```conf
CRule {
server = "*.eu.underchat.org";
all = no;
rule = "connected(*.eu.underchat.org)";
};
```
**Pe TOATE serverele EU:**
```conf
CRule {
server = "*.us.underchat.org";
all = no;
rule = "connected(*.us.underchat.org)";
};
```
**Rezultat:**
- Link-uri permise: 1 US-EU (ex: boston-madrid)
- Link-uri blocate: toate celelalte US-EU autoconnect
- **Economie:** De la 4 link-uri la 1 link!
---
### **Exemplu 2: Rețea complexă (3 regiuni)**
**Topologie:**
- US: 2 servere
- EU: 2 servere
- Asia: 1 server
**Configurare pe fiecare server:**
```conf
# Previne redundanță către US
CRule {
server = "*.us.underchat.org";
all = no;
rule = "connected(*.us.underchat.org)";
};
# Previne redundanță către EU
CRule {
server = "*.eu.underchat.org";
all = no;
rule = "connected(*.eu.underchat.org)";
};
# Previne redundanță către Asia
CRule {
server = "*.asia.underchat.org";
all = no;
rule = "connected(*.asia.underchat.org)";
};
```
**Rezultat:**
- Maxim 1 link între orice 2 regiuni
- Topologie optimizată: US-EU, EU-Asia, US-Asia
- **Economie:** De la 10+ link-uri la 3 link-uri!
---
## 🔧 VERIFICARE DUPĂ CONFIGURARE
### **1. Verifică config-ul:**
```bash
grep -A 5 "CRule {" /home/ircd/ircd/lib/ircd.conf
```
**Output așteptat:**
```conf
# Previne link-uri redundante către *.eu.*
CRule {
server = "*.eu.*";
all = no;
rule = "connected(*.eu.*)";
};
```
### **2. Pornește serverul:**
```bash
/home/ircd/ircd/bin/ircd -f /home/ircd/ircd/lib/ircd.conf
```
### **3. Verifică din IRC:**
```irc
# Ca operator, conectează-te:
/OPER username password
# Vezi regulile CRULE:
/STATS d
# Output:
:server 242 nick d *.eu.*::connected(*.eu.*)
```
### **4. Testează funcționarea:**
```bash
# Prima conexiune către EU:
/CONNECT madrid.es.underchat.org 4400
# Încearcă a doua conexiune către alt server EU:
/CONNECT paris.fr.underchat.org 4400
# Ar trebui să vezi:
:server NOTICE nick :Connection to paris.fr.underchat.org denied by connection rule
```
---
## 💡 TIPS & TRICKS
### **Tip 1: Override manual când e nevoie**
Dacă ai setat `all = no` (implicit), operatorii pot forța:
```irc
# Forțează conexiunea (override CRULE):
/QUOTE CONNECT madrid.es.underchat.org 4400
```
### **Tip 2: Pattern-uri flexibile**
```conf
# Blochează toate serverele .eu.underchat.org:
server = "*.eu.underchat.org";
# Blochează doar Spania:
server = "*.es.eu.underchat.org";
# Blochează toate EXCEPT unul:
server = "*.eu.underchat.org";
rule = "connected(*.eu.underchat.org) && !connected(madrid.*)";
```
### **Tip 3: Combinație cu preferințe**
```conf
# Preferă Manhattan pentru EU, altfel blochează:
CRule {
server = "*.eu.*";
all = no;
rule = "connected(*.eu.*) && !via(manhattan.*, *.eu.*)";
};
```
---
## 🚨 TROUBLESHOOTING
### **Problemă: CRULE nu apare în config**
**Cauză:** Ai răspuns `n` la întrebarea despre CRULE sau ai folosit versiune veche.
**Soluție:**
```bash
git checkout v1.4.0
./install.sh
# Răspunde 'y' la CRULE
```
### **Problemă: Toate conexiunile sunt blocate**
**Cauză:** Regula e prea strictă sau `all = yes`.
**Soluție:**
```bash
nano /home/ircd/ircd/lib/ircd.conf
# Editează CRule: schimbă 'all = yes' în 'all = no'
# SAU comentează regula cu #
```
### **Problemă: Vreau să editez manual CRULE**
**Soluție:**
```bash
nano /home/ircd/ircd/lib/ircd.conf
# Caută secțiunea CRULE și modifică:
CRule {
server = "*.eu.*";
all = no;
rule = "connected(*.eu.*)";
};
# Restart IRCd:
killall ircd
/home/ircd/ircd/bin/ircd -f /home/ircd/ircd/lib/ircd.conf
```
---
## 📚 DOCUMENTAȚIE COMPLETĂ
Pentru detalii avansate, vezi:
- **CRULE_EXPLAINED.md** - Explicație completă CRULE
- **doc/readme.crules** - Documentație originală
- **ircd/test/*.conf** - Exemple de configurări
---
## 🎯 CONCLUZIE
Cu **CRULE configurat corect**, rețeaua ta EU + US va avea:
**Topologie optimizată** - Nu mai ai link-uri redundante
**Costuri reduse** - Mai puțin trafic internațional
**Control granular** - Poți override când e nevoie
**Routing eficient** - Mesajele circulă optim
**Timpul de configurare:** ~2 minute
**Economie:** De la 4+ link-uri la 1-2 link-uri optimizate!
---
**Versiune:** 1.0
**Data:** 14 Februarie 2026
**Pentru:** UnderChat IRCd v1.4.0+