Tip of the day: If you still have users on plaintext port 6667, consider enabling Strict Transport Security to gently move users to SSL/TLS on port 6697.

Running a mixed UnrealIRCd 3.2 and UnrealIRCd 4 network

From UnrealIRCd documentation wiki
Jump to navigation Jump to search

You can link UnrealIRCd 4 servers to a 3.2.x network. You can do so if are in the process of upgrading your 3.2.x servers. There are however a few things that won't work properly.

NOTE: This article was written in 2015 when 3.2.x was still supported and 4.x was new. However, since January 1, 2017 UnrealIRCd 3.2.x is deprecated and should no longer be used at all!

As a shorthand, follow these simple rules:

  1. If your 3.2.x IRCd has SSL enabled then you must use version 3.2.10.3 or later
  2. If you have more than one UnrealIRCd server then be sure to link in UnrealIRCd 4 as a leaf. Your hub should be upgraded last.
  3. On UnrealIRCd 4 use /SPAMFILTER add -posix when adding spamfilters
  4. Change any admin-only channels from +A to +O

For more information, see below.

Why you may want to run a mixed network

Ideally you should run your network 100% with UnrealIRCd 4 servers. However, we don't live in an ideal world. Many people run an UnrealIRCd 3.2.x network and there are two reasons why you may be running a mixed UnrealIRCd 3.2.x - UnrealIRCd 4 network:

  1. You may wish to evaluate UnrealIRCd 4. You can do so on a separate test network but some may opt to link in an UnrealIRCd 4 test server to the existing 3.2.x live network.
  2. When you're ready to migrate your UnrealIRCd 3.2.x network to UnrealIRCd 4 you can choose to upgrade all servers at once, or you may go the slow route and upgrade servers once at a time.

In both cases you will run a mixed network for a limited amount of time (say, a couple of weeks).

Important recommendations

We don't recommend running a mixed network for many months because as long as you run a mixed UnrealIRCd 3.2.x - UnrealIRCd 4 network you'll encounter a number of issues. These can only be resolved by running a true 100% UnrealIRCd 4 network.

Also, as long as you run a mixed network, you should probably keep your hub at 3.2.x. Upgrade the hub only after all the other 3.2.x servers have been upgraded to UnrealIRCd 4.

We use the following colors to indicate the impact of issues that occur when running a mixed network:

No impact Minimal impact Important Bad!

Linking toplogy

As long as you run a mixed network your UnrealIRCd 4 server should link in as a leaf, and your hub should be upgraded to UnrealIRCd 4 at the end (last server to upgrade)

What Description Impact on UnrealIRCd 4 side Impact on UnrealIRCd 3.2.x side
UnrealIRCd 4 as hub UnrealIRCd 4 having a direct connection to multiple 3.2.x servers at the same time Not recommended Not recommended
UnrealIRCd 4 as leaf UnrealIRCd 4 linked to one 3.2.x server (the 3.2.x server may have multiple links) OK OK

Linking issues

What Description Impact on UnrealIRCd 4 side Impact on UnrealIRCd 3.2.x side
UnrealIRCd 3.2.x version UnrealIRCd 4 requires your 3.2.x server to be 3.2.10.3 or higher (if using SSL) Lower versions won't link (if using SSL) Lower versions won't link (if using SSL)

The fix is simple: use 3.2.10.3 or higher on the 3.2.x side.

Issues with opers & user modes

In UnrealIRCd 4 we no longer have "Network administrator" and other such oper levels. These have been replaced with "oper classes". See Changes in the Oper block. You can still use titles in /WHOIS like "Network administrator", but ircops no longer have special ircop level user modes associated with them: user modes O/a/A/N/C have been removed.

We also removed or renamed some other ircop-only user modes, such as 'v' (DCC rejection notices) to snomask 'D'.

What Description Impact on UnrealIRCd 4 side Impact on UnrealIRCd 3.2.x side
Removed oper user modes User modes O/a/A/N/C
  • If you /WHOIS an oper that is on the 3.2.x server then you will see the user as "is an IRC Operator" but you will be missing the title (eg: "is a Network administrator").
  • Remote oper commands, such as rehashing a 3.2.x server from an UnrealIRCd 4 server via /REHASH remote.server.name or /REHASH -all, may not work. In practice, the issues are quite limited and only affect few commands.
None
Multiple swhois titles With UnrealIRCd 4 you can add multiple swhois lines to /WHOIS None Only 1 line is shown if you /WHOIS an UnrealIRCd 4 user from an UnrealIRCd 3.2.x server

Issues with channel modes

What Description Impact on UnrealIRCd 4 side Impact on UnrealIRCd 3.2.x side
Channel mode 'A' (Admins only) Removed in UnrealIRCd 4 because there are no oper levels anymore. Replaced with extended ban ~O. Channel mode +A won't be shown and won't be effective on UnrealIRCd 4. Workaround: set your channel +O instead of +A so no regular users can join. None
Channel mode 'j' (jointhrottle) Joinflooding is now controlled via set::anti-flood::join-flood and enabled by default. Channel mode has been removed. Channel mode +j not shown, but no problem as anti-flood feature is still in place None
Channel mode 'u' (auditorium) Hide non-chanops in nicklist. Almost never used. Ineffective. Joins and nicklist shown as usual. None
Channel mode 'd'/'D' (delayjoin) New channel mode in UnrealIRCd 4 to hide join/parts until someone actually speaks None Ineffective. Joins shown as usual.

Issues with extended bans

What Description Impact on UnrealIRCd 4 side Impact on UnrealIRCd 3.2.x side
ExtBan ~S (sslfp) UnrealIRCd 4 introduces an extended ban ~S:xxxxxxxxx for ban exceptions (+e) and invex (+I) so you can exempt/invex users based on their SSL Fingerprint None Ban exception/invex won't be effective. User can't join/bypass.
ExtBan ~O (operclass) UnrealIRCd 4 introduces an extended ban ~O:operclassname so you can create channels which only one (or multiple) oper classes can only join.
Example: +iI ~O:*admin* to create an admin-only channel.
None Ban exception/invex won't be effective. User can't join/bypass.

Issues with spamfilters

In UnrealIRCd 4 we switched the default regex engine from 'POSIX' to 'PCRE2'. We also changed the syntax of the /SPAMFILTER command so you can specify which engine to use (/SPAMFILTER add -type..). See Upgrading from 3.2.x: Spamfilter

What Description Impact on UnrealIRCd 4 side Impact on UnrealIRCd 3.2.x side
POSIX Spamfilters Added with /SPAMFILTER add on UnrealIRCd 3.2.x. Added on UnrealIRCd4 with /SPAMFILTER add -posix Effective Effective
PCRE2 Spamfilters Added by UnrealIRCd 4 with /SPAMFILTER add -regex. Does not exist on UnrealIRCd 3.2.x. Effective Not effective. We therefore suggest to use /SPAMFILTER add -posix on UnrealIRCd 4 if you run a mixed network.
Simple Spamfilters Added by UnrealIRCd 4 with /SPAMFILTER add -simple. Does not exist on UnrealIRCd 3.2.x. Effective Not effective. We therefore suggest to use /SPAMFILTER add -posix on UnrealIRCd 4 if you run a mixed network.

Other

There are many features UnrealIRCd 4 introduces, including increased SSL security, better linking, safer killing of (the right) users, etc. These will only be effective on a 100% UnrealIRCd 4 network.