From d36df23a0beeacb815da3a321986c4dfc9f9d037 Mon Sep 17 00:00:00 2001 From: Valery Yatsko Date: Wed, 30 Jul 2008 02:25:21 +0400 Subject: [PATCH] Removed TS5 description as it is no longer supported --- doc/technical/ts5.txt | 151 ------------------------------------------ 1 file changed, 151 deletions(-) delete mode 100644 doc/technical/ts5.txt diff --git a/doc/technical/ts5.txt b/doc/technical/ts5.txt deleted file mode 100644 index 0a6ad26..0000000 --- a/doc/technical/ts5.txt +++ /dev/null @@ -1,151 +0,0 @@ - Overview of the TS5 system - Lee H - -$Id: ts5.txt 6 2005-09-10 01:02:21Z nenolod $ - -For the purposes of this document, ircd versions: - hybrid6.0 - ircd-comstud-1.12 - CSr31pl4 - -and prior, are TS3. - -ircd-hybrid-6.2 and later support TS5. - - -Whats TS5? ----------- - -The difference between TS5 and TS3 is what happened on opless channels. TS -works by establishing which server has the oldest version of the channel, -the version that is oldest, keeps its modes and ops, the version that is -youngest, removes their modes and ops, and accepts the older version. - -There was an exception to this rule with opless channels, if a channel was -opless, TS3 would allow anybody to keep their ops and modes on the channel. -TS5 aims to stop this, by removing this exception. - -Example1: - -An irc network, with server A (every server is ts3) - -UserA is on ServerA, in channel #broken. This channel is opless, and has a -TS of 800000000. ServerA splits, and whilst it is split, UserA cycles -channel #broken, recreates the channel and is given ops. On ServerA #broken -now has a TS of 900000000 and has ops. ServerA rejoins with the network, -via HubB. HubB realises #broken is opless, so allows UserA to retain ops. -The TS is moved forward to 900000000. - -The network now sees #broken as having a TS of 900000000, with UserA being -opped. - -Example2: - -An irc network, with server C (every server is ts5) - -Same scenario as above. ServerC splits and UserC cycles channel #broken, -recreating it with a TS of 900000000. ServerC rejoins with the network via -HubD. HubD realises #broken has a TS of 800000000 locally, and ServerC is -showing a TS of 900000000, it ignores ServerC's modes and ops. The channel -remains opless. ServerC receives HubD's modes, and it notices HubD has a -lower TS of channel #broken. It removes UserC's ops, removes the channel -modes on #broken, and accepts HubD's status. - -The network version of #broken hasnt changed. It is still opless, with a TS -of 800000000. - - -As you can see, TS5 makes splitting a server to regain ops useless, as it -cannot be abused to give ops after a netsplit. - -The problem with TS5 however, is what happens on a mixed TS5/TS3 network. -Channels where the older TS has ops will behave the same way on TS5 and TS3, -however an opless channel will behave differently, as you can see above. - -The result of TS5/TS3 mixed can be a desync: - -Example1: - -As per Example1 above, except the rest of the network is TS5, ServerA is -TS3. ServerA would keep its modes and ops, whilst the rest of the network -would remove them. This means only ServerA would see UserA as opped. The -desync can be abused, as UserA can send modes. Hybrid6.0 servers will -accept these modes from the unopped client, so if UserA ops UserB, who then -ops UserA, the channel will be the same across all Hybrid6.0 and Hybrid6.1 -servers. - -Example2: - -As per Example2 above, except the rest of the network is TS3. ServerC is -TS5. ServerC would remove its modes and ops, therefore UserC would not be -opped on ServerC, therefore it could not send any mode changes to the -channel. Although it is opped elsewhere, it isnt opped locally, so the -desync cannot be abused. - -As you can see, the desync's that can occur can either be resynced, or are -useless to the user, so a mixed TS5/TS3 network is not a huge problem, -although a desync is NOT a good thing to have. - - -Why TS5? --------- - -We have jumped to TS5 from TS3, because there was a version of ircd that was -TS4, so it was thought better to avoid a clash with an existing version. - - -Advantages ----------- - -Its a realistic event that a server will be attacked so it splits off a -network, then used to regain ops in a channel. TS5 makes this pointless, -the server will never give ops on a netsplit. TS5 is network wide, so it -leaves individual servers free to choose options like NO_JOIN_ON_SPLIT, -whilst keeping splits useless to users. - - -Disadvantages -------------- - -Its virtually impossible for a user to actively regain ops themselves (some -regard this as an advantage..) because on a large sized channel, its -impossible to get people to leave so it can be recreated, therefore if a -network did not have some form of services, it could possibly end up -requiring oper intervention, as you cant get everybody to leave, and you -cant use splits to regain ops, therefore if the channel is open (an -invite-only channel would gradually destroy itself as noone new can join) it -could be impossible for a user to regain ops. - -On a network that has some form of services, The effect of TS5 would be -minimal, however the services must be of sufficient quality to fix opless -channels, as TS5 renders netsplits for ops worthless. - - -Recommendations ---------------- - -If your network has good stable services, we recommend TS5 is enabled, as -people have no reason to abuse netsplits anyway. - -If your network has no services at all, then TS5 may cause problems with -users being left with a permanently opless channel. - -If your network occupies the middle ground, then its a choice between users -needing to be able to use splits to regain ops, or making netsplits that are -caused to regain ops worthless. - -If TS5 is chosen, the FULL network must upgrade and this should be done in a -relatively short space of time to minimise the possible desync effects. - - -Alternatives ------------- - -There is also NO_JOIN_ON_SPLIT and NO_OP_ON_SPLIT, however these use the -configuration of minimum servers and users, and sometimes a split that is -above these limits is enough to be abused to regain ops, whereas if the -limits are too high, clients will never be able to join anything or be opped -when they create a channel. - - -EOF