388 lines
7.4 KiB
Markdown
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+
|
|
|