Archived copy of http://routing.chatnet.org:80/operfaq.txt as of 2001-08-14 · original content, not edited · ChatNet Old Stuff
ChatNet OperFAQ v1.7-------------------A Helpful Guide for IRCops.

The Opers Golden Rule: If you are unsure of what you are doing, then
DON'T DO IT!! Ask someone for help!


Compiled      2/10/00 Last Revision 04/01/01



Maintained and revised by shr|ke <markus@alias.chatnet.org>
Send corrections, additions, changes, etc to that email address.
(and yes EMAIL them, dont msg me on IRC or I'll forget about it :P)
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

K9
--

NOTE: IrcOps have no special priviledges on K9, so don't try.


~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

ChatWorld
---------

The ChatWorld Golden Rule: DON'T abuse or you may have your O:line =
pulled or maybe your server even juped.

Usage: /msg ChatWorld <command> <syntax>
or in channel with ChatWorld in it: cw <command> <syntax>
	Example: <shr|ke@#nuthouse> cw gline *test@test.org 12h This is a test.

ChatWorld commands:

Level USER (Local Opers 'n Users):
----- ---- -----------------------

CWINFO                                : Basic Information about =
ChatWorld, like it's creators.
COMMANDS                              : Shows all commands the User can =
use at his level.
HELP <command>                        : Shows help for special commands =
(e.g. cw help opers)
OPERS                                 : Gives number of how many current =
Opered clients and their nicks
TOGGLEMSG                             : Toggles ChatWorld to displaying =
to you via Notice or Privmsg
USE                                   : Shows how often the CW Commands =
have been used since last restart.
USERLOAD                              : Shows how many users are on each =
server
USERS                                 : Shows how many users are on the =
network and the max on record by ChatWorld
VERSION                               : Chatworld Version information
VERIFY <nick>                         : Checks the level of the nickname =
specified to see if it's an Oper or regular User.


Level CSERVICE:
----- ---------

CHANINFO <channel>                    : Shows channel modes, clients =
(number of ops and voiced clients), topic, and current bans.
MAP <n/c/p/m/l>                       : Same as your /map with a few =
additions.
                                        n =3D Server NumChar
                                        c =3D Client Count
                                        p =3D Percent of total clients
                                        m =3D Maximum allowed clients
                                        l =3D 'Lag', shows the last ping =
time
OPMSG <message>                       : Sends a message to all the =
Opered up clients, basically a replacement for /operwall if you know =
what that is.
SAY <channel> <message>               : Well, kinda self explanatory ;) =
Makes CW say whatever you put in the specified channel.


Level OPER (locals):
----- ---- ---------

GLIST <*user@host>                    : Displays Gline(s) matching =
search string
INFO <nick>                           : Gives the same info as SPEW but =
only for a single, specified nick.
EXCEPTLIST or ELIST                   : Shows what hosts are exempt from =
the Clone warnings
LOGON                                 : Invites you to #administration


Level OPER:
----- -----

BROADCAST                             : This command displays a message =
to EVERY user on ChatNet. *DON'T* do this unless 100% necessary.
CHANINFO <channel>                    : Shows channel modes, clients =
(number of ops and voiced clients), topic, and current bans.
CHANOP <channel>                      : This command will op you in any =
channel. Don't use this in a channel with K9 present unless lagged or =
broken.
CLEARMODE <channel>                   : ALL modes are removed from =
specified Channel! USE WITH CARE!=20
EXCEPTLIST or ELIST                   : Shows what hosts are exempt from =
the Clone warnings
FORCEPING <server mask>               : Resets CW internal Ping Timer =
(normally 120 secs.) to send out a ping to all or specified server(s)
GCHAN <channel> <timecode>            : G-Lines every user in the given =
<channel> for the specified amount of time. NOTE: timecode can be in =
s/m/h/d (second/minute/hour/day). Max. Gline time is 14d.
GLINE <user@host> <timecode> <reason> : Bans the user@host from the =
network for the specified amount of time for the reason shown. NOTE: =
timecode can be in s/m/h/d (second/minute/hour/day). Max. Gline time is =
14d.
GLIST <*user@host>                    : Displays Gline(s) matching =
search string
GPURGE <mask>                         : Removes all glines with the =
given mask, where normally you'd have to remove every single one via =
RGLINE.
INFO <nick>                           : Gives the same info as SPEW but =
only for a single, specified nick.
INVITE <channel>                      : This command will invite you to =
any channel. Can only be used to invite YOURSELF somewhere, not someone =
else.
JUMP                                  : Jumps CW to another Hub. Check =
C/N Lines before, and only use if really really necessary.
JUPE <server> <reason>                : DON'T use this command unless =
admin approved and there is VERY good reason behind it. This will unlink =
the server and won't allow it to relink until the jupe is removed by =
routing committee.
KICK <nick> <channel> <reason>        : same as your /kick command, just =
ChatWorld does it for you.
KILL <nick> <reason>                  : same as your /kill command, just =
ChatWorld does it for you.
KILLCHAN <channel>                    : Kills every user in the channel. =
I don't suggest using this ever.. unless there's a VERY good reason. =
NOTE: Does not kill Services
LASTCMDS                              : Shows you a list of who did what =
command with CW, whether in msg or in open channel.
LOCK <channel> (*)                    : Makes CW join specified Channel, =
and 'locks' the channel, setting the channel +sntib *
LOCKED                                : Shows you a list of all locked =
channels which were locked via the LOCK Command.
LOGON                                 : Invites you to #administration
MASSKILL <*user@host> <reason>        : Mass kills everything matching =
the user@host you specified and glines for 5 minutes. Try to verify with =
SPEW first please.
MAP <n/c/p/m/l>                       : Same as your /map with a few =
additions.
                                        n =3D Server NumChar
                                        c =3D Client Count
                                        p =3D Percent of total clients
                                        m =3D Maximum allowed clients
                                        l =3D 'Lag', shows the last ping =
time
MBROADCAST <mask> <message>           : Sends a message to all connected =
clients, matching the given mask via NOTICE.
MODE <channel> <-/+ parameters>       : Sets any mode for any channel.
OPMSG <message>                       : Sends a message to all the =
Opered up clients, basically a replacement for /operwall if you know =
what that is.
PINGS <server mask>                   : Shows the latest ping times to =
all or specified server(s)
RGLINE <*user@host> <reason>          : Removes GLine matching the =
*user@host. DON'T do this unless YOU set the GLine or you have =
permission from the person who did.
SAY <channel> <message>               : Well, kinda self explanatory ;) =
Makes CW say whatever you put in the specified channel.
SLIST                                 : Shows current suspensions on CW
SPEW <(*user@*host) or (*user@host)>  : Shows all clients connected with =
the matching string. Use this before a MASSKILL to make sure it's legit.
SCAN <*user@host>                     : Just like SPEW, but shows you a =
number of how many Users from the given user@host are online instead of =
info about every single user.
STATS                                 : Shows how much data CW =
received/sent and some other weird junk :P
SUSPEND <nick/host>                   : Used to suspend an abusive Oper =
from his/her CW Access (if necessary). NOTE: Use of this command is =
logged, so dont go around suspending everyone except you and think =
you're god now :P
UNLOCK <channel>                      : Unlocks a previously locked =
channel (see LOCK Command)
UNSUSPEND <nick/host>                 : Take a wild guess..


NOTE: Mostly every of the above mentioned commands will send out a =
wallop which ever user who is mode +w can see, so be careful what you =
do, or you might end up getting some weird msg's ;)


~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Other IRCop commands - Local and Global Opers
----- ----- -------- - ----- --- ------ -----

NOTE: Some commands may be limited to Global opers only, ask your server =
admin if your a local oper if any/all of these apply for you.
NOTE: DON'T abuse or you may have your O:line pulled or maybe your =
server even juped.

Usage: /<command> <syntax>
	Example: /kill Zeus Stop Abusing your Opers ;/=20

IRCOp Basic Commands:

OPER <nick> <password>               : Oper yourself up (if ya don't =
know this then please ask your admin to remove your o:line immediately)
KILL <nick> <reason>                 : Forces a user to disconnect from =
the network.
REHASH                               : Forces the server to reread the =
ircd configuration file
RESTART                              : Restarts the server
WALLOPS <message>                    : Displays a message to anyone with =
the +w flag. NOTE: Normal users can give themselves the +w flag so be =
careful what you say.

There are more commands displayed throughout the rest of the FAQ in the =
appropriate section.

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

Routing - For Global Opers Only
------- - --- ------ ----- ----

Learn this inside and out since a bad command can break the net apart.

Pre-Routing
-----------

To see the way the servers are currently connected use either the /links =
or=20
/map command.  The /map command provides a more visual representation of
the was everything is connected.

The comparison :

A /map :

Indianapolis.IN.US.ChatNet.Org
`-Detroit.MI.US.ChatNet.Org
  `-Cupertino.CA.US.ChatNet.Org
    |-Sudbury.ON.CA.Chatnet.org
    |-PrinceGeorge.BC.CA.ChatNet.Org
    |-Portland.OR.US.ChatNet.Org
    | `-k9.chatnet.org
    |-SanJose.CA.US.ChatNet.Org
    `-Frogn.NO.EU.ChatNet.Org
      |-Paris.FR.EU.ChatNet.Org
      |-Coimbra.PT.EU.ChatNet.Org
      |-Istanbul.TR.EU.ChatNet.Org
      `-ChatWorld.ChatNet.Org

A /links :

Indianapolis.IN.US.ChatNet.Org (0) P10 > Ride The Lightning
 Detroit.MI.US.ChatNet.Org (1) P10 The Abyss
  Cupertino.CA.US.ChatNet.Org (2) P10 [216.227.125.10] ChatNet In =
Silicon Valley
   Frogn.NO.EU.ChatNet.Org (3) P10 ChatNet Norway, Frogn
    ChatWorld.ChatNet.Org (4) P10 [127.0.0.1] And you are reading this?
    Istanbul.TR.EU.ChatNet.Org (4) P10 [212.174.107.11] =
irc.verisoft.net.tr  / IstanbuL
    Coimbra.PT.EU.ChatNet.Org (4) P10 [193.137.213.90] ChatNet's IBERIC =
Server (PORTUGAL
    Paris.FR.EU.ChatNet.Org (4) P10 [213.39.28.54] [ChatNet France] =
www.Planet-Work.fr
   SanJose.CA.US.ChatNet.Org (3) P10 InetKing ChatNet Server
   Portland.OR.US.ChatNet.Org (3) P10 Nu Tech ChatNet Server
    k9.chatnet.org (4) P9 [205.238.31.9] k9 ircd v4.6 (PPro) By Nu Tech =
Soft
   PrinceGeorge.BC.CA.ChatNet.Org (3) P10 206.108.32.100 - Ph34r Canada, =
Eh?!=20
   Sudbury.ON.CA.Chatnet.org (3) P10 Unitz Online ChatNet Server


How to read a /map
--- -- ---- - ----

There are two types of servers: leafs and HUBS.  HUBS allow other =
servers, both=20
HUBS and leafs to connect to them thus forming the network.  Some HUBS =
allow=20
client connections and others don't.  Leafs allow client connections for =
people to come
and chat.

On the /map, the first server listed is the one you are on with your =
client.
Servers with branches coming off of them are the HUBS while servers =
without are
the leafs.  For example :

Indianapolis.IN.US.ChatNet.Org                 <-- LEAF
`-Detroit.MI.US.ChatNet.Org                    <-- HUB + LEAF
  `-Cupertino.CA.US.ChatNet.Org               =20
    |-Sudbury.ON.CA.Chatnet.org
    |-PrinceGeorge.BC.CA.ChatNet.Org
    |-Portland.OR.US.ChatNet.Org
    | `-k9.chatnet.org                         <-- K9 is a LEAF
    |-SanJose.CA.US.ChatNet.Org
    `-Frogn.NO.EU.ChatNet.Org                  <-- HUB
      |-Paris.FR.EU.ChatNet.Org
      |-Coimbra.PT.EU.ChatNet.Org
      |-Istanbul.TR.EU.ChatNet.Org
      `-ChatWorld.ChatNet.Org                  <-- CW is a LEAF too

If you follow the branches of the map down you can see what servers are=20
connected to what HUBs.  For example, in the picture above,
Cupertino.CA.US.ChatNet.Org is currently connected to: =
Detroit.MI.US.ChatNet.Org, Sudbury.ON.CA.ChatNet.Org, =
PrinceGeorge.BC.CA.ChatNet.Org and so on..
Frogn.NO.EU.ChatNet.Org is currently connected to: =
Coimbra.PT.EU.ChatNet.Org, Istanbul.TR.EU.ChatNet.Org and so on...

That is a basic explaination of how to read a /map.

Before doing any moving of servers be sure to do a /uping command.  =
Upings=20
show lag and packet loss (if any) to the specified HUB.  If you are =
checking=20
your server's uping times use the command:
		/uping HUB's_server_name

For example if you're on Indianapolis.IN.US.ChatNet.Org and want to =
check your upings=20
to Detroit.MI.US.ChatNet.Org, you would type :
 		/uping Detroit.MI.US.ChatNet.Org 7007 20
And receive a response similar to :
-Detroit.MI.US.ChatNet.Org- Sending 20 pings to =
Rockhill.SC.US.ChatNet.Org[165.166.177.25] port 7007
-Detroit.MI.US.ChatNet.Org- 64 63 63 63 63 66 64 64 62 64 62 64 63 68 63 =
62 63 66 65 73
-Detroit.MI.US.ChatNet.Org- UPING Stats: sent 20 recvd 20 ; min/avg/max =
=3D 62/64/73 ms
62 ms =3D the minimum ping time
64 ms =3D the average ping time
73 ms =3D the maximum ping time

The lower all these are the better but the average and maximum times =
count the most.
Be sure to use the /uping <server> 7007 20 command for the most exact =
results.
The standard ping count (if you do /uping <server>) is 5 pings.

NOTICE: There might be 1 or more packets lost during the sent due to =
firewalling, so as long as you get back most of the packets, its ok.

-To uping servers you are not on use :
		/uping leaf_server HUB_server
Example:
		/uping Paris.FR.EU.ChatNet.Org Frogn.NO.EU.ChatNet.Org

Upings can be wildcarded for ease.  The previous example could have been
done :
		/uping *ris.FR* Frogn*

Upings can also be done in numbers greater than five.   To do this use : =

                /uping leaf_server HUB_server <# of upings (20 max)>

Example:                    =20
                /uping Paris* Frogn* 20

If you're upinging servers from the server you're on, you'll also need =
to include the port such as :
                /uping HUB_server <port> <# of upings (20 max)>
All upings use port 7007.  Example :
                /uping Detroit* 7007 20



Actual Moving of Servers
------ ------ -- -------

Rule #1 - NEVER squit services.  Your O:line could be pulled, or your =
server juped.
Rule #2 - If you don't understand routing don't touch anything.
Rule #3 - Re-read rules one and two.
(Added note : Please don't depend on your scripts for routing.  Everyone
should know the commands by hand if you're going to do any routing.=20
Scripts can do unexpected things sometimes...)


-- Moving your own server --

First use a /wallops message to announce your intention so all Opers
are aware :
		/wallops I'm going to move <server> to <hub> due to lag.
Then you need to disconnect from your current HUB :
		/squit currentHUB <REASON>	-Be sure to include a reason.
Then reconnect at the new HUB :
		/connect newHUB <port>

On ChatNet our server port for connections is 4400.
Example :
Someone on Indianapolis wants to reroute.  It's current HUB (see map =
above)
is Detroit.MI.US.ChatNet.Org.  The Indi* oper finds =
Cupertino.CA.US.ChatNet.Org to be the
best uplink so the oper does :
		/wallops Moving Indi* to Cupertino* due to lag.
		/squit Detroit* Lagged to HUB
		/connect Cuper* 4400

-- Moving another server you're not on (Remote routing) --

Usually let active opers on that server move it themselves.  The steps =
are
generally the same :

First do a /wallops message to announce what you're going to do :
		/wallops Moving Indi to Cuper
Then disconnect the leaf from the hub :
		/squit <leaf> <leafs_Current_HUB> <REASON>
Then reconnect it at the new HUB :
		/connect <leaf> <port> <newHUB>



~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~


Stats Info - Local and Global Opers
----- ---- - ----- --- ------ -----

Doing a /stats <letter> can show information about your server.  Doing a =

/stats <letter> <server> can show information about another server.
	Example : /stats c Indi*

What stats you can do :

C : Shows what the server can connect to.
H : Shows what servers are allowed to be HUBs for the server.
I : Shows what clients can connect to the server.
K : Shows what user@hosts are banned from connection to the server.
P : Shows available connection ports on the server.
M : Shows Memory allocation monitoring (if enabled).
L : Shows connection usage information.
O : Shows Operator lines for IRCops.
U : Shows U:lines which give services it's "power".
W : Shows the userload for your server.
Y : Shows connection class information.
Z : Nothing you need to worry about :-)
d : Nothing you need to worry about :-)
m : Nothing you need to worry about :-)
t : Shows general server information.
u : Shows uptime for the server.
v : Shows the v:lines that you have defined.

NOTE: Due to the new ircd, only opers can request /stats unless =
otherwise defined in the Server Configuration.

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

User Modes - Local and Global Opers
---- ----- - ----- --- ------ -----

Set by doing /mode <yournick> +mode
Removed by doing /mode <yournick> -mode
Example : /mode `Markus -w

i : Invisible (makes yourself invisible to anybody that does not know =
the exact spelling of your nick)
w : Wallops (receive wallops)
o : IRC-operator status (can only be set by IRC-ops with the OPER =
command)
s : Receive server notices
g : Global IRC-op (Global Opers only, obviously) (not quite sure, asked =
a few people and got diff. Responses. I'll try to investigate more here =
;)
c : Shows clients connecting and disconnecting to your server
n : Shows someone doing a /whois on you
x : Replaces the first section of your hostname (before the first .) =
with a random number
    NOTE: Opers still see the real hostname.
d : sets you 'deaf' meaning you cant receive ANY messages in a channel =
anymore, the only things you will see are /msg's or /notices

=20
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~


Oper Conduct - Local and Global Opers
---- ------- - ----- --- ------ -----

-Wallops
	Wallops is used for making network announcements such as routing =
changes
	and changing network conditions. Remember, Users set +w can read =
wallops and
	we should be careful.

-Assistance
	IRCops are to help users whenever possible.  If you don't know the =
answer
	to a question, say so.  Users get more frustrated with silence.  If at =
all
	possible refer them to another person for help.  If everyone is busy =
helping
	others or doing other things please help when you can.  Everyone =
appreciates
	the extra help given.

-Problem Users
	Users breaking policy should be warned of the violation.  If they =
continue
	to be a problem a /kill should be used.  If they persist a gline should =
be
	the next step.  G:lines should be as specific as possible.  Never
 	G:line an entire domain unless it is critical.

-NetSplits
	If servers split due to various reasons they should reconnect on their =
own
	but you can manually reconnect them.  Read the routing section for =
details
	on how to perform routing and be 100% sure you know what you're doing.

-Language
	Never use profanity unless completely necessary in wallops, kill =
messages,
 	or G:line messages.  Swearing at the users also reflects poorly upon =
all of
 	us so be curteous.

-Clients
	Try to know the most you can about your particular client and if =
possible
	learn the basic commands of other clients so that you can assist users =
no
	matter what client they are using.

-Services
	Services are restricted to Oper/Admin usage only. Learn the functions =
of them.

-Other IRCops
	Not everyone will get along; it's a fact of life.  This doesn't need to
	be expressed in public though.  Killing or G:lining other IRCops or =
making
	degrading comments in wallops is considered bad behavior.  If you have =
a
 	problem with someone use the /msg command or the /ignore command.  Not
	the /kill command.

-Clones=09
	Current ChatNet policy allows 20 connections per user@host.  Anything =
over
	20 is breaking policy and should be warned, then killed if the number
	is not brought to 20 or less.  In cases such as mass clones (example:
	anything over 20) a G:line is most likely in order.  21 connections =
could
        be an accident with one or more clients being ghosted so warn =
first.
        There are some IP's that are exempt from the cloning, so check =
that!
        (NOTE: CW warns when connections from one user@host hit 21, =
however, if
               you see a User with 5 - 10 - 15 clones, all with weird =
names,
               and he's obviously someone who wants to ctcp flood others =
or
               do any bad stuff with his bots, feel free to =
warn/kill/Gline
               them before they do any harm, even if they're below the =
clone
               limit.)

-G:Lining
        When g:lining a user, watch out if he's on a static IP or a =
dialup connection.
        If he is on a static IP, gline *@host.com, if he's on a dialup, =
please g:line
        *ident@*.host.com, or for a numeric IP *ident@255.255.255.*
        Otherwise the user just has to disconnect and reconnect to his =
ISP, and will
        be given a new IP Adress, which makes it very easy for them to =
evade the g:line.
        Also, don't gline Dialup connections for longer than 1 day, =
because a 14d g:line
        on a dialup connection is pretty pointless.

-Other Oper Items
	-Always ask if unsure about something.
	-Only use /kill and G:lines when necessary and be sure it's valid.
	-Use reasons in routing, kills, G:lines, etc.  Foul language should not =
be
 	 used.  The reason should make it clear to all what happened.
	-Try to know all the HUBs for each leaf, either by memory or make notes =
if
	 needed.  Doing a /stats C on each server gives the necessary =
information.
	-Have fun on ChatNet.  Opers are users too.