First let me say that I have searched for this in the past and have found some information, but it wasn't nearly enough to get this running properly. I have only seen people post their config files, but from what I can tell so far, it seems like it takes much more than that to get this working properly. I experimented around quite a bit the other night and could not get this working the way I wanted.
What I want is to have my Server PC run all zones dynamically with the exception of a few zones that I want to run on a secondary PC statically.
So, I assume that I set the launcher_zones table to look like:
(Using navicat btw)
launcher | zone | port
zone | potimeb | 7250
zone | veeshan | 7260
zone | solrotower | 7270
I have my router to forward ports 7000 - 7249 to my Server PC and ports 7250 - 7500 to my Secondary PC. So, setting the launcher to these ports should send those zone requests to the Secondary PC (at least I think). Do I need to open any other ports to allow this, or does it communicate directly PC to PC on my LAN via the router? That is what I would imagine anyway. I only have the zone server ports and port 9000 forwarded atm. Do I need to open 3306 or 9080 or anything?
And here are the config files I was trying.
Server PC Config (IP 192.168.1.101):
Code:
<?xml version="1.0">
<server>
<world>
<shortname>stormhaven</shortname>
<longname>Storm Haven - Custom Legit [sh.makeforum.org]</longname>
<!-- Loginserver information. Defaults shown -->
<loginserver>
<host>eqemulator.net</host>
<port>5998</port>
<account></account>
<password></password>
</loginserver>
<!-- Sets the ip/port for the tcp connections. Both zones and console (if enabled). Defaults are shown -->
<tcp ip="localhost" port="9000" telnet="disable"/>
<!-- Sets the shared key used by zone/launcher to connect to world -->
<key>some long random string</key>
<!-- Enable and set the port for the HTTP service. Defaults are shown -->
<http port="9080" enabled="true" mimefile="mime.types" />
</world>
<zones>
<defaultstatus>0</defaultstatus>
<!-- Sets port range for world to use to auto configure zones -->
<ports low="7000" high="7249"/>
</zones>
<!-- Database configuration, replaces db.ini. Defaults shown -->
<database>
<host>localhost</host>
<port>3306</port>
<username>un</username>
<password>pw</password>
<db>peq</db>
</database>
</server>
Secondary PC Config (IP 192.168.1.100):
Code:
<?xml version="1.0">
<server>
<world>
<shortname>stormhaven</shortname>
<longname>Storm Haven - Custom Legit [sh.makeforum.org]</longname>
<!-- Loginserver information. Defaults shown -->
<loginserver>
<host>eqemulator.net</host>
<port>5998</port>
<account></account>
<password></password>
</loginserver>
<!-- Sets the ip/port for the tcp connections. Both zones and console (if enabled). Defaults are shown -->
<tcp ip="192.168.1.101" port="9000" telnet="disable"/>
<!-- Sets the shared key used by zone/launcher to connect to world -->
<key>some long random string</key>
<!-- Enable and set the port for the HTTP service. Defaults are shown -->
<http port="9080" enabled="true" mimefile="mime.types" />
</world>
<zones>
<defaultstatus>0</defaultstatus>
<!-- Sets port range for world to use to auto configure zones -->
<ports low="7250" high="7500"/>
</zones>
<!-- Database configuration, replaces db.ini. Defaults shown -->
<database>
<host>192.168.1.101</host>
<port>3306</port>
<username>un</username>
<password>pw</password>
<db>peq</db>
</database>
<!-- Directory locations. Remote Directory -->
<directories>
<quests>\\192.168.1.101\c\eqemu\quests</quests> -->
</directories>
</server>
Next, I started the server from the server PC, but waited to hit <any key> to start zones loading until it was fully loaded on the Server PC and after I started zone.exe on the Secondary PC. I then hit the spacebar on the Server PC to start the dynamic zones all loading.
It seems like the results I am getting are that I can't zone to other zones and after trying multiple configs and setups, it seemed like it kept making the zones I set to load statically load with a dynamic port instead. I am guessing that is because it wasn't able to connect to the secondary zone server so it just loaded them dynamically.
Does anyone here know exactly what it takes to set one of these up the way I want? I have been able to get it to load all zones on the secondary PC, but I can't get it to split zones between the 2 PCs. I would MUCH appreciate if someone could provide a nice list of steps or walkthrough/guide on setting this up properly. Or if there is a post or wiki about it that someone knows of, I would appreciate being pointed in the right direction.
I know most of the preferred servers run multiple zone servers. If one of you guys see this and wouldn't mind telling me what I did wrong, that would be awesome!
Thanks in advance!
Oh, and here is a PM from Aramid that might give more info on what he found when testing this out.
Quote:
Yes, I was running all my zones on the 2nd server, but I generally like a challenge.
So, it took me until 3:00am to get it working, but I did and I will try to explain it as best as I can.
It seems it does NOT matter what you put in the eqemu_config.xml file as far as the port for the zones go. I had my 2nd server setup to use ports 7200-7300 and I put STATIC Zones in the DB and had them load up on 7200-7201-7203.
Well, The World Server wants to send you to that zone on the port it wants to. ie: I would log in my character and he was in POK. PoK was running on the 2nd server with ports 7200-7300 forwarded on the router. It would timeout and go back to the login screen. When checking the eqemu_debug_world.log, it would show me connection, being sent to pok, but not on the port that I booted the zone up with, but like 7009 which was not being forwarded to the 2nd server.
Anyway, to keep this from being a Novel, here what I finally did.
Set the configs up as you think they should be as far as the zone ports are concerned.
Create your 2 zone launchers in the DB and set the zones you want static on the 2nd server. and then configure your dynamic zones on the world server. I put my static on 7200-7201-7202.
The dynamics don't get assigned ports as you know.
Now, start the World Server and wait until it is fully booted up with the 5 dynamic zones.
Once it is completely booted up, boot up your 2nd Zone Server.
Now, run the Templates that comes with the Emulator and run on port 9080 by default. Go to the ZONES Link, not the status link and wait untill it shows you ALL of the zones it should be showing X Dynamics and 3 Statics. Notice what PORTS are assigned to them. These are the ports you must forward on your router to the machine where they are loaded up on... at least I thought.
I ended up having to forward the UDP ports before it would work. My router LinkSys RV082 has the TCP and UDP ports seperate and you can config each one individually. Once I forwarded the UDP ports, it all worked being setup the way I said above. The EMU Templates was what finally got me to thinking about which ports were forwarded to where... You'll see when you look at it... If you do get in touch with CaveDude, let me know what he tells you.
Sorry for the typos, but I'm half asleep now..
BTW, this was tested from the outside in. The servers are on my Comcast Cable connection and I logged in from my AT&T DSL line.
|