# 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+