Olá pessoal, tudo bem? Estou querendo montar um projeto para minha faculdade. Eu já sei o que quero montar, porem caso vcs tenham alguma outra ideia alem da qual irei descrever para vcs e solicitar ajuda, por favor me passem.

O que quero fazer é o seguinte:
Quero colocar dois servidores rodando um mesmo programa (como um banco de dados por exemplo), de forma que o servidores se atualizem para que as mesmas informações que um servidor tenha o outro tbm tenha. Cada um dos servidores so podera ser acessado por uma faixa especifica de ip (por exemplo: um servidor será acessado por usuários com faixa de ip 60.x.x.x até a faixa: 170.x.x.x, e o outro servidor sera acessado pela faixa de ip: 195.x.x.x ate 249.x.x.x), para pode diminuir o fluxo em ambos os servidores. O usuário (de fora da rede) acessa atraves da nuvem um servidor de autenticação que vai solicitar o nome de usuário e senha. Esse servidor de autenticação irá verificar qual o ip do usuário, e irá no servidor que roda o programa correspondente a faixa de ip desse usuário. Caso o usuário esteja cadastro nesse servidor do programa, o servidor de autenticação libera o acesso do usuário a ele, caso contrario, o servidor rejeita o acesso do usuário. Os servidores devem se atualizar para que, caso um dos servidores caia, ao inves dos usuários ficarem sem acesso ao servidor, o servidor da outra faixa de ip assuma e libere o acesso a ele das 2 faixas de ips (a dele normal, e a do outro servidor que parou de funcionar). Nessa mesma rede eu quero colocar um outro servidor, para gerenciar o trafego (verificar a comunicação entre os servidores, os dados que estao entrando na rede, que estao saindo, protocolos, etc).

Dessa forma entao a rede terá 4 pcs: Um servidor de autenticação, para verificar se o usuário esta cadastrado na rede ou não e verificar o ip de acesso do usuário e em qual dos servidores está essa faixa de ips, um servidor para gerenciar o trafego da rede, e os outros 2 servidores espelhados que seram acessados pelos usuários e irão se atuliazar um com a informação do outro.

Nessa situação, gostaria que vcs me ajudassem com relação a(ao):

* programa de banco de dados que ira rodar nos 2 servidores e os quais as informações que um servidor tiver, o outro também terá. (já que o foco do trabalho é a parte de sistemas distribuidos e o gerenciamento da rede, e não a programação do banco de dados).

* um software gratuito que faça a atualização do conteudo do banco de dados nos dois servidores, e como usá-lo.

*como montar a estrutura dessa rede.

* um software gratuito que faça a gerencia do conteudo da rede (eu conheço o wireshark, porem eu sei usar o wireshark para analisar o conteu apenas do servidor no qual ele está instalado, e não do trafego que passar por um switch, por exemplo).

* um software para fazer a autenticação dos usuários nos servidores.

P.S.: esse projeto é apenas para ilustrar o funcionamento de um sistema distribuido e gerenciamento de uma rede contendo o tal sistema. Caso vcs tenham alguma outra ideia de como fazer essa ilustração, estou aberto a esculata-las.

Desde já agradeço a atenção.