Sistema de Gerenciamento de Lan House - Algumas ajudinhas...

Iniciado por Evandro Abu Kamel, 14 de Abril de 2007, 22:14

tópico anterior - próximo tópico

Evandro Abu Kamel

Galera, olá para todos.
Estou fazendo um trabalho de escola (Colégio Técnico), e eu e meu grupo decidimos fazer um Sistema de Gerenciamento de Lan House em Shell Script e um site que irá relacionar com o sistema.

Estou seguindo as dicas da página abaixo:
http://www.vivaolinux.com.br/dicas/verDica.php?codigo=2198#

E hoje peguei a manha de usar o DCOP.
Nisso me veio uma dúvida: é possível uma máquina servidor usar o DCOP de outras máquinas?
Exemplo: O servidor dar "Pause" em TODOS os Amaroks que estiverem em execução?

Ao longo em que as tarefas ficarem difíceis demais pra mim, postarei aqui.

Agradeço.


Kamei Hyoga

Achei uma boa essa idéia do gerênciador de lan. Pena eu não poder ajudar, já que estou começando no shell script.

Evandro Abu Kamel

Valeu assim mesmo cara, a intenção. :)

Pessoal, preciso de um manual mais complexo do Kommander, não estou encontrando o que preciso.
Quero saber mais detalhes sobre as funções e os objetos.

O manual que vem no com ele é muito "pequeno".

Agradeço.


tfmoraes

Cara, de uma olhada no guiadohardware.net, o Morimoto já escreveu um artigo sobre DCOP e o kommander.

rafael###

Eu estou trabalhando numa lan house, a algum tempo deixei um tópico de como integrar scripts shell com rwindows, pq os micros clientes da lan são rwindows, será q tem como? Ou seria mais viável instalar uma interface com cara de Rwindows no Linux? E Evandro eu também preciso montar algo assim se quiser apoio só avisar!!!

Vlwww gente
*Só aproveitei o tópico ae, desculpe se atrapalhei o foco



GNU/Linux e SL um novo estilo de vida!!!!!!!!!!

_Luks

Citação de: rafael### online 19 de Abril de 2007, 07:40
Eu estou trabalhando numa lan house, a algum tempo deixei um tópico de como integrar scripts shell com rwindows, pq os micros clientes da lan são rwindows, será q tem como? Ou seria mais viável instalar uma interface com cara de Rwindows no Linux? E Evandro eu também preciso montar algo assim se quiser apoio só avisar!!!

Vlwww gente
*Só aproveitei o tópico ae, desculpe se atrapalhei o foco

tem o cygwin.
Bash no windows ;)

Evandro Abu Kamel

Rafael, valeu cara, e já que você ofereceu apoio, surgiu uma pequena pedra no nosso caminho (do grupo).
Como montar uma rede Linux? E configurar?

Perguntamos ao nosso professor de Redes, e ele simplesmente disse que estava aprendendo isso agora.  >:(

Poxa e agora?
Passei o link de um Livro Online de Redes, do GdH e no meio de umas experiências, meu colega bagaçou com o PC de ... nem tá dando o boot mais, nem Linux, ne Windows.

Alguém ajuda?

Agradeço.


rafael###

Evandro acredito que para uma lan house o ideal seria subnetar a rede, ou seja vc ter várias ranges de ip distribuídas por um grupo (categoria), aí vc dividiria o tráfego para que os usuáros de jogos por exemplo não dividissem conexão com os usuários que vão acessar a net, e vc também pode criar uma subnet para cada tipo de jogo!! Entendes?

Bom tentarei explicar melhor:

Em um endereço IP podemos identificar a que rede este pertence através da máscara e da classe de ranges!
(atualmente A, B e C são as mais usadas)

Exemplo de uma máscara que usa a classe C de ranges: 255.255.255.0

E isso quer dizer que, os 3 primeiros campos desse endereço, ou seja, os que estão com o 255 que endereçam a rede, identificam a rede!  E o zerinho seria a quantidade de hosts que eu vou poder ter, o máximo de hosts para uma classe destas é 254 pois o endereço de IP 192.168.0.0 normalmente usamos como endereço de rede e o endereço 192.168.0.255 usamos como gateway GERALMENTE mas pode mudar se você quiser!

resumo: mascara é utilizada para dividir grandes redes em redes menores , que ajuda a administração e a redução do trafego !

Aí entra o lado da performance como tinha dito, se todos usarem os mesmo tráfego de rede vira bagunça (= quando a galera de sp tem feriado e vai todo mundo pra praia hehehe).
Então, com redes, acontece a mesma coisa! Junta aquela montanha de usuarios, todo mundo querendo transmitir e receber na mesma rede...

O termo técnico para a divisão da rede, é subnet, que nada mais é do que pegar um endereço de rede e dividir em vários!

Agora um exemplo básico:

IP da rede: 192.168.0.0
Quantidade de máquinas: 9
Jogos: ação, futebol e estratégia
Nossa missão: Separar os grupos de jogos, de forma que um grupo não atrapalhe outro!
Ou seja ainda que esteja todo mundo jogando, a rede não vai ficar tão lenta!

Primeiro passo! Saber como calcular a subnet!

-Nós temos um endereço IP e precisamos de 3 subredes!
-Para fazer isso, vamos dividir esse endereço em 4 subredes!

E tem um detalhe importante!!!
Nunca subnetar com número impar!!!!

Por exemplo, eu não tenho como dividir em 3 subredes! Pois eu só tenho 2 controles! 0 e 1
Então, sempre vai ser assim, se eu precisar de 3 subredes, vou dividir em 4; se eu precisar de 6, vou dividir em 8... e por ai vai!

Os endereços IPs, dentro do computador, não são interpretados com esses números 192.168, e sim com a linguagem de máquina, ou seja, os bits... 0's e 1's!
Esses bits também são conhecidos como números binários, pois eles só possuem 2 valores!!! Ou 0 (zero) ou 1 (um)!!!
Então, para calcular a subnet, vamos ter que fazer uma pergunta que nos ajuda na hora de calcular a subnet!


Dois elevado a que número é igual ao número de subrede que eu quero?

2^x = subredes que quero

Citar
log  (numero de subredes) = x
       2

Se é q me entede!

Então, eu quero 4 subredes!

2^x = 4
x=2

Convertendo a máscara 255.255.255.0 em binário vai dar 11111111.11111111.11111111.00000000 !!!!

Então, lá no exemplo temos o IP 192.168.0.0 com mascara de rede 255.255.255.0!

De acordo com essa informação, sabemos que essa é uma rede de classe C, onde os 3 bloquinhos de 255 vão endereçar a rede! Só que, para dividir a rede, teremos que pegar alguns zeros da parte do host emprestado e colocar 1 (um). E, pela nossas contas, já que queremos 4 subredes, vamos pegar 2 bits, ou seja, 2 zeros da parte de host!

No caso, pegamos 2 desses zeros, porque cada um deles, nos dá possibilidaes de duas redes!
E como queremos quatro, temos que pegar dois, que vai nos dar as quatro possibilidades de redes que queremos!

Atualmente temos assim:

11111111.11111111.11111111.00000000

Como queremos 4 subredes, vamos pegar dois bits (que seriam dois zeros) da parte de host! E vai ficar assim:

11111111.11111111.11111111.11000000

Vejam que no último octeto (que tem esse nome porque, se contarem, tem 8 numeros ali), agora temos dois 1!
E o restante de zeros que sobraram, no caso, 6, serão destinados aos hosts!

Agora analisando as possibilidades de máscaras temos isso assim:

11111111.11111111.11111111.00000000 - 1ª sub

11111111.11111111.11111111.01000000 - 2ª sub

11111111.11111111.11111111.10000000 - 3ª sub

11111111.11111111.11111111.11000000 - 4ª sub

Vejam que usei as possibilidades que tenho, para criar as quatro subredes!

Eu falei que todos esses 255 são um, em binario, certo?
Eu chego ao total 255 pegando a soma de todos os bits... desde de 2^0 até 2^7

128 + 64 + 32 + 16 + 8 + 4 + 2 + 1 = 255

Então, nossa máscara fica:

255.255.255.192

pois 11000000 = 128 + 64 + 0 + 0 + 0 + 0 + 0 + 0 = 192

Sobraram 6 zeros! Quantos hosts eu vou poder ter em cada subrede dessas que criamos?

256 - 192 = 64

255 é o número máximo massss o 0 tmbm é número então da 256!! Contamos hosts desde o 0!!

A partir do momento que eu subneto um IP, ele perde a classe!

No caso do nosso exemplo, o IP que antes era 192.168.0.0/24 (o /24 é quantidade de bits da mascara endereçados a rede), passa a ser 192.168.0.0/26...onde esse 26 é a indicação de que a mascara mudou... e agora estamos falando de uma rede subnetada!

Se contarmos a quantidade de 1's dos 255 originais, temos 24! Aí, subnetamos, acrescenta mais dois... então fica /26

Então, agora só temos que descobrir quais serão as redes que vamos ter!

Vai ficar assim:

Citar
Primeira Subrede:

Rede: 192.168.0.0 ==> endereço da rede, é reservado
192.168.0.1 até 192.168.0.62 ==> endereços de hosts                 >>> 62 hosts ao todo
Broadcast: 192.168.0.63 ==> endereço de broadcast

Segunda:

Rede: 192.168.0.64 ==> endereço da rede, é reservado
192.168.0.65 até 192.168.0.126 ==> endereços de hosts         >>> + 62 hosts na outra
Broadcast: 192.168.0.127 ==> endereço de broadcast

Terceira:

Rede: 192.168.0.128 ==> endereço da rede, é reservado
192.168.0.129 até 192.168.0.190 ==> endereços de hosts    >>>> + 62 hosts
Broadcast: 192.168.0.191 ==> endereço de broadcast

Quarta:

Rede: 192.168.0.192 ==> endereço da rede, é reservado
192.168.0.193 até 192.168.0.254 ==> endereços de hosts       >>>> + 62 hosts
Broadcast: 192.168.0.255 ==> endereço de broadcast

Então vamos lá... já estou com as redes divididas! Mas da forma como está as redes não falam entre si, e nem acessam a net!
O que, numa lan house é importante! (lan house sem net, serve pra que?)
Então, vai entrar em ação o gateway, que é responsável por fazer com que os pacotes da rede local cheguem em outra rede, ou na net!
Então, para cada subrede da lan, para que elas possam sair para a net... teremos que configurar um gateway para elas!

Como as redes estão incomunicáveis, o gateway vai fazer o roteamento, que nada mais é do que transmitir dados de uma rede para outra!

O gateway mantém uma tabela sobre as rotas que os pacotes vão tomar para chegar ao seu destino, decidindo qual o melhor caminho para o pacote!
Então, para cada uma das subredes, vamos definir quais serão as rotas (caminhos) para as outras subredes e a net!

Na Lan house, temos uma máquina que se comunica com a Internet... e ela vai fazer o papel de gateway para as subredes!!

Nessa maquina, existem 4 placas de rede, onde cada uma terá o IP de uma subrede!

Porque 4?
Poderia ser uma placa (mas a carga de trafego deixaria o tempo de vida da placa menor) ou duas!

Então, na nossa maquina, que acessa a internet, teriamos assim:


Interface jogo ação (subrede 1) - 192.168.100.1
Interface jogo estratégia (subrede 2) - 192.168.100.65
Interface jogo futebol (subrede 3) - 192.168.100.129

Com isso, eu tenho a comunicação entre as máquinas das subredes através desses IPs!
Então, esses IPs que coloquei, vão ser os IPs do gateway!

Lembrando que, o gateway, nem sempre precisa ser o primeiro endereço! Geralmente os ADMs colocam o primeiro ou o ultimo endereço disponivel para hosts, para facilitar!

E, para configurar essas placas na máquina server... basta usar o comando ifconfig, ou então, configurar o arquivo /etc/network/interfaces que é bem fácil e vc encontrará em vários sites!

tem q configurar isso no server gateway!!!!!!

Agora, nas subredes, temos que configurar o gateway...
Pois as subredes estão separadas, mas não falam com a net... então, vao precisar de um gateway :)

Agora, as máquinas das subredes, falam com o gateway... mas não sabem ir para a net...
Pois não falamos para as maquinas das subredes, quem será o gateway!

Então, o que temos que fazer agora... é falar para as máquinas das subredes, por qual IP elas irão sair para a net!
Prá configurar o gateway nas máquinas das subredes:

# ifconfig <interface> <primeiro host> netmask <máscara> broadcast <ultimo da máscara>

# ifconfig eth0 192.168.100.1 netmask 255.255.255.192 broadcast 192.168.100.63
# ifconfig eth1 192.168.100.65 netmask 255.255.255.192 broadcast 192.168.100.127
# ifconfig eth2 192.168.100.129 netmask 255.255.255.192 broadcast 192.168.100.191

Vejam que é o IP que coloquei acima! E, para não ficar bagunça, eu tive que especificar qual é a máscarae o broadcast!
Tive que fazer isso pois dividimos as redes... e, se não especificarmos... ele vai configurar o padrão!

Procure termos como broadcaste e gateway no guaidohardware !! Lá tem explicações legais sobre estes termos!

Agora que eu já tenho o gateway, tenho que adicionar uma rota la nas maquinas das subredes!
Quando eu falo em adicionar uma rota, quero dizer que estou especificando um caminho para meu pacotinho passar para chegar em um determinado lugar!

Adicionando uma rota:

# route add -net <endereço da rede> netmask <mascarinha> device <interface>

# route add -net 192.168.100.0 netmask 255.255.255.192 device eth0

Falando dessas opções:
add - para adicionar a rota
net - qual é a rede
netmask - a máscara da rede
device - qual a interface que será usada para transmitir

Então, galera, nas nossas maquinas, já temos as rotas para os nossos pacotes sairem/entrarem!
Só que, da forma como está... temos o gateway que sabe o caminho para todas as redes..
Mas um pacote ainda não vai de uma rede para outra!
É como se ele tivesse todas as estradas, e elas tem que ser interligadas por uma ponte... só que a ponte ainda não existe!!!

O que precisamos fazer agora, pessoas, é definir que os pacotes podem repassar de uma rede para outra, porque eu já tenho os caminhos para elas!
E, essa tal ponte que comentei, é muito facil de construir!
Basta usar o comando:

# echo 1 > /proc/sys/net/ipv4/ip_forward

Por padrão, o sistema não repassa pacote de uma rede para outra... então, ainda que eu tenha o gateway, os pacotes não serão repassados, se o repasse não estiver habilitado!

Com isso, o sistema sabe que pode repassar pacote de uma rede a outra!
Se eu não fizer isso... eu tenho o gateway, mas o kernel ainda não sabe que deve repassar os pacotes!!

Para consultar as rotas:

route -n

*onde, o -n é pra ele não tentar resolver nomes!

Dica:

o /proc/sys/net/ip_forward volta a ser 0 quando o micro é rebootado!
mas eu posso passar o valor 1 (um) para o kernel, editando um arquivo chamado /etc/sysctl.conf, basta editar o arquivo e descomentar a linha:

#net.ipv4.conf.default.forwarding=1


Adicionar um gateway padrão para sua máquina:

#route add default gw <ip do gateway>




Bom espero que tenham gostado me baseei em uma aula minha de uma professora que gosto muito, qualquer dúvida me mandem mensagens desculpa ter ficado tão grande a explicação mas é que tem vários conceitos!!!



fllwwsss!!!



GNU/Linux e SL um novo estilo de vida!!!!!!!!!!

rafael###

Citação de: _Luks online 19 de Abril de 2007, 09:41
Citação de: rafael### online 19 de Abril de 2007, 07:40
Eu estou trabalhando numa lan house, a algum tempo deixei um tópico de como integrar scripts shell com rwindows, pq os micros clientes da lan são rwindows, será q tem como? Ou seria mais viável instalar uma interface com cara de Rwindows no Linux? E Evandro eu também preciso montar algo assim se quiser apoio só avisar!!!

Vlwww gente
*Só aproveitei o tópico ae, desculpe se atrapalhei o foco

tem o cygwin.
Bash no windows ;)


Cara mas eu rodo scripts do servidor e consigo integrar ele ao windows? Tipo faz de conta que eu tenha um script no servidor que desliga o micro, quando eu rodar por cygwin no windows ele vai desligar o cliente rwindows?? Com um halt por exemplo?

Desculpa a pergunta besta mas é que eu acho q não irá funcionar para o q eu quero, eu queria integrar uma aplicação servidor em Linux e uma cliente da mesma no rwindows, e rodar rotinas linux dentro do windows com esta aplicação servidora, acho q eu vou ter q fazer algo web porque isso que eu estou querendo é meio impossível :-(!

Flwwss



GNU/Linux e SL um novo estilo de vida!!!!!!!!!!

Evandro Abu Kamel

Rafael##, valeu mesmo cara, isso vai ajudar bastante.  :D

Valeu. \o/


Evandro Abu Kamel

Pessoal, tô precisando corrigir isto urgente.
Sobre o Kommander.

O código de um botão:


@execBegin
for(( CONTCLI=3 ; CONTCLI < 1000001 ; $CONTCLI=$CONTCLI+2 ))
do
@tbClientes.insertRow($CONTCLI,1); # Insere uma linha na tabela

@tbClientes.setCellText($CONTCLI,0,@exec(cat clientes.list | head -$CONTCLI clientes.list | tail -$CONTCLI clientes.list | cut -f 1 -d "|" -s));

done
@execEnd


@tbClientes é a tabela
clientes.list é um arquivo de cadastro de clientes onde os campos são separados por | e começa na linha 3 e vai de 2 em 2 linhas

@exec(cat clientes.list | head -$CONTCLI clientes.list | tail -$CONTCLI clientes.list | cut -f 1 -d "|" -s)
-> Imprime o 1º campo da linha tal, seguindo o "for"

Porém, neste último está aparecedo na 1ª linha e 1ª coluna da tabela a string "$COLLOGIN", que usei anteriormente.

Eu quero imprimir o 1º campo do registro.

Alguém ajuda?
Preciso disso urgente.

Agradeço.


Evandro Abu Kamel

Outra coisa, tem como deixar um aplicativo do Lazarus com a mesma aparência que no Kommander?