DreamSpaceWorld IRC Network IRC Operator Manual ------------------------------------------------ Version 1.0.0 Written by: PJKevin (pjkevin@dreamspaceworld.net) 1a Introduction: ---------------- Welcome to the Administration of DreamSpaceWorld IRC Network. You are one of the chosen few people to help run the network and we look forward to working with you in developing the network. The Staff on DSW have an open door policy where comments and feedback are most welcome. Please feel free to give your ideas or contribute anything that could bring our network to the highest level. 1b History: ----------- DreamSpaceWorld was foundered on 7 September 2005 when a group of friends from different networks decided to open a base to serve users with a friendly environment and open door policy where we evaluate every suggestion given to us. PJKevin, drosdow, oldage and aLTi formed the network with the help of FreezeQueen, DreamHealer, pharrell, zekey and Scots from its first server dreams.* to the network's website. The network went through a lot of ups and downs during the initial stages and even times when accidents did happen but we continued day and night. Today,we have staff (opers and non-opers) from all around the world; America, Australia, Malaysia covering different timezones and delegated with different tasks. 2.1 What is an IRC Operator? ---------------------------- An IRC Operator is a normal IRC user given special privileges to maintain the network technically (servers, routing, services) and non-technically (website, help channels). They are not police or IRC Cops or go round catching bad guys though they can remove abusive users. 2.2 What are the duties of an IRC Operator? -------------------------------------------- IRC Operators have 3 major duties: 1) Assist their Server Administrator in maintaining the server they oper on. 2) Assist the network administration the server and network it is linked to in day to day operations. 3) Provide help to users who need. Kill (or any other form of removal of user from the network or server) is not a main duty of an IRC Operator but a part of maintaining the server and network you oper on. If you believe opering is just for kills, then becoming an IRC Operator is not for you. Opering is not about kills but how you can come up with solutions to resolve problems. Remember that kills and such should only be used as the last resort. Other than the above 3 duties, opers have other tasks eg. website, help committee, and several other teams. Opers are free and encouraged to join these teams depending on their interests. 3.0 Bahamut ----------- DreamSpaceWorld uses Bahamut-1.8.3 which was developed by the DALnet IRC Network. On any IRC Network, you can see the available modes when you connect to the server. The following is an example: Welcome to the DreamSpaceWorld IRC Network banding!pjkevin@219.95.45.216 Your host is frozendreams.dreamspaceworld.net, running version bahamut-1.8(03) This server was created Wed Sep 28 2005 at 22:06:09 CDT frozendreams.dreamspaceworld.net bahamut-1.8(03) aAbcdefFghiIjkKmnoOrRswxXy bceiIjklLmMnoOprRstv NETWORK=DreamSpaceWorld SAFELIST MAXBANS=100 MAXCHANNELS=10 CHANNELLEN=32 KICKLEN=307 NICKLEN=30 TOPICLEN=307 MODES=6 CHANTYPES=# CHANLIMIT=#:10 PREFIX=(ov)@+ STATUSMSG=@+ are available on this server CASEMAPPING=ascii WATCH=128 SILENCE=10 ELIST=cmntu EXCEPTS INVEX CHANMODES=beI,k,jl,cimMnOprRst MAXLIST=b:100,e:45,I:45 TARGMAX=DCCALLOW:,JOIN:,KICK:4,KILL:20,NOTICE:20,PART:,PRIVMSG:20, WHOIS:,WHOWAS: are available on this server The first line tells you the server name and the IRCd which it's running. Second line tells you the server's hostname and available modes usermodes followed by channel modes. The following line tells you the server settings eg. Network name, maximum bans, channels, channel, nick, topic, kick character limit and the maximum modes you can set at a time. The remaining lines tell the features available on the server including the number of kicks, kills etc, you can to at a time. 3.1 Channel Modes ----------------- 3.1.1 +b -------- This mode instructs a restriction (ban) to be placed on a mask specified in the format of nickname!username@hostname. For example, if I want to ban the domain jp (Japan) where no one from Japan can join the channel, I will use: /mode #channelname +b *!*@*.jp ? is a wildcard used for a single character * is a wildcard that means any string of character. 3.1.2 +c -------- This mode means no colours allowed on the channel. When set, messages with colours will be blocked from the channel. 3.1.3 +e -------- This modes works as an exception. When a mask is in place in the banlist and someone (friend) is affected by this is unable to join, this mode overrides the ban in place based on the mask set. For example,if *!*@*.my (a ban on Malaysian users) is placed but Xury is not able to join and Xury's mask is Xury!~me@210.23klj.tm.net.my, I can place an exception using the following: /mode #channelname +e *!*me@210.23klj.tm.net.my 3.1.4 +i -------- This mode sets the channel to invite only. Users will not be able to join the channel unless they are invited by a channel operator, services or have a mask that matches their hostmask in the channel's Invite list (see following mode). 3.1.5 +I -------- This mode is used to allow certain users matching a certain mask to join the channel when the channel is set to +i (invite only-see above mode). However it is reminded it will not override if there is an existing ban mask. Example, if Xury can't join #dreamspaceworld because it is +i, and Xury's mask is Xury!~me@210.23klj.tm.net.my, I can place an invite using the following: /mode #dreamspaceworld +I *!~me@210.23klj.tm.net.my 3.1.6 +j -------- This mode prevents join throttling by restricting the number of N users that join in S seconds. If more than N users join in that number of seconds, they will get channel is full and have to try again later. In the example below, it means only 4 users can join in 3 seconds. /mode #channelname +j 4:3 3.1.7 +k -------- This mode sets a password (key) on the channel which users must supply when using the /join command. /mode #channelname +k keyword 3.1.8 +l -------- This mode restricts the number of users who can join the channel. Once the limit has been reached, anyone else that attempts to join the channel will get an error message telling channel is full. Example, if I want to set the limit to 230, I will type: /mode #channelname +l 30 3.1.9 +m -------- This mode restricts the channel allowing only Ops (+o) and Voiced (+v) users to chat in the channel. Nick change is also not allowed. 3.1.10 +M --------- This mode is similar to the +m mode except it prevents non-registered/identified (+r usermode) nicknames from chatting in the channel. However, Ops and Voices can chat in the main of a +M channel even if they are not identified to NickServ. 3.1.11 +n --------- This mode prevents users who are not in the channel from messaging the channel. This mode is recommended to prevent external floods. 3.1.12 +o --------- This mode gives the user channel operator privileges. The user will be marked with a @ sign beside his nick (may not be applicable to other networks). Channel Operators can change channel modes, op, ban, voice other users and change the channel topic (subject to ChanServ settings if the channel is registered with services). 3.1.13 +O --------- This mode means only an IRC Operator (excluding local operators) can join the channel in question. This mode can only be set by a Global IRC Operator and above. 3.1.14 +p --------- This sets the channel as private. If a user joins a channel set with +p and someone who is not in the channel performs /WHOIS, the channel will not show on the WHOIS output. However, Server Administrators (usermode +A) will be able to view the channel in the output which will be marked with a %. 3.1.15 +r --------- This mode can only be set by services marking that the channel is registered. 3.1.16 +R --------- This mode restricts the channel only allowing those who are registered and identified to NickServ to join. If a user who has not identified to services attempts to join the channel, he/she will receive an error message prompting him/her to register his/her nick. 3.1.17 +s --------- This sets the channel as private. If a user joins a channel set with +s and someone who is not in the channel performs /WHOIS, the channel will not show on the WHOIS output. +s channels also will not be displayed on /LIST. However, Server Administrators (usermode +A) will be able to view the channel in the output which will be marked with a %. 3.1.18 +t --------- This mode only allows channel operators to set/change the topic. However, this may be overriden by ChanServ's TOPICLOCK option if the channel is registered. 3.1.19 +v --------- This mode gives a user voice access and the user is marked with a + sign beside his/her nick. Usually channel operators voice users on a moderated (+m) channel or operators in training or just because they are friends of the operator. 3.2 User modes -------------- 3.2.1 +i -------- This mode sets the user in invisible mode. It doesn't mean the user is literally invisible but cannot be found easily using /who or /names command unless both are in the same channel. 3.2.2 +k -------- This mode sends kill messages which can turn into quite a flood and is seldom used on a large IRC Network. 3.2.3 +r -------- This mode can only be set by services indicating the user is identified to a registered nick with NickServ. When identified, the user will have an extra line on his WHOIS: Tomyhoi is ~Tomyhoi@ppp-210.86.142.18.revip.asianet.co.th * Tomyhoi Tomyhoi on @#Science @#pjkevin Tomyhoi using dreams.dreamspaceworld.net May your dreams come true Tomyhoi has identified for this nick <--- Tomyhoi End of /WHOIS list. 3.2.4 +R -------- This mode will prevent users who are not identified to NickServ from messaging the user that sets this mode. This mode is useful to avoid getting spammed. 3.2.5 +s -------- This mode allows generic server notices to be sent to the user. This mode is not used on large IRC Networks. 3.2.6 +w -------- This mode is for wallops. Users who use this mode will be able to see oper chats that uses /wallops command. However, wallops is seldom used since globops was introduced. 3.3 IRC Operator Modes ---------------------- 3.3.1 +o -------- This mode indicates that the oper is a global IRC Operator. Their IRC Operator status in the /WHOIS output will be shown to users regardless of what server they are on. This mode cannot be set using /mode but by using /oper nickname operpassword and with the correct access on the server. The oper is abled to use specific OperServ commands, perform remote routing and global wide kills. 3.3.2 +O -------- This mode indicates that the user is a local IRC Operator. Their IRC Operator status is only shown on the server they opered on. To view their status if you are not on the same server, use /whois opernick opernick. The oper is not allowed to use OperServ and may only perform local routing and kills. 3.3.3 +a -------- This mode marks the user as a Services Administrator. The user is able to use /sajoin and /samode commands. However for full services access, the user must be added to Services Admin database in OperServ. Users set at this mode will have an extra output in their /WHOIS. Example: pharrell is pharrell@staff.dreamspaceworld.net * lord watch over me... pharrell on @#opertraining @#opers @#pjkevin pharrell using dreams.dreamspaceworld.net May your dreams come true pharrell has identified for this nick pharrell is an IRC Operator - Services Administrator pharrell End of /WHOIS list. 3.3.4 +A -------- This mode marks the user as a Server Administrator. The user is usually the one who selects his/ her operators and usually is used with the mode +a (Services Administrator). Users set at this mode will have an extra output in their /WHOIS. Example: PJKevin is pjkevin@i.rule.dreamspaceworld.net * Silence is Golden PJKevin on @#opertraining @#dreamspaceworld @#services @#pjkevin @#opers PJKevin using frozendreams.dreamspaceworld.net Ice skating server PJKevin has identified for this nick PJKevin is an IRC Operator - Server Administrator PJKevin has been idle 9mins 57secs, signed on Mon Nov 21 00:30:55 PJKevin End of /WHOIS list. 3.3.5 +b -------- This mode enables the user to send and receive /chatops notices. 3.3.6 +c -------- This mode will show users who are connecting and disconnecting from the server. It can turn into a flood and is not used on a large network. 3.3.7 +d -------- Users who are set at this mode will be able to receive debug messages. 3.3.8 +e -------- This mode is related to /DCCALLOW and will tell the user of stopped transfers at the server level. 3.3.9 +f -------- This mode alerts an IRC Operator everytime someone on their server gets flooded or gets disconnected for excess flood. Channels that are protected by the built-in flood protection will also be pointed out whenever the flood protection triggers. 3.3.10 +F --------- User can bypass recvq throttling. 3.3.11 +g --------- This mode allows globops to be sent to the oper who sets this mode. Normal users who set this mode will not receive any of the globops. 3.3.12 +h --------- This mode shows that the oper is in helpful mode. When a user performs /stats p, it the oper's nick will appear with the idle time. Example: FreezeQueen (FreezeQuee@staff.dreamspaceworld.net) Idle: 212 T-W-O (T-W-O@staff.dreamspaceworld.net) Idle: 42039 2 OPERs End of /STATS report. 3.3.13 +I --------- This mode will hide the IRC Operator's server information from public view in the /WHOIS. 3.3.14 +j --------- This mode alerts the user of rejected drone connections. 3.3.15 +K --------- Notifies the user of U:lined server kills (example services). 3.3.16 +m --------- This mode reports possible spambots and failed targets. 3.3.17 +n --------- This mode will send the user routing notices (squits/connects). 3.3.18 +X/+x ------------ Squelch and Silent Squelch. Stops a user transmitting, for example it stops their PRIVMSG. Only settable by U:lined servers. 3.3.19 +y --------- This is also known as a SPY mode. It sends a notice whenever someone does ADMIN/MOTD/LINKS/STATS on your server. 4 IRC Operator Commands ----------------------- The following are all the IRC Operator commands available in Bahamut-1.8.3. Please read this guide carefully. Also note that opering is a privilege and not a right. Abuse of access will not be tolerated and abusers will be dismissed without warning. 4.1 Opermasking/Oper/Deoper --------------------------- When the server admin chooses you to become an IRC Operator, you will be added to the server's ircd.conf file with the details including your opername, password, hosts you can oper from and access flags. If you type /stats o, you will see the following information: O * * zeke 4294377471 opers O * * PJKevin 4294377471 opers O * * FreezeQueen 4294377471 opers O * * pharrell 4294967295 opers O * * aLTi 4294967295 opers End of /STATS report. The above may or may not be the same depending whether it is a local oper (o) or a global (O), and the access flags the oper has. If you're opered up, you will be able to see the oper hosts. To mask yourself, your admin would have configured a special oper port specified in the server's I-line with a password whereby only opers can use that port providing the correct port and port's password to mask yourself. The command is as follows when connecting to the server. The third command however is used if 6667 has been set with the masking flag. /server servername:operport port_password:opernick:operpassword /server servername:operport port_password:opernick:operpassword:nickserv_password /server servername:6667 opernick:operpassword Example: /server dreams.dreamspaceworld.net:7201 liberty:pjkevin:abc123 /server dreams.dreamspaceworld.net:7201 liberty:pjkevin:abc123:tamborine /server dreams.dreamspaceworld.net:6667 pjkevin:abc123 In the above example, you can see that the server my O-line is on is dreams.*. If I attempt to oper on a server I don't have an O-line, it will not work. The oper port in this example is 7201 and the port's password is liberty. My opernick is pjkevin and my password is abc123. Be reminded that in order to mask yourself, your hosts must have been set correctly in your O-line of the ircd.conf file. If there is a problem or your hosts have changed, please notify your admin. If you wish, you can identify to services automatically using the second example. If port 6667 is used to oper, you can then use the third command. Once you have been masked and connected, you can now oper up by typing: /oper opernick operpassword Example: /oper PJKevin abc123 Assuming the information provided is correct, you will receive the following: -dreams.dreamspaceworld.net- *** Notice --- PJKevin (PJKevin@dreamspaceworld.net) is now operator (O) - * PJKevin sets mode: +owsgnh - You are now an IRC Operator Note: If you're a Services Admin (+a) or Server Admin (+A), you will have to add these modes manually eg. /mode nickname +A or /mode nickname +a. 4.2 /who and /rwho ------------------ These commands are quite complexed. /who is available to normal users though it will not do much help because it only works on users who aren't invisible (+i usermode) though they can use it to trace clones and drones in channels as well as other criterias. /rwho however is more complexed and can only be used by IRC Operators. Because explaining these commands here would take up quite a space since it is complexed, you can try using /who ? and /rwho ? and practise them. Ask a senior if you're not sure how it works. 4.3 Oper Communication Tools and Notices ---------------------------------------- IRCOps have 4 useful commands which helps them to communicate among other opers. They are:- a) Locops b) Globops c) Chatops d) Wallops Locops is for oper communication on the local server. When used, opers on other servers will not be able to read your notices. When globops is used, the notices will be sent to opers on other servers as well. Chatops can only be received by opers set with the mode +b. Wallops can be received by opers and users set at +w. Wallops is uncommon since the existance of globops and because non-opers will be able to read them. A reminder that whatever is said on oper chats must not be shared with non opers. Doing so may result your O-line being suspended. Server notices be it to 1 or all servers on the network can become handy especially when services are down and GLOBAL can't be used or if you want to reroute/restart servers. /notice $servername message (Notice will be sent to all users of a particular server) /notice $*.network.net (Notice will be sent to all users on the network) 4.4 /kill --------- The kill command forcefully removes a user from the server/ network. It can be due to abuse, floods and repeated offences. A local operator can only kill users off the server he opers on. A global operator however can remove any user on the network. The command syntax is: /kill nickname reasonhere A reason must be provided when using this command. IRC Operators must not use this command for personal reasons and not use profanity in their kill messages. Failure to do so will result their O-line being revoked. 4.5 Kline and Unkline --------------------- This command is useful to add a local server ban especially for drone connections and floodbots on a local server. The syntax is: /kline time(in minutes) username@host :Reasonhere /unkline username@host 4.6 Stats --------- The /stats command is used to get information and the server's configuration including server lines eg. (O/o C/N and I/Y lines). The syntax is as follows: /stats letter servername.* Example: If I want to check the Y-lines of freezie.*, I will type: /stats y freezie.* If the server name is not specified, it will then assume you are requesting the info of the server you're currently on. Below are the letters and their functions. Y * a - displays akills * c - displays server connect blocks (C/N lines) * d - displays clone limit statistics * D - displays special clone limits * g - displays network gcos restrictions * G - displays local server gcos restrictions i - displays allowed blocks (I-lines) * k - displays temporary K-lines * K - displays permanent K-lines l - displays generic info about [nick] * m - displays commands and usage o - displays configured oper lines (O/o-lines) p - displays opers and their idle time in seconds q - displays network nick/channel restrictions (sq-lines) Q - displays local server nick/channel restrictions r - displays ircd usage (only in debugmode) * s - displays server name cache * t - displays server generic stats * T - displays throttle stats * u - displays server uptime * U - displays super servers (U-lines) v - displays connected servers and idle times * w - displays fdlist (only in debugmode) y - displays class blocks (Y-lines) * z - displays memory stats ? - displays network traffic statistics bdefgjnx Note: To view the information marked with a *, you will have to be opered up. 4.7 Version ----------- This command gives you information on how the server has been compiled. Each letter represents a configuration as the server was compiled. A SENDQ_ALWAYS c CHROOTDIR C CMDLINE_CONFIG d DO_ID D DEBUGMODE e LOCOP_REHASH E OPER_REHASH f FOLLOW_IDENT_RFC F HIDE_FAKES g SUN_GSO_BUG G SHOW_GHOSTS H HUB i SHOW_INVISIBLE_LUSERS I NO_DEFAULT_INVISIBLE K OPER_KILL k LOCAL_KILL_ONLY L LEAST_IDLE m M4_PREPROC M IDLE_FROM_MSG N DELAY_NICKS p CRYPT_OPER_PASSWORD P CRYPT_LINK_PASSWORD N NPATH r LOCOP_RESTART R OPER_RESTART s SECUNREG S ENABLE_SUMMON t OPER_REMOTE T TRACE_STATS u IRCII_KLUDGE U ENABLE_USERS V VALLOC w NOWRITEALARM X UNIXPORT Y USE_SYSLOG 8 V28PlusOnly 4.8 Trace --------- This command can be used on both servers and users. When using this command on a user, it returns the path between the user and you. For example I am on frozendreams.* and perform a trace on the nick pharrell. So I will type /trace pharrell. The following result will be displayed: Link bahamut-1.8(03) pharrell dreams.dreamspaceworld.net User users pharrell[pharrell@dreamspaceworld.net] 65 In the above, you can tell that pharrell is 1 hop away from me where it takes the route frozendreams.* -> dreams.* . In the last line, we can do a breakdown: User users pharrell[pharrell@dreamspaceworld.net] 65 ^ ^ ^ ^ ^ ^ ^ SendQ ^ ^ nickname [username@host] ^ ^ ^ Connection Class ^ Connection type Using this command you can determine a lag between the route. If the nick's information isn't displayed or the result just stops at: Link bahamut-1.8(03) pharrell dreams.dreamspaceworld.net there could be a possible lag between frozendreams.* and dreams.*. When you perform a trace on a server, you will type /trace servername.*. If you are not opered up, you will only see opers who are not using usermode +i (invisible). It also displays the number of users and servers it is holding. Example if I perform a trace on frozendreams.* Operator opers PJKevin[pjkevin@i.rule.dreamspaceworld.net] 0 Server hub 4S 21C dreams.dreamspaceworld.net[(+)anetto@0.0.0.0] PJKevin!pjkevin@i.rule.dreamspaceworld.net 6 Operator opers missaintbehaving[pnkroses@c-67-177-201-138.hsd1.co.comcast.net] 64 Operator opers drosdow[drosdow@staff.dreamspaceworld.net] 11 Server NONE 0S 136416323C frozendreams.dreamspaceworld.net *!*@frozendreams.dreamspaceworld.net 11 Class users 7 Class opers 3 Class hub 1 frozendreams.dreamspaceworld.net End of TRACE In the above example, you will see that there are 4 servers and 21 clients (21 excluding the local users. It also tells us that there are 7 users and 3 opers. 4.9 Lusers ---------- Lusers gives the detailed statistics of the server and network including number of servers, number of IRC Operators online, number of invisible users and total of local and global users. There are 11 users and 20 invisible on 5 servers 12 IRC Operators online 25 channels formed I have 10 clients and 1 servers - Current local users: 10 Max: 13 Current global users: 31 Max: 42 In the above, the 11 users it is referring to is the non-invisible users and 20 invisible users currently on the network on 5 servers. There are 12 IRC Operators online with 25 channels formed. There are 10 local clients and 1 server (hub). The global statistics is not accurate because it includes services. You can also view the lusers of another server by simply typing /lusers * servername.* . 4.10 Rehash ----------- This command is used to reread the configuration files on the server. Using /rehash without any parameters will force the server to reread the ircd.conf file. 1) /rehash motd This rereads the ircd.motd file. 2) /rehash tklines This removes temporary k-lines. 3) /rehash throttles This will remove throttled IPs 4) /rehash dns This rereads the /etc/resolv.conf file 5) /rehash gc This will help clear excess memory 6) /rehash ip This will reload the IP hash for the new and improved ACKPATCH. This should never need to be used. 4.11 Links ---------- Links tells us how the servers are routed from your server's view giving it an outline. Below is an example of the network view when I type /links from frozendreams.* frozendreams.dreamspaceworld.net (0) Ice skating Server dreams.dreamspaceworld.net (1) May all your dreams come true saturn.dreamspaceworld.net (2) From outer space summer.dreamspaceworld.net (3) Summer kisses winter tears services.dreamspaceworld.net (2) Services for IRC Networks The numbers in brackets beside the server name tells you the number of hops from frozendreams eg. saturn.* is 2 hops away from frozendreams.* . 4.12 Samode ----------- This command can only be used by Services Administrators (+a) or Server Administrators (+A). It forcefully changes channel modes even without you being opped or present in the channel. Be reminded that this command isn't for you to play around with showing off your access nor op yourselves in channels you don't have access to. It is to be used in floods and takeover situations only. Failure to follow guidelines when using this command can lead to demotion or in worst cases, suspension of your O-line. Example: /samode #Help +R (Sets channel to only registered nicks may join #Help) 4.13 Sajoin ----------- This command is a little similiar to SAMODE but it forces the user who uses this command to join channels that have restriction modes like (b/i/k/l). This command isn't intended for IRC Operators to use to circumvent (evade) bans. This is to help deal with takeover situations. As with all IRC Operator commands, abusing your privileges can lead to demotion or in worst cases, suspension of your O-line. Example: /sajoin #opertraining 4.14 Die -------- There are times the server may become disruptive on the network for some reason or other or you want to terminate the server due to a scheduled maintainance or after recompiling the server and you want the changes to take effect. This command will stop the ircd process on your box and everyone including yourself will be disconnected from the server. Be reminded however, not everyone can use this command. You must have the correct flag in your O-line and also know the password to perform this command. In most cases you will not need to use it unless told otherwise by your Server Admin. 4.15 Restart ------------ This command is a little similiar to the DIE command except it restarts the IRCd process. Like the DIE command, everyone on the server including yourself will be disconnected. However, they will be able to reconnect once the server has been fully restarted. Be reminded however, not everyone can use this command. You must have the correct flag in your O-line and also know the password to perform this command. In most cases you will not need to use it unless told otherwise by your Server Admin. NOTE: When using the DIE or RESTART commands, please be sure to inform everyone on the server by sending them a server notice regarding your action and give them time to change servers so they will not be caught offguard. Also send a globops so other operators will know what you're doing. 4.16 Close ---------- This command will close all connections from clients that have not fully registered yet. 4.17 Routing ------------ This is the most important part of the network. Routing as technical as it may sound is the backbone of any network be it a normal home network, office or even on IRC. You can build and collapse the network with it. Many people are afraid to learn routing due to the fact it is too complex and technical. We're not going to explain the complex parts here but how routing works to support the network and also how to fix netsplits and lags. When you apply to link a server to any IRC Network be it here, DALnet or EFnet for that matter, 2 things are taken into consideration at first glance of the application. One is the hardware aspects of the machine and the other is the routing to find the best uplinks. Both criterias play an important role in a server application.In your server application, you are normally asked to perform a ping and traceroute to determine the connectivity speed in ms and the number of destination hops from your server to the target and this will tell the routing team what to expect and the best uplinks of your server. b) Network Structure, routes and hops ------------------------------------- As we all know, there are 2 kinds of servers; leaf servers and hub servers. Leaf servers are linked to hub servers. They allow connections from users. Hub servers house leaf servers and don't accept user connections. Hub servers are connected to 1 major hub which usually holds services.*. The following diagram is a sample of the network link. winter.* <------------summer.* ------------> spring.* (L1) (H1) (L2) | autumn*<------------dreams.*------------> frozendreams.* (L3) (H0) (L4) / | \ | water.* | fire.* --------> earth.* (L5) | (H2) (L6) services.* (S) In the above diagram, you will see that dreams.* is the main hub. It holds 3 leaf servers (water.*, autumn.* and frozendreams.*) and 2 minor hubs (summer.* and fire.*). Services is connected to dreams.* as well. Fire.* has 1 leaf (earth.*) whereas Spider.* has 2 leaf servers (spring.* and winter.*). From the above example we can tell that water.* is 3 hops away from winter.* so we can simplify this route by the following: Route Winter.* ---> summer.* ---> dreams.* ---> water.* Hops (0) (1) (2) (3) c) Rerouting ------------ Rerouting can be done if:- 1) The hub that houses the server is going down. 2) There appears to be a lag and a reroute would help. When a server's home hub suddenly goes down, the leaf servers connected to it will be in a split since there is no route to the main network. So you will need to find a new uplink for the server. An important reminder that there must be a matching connection block (C/N lines) on both the hub and leaf servers. To see the C/N lines for your server, type /stats c. Before rerouting servers, you must inform the current net staff via globops and also send a notice to the users on the server telling them on the reroute and it will connect back as soon as possible. We don't want them to get caught offguard. c) Rerouting ------------ Rerouting can be done if:- 1) The hub that houses the server is going down. 2) There appears to be a lag and a reroute would help. When a server's home hub suddenly goes down, the leaf servers connected to it will be in a split since there is no route to the main network. So you will need to find a new uplink for the server. An important reminder that there must be a matching connection block (C/N lines) on both the hub and leaf servers. To see the C/N lines for your server, type /stats c. Before rerouting servers, you must inform the current net staff via globops and also send a notice to the users on the server telling them on the reroute and it will connect back as soon as possible. We don't want them to get caught offguard. i) /squit This command is similiar to the normal quit except it is used to quit the link between the server you oper on and the link you want to disconnect. The syntax of using this command is: /squit servername.* reason Example 1: winter.* ---> fire.* If you're on winter.* and wish to delink it from fire.* to reroute, you will type: /squit fire.* rerouting due to lag The reason we're squitting fire.* is you need to squit the far end of the link. If you /squit the server you're on instead, it will close your connection to the server :P. This kind of a /squit is called a local squit since you're delinking a server connected to yours. Example 2: winter.* ---> fire.* ---> summer.* ---> saturn.* If you're on winter.* and want to squit saturn.*, you will type: /squit saturn.* rerouting server Again it is reminded that we have to terminate the far end of the link which is saturn.*. This kind of a squit is called a remote squit because you're not connected to fire.* nor summer.* so you're remotely squitting the server. Only global operators and above may perform remote squits. Warning! Never type /squit services.* as it cannot be rerouted. Doing so will cause services.* to shut down immediately and you will need to get an SRA to rerun the process. ii) /connect This command will create a link to the destination server. It is used after a squit in a need of a reroute or if there was a netsplit. The syntaxes are as follows Local connect: /connect destination.* port_number (If no port is given, it connects to the port specified in the ircd.conf file) Remote connect: /connect destination.* port_number origin.* On ChatX, the default port number is 7325. This can also be verified by typing /stats c. As told earlier, there must be a matching connect block (C/N lines) in order to link 2 servers. Local connect example: Alpha.* Jedi.* If I am on Alpha.* and I want to connect it to Jedi.*, I will type /connect Jedi.* and it will connect to Jedi.* using the port specified in the ircd.conf file. Remote connect example: Jedi.* ---> Spider.* Shout.* If I am on Jedi.* and I want to link Spider.* to shout.*, I will type: /connect Shout.* 7325 Spider.* Note that only global operators and above can perform remote connects. 5. Services Commands for IRC Operators -------------------------------------- DreamSpaceWorld uses Anope-1.7.12 Services though we may intend to have our own in the future due to its stability. Should you have any questions regarding the commands or features, please do not hesitate to contact any Root Administrator and we will be happy to assist you. Warning: As with all IRC Operator Server commands, Services IRC Operator commands should be used only when necessary. You are not above the network policies. Abuse of OperServ and other IRC Operator commands will be classified as Services Abuse and breach of trust which violates the network policies and will be liable to sanctions and removal of access. 5.1 OperServ Commands for Global Operators ------------------------------------------- 5.1.1 OPER ---------- Using the LIST parameter shows the list of Services Operators. Adding of Services Operators can only be done by a Services Administrator or Services Root Administrator. 5.1.2 ADMIN ----------- Using the LIST parameter shows the list of Services Administrators. Adding of Services Administrators can only be done by a Services Root Administrator. 5.1.3 STAFF ------------ Shows the list of Services Operators, Services Administrators and Services Root Administrators. 5.1.4 MODLIST -------------- This command shows the list of loaded modules in services. 5.1.5 MODINFO -------------- This command provides more information on a services module. 5.2 OperServ Commands for Services Operators --------------------------------------------- 5.2.1 MODE ----------- Like the /mode command on IRC, this is used to modify channel modes (similiar to /samode). It must be stressed here that you must follow the correct parameters. /operserv MODE #channel +- modes 5.2.2 STATS ------------ This command gives various information on the network statistics. When used alone without any parameters, it provides user/oper count (excluding services), the highest user count and services uptime.With the AKILL parameter, it provides the akill list size and the default expiry time. the ALL parameter can only be used by Services Administrators which displays services memory. Using this parameter on a large network and is discouraged. The RESET option will reset the user count. 5.2.3 GLOBAL ------------- This command sends a global notice to everyone on the network. It is to be used only for important notifications. /operserv GLOBAL message_here 5.2.4 KICK ----------- This command is used to kick users out of the channel with a reason. The command is useful if no channel operator is present and the need arises. /operserv KICK #channelname nickname reason 5.2.5 CLEARMODES ------------------ Used alone, OperServ clears all binary modes (i,k,l,m,n,p,s,t). If the ALL parameter is given it also clears +o and +v. /operserv CLEARMODES /operserv CLEARMODES ALL 5.2.6 KILLCLONES ----------------- This command kills clones that have the same host as the nickname given in the command. It adds a temporary akill which prevents them from reconnecting immediately. A wallops is also sent informing who used the command and the number of users affected. /operserv KILLCLONES nickname 5.2.7 AKILL ----------- This command modifies the AKILL list against users. The format of the akill set is username@host with an expiry and reason which must be provided. Akill expiry can be in the form of 1h, 3d but never with a combination like 1h30m. If you do not specify the unit specifier like h (hours) or d (days), the default taken will be days so if you place +30, the akill will last for 30 days. If you don't want it to expire, set the expiry parameter as +0. DEL removes the akill specified either by host or entry number. LIST shows the entire akill list whereas VIEW gives a more detailed view of the LIST. /operserv AKILL ADD [+expiry] username@host reason /operserv AKILL DEL username@host | entry-number /operserv AKILL LIST mask | list /operserv AKILL VIEW mask | list /operserv AKILL CLEAR 5.2.8 SGLINE ------------ This command modifies the SGLINE list against users. It forbids the user's realname with an expiry and reason which must be provided. SGLINE expiry can be in the form of 1h, 3d but never with a combination like 1h30m. If you do not specify the unit specifier like h (hours) or d (days), the default taken will be days so if you place +30, the SGLINE will last for 30 days. If you don't want it to expire, set the expiry parameter as +0. DEL removes the SGLINE specified either by host or entry number. LIST shows the entire SGLINE list whereas VIEW gives a more detailed view of the LIST. /operserv SGLINE ADD [+expiry] mask:reason /operserv SGLINE DEL mask | entry-number /operserv SGLINE LIST mask | list /operserv SGLINE VIEW mask | list /operserv SGLINE CLEAR 5.2.9 SQLINE ------------ This command modifies the SQLINE list against users. It forbids users who have a nickname that matches a certain pattern from connecting. SQLINE expiry can be in the form of 1h, 3d but never with a combination like 1h30m. If you do not specify the unit specifier like h (hours) or d (days), the default taken will be days so if you place +30, the SQLINE will last for 30 days. If you don't want it to expire, set the expiry parameter as +0. If a # is placed in front, it disallows users from using the channel that matches the entry. DEL removes the SQLINE specified either by host or entry number. LIST shows the entire SQLINE list whereas VIEW gives a more detailed view of the LIST. /operserv SQLINE ADD [+expiry] mask reason /operserv SQLINE DEL mask | entry-number /operserv SQLINE LIST mask | list /operserv SQLINE VIEW mask | list /operserv SQLINE CLEAR 5.2.10 SZLINE ------------- This command modifies the SZLINE list against users. It forbids any matched IPs (masks) from connecting (whether it has PTR RR or not). SZLINE expiry can be in the form of 1h, 3d but never with a combination like 1h30m. If you do not specify the unit specifier like h (hours) or d (days), the default taken will be days so if you place +30, the SZLINE will last for 30 days. If you don't want it to expire, set the expiry parameter as +0. DEL removes the SZLINE specified either by host or entry number. LIST shows the entire SZLINE list whereas VIEW gives a more detailed view of the LIST. /operserv SZLINE ADD [+expiry] mask reason /operserv SZLINE DEL mask | entry-number /operserv SZLINE LIST mask | list 5.3 OperServ Commands for Services Operators --------------------------------------------- 5.3.1 CHANLIST -------------- This command lists channels by a specific pattern whether they are registered or not. If a nick is given, it shows the channels the user is on. If SECRET is used, it only shows +p (private) and +s (secret) channels. /operserv CHANLIST pattern | nick SECRET 5.3.2 USERLIST -------------- This command lists users by a specific pattern whether they are registered or not. When using a search pattern, the format must be specified in nick!username@host format If a channel name is given, it shows the users on that channel. If INVISIBLE is used, it shows users who are set to +i (invisible). /operserv USERLIST pattern | channel INVISIBLE 5.3.3 NEWS ---------- This allows Services Admins to add/remove logonnews, opernews and randomnews. However, it is only limited to 3 at a time to avoid flooding the user. If there are more than 3, the 3 most recent ones will be displayed. LOGONNEWS (Defines news displayed to users when they log on to ChatX) RANDOMNEWS (Defines news displayed randomly to users when they log on) OPERNEWS (Defines news displayed to IRC Operators upon opering) /operserv LOGONNEWS | RANDOMNEWS | OPERNEWS | ADD TEXT /operserv LOGONNEWS | RANDOMNEWS | OPERNEWS | DEL [NUM|ALL] /operserv LOGONNEWS | RANDOMNEWS | OPERNEWS | LIST 5.3.4 SESSION ------------- There are 2 syntaxes for this command, LIST and VIEW. This command is useful in checking for clones. The LIST option must have a threshold which must be greater than one to prevent a list of single sessions host. The VIEW command is used with a host which must not include wildcards. /operserv SESSION LIST threshold /operserv SESSION VIEW host 5.3.5 EXCEPTION --------------- This command sets a limit to host sessions and is used for client machines to limit the number of sessions connected at a time based on the host (not hostmask) and limit set. Once it has reached its limit, all clients attempting to connect will be killed. /operserv EXCEPTION ADD [+expiry] mask limit reason /operserv EXCEPTION DEL {mask | list} /operserv EXCEPTION MOVE num newnum /operserv EXCEPTION LIST [mask | list] /operserv EXCEPTION VIEW [mask | list] 5.3.6 JUPE ---------- This command tells services to create a fake server to prevent the real server from connecting. It is useful especially due to squit/connect problems with the server in question. If a reason is given, it will be displayed in the server information field or else the name of the one who requested is displayed. To remove a jupe, the /squit command is used. /operserv JUPE servername reason 5.3.7 NOOP ---------- This command instructs the server to temporarily disable O-lines and also killing the opers preventing them from rehashing the ircd.conf file. To remove this effect, the REVOKE parameter is used. /operserv NOOP SET server /operserv NOOP REVOKE server 5.3.8 IGNORE ------------ This command is used to ignore a nick for a certain period defined in time or until services has been restarted. Only 1 unit can be used eg. s for seconds, m for minutes and h for hours. If the unit is not specified, the default which is seconds will be taken.For a permanent ignore, 0 will be placed as time. /operserv IGNORE ADD TIME nickname /operserv IGNORE DEL nickname /operserv IGNORE LIST /operserv IGNORE CLEAR 5.3.9 DEFCON ------------ This command is used in the event the network is under threat of attacks or floods. It sets restrictions to services/channels and also wards off further connections on the network. This is defined in 5 levels which level 1 is the lowest and level 5 being the highest. /operserv DEFCON 1|2|3|4|5 5.3.10 CHANKILL --------------- Sets an AKILL on users of a particular channel. It goes by the user@host format on every user then enforces it. /operserv CHANKILL +expiry reason *Note*: The following commands should NOT be used unless necessary or told to. --- 5.3.11 SET ---------- These set of commands set various global services settings: READONLY Set read-only or read-write mode LOGCHAN Report log messages to a channel DEBUG Activate or deactivate debug mode NOEXPIRE Activate or deactivate no expire mode SUPERADMIN Activate or deactivate super-admin mode SQL Activate or deactivate sql mode IGNORE Activate or deactivate ignore mode LIST List the options 5.3.12 RELOAD ------------- This forces services to reread the configuration file. However, sometimes a reboot of services may be required for (such as Services' nicknames, activation of the session limitation, etc.) /operserv RELOAD 5.3.13 RESTART -------------- This forces services to save to database and restart the executable file. /operserv RESTART 5.3.14 QUIT ----------- This command terminates services without saving to database. It should not be used unless there could be a possible damage to in-memory database. Otherwise, use SHUTDOWN. /operserv QUIT 5.3.15 SHUTDOWN --------------- This command saves services database and terminates the process. /operserv SHUTDOWN 5.3.16 UPDATE ------------- This command forces services database to be updated. /operserv UPDATE 5.4NickServ Commands for Services Administrators ------------------------------------------------- 5.4.1 SUSPEND ------------- This command freezes the nick in question preventing the owner from using/identifying. The nick's info is not lost but the nick can expire. To release the nick, UNSUSPEND is used. /nickserv SUSPEND +expiry nickname reason /nickserv UNSUSPEND nickname 5.4.2 FORBID ------------ This command holds the nickname preventing it from being used/registered. The nick's info is lost but it will not expire. Commonly used for nicknames that impersonate services. It may be cancelled with the DROP command. /nickserv FORBID nickname 5.4.3 GETEMAIL -------------- This command returns the nicknames registered under that email address. Please take note that wildcards are not allowed. Services logs when the command is issued and by whom. /nickserv GETEMAIL email_address 5.4.4 OTHER COMMANDS -------------------- Services Administrators are able to DROP nicknames and also modify nickname options without being identified for that nickname. 5.5 ChanServ Commands for Services Administrators -------------------------------------------------- 5.5.1 SUSPEND ------------- This command freezes the channel preventing users from using it or identifying. ChanServ will not op anyone on a frozen channel. To release the channel, UNSUSPEND is used. /chanserv SUSPEND +expiry #channelname reason /chanserv UNSUSPEND #channelname 5.5.2 FORBID ------------ This command will hold the channel preventing it from being used/registered. The channel's info is lost if used on a registered channel but will not expire. It may be cancelled using the DROP command. /chanserv FORBID #channelname 5.5.3 OTHER COMMANDS -------------------- Services Administrators are able to DROP channels and also modify channel options without being identified for that channel. *Credits* --------- I would like to thank a few people who have helped me in wiriting this operator's manual. Firstly zekey and DreamHealer for training me with the Bahamut IRCd and its features. Scots and pharrell for their guidance in network administration and management. Last but not least, to the staff of DreamSpaceWorld IRC Network who have given me their support.