Author: Isomer <isomer@coders.net>
[ircu2.10.12-pk.git] / RELEASE.NOTES
1 Release Notes for ircu2.10.10
2
3 This is a brief description of the changes we have made to the server
4 since the release of ircu2.10.07.
5
6 This is the first Undernet server that is fully P10, it is no longer
7 compatible with older P9 only servers. The server has been verified
8 to be compatible with Undernet server versions 2.10.06 and above.
9
10 Enhancements:
11 All server to server communications use tokenization and numeric id's,
12 this reduces the bandwidth requirements approximately 10-20%.
13
14 Much of the network code has been rewritten and many old bugs relating
15 to the networking core of the server have been fixed.
16
17 The port handling code has been rewritten to allow much better control
18 over listeners.
19
20 The server supports extended numerics which theoretically would allow
21 the entire population of the planet to participate on a network without
22 running out of unique values.
23
24 Added ISUPPORT messages on client connects to allow client coders to
25 detect network specific enhancements to the client protocol.
26
27 Server aliasing and virtual hosting (port forwarding) are available for
28 larger DoS attack prone networks. This will be improved in the next
29 release.
30
31 Status messages are sent to connecting clients so connections don't
32 seem to hang during client registration.
33
34 The server now uses a bit less memory and cpu under full load, we
35 estimate around a 10% improvement in resource usage over the previous
36 version.
37
38 Configuration Changes:
39 Please read example.conf in the doc directory for detailed information
40 on various configuration options.
41 Virtual host IP addresses are now in the password field of the server M:line,
42 there is no longer a command line option for specifying them. This is the
43 address the server will bind to for all outgoing server to server connections.
44 The port field of the server M:line is no longer used and is ignored when
45 the server reads the configuration file, server ports are now specified
46 only on P:lines.
47 The server ignores N:lines, C:lines are used for all connect server
48 information now. This means that the passwords for both sides of the
49 connection must match, this change does not degrade server connection
50 security of the existing protocol.
51 There are several new configuration options for P:lines (listener ports).
52
53 Compile Time Options:
54 If you are planning on hosting more than 1000 clients on your server
55 we recommend that you do not turn on asserts and heap checking or
56 debug messages. This is known to cause problems.
57 There are several new compile time options that you will automatically
58 be prompted for when you configure the server which should be self
59 explanitory.
60
61 Undocumented Features:
62 Every Undernet server released has had at least one undocumented
63 feature ;-) Here are a few of the ones available in ircu2.10.10.
64 I'm sure there are a few more we are unaware of, these are the ones
65 we know about.
66 To enable these you need to add them to the extra CFLAGS when you
67 run make config.
68 -DEXTENDED_NUMERICS This option configures the server to send
69 extended numerics as well as parse them. This option should only
70 be used on networks that run ircu2.10.07 and above only.
71 -DWALLOPS_OPER_ONLY Setting this option removes the ability for
72 clients that are not opered to see wallops messages.
73 -DNOOPER Disallow the /oper command.
74
75 There are a few to be used for debugging or other networks.  These
76 should *NOT* be defined on the undernet production network.
77
78 -DNICKLEN=15 This allows you do override the default nick length
79 to 15 characters.  If this has different values on different servers
80 your network *WILL* fall apart.  Only use this option if you know
81 what your doing. If you don't, ask in #coder-com on undernet.
82 -DNO_THROTTLE This disables the throttling code.  This is used for
83 debugging *only*.  It lets you connect up to 255 clients from one
84 host with no time conciderations.  If this is enabled on a 
85 production server I will personally drive your server into the 
86 ground.  You have been warned.
87
88 Operating System and Kernel Requirements:
89 If you plan allowing more than 1000 clients on your server, you
90 may need to adjust your kernel resource limits for networking
91 and I/O. There are two things you will need to pay particular
92 attention to, the number of file descriptors available and the
93 number of buffers the kernel has available to read and write
94 data to the file descriptors.
95
96 To calculate kernel buffer requirements a good place to start
97 is to multipy the expected number connections expected on the machine
98 by the amount of data we buffer for each connection.
99 Doubling the result of the above calculation and dividing it by the
100 size of the buffers the kernel uses for I/O should give you a starting
101 place.
102
103 The server uses 2K kernel buffers for clients, and 64K kernel
104 buffers for servers (actual use may be somewhat higher).
105
106 c_count - number of clients expected
107 c_q     - number of bytes buffered for each client
108 s_count - number of servers expected
109 s_q     - number of bytes buffered for each server
110
111 buffer count = (2 * (c_count * c_q + s_count * s_q)) / kernel buffer size
112
113 If the client count is 2000 and the server count is 1 (normal leaf)
114 and your server uses 2K as an I/O buffer size:
115
116 You need (2 * (2000 * 2048 + 1 * 65536)) / 2048 or a minimum
117 of 4064 buffers available, if the kernel uses 512 byte buffers you
118 will need a minimum of 16256 kernel buffers.
119
120 These settings may be a bit light for netbreaks under full client load
121 you will need to experiment a bit to find the right settings for your
122 server.
123
124 FreeBSD --WildThang
125 You may want to increase your kernel resources if you want to put
126 a lot of clients on your machine here are a few values to start with:
127 CHILD_MAX=4096
128 OPEN_MAX=4096
129 FD_SETSIZE=4096
130 NMBCLUSTERS=8096
131
132 Solaris 2.6  --Tar
133 Increase the default hard limit for file descriptors in /etc/system
134 set rlim_fd_max = 4096
135 The server will raise the soft limit to the hard limit.
136
137 Linux 2.2 -- [Tri]/Isomer
138 The kernel has a kernel destination cache size of 4096.  If the kernel sees
139 more than 4096 IP's in 60s it warns 'dst cache overflow'.  This limit can be
140 changed by modifying /proc/sys/net/ipv4/route/max_size.
141