December 14, 2016 | Author: 3Way Networks | Category: N/A
Esta apostila faz parte do curso de Linux Network Administration da 3WAY Networks Objetivos do curso: Saber planejar, ...
Apostila
Linux Networks Administration
www.3way.com.br
Linguagem de Programação Java Linux Network Administration
Este material pode ser distribuído. Cursonão Especialista em Redes Somente poderá ser utilizado por alunos da 3Way3232 Networks.
[email protected] | (62) 9333 www.3way.com.br //atribuindo valor a variável referência Carro carro1 = new Carro(); carro1.ano = "2001"; 36 Convenções ......................................................................................................................................... carro1.modelo= "fusca"; 36 Legendas........................................................................................................................................... carro1.cor = "prata"; 36 Cenário ............................................................................................................................................. 48 1. Redes TCP/IP ................................................................................................................................. 48 1.1. Introdução .................................................................................................................................
Sumário
48 1.1.1. TCP/IP ................................................................................................................................ 59 1.2. Conceitos básicos ...................................................................................................................... 1.3. O protocolo IP .........................................................................................................................611 1.4. O Protocolo TCP .....................................................................................................................711 1.5. Protocolos de rede ...................................................................................................................712 1.5.1. O modelo OSI ..................................................................................................................913 1.5.2. Modelo TCP/IP .................................................................................................................11 14 Figura 2.4 – Layout Memória após inicialização 12 1.6. O Endereço IP ......................................................................................................................... 16 //criando novo alias 1.7. Classes de Endereçamento IP ..................................................................................................12 16 carro2 = carro1; 1.8.Carro Endereços de Rede e Broadcast ..............................................................................................13 17 1.9. Máscara de rede.......................................................................................................................13 18 1.10. Sub-rede ................................................................................................................................14 18 1.11. Endereços IP para redes privadas ..........................................................................................16 21 1.12. O Número de Porta................................................................................................................18 21 1.13. Roteamento ...........................................................................................................................18 21 1.14. DNS .......................................................................................................................................18 22 1.15. Arquivos Gerais ....................................................................................................................19 22 1.16. Configuração TCP/IP ...........................................................................................................20 23 1.16.1. Hostname ........................................................................................................................20 23 21 1.16.2. Interface de Rede ............................................................................................................ 24 1.17.3. Configuração das rotas ...................................................................................................22 26 24 1.17.4. Resolução de Figura Nomes ...................................................................................................... 28 2.5 – Layout Memória duas variáveis referência para o mesmo objeto 1.18. Inetd / Xinetd.........................................................................................................................24 28 28 1.19. Utilitários de redes ............................................................................................................... 31 28 host ................................................................................................................................. 31 2.3 1.19.1. Membros de Instância 28 1.19.2. netstat ............................................................................................................................. 31 Cada objeto criado deverá ter sua própria instância de variáveis Os valores das variáveis 29 1.19.3. tcpdump 32 (atributos) definidas pela.......................................................................................................................... classe. Os métodos definem o comportamento de um em um objeto constituem 30 1.19.4. traceroute ........................................................................................................................ 33 objeto. Isto é importante, pois denota que um método pertence a cada objeto da o seu estado. 30 nmap ............................................................................................................................... 33 classe. 1.19.5. Porém não devemos confundir isto com a implementação do método, que Dois objetos distintos32 têm 1.20. Laboratório ........................................................................................................................... 35 é compartilhada por todas as instâncias da classe. o mesmo estado se suas 1.21. Exercícios .............................................................................................................................35 37 variáveis membro têm 2. Servidor SSH 39os 37 2.3.1 Invocação de................................................................................................................................ Métodos mesmos valores.37 se comunicam pela........................................................................................................ troca de mensagens, isto significa que um 2.1. Objetos Instalação e configuração 39 objeto ter que ............................................................................................................................. mostrar um comportamento particular invocando uma 2.2.pode Laboratório 40 38 operação apropriada................................................................................................................................ que foi definida no objeto. Em Java, isto é feito pela 2.3. Exercícios 41 39 chamada de um método em um objeto usando o operador binário "." (ponto), 3. Sistema de Nomes de Domínio .................................................................................................... 42 devendo especificar mensagem completa: o objeto que é o recebedor da 3.1. Serviços de aNomes - DNS ...................................................................................................... 42 mensagem, o método a ser invocado e os argumentos para o método (se houver). 3.2. Instalação do BIND ................................................................................................................. 43 O método invocado no recebedor pode..................................................................................................... também enviar informações de volta ao 3.2.1. Instalação código fonte 43 objeto chamador através de um valor de retorno. O método chamado deve ser 3.2.2. Instalação automatizada.................................................................................................... 44 um que esteja definido pelo objeto. 3.3. Hierarquia DNS ....................................................................................................................... 44 3.3.1 Hierarquia de Consultas Todos DNSos ........................................................................................... 45 direitos reservados a 3Way Networks Seja um Profissional Aprendendo com Profissionais
Seja um Profissional Aprendendo com Profissionais www.3way.com.br
212 1
Linguagem de Programação Java Linux Network Administration
Este material pode ser distribuído. Cursonão Especialista em Redes Somente poderá ser utilizado por alunos da 3Way3232 Networks.
[email protected] | (62) 9333 www.3way.com.br //atribuindo valor a variável referência Carro carro1 = new Carro(); carro1.ano = "2001"; carro1.modelo= "fusca"; carro1.cor = "prata";
Figura 2.4 – Layout Memória após inicialização
//criando novo alias Carro carro2 = carro1;
O ambiente acima será integralmente virtualizado por ferramentas como VirtualBox ou VMWare Server. A máquina maqX.3waylocal.net.br será muito utilizada no primeiro módulo (Linux Figura 2.5 – Layout Memória duas variáveis referência para o mesmo objeto System Administrator), já a máquina maqY.3waylocal.net.br será utilizada nos outros dois módulos (Linux Network e Security Administrator) juntamente com as máquinas clientes Windows (10.0.0.W) e Linux (10.0.0.Z).
2.3
Membros de Instância
Cada objeto criado deverá ter sua própria instância de variáveis (atributos) definidas pela classe. Os métodos definem o comportamento de um objeto. Isto é importante, pois denota que um método pertence a cada objeto da classe. Porém não devemos confundir isto com a implementação do método, que é compartilhada por todas as instâncias da classe. 2.3.1 Invocação de Métodos Objetos se comunicam pela troca de mensagens, isto significa que um objeto pode ter que mostrar um comportamento particular invocando uma operação apropriada que foi definida no objeto. Em Java, isto é feito pela chamada de um método em um objeto usando o operador binário "." (ponto), devendo especificar a mensagem completa: o objeto que é o recebedor da mensagem, o método a ser invocado e os argumentos para o método (se houver). O método invocado no recebedor pode também enviar informações de volta ao objeto chamador através de um valor de retorno. O método chamado deve ser um que esteja definido pelo objeto.
Os valores das variáveis em um objeto constituem o seu estado. Dois objetos distintos têm o mesmo estado se suas variáveis membro têm os mesmos valores.
Todos os direitos reservados a 3Way Networks
Seja um Profissional Aprendendo com Profissionais Seja um Profissional Aprendendo com Profissionais www.3way.com.br
312 6
Linguagem de Programação Java Linux Network Administration
Este material pode ser distribuído. Cursonão Especialista em Redes Somente poderá ser utilizado por alunos da 3Way3232 Networks.
[email protected] | (62) 9333 www.3way.com.br //atribuindo valor a variável referência Carro carro1 = new Carro(); carro1.ano = "2001"; carro1.modelo= "fusca"; carro1.cor = "prata";
1. REDES TCP/IP
Figura 2.4 – Layout Memória após inicialização
//criando novo alias Carro carro2 = carro1;
Este capítulo é uma introdução aos conceitos do protocolo TCP/IP, tal como números IP, portas TCP, serviços, roteamento, ferramentas, etc.
1.1. INTRODUÇÃO 1.1.1. TCP/IP A pilha de protocolos TCP/IP foi originada nos Estados Unidos na ARPANET, uma rede militar americana, e pouco a pouco foi sendo ampliada por centenas de universidades e repartições públicas que foram sendo conectadas a ela Figura 2.5 –privadas Layout Memória variáveismeios referência de para ocomunicação. mesmo objeto através de linhas telefônicas eduas outros Mais tarde essa rede deu origem a grande rede mundial de computadores, a Internet. 2.3
O objetivo do TCP/IP era conectar várias redes locais e esse é o motivo de o Membros de Instância
objeto criado deveráinter-redes). ter sua própria Os valoresrefere-se das variáveis nome Cada ser Internet (ou seja, Na instância verdade,deo variáveis acrônimo TCP/IP a (atributos) definidas pela classe. Os métodos definem o comportamento de um objeto constituem uma grande família de protocolos que funciona em conjunto em paraumpermitir uma objeto. Isto é importante, pois denota que um método pertence a cada objeto da o seu estado. comunicação completa que englobam os protocolos TCP, que IP e outros como o ARP classe. Porém não devemos confundir isto com a implementação do método, Dois objetos distintos têm Resolution Protocol), ICMP (Internet Control Message Protocol), DNS é (Address compartilhada por todas as instâncias da classe.
o mesmo estado se suas variáveis membro têm os 2.3.1 Invocação de Métodos mesmos O projeto TCP/IPpela tevetroca suadeorigem por isto volta de 1969, porém, esta redevalores. tornouObjetos se comunicam mensagens, significa que um
(Domain Name Service) e outros.
objeto pode ter que somente mostrar uma comportamento particular invocando se operacional partir de 1975 quando sua uma funcionalidade já estava operação apropriada que foi definida no objeto. Em Java, isto é feito pela comprovada. Por volta de 1983, o novo modelo de referência TCP/IP estava chamada de um método em um objeto usando o operador binário "." (ponto), completamente padronizado e disponível publicamente, permitindo sua rápida devendo especificar a mensagem completa: o objeto que é o recebedor da popularização. mensagem, o método a ser invocado e os argumentos para o método (se houver). O método Atualmente invocado no recebedor pode também enviar informações de volta ao é utilizada a versão 4 do protocolo, no entanto, a versão 6 já foi objeto chamador através de um valor de retorno. O método chamado deve ser concebida para pelo suprir falhas e limitações da versão anterior. Já é possível ver um que esteja definido objeto.
endereçamentos IPv6 em pleno funcionamento e equipamentos que já trabalham com Todos os direitos reservados a 3Way Networks
Seja um Profissional Aprendendo com Profissionais Seja um Profissional Aprendendo com Profissionais www.3way.com.br
412 7
Linguagem de Programação Java Linux Network Administration
Este material pode ser distribuído. Cursonão Especialista em Redes Somente poderá ser utilizado por alunos da 3Way3232 Networks.
[email protected] | (62) 9333 www.3way.com.br
essa
//atribuindo valor a variável referência Carropilha carro1 new Carro(); nova de =protocolos. Esse material abordará carro1.ano = "2001"; carro1.modelo= "fusca"; carro1.cor = "prata";
a versão 4.
1.2. CONCEITOS BÁSICOS
Todo computador em uma rede TCP/IP é denominado host e para entender melhor uma rede, é necessário classificar cada host que a compõe, cada um desenvolve tarefas específicas e variadas dentro desse contexto. Podemos classificálos como: servidor, cliente, roteador (gateway) e firewall. O que diferencia um servidor de um cliente é o fato de o primeiro sempre estar aguardando solicitações vindas do segundo ou de outro servidor (neste caso atuando como cliente). Por exemplo, um servidor Web (HTTP) retornará o conteúdo Figura 2.4 – Layout Memória após inicialização de uma página Web quando algum cliente requisitá-lo. //criando novo alias Carro carro2 = carro1;
Cliente/Servidor
Um roteador tem a função de repassar pacotes de uma rede para outra através da checagem dos endereços de destino. Dentro desta funcionalidade o roteador funciona como uma ligação entre uma rede e outra, portanto geralmente utiliza de tecnologias e protocolos diferentes. Figura 2.5 – Layout Memória duas variáveis referência para o mesmo objeto 2.3
Membros de Instância
Cada objeto criado deverá ter sua própria instância de variáveis (atributos) definidas pela classe. Os métodos definem o comportamento de um objeto. Isto é importante, pois denota que um método pertence a cada objeto da classe. Porém não devemos confundir isto com a implementação do método, que é compartilhada por todas as instâncias da classe. 2.3.1 Invocação de Métodos Objetos se comunicam pela troca de mensagens, isto significa que um objeto pode ter que mostrar um comportamento particular invocando uma operação apropriada que foi definida no objeto. Em Java, isto é feito pela chamada de um método em um objeto usando o operador binário "." (ponto), devendo especificar a mensagem completa: o objeto que é o recebedor da mensagem, o método a ser invocado e os argumentos para o método (se houver). Interligação duas redes por um roteador O método invocado no recebedor pode tambémdeenviar informações de volta ao objeto chamador através de um valor de retorno. O método chamado deve ser um que esteja definido pelo objeto.
Os valores das variáveis em um objeto constituem o seu estado. Dois objetos distintos têm o mesmo estado se suas variáveis membro têm os mesmos valores.
Um firewall é um computador conectado a uma rede local e ao mesmo a Todos os direitos reservados a 3Way Networks
Seja um Profissional Aprendendo com Profissionais Seja um Profissional Aprendendo com Profissionais www.3way.com.br
512 8
Linguagem de Programação Java Linux Network Administration
Este material pode ser distribuído. Cursonão Especialista em Redes Somente poderá ser utilizado por alunos da 3Way3232 Networks.
[email protected] | (62) 9333 www.3way.com.br //atribuindo valor a variável referência carro1 new Carro(); tempoCarro à uma rede =externa. Ele possui a função de filtrar determinados carro1.ano = "2001"; rede carro1.modelo= interna não necessita "fusca"; compartilhar externamente, ou seja, o carro1.cor = "prata"; permitir ou negar determinados serviços para uma rede externa.
serviços que a firewall pode
Figura 2.4 – Layout Memória após inicialização
//criando novo alias Carro carro2 = carro1; Filtragem de uma rede interna por fillustração de um firewall filtrando uma rede interna.
A verdade é que, em uma rede TCP/IP, um hospedeiro pode ter a função de qualquer uma dos itens descritos anteriormente. Um mesmo computador pode ser um servidor para um serviço ao mesmo tempo que atua como cliente de outro e ao mesmo tempo ele pode estar realizando roteamento de pacotes de uma rede para outra.
1.3. O PROTOCOLO IP Figura 2.5 – Layout Memória duas variáveis referência para o mesmo objeto
O protocolo IP (Protocolo Internet) é a chave da interligação de redes que utilizam tecnologias e hardwares diferentes. Uma das características mais 2.3 Membros de Instância importantes do Protocolo IP é a divisão da informação a ser transportada de um ponto Cada objeto criado deverá ter sua própria instância de variáveis Os valores das variáveis ao outro em fragmentos denominados datagramas. (atributos) definidas pela classe. Os métodos definem o comportamento de um em um objeto constituem objeto. IstoTodo é importante, pois denota que um método pertence aecada objetoNo da cabeçalho datagrama é dividido em cabeçalho corpo. encontra-se o seu estado. classe. Porém não devemos confundir isto com a implementação do método, que informações como: origem do pacote, destino do pacote e informações específicas Dois objetos distintosdo têm é compartilhada por todas as instâncias da classe. protocolo; já o corpo do datagrama é utilizado para armazenar os odados, seja, mesmo ou estado se ao suas variáveis têma os mandar um email a junção do corpo de todos os datagramas formará, nomembro destino, 2.3.1 Invocação de Métodos mesmos valores. mensagem do email enviada pela origem. Objetosoriginal se comunicam pela troca de mensagens, isto significa que um objeto pode que mostrar umuma comportamento particular invocando O ter datagrama tem estrutura padronizada pelo uma protocolo IP que faz com operação apropriada que foi definida no objeto. Em Java, isto é feito pela que o endereçamento independente do hardware utilizado. chamada de um método em seja um objeto usando o operador binário "." (ponto), A principal vantagem do IP está na transformação de redeso diferentes devendo especificar a mensagem completa: objeto que ée ofisicamente recebedor daseparadas em uma rede mensagem, o método homogênea. a ser invocado e os argumentos para o método (se houver). funcionalmente O método invocado no recebedor pode também enviar informações de volta ao objeto chamador através de um valor de retorno. O método chamado deve ser um que esteja definido pelo objeto. Todos os direitos reservados a 3Way Networks
Seja um Profissional Aprendendo com Profissionais Seja um Profissional Aprendendo com Profissionais www.3way.com.br
612 9
Linguagem de Programação Java Linux Network Administration
Este material pode ser distribuído. Cursonão Especialista em Redes Somente poderá ser utilizado por alunos da 3Way3232 Networks.
[email protected] | (62) 9333 www.3way.com.br //atribuindo valor a variável referência Carro carro1 = new Carro(); carro1.ano = "2001"; carro1.modelo= "fusca"; carro1.cor "prata"; O protocolo= TCP (Protocolo de Controle
1.4. O PROTOCOLO TCP
de Transmissão) tem como objetivo controlar os dados quando estão em tráfego de forma que todos dados enviados de uma máquina devem ser divididos em pacotes pelo emissor, podendo trafegar por caminhos distintos e finalmente serem remontados corretamente pelo receptor. O protocolo também cuida da perda de pacotes no trajeto entre um ponto ao outro, solicitando a retransmissão do pacote ao remetente. Vejamos um exemplo: duas redes compartilham um mesmo roteador, ponto de passagem entre elas. Se várias máquinas de uma rede enviarem pacotes para outra máquina na outra rede, obviamente estes pacotes passarão pelo roteador e se o tráfego 2.4 – Layout Memória inicialização gerado for intenso e acima daFigura capacidade de após repasse do roteador, este poderá ficar //criando novo alias sem espaço livre no buffer, sendo incapaz de retransmiti-los, pois o protocolo IP Carro carro2 = carro1; simplesmente descarta os pacotes excedentes. Porém, o protocolo TCP faz com que a máquina cheque a integridade dos dados e solicita a retransmissão dos faltantes em caso de erros. Assim, toda vez que um pacote é enviado na rede, o protocolo TCP cuida das confirmações de recebimento. Por essa característica é dito que o protocolo TCP é um serviço confiável sobre o protocolo IP. Outra característica importante do TCP é o controle de fluxo. Ao enviar dados na rede, a parte receptora indica à parte transmissora a quantidade de bytes que podem ser recebidos após os últimos dados recebidos, assim evita-se ultrapassar o limite da capacidade de buffer da máquina receptora.
1.5. PROTOCOLOS DE REDE Figura 2.5 – Layout Memória duas variáveis referência para o mesmo objeto Para toda comunicação existe uma linguagem. Comunicação é impossível
2.3 Membros sem algum tipodedeInstância linguagem ou código preestabelecido. Em redes de computadores,
Cada objeto deverá tersão suachamados própria instância de variáveisÉ, portanto, Os valores das variáveis estes códigos de criado comunicação de protocolos. através das (atributos) definidas pela classe. Os métodos definem o comportamento de um em um objeto constituem regras estabelecidas pelos protocolos que os dados fluem de modo organizado e sem objeto. Isto é importante, pois denota que um método pertence a cada objeto da o seu estado. perdas. classe. Porém não devemos confundir isto com a implementação do método, que Dois objetos distintos têm é compartilhada por todas as instâncias da classe.é importante e está baseada em uma série de A hierarquia de Protocolo
o mesmo estado se suas
camadas (ou níveis) que são dispostas uma a cima da outra, de forma semelhante variáveis membro têmaos 2.3.1 Invocação de Métodos uma pilha deseprotocolos. O número, o nome, isto o conteúdo e um a função de cada valores. camada mesmos Objetos comunicam pela troca de mensagens, significa que diferepode de teruma outra. Porém,particular o objetivo de uma cada camada é oferecer objeto que rede mostrarpara um comportamento invocando operação apropriada que foi para definida no objeto. superiores, Em Java, isto tornando-se é feito pela um filtro e conversor determinados serviços as camadas chamada de um método em um objeto usando o operador binário "." (ponto), de dados para a camada superior. devendo especificar a mensagem completa: o objeto que é o recebedor da âmbito dae os rede, a camada comunica com a camada n da outra mensagem,No o método a serlógico invocado argumentos para onmétodo (se houver). Omáquina. método invocado no recebedor pode também usadas enviar informações de volta ao As regras e convenções nessa comunicação são chamadas de objeto chamador através de um valor de retorno. O método chamado deve ser protocolo. Resumidamente, um protocolo é um conjunto de regras sobre o modo um que esteja definido pelo objeto. como se dará a comunicação entre as partes envolvidas. Assim, ao comunicar-se com Todos os direitos reservados a 3Way Networks
Seja um Profissional Aprendendo com Profissionais Seja um Profissional Aprendendo com Profissionais www.3way.com.br
71210
Linguagem de Programação Java
//atribuindo valor a variável referência Carro carro1 = new Carro(); carro1.ano = "2001"; carro1.modelo= "fusca"; carro1.cor = "prata";
Figura 2.4 – Layout Memória após inicialização
//criando novo alias Carro carro2 = carro1;
Figura 2.5 – Layout Memória duas variáveis referência para o mesmo objeto
2.3
Membros de Instância
Cada objeto criado deverá ter sua própria instância de variáveis (atributos) definidas pela classe. Os métodos definem o comportamento de um objeto. Isto é importante, pois denota que um método pertence a cada objeto da classe. Porém não devemos confundir isto com a implementação do método, que é compartilhada por todas as instâncias da classe. 2.3.1 Invocação de Métodos Objetos se comunicam pela troca de mensagens, isto significa que um objeto pode ter que mostrar um comportamento particular invocando uma operação apropriada que foi definida no objeto. Em Java, isto é feito pela chamada de um método em um objeto usando o operador binário "." (ponto), devendo especificar a mensagem completa: o objeto que é o recebedor da mensagem, o método a ser invocado e os argumentos para o método (se houver). O método invocado no recebedor pode também enviar informações de volta ao objeto chamador através de um valor de retorno. O método chamado deve ser um que esteja definido pelo objeto.
Os valores das variáveis em um objeto constituem o seu estado. Dois objetos distintos têm o mesmo estado se suas variáveis membro têm os mesmos valores.
Todos os direitos reservados a 3Way Networks
Seja um Profissional Aprendendo com Profissionais www.3way.com.br
812
Linguagem de Programação Java Linux Network Administration
Este material pode ser distribuído. Cursonão Especialista em Redes Somente poderá ser utilizado por alunos da 3Way3232 Networks.
[email protected] | (62) 9333 www.3way.com.br //atribuindo valor a variável referência Carro carro1 = new Carro(); determinada máquina existem regras que devem ser respeitadas conjuntamente. carro1.ano = "2001"; isto não venha a acontecer, carro1.modelo= "fusca";a comunicação será dificultada e em alguns casos carro1.cor = "prata"; impossibilitá-la, ocorrendo o que chamamos de violação do protocolo.
Caso pode
Figura 2.4 – Layout Memória após inicialização
//criando novo alias Carro carro2 = carro1;
Comunicação através de camadas.
O conjunto de camadas de um protocolo é chamada de arquitetura de rede. Entre cada par de camadas adjacentes existe uma interface. A interface consiste nas operações e serviços que a mesma deve prover para camada superior a ela. A 2.5 – Layout Memória variáveis referência para o mesmosuficientes objeto especificação de uma Figura arquitetura deveduasconter informações para permitir que um desenvolvedor crie um programa ou construa um hardware de cada camada de modo que ela transmita-o corretamente ao protocolo adequado. 2.3 Membros de Instância
Cada objeto criado deverá ter sua própria instância de variáveis Os valores das variáveis 1.5.1. Odefinidas MODELO (atributos) pelaOSI classe. Os métodos definem o comportamento de um em um objeto constituem objeto. Isto é importante, pois denota que um método pertence a cada objeto da o seu estado. classe. Porém devemos isto com a implementação do método, que O não modelo deconfundir referência OSI (Open System Interconnection) é conhecido Dois objetos distintos têm é como compartilhada por todas as instâncias da classe. o modelo de padronização de tecnologias de redes de computadores. O modelo
o mesmo estado se suas OSI teve como objetivo estabelecer uma regra e direcionamento no desenvolvimento variáveis membro têm os 2.3.1 Invocação de Métodos valores. de modelos arquiteturas redes. O modeloistoOSI define camadas.mesmos Estas camadas Objetos de se comunicam pelade troca de mensagens, significa que7um
objeto ter quedamostrar um forma: comportamento particular invocando uma estãopode dispostas seguinte operação apropriada que foi definida no objeto. Em Java, isto é feito pela chamada de um método em um objeto usando o operador binário "." (ponto), devendo especificar a mensagem completa: o objeto que é o recebedor da mensagem, o método a ser invocado e os argumentos para o método (se houver). O método invocado no recebedor pode também enviar informações de volta ao objeto chamador através de um valor de retorno. O método chamado deve ser um que esteja definido pelo objeto. Todos os direitos reservados a 3Way Networks
Seja um Profissional Aprendendo com Profissionais Seja um Profissional Aprendendo com Profissionais www.3way.com.br
91211
Linguagem de Programação Java Linux Network Administration
Este material pode ser distribuído. Cursonão Especialista em Redes Somente poderá ser utilizado por alunos da 3Way3232 Networks.
[email protected] | (62) 9333 www.3way.com.br //atribuindo valor a variável referência Carro carro1 = new Carro(); carro1.ano = "2001"; carro1.modelo= "fusca"; carro1.cor = "prata";
Figura 2.4 – Layout Memória após inicialização
//criando novo alias Carro carro2 = carro1; Modelo de referência OSI
Física Esta camada tem como função adaptar o sinal de comunicação com o meio de transmissão. Esta camada possui acesso físico ao meio de transmissão e, portanto, trata de fatores como especificação elétrica, mecânica e outros fatores físicos que fazem a interface entre o equipamento e o meio de transmissão. Enlace de dados Esta camada trata a organização dos dados em pacote. Quando um pacote é enviado, esta camada é responsável pelo último empacotamento antes da transmissão. Quando um pacote é recebido, este verifica, em primeira instância, a integridade do pacote. Se o pacote apresentar erros, Figura 2.5 – Layout Memória duas variáveis referência para o mesmo objeto este será descartado. Rede Responsável pela tabela de roteamento, portanto esta camada controla o envio de pacotes 2.3 Membros de Instância objeto criado sua própria instância de ao variáveis para osCada dispositivos corretosdeverá e deveter garantir que o pacote chegue dispositivoOscorreto. valores das variáveis (atributos) Transporte definidas pela classe. Os métodos definem o comportamento de um em um objeto constituem objeto. Isto é importante, pois denota que um método pertence a cada objeto da o seudeficiências estado. Esta é uma camada intermediária que tem a função de corrigir as eventuais classe. Porém não devemos confundir isto com a implementação do método, que Dois objetos distintos têm é provenientes compartilhadado pornível todasrede. as instâncias da classe. o mesmo estado se suas Sessão variáveis membro têm os 2.3.1 Invocação de Métodos Esta camada fornece serviços como controle de comunicação (diálogo), gerenciamento de mesmos valores. Objetos se comunicam pela troca mensagens, isto significa que um token (sinalização) e gerenciamento de de tarefas. objeto pode ter que mostrar um comportamento particular invocando uma Apresentação operação apropriada que foi definida no objeto. Em Java, isto é feito pela Esta como objetivo manipular dados antes envio ao próximo nível, ou seja, chamada de umcamada método tem em um objeto usando o operador binário "."do (ponto), neste nível várias transformações são feitas, por exemplo: criptografia, compressão, etc. devendo especificar a mensagem completa: o objeto que é o recebedor da mensagem,Aplicação o método a ser invocado e os argumentos para o método (se houver). O método Este invocado recebedor pode também enviar para informações depossível volta ao a comunicação através do nívelnooferece os meios de aplicação que seja objeto chamador através de um valor de retorno. O método chamado deve ser protocolo OSI. Nesta camada são definidos as funções de gerenciamento e mecanismos que tem um que esteja definido pelo objeto. como finalidade dar suporte ao desenvolvimento de aplicações em rede para o usuário. Todos os direitos reservados a 3Way Networks
Seja um Profissional Aprendendo com Profissionais Seja um Profissional Aprendendo com Profissionais www.3way.com.br
12 10 12
Linguagem de Programação Java Linux Network Administration
Este material pode ser distribuído. Cursonão Especialista em Redes Somente poderá ser utilizado por alunos da 3Way3232 Networks.
[email protected] | (62) 9333 www.3way.com.br //atribuindo valor a variável referência carro1 = new Carro(); 1.5.2.Carro MODELO TCP/IP carro1.ano = "2001"; carro1.modelo= "fusca"; O protocolo= TCP/IP carro1.cor "prata";foi desenvolvido na
plataforma UNIX e, atualmente, é o protocolo mais utilizado no mundo. Ele, na verdade, é uma pilha de protocolos, não se limitando somente ao TCP e IP. A sigla TCP/IP se refere aos dois principais protocolos: o TCP (camada de transporte) e o IP (camada de rede). O protocolo IP permite a comunicação de dois pontos da rede sem a necessidade destes estarem no mesmo meio físico. Já o TCP fornece uma conexão confiável sobre o IP.
Figura 2.4 – Layout Memória após inicialização
//criando novo alias Carro carro2 = carro1;
Modelo TCP/IP
Acesso de Rede Figura 2.5 – Layout Memória duas variáveis referência para o mesmo objeto Similar a camada física do protocolo OSI. Tem a função de determinar as características elétricas e mecânicas do meio de transmissão. Enfim, especificar os aspectos físicos da 2.3 Membros de Instância comunicação. Cada objeto criado deverá ter sua própria instância de variáveis Os valores das variáveis Rede (atributos) definidas pela classe. Os métodos definem o comportamento de um em um objeto constituem camadapois o IP é o protocolo maispertence importante, tem da a função de tornar as redes objeto. IstoNesta é importante, denota que um método a cadaele objeto o seu estado. homogêneas entre si, ou confundir seja, tem isto a função reunir redes do com arquiteturas classe. Porém não devemos com a de implementação método, que diferentes, fazendo com Dois objetos distintos têm sejam transparentes. é que compartilhada por todas as instâncias da classe. o mesmo estado se suas Transporte variáveis membro têm os 2.3.1 Invocação Métodosencontram-se os protocolos TCP e UDP. Esta Nesta decamada camadavalores. tem a mesmos Objetos se comunicam pela troca de mensagens, isto significa que um responsabilidade de transmitir e controlar o envio de dados de um nó ao outro. objeto pode ter que mostrar um comportamento particular invocando uma Aplicação que foi definida no objeto. Em Java, isto é feito pela operação apropriada Aplicação a um camada interage combinário o usuário. Ela oferece serviços como chamada de um métodoé em objetoque usando o operador "." (ponto), devendo especificar a mensagem completa: o objeto que é o recebedor da smtp(email), o telnet (terminal remoto), o ftp (transferência de arquivos), etc. mensagem, o método a ser invocado e os argumentos para o método (se houver). O método invocado no recebedor pode também enviar informações de volta ao objeto chamador através de um valor de retorno. O método chamado deve ser um que esteja definido pelo objeto. Todos os direitos reservados a 3Way Networks
Seja um Profissional Aprendendo com Profissionais Seja um Profissional Aprendendo com Profissionais www.3way.com.br
12 11 13
Linguagem de Programação Java Linux Network Administration
Este material pode ser distribuído. Cursonão Especialista em Redes Somente poderá ser utilizado por alunos da 3Way3232 Networks.
[email protected] | (62) 9333 www.3way.com.br //atribuindo valor a variável referência Carro carro1 = new Carro(); carro1.ano = "2001"; carro1.modelo= "fusca"; carro1.cor = "prata";
Figura 2.4 – Layout Memória após inicialização
//criando novo alias Carro carro2 = carro1;
Comparação do modelo TCP/IP com o OSI.
1.6. O ENDEREÇO IP Todo host tem um endereço exclusivo que o identifica na Internet ou mesmo na rede local. O endereço IPv4 é um número de 32 bits dividido de 4 porções de 8 bits (octetos) decimais. No IPv6, esse número de 128 bits composto por 16 octetos hexadecimais. Possui a capacidade de endereçar muito mais endereços que a versão 4. Por exemplo, uma única máquina pode ter um endereço de IP geralmente expresso de 3 formas: Figura 2.5 – Layout Memória duas variáveis referência para o mesmo objeto
Endereços
Descrição
149.76.12.4
Notação decimal de quatro partes, é a mais utilizada e mais legível.
2.3
Membros de Instância
Cada objeto criado deverá ter Notação sua própria instância de variáveis 0x954C0C04 hexadecimal. (atributos) definidas pela classe. Os métodos definem o comportamento de um 10010101.01001100.00001100.00000100 binária. objeto. Isto é importante, pois denota que Notação um método pertence a cada objeto da classe. Porém não devemos confundir isto com a implementação do método, que é compartilhada por todas as instâncias da classe.
Os valores das variáveis em um objeto constituem o seu estado. Dois objetos distintos têm o mesmo estado se suas 1.7. CLASSES DE ENDEREÇAMENTO IP variáveis membro têm os 2.3.1 Invocação de Métodos mesmos valores.do Objetos se comunicam pela troca dedos mensagens, isto IP significa um Ao iniciar a distribuição números paraqueempresas, os criadores
objeto podeperceberam ter que mostrar comportamento particular blocos invocando TCP/IP queumera vantajoso definir deuma endereços contíguos, no operação apropriada que foi definida no objeto. Em Java, isto é feito pela sentido de facilitar a administração. Verificaram também que as empresas tinham chamada de um método em um objeto usando o operador binário "." (ponto), portes especificar diferentes, e com istocompleta: surgiram as classes, além dedadefinir tipos de redes de devendo a mensagem o objeto que é que o recebedor tamanhos diferentes. Quando alguma para empresa necessitava mensagem, o método a ser invocado e os argumentos o método (se houver). de números IP, era Ofornecido método invocado no recebedor pode também enviar informações volta ao um bloco contíguo de endereços IP dedeuma classe adequada à sua objeto chamador através de um valor de retorno. O método chamado deve ser necessidade, baseada na quantidade de hosts a serem identificados com números IP. um que esteja definido pelo objeto.
Foram definidos 5 tipos de classes: A, B, C, D e E. Para se identificar uma Todos os direitos reservados a 3Way Networks
Seja um Profissional Aprendendo com Profissionais Seja um Profissional Aprendendo com Profissionais www.3way.com.br
12 12 14
Linguagem de Programação Java Linux Network Administration
Este material pode ser distribuído. Cursonão Especialista em Redes Somente poderá ser utilizado por alunos da 3Way3232 Networks.
[email protected] | (62) 9333 www.3way.com.br //atribuindo valor a variável referência Carro carro1 = new Carro(); classe, procurou-se definir algo que seria melhor implementado em nível de carro1.ano = "2001"; hardware. Por isto, cada classe, foi definida baseando-se no primeiro dos quatro bytes carro1.modelo= "fusca"; carro1.cor = "prata"; do número IP, como segue:
Classe
Valor binário Faixa de valores expresso em binário Faixa de valores expresso em decimal do 1o. byte do 1o. byte do 1o. byte
A
0XXXXXXX
00000000 a 01111111
0 a 127
B
10XXXXXX
10000000 a 10111111
128 a 191
C
110XXXXX
11000000 a 11011111
192 a 223
D
1110XXXX
11100000 a 11101111
224 a 239
E
11110XXX
11110000 a 11110111
240 a 254
Figura 2.4 – Layout Memória após inicialização
//criando novo alias Carro carro2 carro1; Assim, para= se identificar
se um número IP pertence a classe A basta saber o valor do bit do primeiro byte. Caso seja 0 pode-se concluir imediatamente que referese à classe A, caso contrário deve-se testar o segundo bit. Se o segundo bit for 0, conclui-se que refere-se à classe B, e assim sucessivamente até chegar a classe E. Quando este valor binário é convertido em valor decimal, podemos compreender melhor a faixa de endereços IP definidos por cada classe. Por exemplo, todo endereço IP de classe A tem o primeiro byte localizado na faixa de 0 a 127.
1.8. ENDEREÇOS DE REDE E BROADCAST Assim como foi padronizado que os endereços 127.X.X.X e 0.0.0.0 são Figura 2.5 para – Layout Memória duas variáveis para o mesmo objeto utilizados respectivamente endereços dereferência localhost (loopback) e rede padrão, também foram padronizados os seguintes endereços especiais: broadcast 2.3 Membros de Instância Cada criado utilizado deverá ter para sua própria de variáveis valores das variáveis É oobjeto endereço enviar instância mensagens para todosOsda mesma rede. (atributos) definidas pela classe. Os métodos definem o comportamento de um em um objeto constituem Assim como ocorre nos transmissores de rádio, através do processo denominado objeto. Isto é importante, pois denota que um método pertence a cada objeto da o seu estado. radiodifusão. O endereço de broadcast é obtido atribuindo-se classe. Porém não devemos confundir isto com a implementação do método, queo valor 1 a todos os bits Dois objetos distintos têm parte de por hosttodas do asendereço IP.classe. Por exemplo, para o endereço 10.1.2.3 (classe A), o é da compartilhada instâncias da o mesmo estado se suas endereço de broadcast é 10.255.255.255. variáveis membro têm os 2.3.1 Invocação de Métodos Rede mesmos valores. Objetos se comunicam pela troca de mensagens, isto significa que um objeto pode que mostrar um comportamento particulara invocando uma um host específico. O É ter o endereço utilizado para especificar rede e não operação apropriada que foi definida no objeto. Em Java, isto é feito pela os bits da parte de host endereço de broadcast é obtido atribuindo-se o valor 0 a todos chamada de um método em um objeto usando o operador binário "." (ponto), do endereço IP. Por exemplo, para o endereço 10.1.2.3 (classe A), o endereço de rede devendo especificar a mensagem completa: o objeto que é o recebedor da é 10.0.0.0. mensagem, o método a ser invocado e os argumentos para o método (se houver). O método invocado no recebedor pode também enviar informações de volta ao objeto através DE de umREDE valor de retorno. O método chamado deve ser 1.9. chamador MÁSCARA um que esteja definido pelo objeto.
Um conceito muito importante introduzido após a padronização das classes Todos os direitos reservados a 3Way Networks Seja um Profissional Aprendendo com Profissionais
Seja um Profissional Aprendendo com Profissionais www.3way.com.br
12 13 15
Linguagem de Programação Java Linux Network Administration
Este material pode ser distribuído. Cursonão Especialista em Redes Somente poderá ser utilizado por alunos da 3Way3232 Networks.
[email protected] | (62) 9333 www.3way.com.br //atribuindo valor a variável referência carro1 = new Carro(); foi o Carro conceito de máscara de rede. A máscara de rede é utilizada para delimitar a parte carro1.ano = "2001"; referente ao endereço de rede e de host de um endereço IP. Por exemplo, para o carro1.modelo= "fusca"; carro1.cor = "prata"; endereço IP 10.1.2.3 (classe A), a máscara de rede é 255.0.0.0. Abaixo pode-se
observar alguns exemplos:
Endereço de rede
Endereço de host
Número IP
10.
1.2.3
Máscara de rede (em binário)
11111111.
00000000.00000000.00000000
Máscara de rede (em decimal)
255.
0.0.0
Máscara de rede (quantidade de 1's) 8 Figura 2.4 – Layout Memória após inicialização
A máscara um valor de 32 bits, exatamente como um endereço IP, podendo //criando novoé alias Carro carro2 = carro1; expresso também na forma decimal e na forma hexadecimal. A máscara de rede
ser por padrão define todos os bits do primeiro byte iguais a 1 (equivale ao valor 255) para o endereço de rede. Para os endereços de hosts ela deverá ter todos os bits iguais a 0 (número 0 na forma decimal). Pode-se expressar a máscara através da quantidade de bits 1, para a classe A o valor é 8 (10.1.2.3/8 ou 10.1.2.3/255.0.0.0). Classe A: 255.0.0.0 ou valor 8 Classe B: 255.255.0.0 ou valor 16 Classe C: 255.255.255.0 ou valor 24
1.10. SUB-REDE
Figura 2.5 – Layout Memória duas variáveis referência para o mesmo objeto
Ao se utilizar o esquema de classes acima, na prática percebeu-se que a quantidade de hosts disponibilizada por uma rede de uma classe ora era muito pouca Cada objeto criado deverá ter sua própria instância de variáveis Os valores das variáveis ou era excessiva o Os usométodos de uma entidade. Lembre-se faixa de endereços (atributos) definidas pelapara classe. definem o comportamento de que um a em um objeto constituem classeIstoA,é importante, B e C correspondem 65 milhões, e da 255 endereços de hosts objeto. pois denota que uma método pertence a65 cadamil objeto o seu estado. classe. Porém não devemos confundir isto com a implementação do método, que respectivamente e que quando uma rede de uma destas classes era Dois fornecido umatêm objetospara distintos é entidade, compartilhadapecava-se por todas as instâncias da classe. pelo excesso, desperdiçando uma quantidade o mesmoenorme estado se de suas variáveis membro endereços IP.dePara resolver este problema, surgiu a ideia de sub-rede, lançadatêm naos 2.3.1 Invocação Métodos valores.IP RFC950, quese comunicam proporcionou um de melhor aproveitamento doum conjunto mesmos de números Objetos pela troca mensagens, isto significa que objeto pode ter que mostrar umfaixas comportamento particularIP invocando uma disponíveis, fornecendo de endereços sob medida de acordo com a operação apropriada que foi definida no objeto. Em Java, isto é feito pela necessidade de cada entidade. chamada de um método em um objeto usando o operador binário "." (ponto), O novo aesquema deslocamento dos bitsdada máscara para direita devendo especificar mensagemé baseado completa: onoobjeto que é o recebedor mensagem, método a serdo invocado e os argumentos para o método houver). ou para o esquerda esquema de máscara antigo (separa aumentar ou diminuir a Oquantidade método invocado no recebedor pode também enviar informações de volta ao de hosts/subredes. Por exemplo, para o IP 10.1.2.3 de classe A, com a objeto chamador através de um valor de retorno. O método chamado deve ser máscara alterada para 255.255.0.0, possibilita o aumento da porção de subredes e a um que esteja definido pelo objeto. diminuição do número de hosts tendo como base o padrão. 2.3
Membros de Instância
Todos os direitos reservados a 3Way Networks
Seja um Profissional Aprendendo com Profissionais Seja um Profissional Aprendendo com Profissionais www.3way.com.br
12 14 16
Linguagem de Programação Java Linux Network Administration
Este material pode ser distribuído. Cursonão Especialista em Redes Somente poderá ser utilizado por alunos da 3Way3232 Networks.
[email protected] | (62) 9333 www.3way.com.br //atribuindo valor a variável referência Carro carro1 = new Carro(); carro1.ano = "2001"; Classecarro1.modelo= Primeiro byte Segundo byte "fusca"; carro1.cor = "prata"; A Bit 0 + 7 bits de endereço de rede
B
bits 10 + 14 bits de endereço de rede
C
bits 110 + 21 bits de endereço de rede
Terceiro byte
Quarto byte
24 bits disponíveis 16 bits disponíveis 8 bits disponíveis
Note neste quadro acima, que em endereços IP classe A, B, C, temos 24, 16 e 8 bits disponíveis respectivamente para o avanço da máscara de sub-rede e endereço de host. Portanto, a máscara de sub-rede pode avançar somente até o antepenúltimo bit, pois se avançamos até o penúltimo bit, teremos disponível somente 1 bit para número de host, o que seria insuficiente para identificar hosts reais, uma vez que o bit Figura 2.4 – Layout Memória após inicialização 0 seria para identificar //criando novo alias a rede e o bit 1 para broadcast. Da mesma forma, se Carro carro2 = carro1; avançarmos até o último bit, não teríamos mais bits disponíveis para identificar hosts. Portanto, para a máscara de sub-rede, para as classes A, B e C, temos disponível para avançar 22, 14 e 6 bits respectivamente. Outro conceito importante a ser notado é o número de sub-rede. Antes da subrede, todo número IP era do tipo número da rede.número do host, com o uso de subredes, o endereço IP pode ser expresso de uma forma diferente: número da rede.número da sub-rede.número do host. Por exemplo, suponha que tenhamos um número IP 10.1.2.3, com máscara de sub-rede 255.255.0.0. Este número proporciona o valor de 10 como número de rede, 1 como número de sub-rede e 2.3 como número de host. Figura 2.5 – Layout Memória duas variáveis referência para o mesmo objeto
Um equívoco muito comum é determinar a classe de um endereço baseado na máscara que um endereço IP utiliza. O que define a classe em que um endereço IP pertence é o valor do seu primeiro octeto. 2.3 Membros de Instância Cada objeto criado deverá ter sua própria instância de variáveis Os valores das variáveis (atributos) definidas pela classe. Os métodos definem o comportamento de um em um objeto constituem objeto. IstoAté é importante, pois denota que um método pertence a máscaras cada objeto da o momento somente foram abordadas de sub-redeo seu queestado. ocupam classe. Porém não devemos confundir isto com a implementação do método, que totalmente um octeto, porém é possível manipular outros bits dessas máscaras, portêm Dois objetos distintos é compartilhada por todas as instâncias da classe. mesmo estado se suas exemplo 255.255.255.248. Com essa máscara o esquema ficaria da oseguinte forma: variáveis membro têm os 2.3.1 Invocação de Métodos mesmos valores. Objetos se comunicam pela troca de mensagens, isto significa que um 255.
255.
255.
248
objeto pode ter que mostrar um comportamento particular invocando uma 11111111.que foi definida 11111111. 11111000 operação apropriada no objeto. Em11111111. Java, isto é feito pela chamada de um método em um objeto usando o operador binário "." (ponto), devendo especificar a mensagem completa: o objeto que é o recebedor da utilizada máscaras para de osub-rede mensagem,Quando o método aseseréinvocado e os argumentos método (secomo houver).esta, tem-seum cálculo complexo. tenhaenviar a rede 200.163.79.0, Omais método invocado noSupondo recebedor que podese também informações de volta se ao for utilizada a máscara objeto chamador através de um valor de retorno. O método chamado deve ser de sub-rede 255.255.255.248, a parte referente a rede será aumentada e a parte de um que esteja definido pelo objeto.
hosts será diminuída. Para esse endereço tem-se as sub-redes variando de Todos os direitos reservados a 3Way Networks
Seja um Profissional Aprendendo com Profissionais Seja um Profissional Aprendendo com Profissionais www.3way.com.br
12 15 17
Linguagem de Programação Java Linux Network Administration
Este material pode ser distribuído. Cursonão Especialista em Redes Somente poderá ser utilizado por alunos da 3Way3232 Networks.
[email protected] | (62) 9333 www.3way.com.br //atribuindo valor a variável referência Carro carro1 = new Carro(); 00000000=0 a 11111000=248. carro1.ano = "2001"; carro1.modelo= "fusca"; carro1.cor = "prata";
sub-rede (em binário)
sub-rede (em decimal)
00000000
0
00001000
8
00010000
16
00011000
24
...
...
11111000
248 Figura 2.4 – Layout Memória após inicialização
//criando novo alias Note que para obter Carro carro2 = carro1;
as sub-redes, simplesmente soma-se recursivamente o valor de 8 (equivalente a 1000 binário) ao valor da primeira sub-rede 00000000. Se essa regra for aplicada a esta regra, obtem-se as seguintes sub-redes: 0, 8, 16, 24, 32, 40, 48, 56, 64, 72, 80, 88, 96, 104, 112, 120, 128, 136, 144, 152, 160, 168, 176, 184, 192, 200, 208, 216, 224, 232, 240, 248, ou seja 32=25 sub-redes, ou seja 2n sub-redes, onde n é a quantidade de bits disponibilizados a mais para formação de sub-rede. Após a obtenção das sub-redes e considerando o IP 200.163.79.10, o quadro abaixo mostra o cálculo para esse endereço: Endereço IP
200.163.79.9
Endereço de rede
200.163.79
Figura 2.5 – Layout Memória duas variáveis referência para o mesmo objeto
2.3
Endereço de sub-rede
8 = 1000
Endereço de host
2 = 010
Endereço IP (em binário) Membros de Instância
11001000.10100011.01001111.00001010
Cada Máscara objeto de criado deverá ter sua própria instância de variáveis sub-rede (em binário) 11111111.11111111.11111111.11111000 Os valores das variáveis (atributos) definidas pela classe. Os métodos definem o comportamento de um em um objeto constituem objeto. Isto é importante, pois denota que um método pertence a cada objeto da o seu estado. classe. Porém não devemos confundir isto com a implementação do método, que Dois objetos distintos têm é 1.11. compartilhada por todas as instâncias da classe. ENDEREÇOS IP PARA REDES PRIVADAS
o mesmo estado se suas variáveis membro têm os 2.3.1 Invocação de Métodos Todo computador da Internet deve ter um endereço IP único, mesmos no entanto, em valores. Objetos se comunicam pela troca de mensagens, isto significa que um
uma pode rede ter local preciso endereços únicos, mas que objeto que émostrar umutilizar comportamento particular invocando uma não sejam válidos na Internet. Existemque blocos de endereços operação apropriada foi definida no objeto.que Em foram Java, istoreservados é feito pelapara as redes privadas. chamada de um método em um objeto usando o operador binário "." (ponto), Os endereços de rede apresentados abaixo podem ser utilizados em qualquer rede devendo especificar a mensagem completa: o objeto que é o recebedor da local: mensagem, o método a ser invocado e os argumentos para o método (se houver). O método invocado no recebedor pode também enviar informações de volta ao objeto chamador atravésFaixa de um valor de retorno. O método chamado deve ser Classe um que esteja definido pelo objeto. A
de 10.0.0.0 a 10.255.255.255
Todos os direitos reservados a 3Way Networks
Seja um Profissional Aprendendo com Profissionais Seja um Profissional Aprendendo com Profissionais www.3way.com.br
12 16 18
Linguagem de Programação Java
//atribuindo valor a variável referência Carro carro1 = new Carro(); carro1.ano = "2001"; carro1.modelo= "fusca"; carro1.cor = "prata";
Figura 2.4 – Layout Memória após inicialização
//criando novo alias Carro carro2 = carro1;
Figura 2.5 – Layout Memória duas variáveis referência para o mesmo objeto
2.3
Membros de Instância
Cada objeto criado deverá ter sua própria instância de variáveis (atributos) definidas pela classe. Os métodos definem o comportamento de um objeto. Isto é importante, pois denota que um método pertence a cada objeto da classe. Porém não devemos confundir isto com a implementação do método, que é compartilhada por todas as instâncias da classe. 2.3.1 Invocação de Métodos Objetos se comunicam pela troca de mensagens, isto significa que um objeto pode ter que mostrar um comportamento particular invocando uma operação apropriada que foi definida no objeto. Em Java, isto é feito pela chamada de um método em um objeto usando o operador binário "." (ponto), devendo especificar a mensagem completa: o objeto que é o recebedor da mensagem, o método a ser invocado e os argumentos para o método (se houver). O método invocado no recebedor pode também enviar informações de volta ao objeto chamador através de um valor de retorno. O método chamado deve ser um que esteja definido pelo objeto.
Os valores das variáveis em um objeto constituem o seu estado. Dois objetos distintos têm o mesmo estado se suas variáveis membro têm os mesmos valores.
Todos os direitos reservados a 3Way Networks
Seja um Profissional Aprendendo com Profissionais www.3way.com.br
12 17
Linguagem de Programação Java Linux Network Administration
Este material pode ser distribuído. Cursonão Especialista em Redes Somente poderá ser utilizado por alunos da 3Way3232 Networks.
[email protected] | (62) 9333 www.3way.com.br //atribuindo valor a variável referência CarroBcarro1 de= 172.16.0.0 new Carro(); a 172.31.255.255 carro1.ano = "2001"; carro1.modelo= "fusca"; C de 192.168.0.0 a 192.168.255.255 carro1.cor = "prata";
1.12. O NÚMERO DE PORTA Embora o endereço IP seja suficiente para localizar um computador, é necessário localizar também determinado aplicativo naquele computador. Por exemplo, se a mensagem que está sendo recebida for uma correspondência eletrônica, ela precisará ser enviada para o leitor de correio. Se a mensagem recebida for uma solicitação de página Web, ela precisa ser roteada para o programa que envia páginas Web. Figura 2.4 – Layout Memória após inicialização Existe um número //criando novo alias de identificação, chamado número da porta, que é enviado Carro carro2 = em cada mensagem. carro1; É necessário que o remetente também saiba o número da porta. Existem portas que são notadamente conhecidas por serem utilizadas por serviços conhecidos, essas portas são chamadas de portas baixas ou conhecidas. Por exemplo, todo navegador faz requisições na porta 80 de todo servidor Web, e a maioria dos clientes SSH fazem requisições na porta 22 do servidor SSH. Os clientes também se comunicam com os servidores através de portas, normalmente essas portas são acima de 1024 (portas não conhecidas).
1.13. ROTEAMENTO Redes de computadores roteiam os pacotes baseando-se no sistema de Figura 2.5 – Layout Memória duas variáveis referência para o mesmo objeto correios, ou seja, deseja-se comunicar com um destino, então os pacotes são entregues um a um para o primeiro roteador (primeira agência dos correios) e este encarrega-se 2.3 Membrosde deentregar Instância ao roteador de destino (agência de destino). Durante esse trajetoCada os objeto pacotes podem vários outros intermediários até criado deverápassar ter suapor própria instância de roteadores variáveis Os valores das variáveis (atributos) definidas pela classe. encontrar o roteador final.Os métodos definem o comportamento de um em um objeto constituem objeto. Isto é importante, pois denota que um método pertence a cada objeto da o seu estado. A não vantagem utilizar estruturada está no classe. Porém devemosde confundir istoesta com aforma implementação do método, que fato de não haver uma objetos distintos o pacote irá percorrer, a únicaDois preocupação estátêm é preocupação compartilhada porcom todasoascaminho instâncias daque classe. o mesmo estado se suas limitada a origem e ao destino. Toda a Internet consiste em um número de redes variáveis membro têm os 2.3.1 Invocação Métodos próprias que de são denominadas como redes autônomas. Cada rede necessita de um mesmos valores. Objetos se comunicam pela troca de mensagens, isto significa que um roteamento interno que tem a tarefa de entregar o datagrama para a rede da máquina objeto pode ter que mostrar um comportamento particular invocando uma de destino. operação apropriada que foi definida no objeto. Em Java, isto é feito pela chamada de um método em um objeto usando o operador binário "." (ponto), devendo especificar a mensagem completa: o objeto que é o recebedor da 1.14. DNS mensagem, o método a ser invocado e os argumentos para o método (se houver). O método invocado no recebedor pode também enviar informações de volta ao Raramente os programas fazem referência a hosts, e-mail e outros recursos objeto chamador através de um valor de retorno. O método chamado deve ser utilizando seus endereços um que esteja definido pelo objeto. IP, eles utilizam com frequência os nomes (strings em
ASCII), então é necessário algum tipo de mecanismo para converter os strings ASCII Todos os direitos reservados a 3Way Networks
Seja um Profissional Aprendendo com Profissionais Seja um Profissional Aprendendo com Profissionais www.3way.com.br
12 18 19
Linguagem de Programação Java Linux Network Administration
Este material pode ser distribuído. Cursonão Especialista em Redes Somente poderá ser utilizado por alunos da 3Way3232 Networks.
[email protected] | (62) 9333 www.3way.com.br
em IP.
//atribuindo valor a variável referência Carro carro1 new Carro(); endereços IP. A= função do DNS é justamente carro1.ano = "2001"; carro1.modelo= "fusca"; carro1.cor = "prata";
essa: converter nomes em endereço
1.15. ARQUIVOS GERAIS
Existe um grande número de arquivos de configuração e informações que se referem a rede. Estes arquivos armazenam números de portas, endereços usados nas comunicações, etc. A seguir será apresentado alguns arquivos: /etc/protocols Define os protocolos de baixo nível utilizados nas comunicações de redes 2.4 – Layout Memória após inicialização TCP/IP. Quando um pacote é Figura enviado, ele necessita ser encapsulado em um tipo de //criando novo alias protocolo, este arquivo serve como referência para saber como desempacotá-lo. Essa Carro carro2 = carro1; referência é feita através da ID (Identificação) do protocolo. Protocolo ip icmp igmp ggp ipencap st tcp egp pup udp hmp . . .
2.3
ID 0 1 2 3 4 5 6 8 12 17 20
Nome Alternativo IP ICMP IGMP GGP IP-ENCAP ST TCP EGP PUP UDP HMP
Descrição #internet protocol,pseudo protocol number # internet control message protocol # Internet Group Management # gateway-gateway protocol # IP encapsulated in IP (officially “IP”) # ST datagram mode # transmission control protocol # exterior gateway protocol # PARC universal packet protocol # user datagram protocol # host monitoring protocol
Figura 2.5 – Layout Memória duas variáveis referência para o mesmo objeto
/etc/services Membros de Instância
Cada objetooscriado deverá sua de própria de Ter variáveis Define números deter porta cadainstância serviço. uma entrada nestedasarquivo Os valores variáveis (atributos) definidas pela classe. Os métodos definem o comportamento de um empois um objeto constituem não indica necessariamente que o programa estará sendo executado, este arquivo objeto. Isto é importante, pois denota que um método pertence a cada objeto da o seu estado. apenas controla o número de porta que o processo/programa é executado. classe. Porém não devemos confundir isto com a implementação do método, que Dois objetos distintos têm é compartilhada por todas as instâncias da classe. Serviço Porta/Protocolo Descrição Tcpumx1 #rfc-1078 2.3.1 Invocação de Métodos 1/tcp echo 7/tcp Objetos se comunicam pela troca de mensagens, isto significa que um echo 7/udp objeto pode ter que mostrar um comportamento particular invocando uma discard 9/tcp sink null operação apropriada que foi definida no objeto. Em Java, isto discard 9/udp sink null é feito pela chamada de um método em um11/tcp objeto usando o operador systat usersbinário "." (ponto), daytime 13/tcp devendo especificar a mensagem completa: o objeto que é o recebedor da 13/udp mensagem,daytime o método a ser invocado e os argumentos para o método (se houver). netstat 15/tcp O método invocado no recebedor pode também enviar informações de volta ao
o mesmo estado se suas variáveis membro têm os mesmos valores.
...
objeto chamador através de um valor de retorno. O método chamado deve ser um que esteja definido pelo objeto.
Este arquivo é baseado na lista port numbers (disponível on-line no endereço Todos os direitos reservados a 3Way Networks
Seja um Profissional Aprendendo com Profissionais Seja um Profissional Aprendendo com Profissionais www.3way.com.br
12 19 20
Linguagem de Programação Java Linux Network Administration
Este material pode ser distribuído. Cursonão Especialista em Redes Somente poderá ser utilizado por alunos da 3Way3232 Networks.
[email protected] | (62) 9333 www.3way.com.br //atribuindo valor a variável referência Carro carro1 = new Carro(); http://www.isi.edu/in-notes/iana/assignments/port-numbers ). carro1.ano = "2001"; carro1.modelo= "fusca"; carro1.cor = "prata";
/etc/hosts Define uma forma de resolução de nomes que relaciona nomes de máquinas com endereços IP. Endereço IP 127.0.0.1 10.1.0.101 10.1.0.102 10.1.0.103 10.1.0.2
Hostname localhost maq1.3waylocal.net.br maq2. 3waylocal.net.br maq3. 3waylocal.net.br servidor. 3waylocal.net.br
Alias
maq1 maq2 maq3 servidor
1.16. CONFIGURAÇÃO TCP/IP Figura 2.4 – Layout Memória após inicialização //criando novo alias Carro carro2 = carro1; A configuração de
informações TCP/IP constituem um dos passos mais importantes para tornar uma máquina operacional em uma rede. É preciso atentar-se para as seguintes configurações: Hostname (Nome da Máquina), Interface de Rede (Placa de Rede), Rotas e Resolução de Nomes (DNS). 1.16.1. HOSTNAME No protocolo TCP/IP existe uma padronização para nomes de hosts. Os nomes das máquinas devem seguir o padrão FQDN (Nome Totalmente Qualificado) que nada mais é que o nome da máquina com o seu respectivo domínio DNS. O nome servidor.3waylocal.net.br é um exemplo de nome totalmente qualificado, onde servidor é o nome máquina e variáveis 3waylocal.net.br Figura 2.5da – Layout Memória duas referência para o mesmo objeto é o domínio. O comando abaixo configura o nome da máquina: 2.3
hostname servidor.3waylocal.net.br
Membros de Instância
Cada objeto criado deverá ter sua própria instância de variáveis Os valores das variáveis (atributos) Para definidas pela classe. métodos definem foi o comportamento de umêxito, verificar se Os a configuração executada com emexecute um objetosomente constituem objeto. Isto é importante, pois denota que um método pertence a cada objeto da o seu estado. hostname para ver como ficou o nome da máquina: classe. Porém não devemos confundir isto com a implementação do método, que Dois objetos distintos têm hostname é compartilhada por todas as instâncias da classe. servidor.3waylocal.net.br
o mesmo estado se suas variáveis membro têm os mesmos valores.
2.3.1 Invocação de Métodos Objetos se comunicam pela troca de mensagens, significa que um temporariamente, ou Entretanto, este comando configura o isto nome da máquina objeto pode ter que mostrar um comportamento particular invocando uma seja, se esta máquina for reiniciada, ela perderá a configuração. No CentOS/RHEL operação apropriada que foi definida no objeto. Em Java, isto é feito pela deve-sedeeditar a diretiva HOSTNAME do arquivo chamada um método em um objeto usando o operador binário/etc/sysconfig/network, "." (ponto), devendo especificar a mensagem objeto que /etc/hostname é o recebedor da no Debian/Ubuntu basta completa: alterar oo arquivo com o nome da mensagem, o método a ser invocado e os argumentos para o método (se houver). máquina, todos eles produzem mudanças permanentes de hostname. Abaixo está um O método invocado no recebedor pode também enviar informações de volta ao exemplo do arquivo objeto chamador através dedo umCentOS/RHEL: valor de retorno. O método chamado deve ser NETWORKING=yes um que esteja definido pelo objeto. NETWORKING_IPV6=no HOSTNAME=servidor.3waylocal.net.br Todos os direitos reservados a 3Way Networks
Seja um Profissional Aprendendo com Profissionais
Seja um Profissional Aprendendo com Profissionais www.3way.com.br
12 20 21
Linguagem de Programação Java Linux Network Administration
Este material pode ser distribuído. Cursonão Especialista em Redes Somente poderá ser utilizado por alunos da 3Way3232 Networks.
[email protected] | (62) 9333 www.3way.com.br //atribuindo valor a variável referência Carro carro1 = new Carro(); carro1.ano = "2001"; As diretivas "fusca"; NETWORKING e NETWORKING_IPV6 carro1.modelo= carro1.cor = "prata"; máquina está em uma rede IPV4 e IPV6 respectivamente. Ainda
significam que esta é possível encontrar outras diretivas além de HOSTNAME nesse arquivo, tais como GATEWAY e GATEWAYDEV que define, na mesma ordem, qual será o roteador padrão para a máquina e qual dispositivo dará acesso a esse roteador. 1.16.2. INTERFACE DE REDE Esta configuração está baseada na detecção da placa de rede, configuração do endereço IP e máscara de rede e outras diretivas. Figura 2.4 – Layout Memória após inicialização
//criando novo alias Interface Ethernet Carro carro2 = carro1;
O kernel é responsável pela interação com todo hardware, inclusive placas de rede. Para que o kernel reconheça a interface de rede, é necessário que a placa de rede seja de um tipo conhecido e que a placa possua um módulo (driver) que a faça funcionar. O Linux possui um grande número de módulos para placas de rede, porém pode ser necessário compilar algum módulo. Para carregar módulos compilados é utilizado comando modprobe. Exemplo: #modprobe rtl8139. Configuração O comando ifconfig pode ser utilizado para configurar em tempo de Figura 2.5 – Layout Memória duas variáveis referência para o mesmo objeto execução as informações de rede. Para configuração permanente é preciso utilizar arquivos de configuração específicos da distribuição. Digitando ifconfig sem 2.3 Membros de Instância parâmetros, obte-se a lista das interfaces ativas na máquina.
Cada objeto criado deverá ter sua própria instância de variáveis Os valores das variáveis (atributos) definidas pela classe. Os métodos definem o comportamento de um em um objeto constituem objeto. Istoifconfig é importante, pois denota que um método pertence a cada objeto da o seu estado. eth0 Link confundir encap: Ethernet Hwaddr 00:90:06:54:05:11 classe. Porém não devemos isto com a implementação do método, que Dois objetos distintos têm inet addr:192.168.1.10 Bcast:192.168.1.255 Mask:255.255.255.0 é compartilhada por todas as LOOPBACK instâncias daRUNNING classe. MTU: 1500 Metric:1 UP BROADCAST
o mesmo estado se suas
RX packets: 421 errors:0 dropped:0 overruns:0 frame:0 2.3.1 Invocação de Métodoserrors:0 dropped:0 overruns:0 carrier:0 variáveis membro têm os TX packets:75 mesmos valores. lo Link encap: Localdeloopback Objetos se comunicam pela troca mensagens, isto significa que um inet addr:127.0.0.1 Bcast:127.255.255.255 Mask:255.0.0.0 objeto pode ter que mostrar um comportamento particular invocando uma UP BROADCAST LOOPBACK 3584isto Metric:1 operação apropriada que foi definida RUNNING no objeto.MTU: Em Java, é feito pela RX packets: 460 errors:0 dropped:0 overruns:0 frame:0 chamada de um método em um objeto usando o operador binário "." (ponto), TX packets:460 errors:0 dropped:0 overruns:0 carrier:0 devendo especificar a mensagem completa: o objeto que é o recebedor da Collisions:0
mensagem, o método a ser invocado e os argumentos para o método (se houver). O método invocado no recebedor pode também enviar informações de volta ao objeto chamador através de um valor de retorno. O método chamado deve ser Exemplo: um que esteja definido pelo objeto. up
ifconfig eth0 192.168.1.10 netmask 255.255.255.0 broadcast 192.168.1.255 Todos os direitos reservados a 3Way Networks
Seja um Profissional Aprendendo com Profissionais Seja um Profissional Aprendendo com Profissionais www.3way.com.br
12 21 22
Linguagem de Programação Java Linux Network Administration
Este material pode ser distribuído. Cursonão Especialista em Redes Somente poderá ser utilizado por alunos da 3Way3232 Networks.
[email protected] | (62) 9333 www.3way.com.br
de
//atribuindo valor a variável referência Carro carro1 = new Carro(); carro1.ano = "2001"; Este comando"fusca"; atribui a interface eth0 o endereço IP 192.168.1.10, carro1.modelo= carro1.cor = "prata"; rede 255.255.255.0 e endereço de broadcast 192.168.1.255.
a máscara
ifconfig eth0 down
Desativa a interface. No CentOS/RHEL existe o diretório /etc/sysconfig/networkscripts que armazena todos os arquivos relacionados às interfaces de rede presentes na náquina (ifcfg-eth0, ifcfg-eth1, etc). Basta editá-los para criar Figura 2.4 – Layout Memória após inicialização configurações rede permanentes. //criando de novo alias Carro carro2 = carro1; Em distribuições baseadas no Debian/Ubuntu o arquivo que deverá ser editado para todas as interfaces presentes, é o /etc/network/interfaces. /etc/sysconfig/network-scripts/ifcfg-eth0 DEVICE=eth0 BOOTPROTO=none IPADDR=192.168.1.x NETMASK=255.255.255.0 NETWORK=192.168.1.0 BROADCAST=192.168.1.255 GATEWAY=192.168.1.y ONBOOT=yes Figura 2.5 – Layout Memória duas variáveis referência para o mesmo objeto /etc/init.d/network restart
2.3
Membros de Instância
Cada objeto criado deverá ter sua própria instância de variáveis /etc/network/interfaces (atributos) definidas pela classe. métodos definem o comportamento de um auto Os eth0 objeto. Isto é importante, pois denota um método pertence a cada objeto da ifaceque eth0 inet static classe. Porém não devemos confundir isto com a implementação do método, que address 192.168.1.x netmask 255.255.255.0 é compartilhada por todas as instâncias da classe. network 192.168.1.0
Os valores das variáveis em um objeto constituem o seu estado. Dois objetos distintos têm o mesmo estado se suas variáveis membro têm os mesmos valores.
2.3.1 Invocação de Métodos broadcast 192.168.1.255 gateway 192.168.1.y Objetos se comunicam pela troca de mensagens, isto significa que um /etc/init.d/networking restart objeto pode ter que mostrar um comportamento particular invocando uma operação apropriada que foi definida no objeto. Em Java, isto é feito pela chamada de um método em um objeto usando o operador binário "." (ponto), devendo a mensagem completa: 1.17.3.especificar CONFIGURAÇÃO DAS ROTAS o objeto que é o recebedor da mensagem, o método a ser invocado e os argumentos para o método (se houver). O método invocado no recebedor pode também enviar informações de volta ao A configuração de rotas é necessária em um cenário que possui sub-redes. Ela objeto chamador através de um valor de retorno. O método chamado deve ser serve para definido fazer com que uma rede consiga acessar outras ou até mesmo a Internet. um que esteja pelo objeto.
Para configurar rotas deve-se ter consciência de alguns conceitos como rede Todos os direitos reservados a 3Way Networks
Seja um Profissional Aprendendo com Profissionais Seja um Profissional Aprendendo com Profissionais www.3way.com.br
12 22 23
Linguagem de Programação Java Linux Network Administration
Este material pode ser distribuído. Cursonão Especialista em Redes Somente poderá ser utilizado por alunos da 3Way3232 Networks.
[email protected] | (62) 9333 www.3way.com.br //atribuindo valor a variável referência Carro carro1 = newOCarro(); de alcance e roteador. primeiro refere-se a rede de destino que se quer ter acesso carro1.ano = "2001"; (redecarro1.modelo= interna ou a Internet) já o segundo conceito define a máquina que dará acesso à "fusca"; carro1.cor = "prata"; rede de alcance.
O comando route é utilizado para trabalhar com rotas. Visualizando rotas
eth0
route Tabela de Roteamento IP do Kernel Destino Roteador MáscaraGen. Opções 192.168.1.0 * 255.255.255.0 U 127.0.0.0 * 255.0.0.0 U default roteador.3waylocal.net.br 0.0.0.0
Métrica Ref 0 0 0 0 UG 0
Uso Iface 0 eth0 0 lo 0 0
Figura 2.4 – Layout Memória após inicialização
Cada coluna da saída acima possui um significado. A primeira coluna //criando novo alias Carro acarro2 = carro1; representa rede de destino, a segunda é o roteador para acesso à rede de destino, a terceira é a máscara da rede de destino, a quarta informa se a rota está ativa (U), se o alvo é um host (H), um roteador (G), etc. A quinta coluna representa a métrica (metric), que é a distância até o alvo (geralmente contada em hops), a sexta é o número de referências à rota, a sétima é a contagem de procuras por essa rota e por último (oitava), qual a interface pelos quais os pacotes IP serão enviados. Existem três entradas na tabela de roteamento do kernel. Entretanto, as duas primeiras são adicionadas pelo sistema, isto é assim porque por padrão cada interface de rede exige uma rota. Para saber quais rotas foram adicionadas pelo sistema, observe quais entradas têm um * na coluna referente ao Roteador. A última entrada cuja primeira coluna está definido como default é uma Figura 2.5 – Layout Memória duas variáveis referência para o mesmo objeto rota padrão que foi adicionado pelo administrador. No campo Roteador está definido a máquina roteador.3waylocal.net.br. Quando o route é executado sem 2.3 Membros de oInstância nenhuma opção mesmo tentará apresentar o nome da máquina ao invés de seu Cada IPobjeto criado não deverá ter sua apresentar própria instância de variáveis Os expirar valores das variáveis endereço e quando é possível o nome, ele tenta até o tempo (atributos) definidas pela classe. Os métodos definem o comportamento de um em um objeto constituem limite (timeout). objeto. Isto é importante, pois denota que um método pertence a cada objeto da classe. Porém não devemos confundir isto com a implementação do método, que é compartilhada por todas as rotas instâncias da classe. Adicionando route add -net 192.168.1.0/24 gw 192.168.1.1
o seu estado. Dois objetos distintos têm o mesmo estado se suas variáveis membro têm os mesmos valores.
2.3.1 Invocação de Métodos Objetos se comunicam pela troca de mensagens, isto significa que um objeto pode ter comando que mostraradicionará um comportamento particular uma Este uma rota para invocando a rede 192.168.1.0/24 através do operação apropriada que foi definida no objeto. Em Java, isto é feito pela roteador 192.168.1.1. A opção gw é utilizada para atribuir o IP do roteador. O número chamada de um método em um objeto usando o operador binário "." (ponto), 24 de 192.168.1.0/24 especifica a máscara rede. devendo especificar a mensagem completa: o objetode que é o recebedor da mensagem, o método a ser invocado e os argumentos para o método (se houver). O método invocado no recebedor pode também enviar informações de volta ao Removendo objeto chamador através derotas um valor de retorno. O método chamado deve ser um que esteja definido pelouma objeto. Para excluir rota, basta executar: route del -net 192.168.1.0/24
Todos os direitos reservados a 3Way Networks
Seja um Profissional Aprendendo com Profissionais Seja um Profissional Aprendendo com Profissionais www.3way.com.br
12 23 24
Linguagem de Programação Java Linux Network Administration
Este material pode ser distribuído. Cursonão Especialista em Redes Somente poderá ser utilizado por alunos da 3Way3232 Networks.
[email protected] | (62) 9333 www.3way.com.br //atribuindo valor a variável referência Carro carro1 = new Carro(); carro1.ano = "2001"; É necessário"fusca"; especificar novamente a carro1.modelo= carro1.cor = "prata"; especificar o número IP do roteador.
máscara, porém não é necessário
Rotas estáticas O comando para adicionar rota deve ser executado toda vez que for inicializada a máquina, portanto é necessário adicionar este comando nos scripts de inicialização do sistema. No CentOS/RHEL, pode ser criado o arquivo /etc/sysconfig/networkFigura 2.4 – Layout Memória inicialização uma rota estática, deve-se, utilizado para após adicionar scripts/route-eth0 que pode ser portanto, inserirnovo a seguinte linha: 192.168.1.0 via 192.168.1.1. //criando alias Carro carro2 = carro1;
Após a realização da configuração, basta reiniciar o serviço de rede: /etc/init.d/network restart
No Debian/Ubuntu é necessário editar o arquivo /etc/network/interfaces com entradas para adicionar e remover parecidas com as abaixo: Adicionar up route add -net 192.168.1.0 netmask 255.255.255.0 gw 192.168.1.1
Remover
Figura 2.5 – Layout Memória duas variáveis referência para o mesmo objeto
down route del -net 192.168.1.0 netmask 255.255.255.0 gw 192.168.1.1
2.3
Membros de Instância Após a realização da configuração, basta reiniciar o serviço. Cada objeto criado deverá ter sua própria instância de variáveis
Os valores das variáveis em um objeto constituem o seu estado. Dois objetos distintos têm o mesmo estado se suas variáveis membro têm os O servidor de DNS é definido no arquivo /etc/resolv.conf. 2.3.1 Invocação de Métodos mesmos valores. /etc/resolv.conf Objetos se comunicam pela troca de mensagens, isto significa que um
(atributos) definidas pela classe. Os métodos definem o comportamento de um objeto. Isto é importante, pois denota que um método pertence a cada objeto da classe. Porém não devemos DE confundir isto com a implementação do método, que 1.17.4. RESOLUÇÃO NOMES é compartilhada por todas as instâncias da classe.
nameserver 192.168.1.1 objeto pode ter que mostrar um comportamento particular invocando uma nameserver 200.242.140.5 operação apropriada que foi definida no objeto. Em Java, isto é feito pela chamada de um método em um objeto usando o operador binário "." (ponto), 1.18. INETD devendo especificar a/ XINETD mensagem completa: o objeto que é o recebedor da mensagem, o método a ser invocado e os argumentos para o método (se houver). O método invocado Inetd no recebedor pode também enviar informações de volta ao objeto chamador através de um valor de retorno. O método chamado deve ser O definido serviçopelo inetd é considerado um super serviço, pois um que esteja objeto.
ele controla vários outros serviços. O inetd lê entradas em um arquivo de configuração chamado Todos os direitos reservados a 3Way Networks
Seja um Profissional Aprendendo com Profissionais Seja um Profissional Aprendendo com Profissionais www.3way.com.br
12 24 25
Linguagem de Programação Java Linux Network Administration
Este material pode ser distribuído. Cursonão Especialista em Redes Somente poderá ser utilizado por alunos da 3Way3232 Networks.
[email protected] | (62) 9333 www.3way.com.br //atribuindo valor a variável referência Carro carro1 = newAtravés Carro();deste arquivo o /etc/ inetd.conf. carro1.ano = "2001"; demais serviços. carro1.modelo= "fusca"; carro1.cor = É importante"prata"; o seu uso para serviços
serviço inetd tem controle sobre
que não precisam sempre estar constantemente ouvindo requisições. Quem fará isso é o Inetd, que interceptará a requisição e chamará o serviço solicitado, poupando recursos do servidor. /etc/inetd.conf ftp stream tcp nowait root /usr/sbin/tcpd in.ftpd -l -a #telnet stream tcp nowait root /usr/sbin/tcpd in.telnetd # # Shell, login, exec, comsat and talk are BSD protocols. # #shell stream tcp nowait root /usr/sbin/tcpd in.rshd 2.4 – Layout Memória #login stream tcp Figuranowait root após inicialização /usr/sbin/tcpd in.rlogind #exec novo stream tcp nowait root /usr/sbin/tcpd in.rexecd //criando alias . carro2 = carro1; Carro . . #imap stream tcp nowait root /usr/sbin/tcpd imapd #
Para que o inetd inicie qualquer um dos serviços definidos no arquivo, a linha referente ao mesmo deve estar descomentada. Após descomentá-la, basta reiniciar o Inetd. Xinetd O Xinetd foi escrito com o objetivo de ser um substituto avançado para o Figura 2.5 – Layout Memória duas variáveis referência para o mesmo objeto Inetd. Versão recentes de distribuições GNU/Linux já o utilizam por padrão no lugar do Inetd, embora algumas ainda suportem ambos.
2.3
Membros de Instância
Cada objeto criado deverá ter sua própria instância de variáveis Os valores das variáveis principais características deste novo super servidor (atributos) As definidas pela classe. Os métodos definem o comportamento de umsão: em um objeto constituem objeto. Isto é importante, pois denota que um método pertence a cada objeto da o seu estado. classe. Porém não devemos confundir isto com a implementação do método, que Dois objetos distintos têm nativo ao Tcp_wrappers; é compartilhada portodasSuporte as instâncias da classe.
o mesmo estado se suas Controle de acesso mais refinado; variáveis membro têm os 2.3.1 Invocação de Métodos Possui um arquivo principal de configuração que podevalores. incluir mesmos Objetos se comunicam pela troca de mensagens, isto significa que um outros; objeto pode ter que mostrar um comportamento particular invocando uma operação apropriada foi definida no Em detalhadas; Java, isto é feito pela queInformações deobjeto. log mais chamada de um método em um objeto usando o operador binário "." (ponto), Suporte completa: a redirecionamento devendo especificar a mensagem o objeto que de é oserviços. recebedor da
mensagem, o método a ser invocado e os argumentos para o método (se houver). O método invocado no recebedor pode também enviar informações de volta ao objeto chamador através de um valor de retorno. O método chamado deve ser um que esteja definido pelo objeto. Todos os direitos reservados a 3Way Networks
Seja um Profissional Aprendendo com Profissionais Seja um Profissional Aprendendo com Profissionais www.3way.com.br
12 25 26
Linguagem de Programação Java
//atribuindo valor a variável referência Carro carro1 = new Carro(); carro1.ano = "2001"; carro1.modelo= "fusca"; carro1.cor = "prata";
Figura 2.4 – Layout Memória após inicialização
//criando novo alias Carro carro2 = carro1;
Figura 2.5 – Layout Memória duas variáveis referência para o mesmo objeto
2.3
Membros de Instância
Cada objeto criado deverá ter sua própria instância de variáveis (atributos) definidas pela classe. Os métodos definem o comportamento de um objeto. Isto é importante, pois denota que um método pertence a cada objeto da classe. Porém não devemos confundir isto com a implementação do método, que é compartilhada por todas as instâncias da classe. 2.3.1 Invocação de Métodos Objetos se comunicam pela troca de mensagens, isto significa que um objeto pode ter que mostrar um comportamento particular invocando uma operação apropriada que foi definida no objeto. Em Java, isto é feito pela chamada de um método em um objeto usando o operador binário "." (ponto), devendo especificar a mensagem completa: o objeto que é o recebedor da mensagem, o método a ser invocado e os argumentos para o método (se houver). O método invocado no recebedor pode também enviar informações de volta ao objeto chamador através de um valor de retorno. O método chamado deve ser um que esteja definido pelo objeto.
Os valores das variáveis em um objeto constituem o seu estado. Dois objetos distintos têm o mesmo estado se suas variáveis membro têm os mesmos valores.
Todos os direitos reservados a 3Way Networks
Seja um Profissional Aprendendo com Profissionais www.3way.com.br
12 26
Linguagem de Programação Java Linux Network Administration
Este material pode ser distribuído. Cursonão Especialista em Redes Somente poderá ser utilizado por alunos da 3Way3232 Networks.
[email protected] | (62) 9333 www.3way.com.br //atribuindo valor a variável referência Carro carro1 = new Carro(); O arquivo /etc/xinetd.conf é responsável pela configuração geral do carro1.ano xinetd = "2001"; e no diretório /etc/xinetd.d/ estão as configurações específicas. carro1.modelo= "fusca"; carro1.cor A diferença = "prata"; entre xinetd e o inetd é que o primeiro possui um arquivo de
configuração para cada serviço.
A configuração do servidor telnet pode ser feita usando o Xinetd da seguinte maneira: /etc/xinetd.d/telnetd service telnet { disable = yes Figura 2.4 – Layout Memória após inicialização flags = REUSE socket_type = stream //criando novo alias protocol = tcp Carro carro2 = carro1; wait = no user = root server = /etc/sbin/in.telnetd log_on_failure += USERID }
Parâmetros do Xinetd disable
Indica se o serviço está desabilitado (“yes”) ou habilitado (“no”).
flags
Controla vários parâmetros. Podem estar acumulados.
socket_type
Aceita “stream”, “dgram” , “raw” e “seqpacket”. Normalmente “stream” está relacionado a tcp e “dgram” para udp.
protocol
2.3
Protocolo quevariáveis devereferência estar para presente Figura 2.5 – Layout válido Memória duas o mesmo em objeto /etc/protocols. Normalmente é tcp ou udp.
Se “yes”, indica serviços single-threaded, dispara e espera o serviço
wait de Instância terminar para lançar outras instâncias ou outros serviços. Se “no”, ele Membros
não espera outrasinstância instâncias/serviços. Cada objeto criado deverá ter para sualançar própria de variáveis Os valores das variáveis user pela classe. Determina o usuário sob o qual o serviço será de executado. (atributos) definidas Os métodos definem comportamento um em um objeto constituem objeto. Isto é group importante, pois denota que oum método pertence a cada da Especifica group pelo qual o serviço seráobjeto executado. o seu estado. classe. Porém não devemos confundir isto com a implementação do método, que Dois objetos distintos têm server Indica o programa responsável pelo serviço. é compartilhada por todas as instâncias da classe.
o mesmo estado se suas membro têm os 2.3.1 Invocação de Métodos Determina quais informações de erros vão compor o log devariáveis log_on_failure erros. mesmos valores. Objetos se comunicam pela troca de mensagens, isto significa que um Quantidade de instâncias simultâneas deste serviço são permitidas. Por server_args
Especifica os argumentos do programa citado acima.
objeto pode instances ter que mostrar um comportamento padrão não há limites. particular invocando uma operação apropriada que foi definida no objeto. Em Java, isto é feito pela o horário em que conexões a este serviço serão aceitas access_times chamada de um método em umEspecifica objeto usando o operador binário "." (ponto), (formato: hora:minuto-hora:minuto). devendo especificar a mensagem completa: o objeto que é o recebedor da Quantidades permitidaspara de conexões por(se IP. houver). mensagem, o per_source método a ser invocado e os argumentos o método O método invocado no recebedor podedetambém volta ao Forma limitar a enviar taxa deinformações conexões. Usade dois argumentos. O primeiro controla o número de conexões por segundo, e o segundo limita objeto chamador através de um valor de retorno. O método chamado deve ser cps quanto tempo o serviço permanecer desativado se o primeiro um que esteja definido pelo objeto. argumento for excedido.
Todos os direitos reservados a 3Way Networks
Seja um Profissional Aprendendo com Profissionais Seja um Profissional Aprendendo com Profissionais www.3way.com.br
12 27 27
Linguagem de Programação Java Linux Network Administration
Este material pode ser distribuído. Cursonão Especialista em Redes Somente poderá ser utilizado por alunos da 3Way3232 Networks.
[email protected] | (62) 9333 www.3way.com.br //atribuindo valor a variável referência Carronice carro1 = new Valor Carro(); de nice inicial para os processos. carro1.ano = "2001"; carro1.modelo= "fusca"; carro1.cor = "prata";
1.19. UTILITÁRIOS DE REDES 1.19.1. HOST Obtém informações de máquinas pertencentes a um domínio ou sub-domínio. Utiliza o serviço de nomes como fonte de suas consultas. Consulta Simples
Figura 2.4 – Layout Memória após inicialização
host www.linux.org //criando novo alias www.linux.org is an alias for linux.org Carro carro2 = carro1; linux.org has address 184.173.230.160 linux.org mail is handled by 0 linux.org
Transferência de Zona host -l linux.org
Consulta Detalhada
host -a www.registro.org
As opções -l e -a são respectivamente para fazer a transferência de zona de um domínio qualquer e para realizar uma consulta que contenha todas as opções Figura 2.5 – Layout Memória duas variáveis referência para o mesmo objeto juntas. Para saber todas as opções deste e de todos os comandos, basta utilizar o manual (comando man).
2.3
Membros de Instância
objeto criado deverá ter sua própria instância de variáveis NETSTAT 1.19.2.Cada Os valores das variáveis (atributos) definidas pela classe. Os métodos definem o comportamento de um em um objeto constituem objeto. Isto é importante, pois denota que um método pertence a cada objeto da o seurede, estado. Esta ferramenta é utilizada também para obter informações de mais classe. Porém não devemos confundir isto com a implementação do método, que Dois objetos distintos têm a configuração e atividade de uma rede. é precisamente compartilhada porpara todaschecar as instâncias da classe.
o mesmo estado se suas variáveis membro têm os mesmos valores.
2.3.1 Invocação de Métodos Objetos se comunicam pela troca de mensagens, isto significa que um objeto pode ter que mostrar um comportamento particular invocando uma Consulta da Tabela de Roteamento operação apropriada que foi definida no objeto. Em Java, isto é feito pela netstat -nr Tabela de Roteamento do Kernel chamada de um método em um objetoIPusando o operador binário "." (ponto), Destino Roteador MáscaraGen. MSS Janela devendo especificar a mensagem completa: o objeto queOpções é o recebedor da irtt Iface 127.0.0.0 0.0.0.0 255.0.0.0 U 0 0 lo mensagem, o método a ser invocado e os argumentos para o método (se houver). 0 192.168.1.0 0.0.0.0 255.255.255.0 UH 0 0 0 eth0 O método invocado no recebedor pode também enviar informações de volta ao objeto chamador através de um valor de retorno. O método chamado deve ser um que esteja definido pelo objeto.
netstat (parâmetros)
Todos os direitos reservados a 3Way Networks
Seja um Profissional Aprendendo com Profissionais Seja um Profissional Aprendendo com Profissionais www.3way.com.br
12 28 28
Linguagem de Programação Java Linux Network Administration
Este material pode ser distribuído. Cursonão Especialista em Redes Somente poderá ser utilizado por alunos da 3Way3232 Networks.
[email protected] | (62) 9333 www.3way.com.br //atribuindo valor a variável referência Carro -a carro1 newasCarro(); Lista=todas portas em escuta ou não. carro1.ano = "2001"; -t Lista portas tcp. carro1.modelo= "fusca"; carro1.cor = "prata"; -u Lista portas udp. -r
Opção para mostrar a tabela de roteamento.
-n
Não faz resolução de nomes, e sim, exibe os endereços IP.
-i
Mostrar todas as interfaces presentes ou alguma especificada (--interface=iface).
-m
Mostra a lista de todas as conexões mascaradas.
-s
Exibe estatísticas divididas por cada protocolo.
-c
Provoca a exibição contínua das informações (por segundo).
-p
Mostra o PID de cada processo.
-e
Exibe informações adicionais. Pode ser usada duplamente para mais informações. Figura 2.4 – Layout Memória após inicialização
//criando novo alias Carro carro2 = carro1;
Mais opções sobre o utilitário netstat podem ser vistas no manual do comando através do comando man netstat. 1.19.3. TCPDUMP Este utilitário é um farejador de conexões TCP/IP. O monitoramento é através da especificação da interface desejada: eth0, eth1, ppp0, etc. A saída do comando é o tráfego de pacotes enviados e recebidos, endereços de origem, de destino e outras informações. Monitorando todo Figura 2.5tráfego – Layout Memória duas variáveis referência para o mesmo objeto tcpdump -i eth0
2.3 Membros de Instância O tcpdump, devido ao sua capacidade de capturar os pacotes de um meio compartilhado, Cada objetopara criado sua capturar própria senhas instância de variáveis pode ser utilizado finsdeverá ilícitos,ter como não-criptografadas que trafegam rede. Os valores dasna variáveis (atributos) definidas classe. Os para métodos definemcomo o comportamento deanálise um Mas também podepela ser utilizado fins lícitos, ferramenta de de protocolos. em um objeto constituem objeto. Isto é importante, pois denota que um método pertence a cada objeto da classe. Porém não devemos confundir isto com a implementação do método, que Monitorando um host da classe. é compartilhada por todas as instâncias
o seu estado. Dois objetos distintos têm o mesmo estado se suas tcpdump -i eth0 host maq1.3waylocal.net.br variáveis membro têm os 2.3.1 Invocação Métodos apenas os pacotes enviados pelo maq1 ou Neste deexemplo, amesmos ele destinados valores. Objetos se comunicam pela troca de mensagens, isto significa que um
serão monitorados.
objeto pode ter que mostrar um comportamento particular invocando uma operação apropriada que foi definida no objeto. Em Java, isto é feito pela tcpdump -i eth0 src host maq1.3waylocal.net.br chamada de um método em um objeto usando o operador binário "." (ponto), devendo especificar a mensagem completa: objeto que o recebedor Para monitorar somente oso dados queé estão sendodaenviados mensagem, o método a ser invocado e os argumentos para o método (se houver). preciso utilizar o parâmetro src. O método invocado no recebedor pode também enviar informações de volta ao objeto chamador através de um valor de retorno. O método chamado deve ser Para monitorar apenas os pacotes que estão sendo enviados para um que esteja definido pelo objeto. tcpdump -i eth0 dst host maq1.3waylocal.net.br
por maq1 é maq1.
Todos os direitos reservados a 3Way Networks
Seja um Profissional Aprendendo com Profissionais Seja um Profissional Aprendendo com Profissionais www.3way.com.br
12 29 29
Linguagem de Programação Java Linux Network Administration
Este material pode ser distribuído. Cursonão Especialista em Redes Somente poderá ser utilizado por alunos da 3Way3232 Networks.
[email protected] | (62) 9333 www.3way.com.br //atribuindo valor a variável referência Carro carro1 = new Carro(); carro1.ano = "2001"; É possível monitorar carro1.modelo= "fusca"; pacotes que tenham carro1.cor = definindo seu nome, "prata"; como mostrado a seguir:
passado por um gateway específico,
tcpdump -i eth0 gateway [roteador]
Para monitorar tantos pacotes UDP quanto os TCP que sejam endereçados a uma porta específica, você pode especificar o número da porta, como no exemplo abaixo: tcpdump -i eth1 host maq2.3waylocal.net.br and port 80
O tcpdump possui inúmeras opções que podem ser utilizadas para o 2.4 – Layout para Memória após inicialização monitoramento das conexõesFigura TCP/IP, obter mais informações consultar o //criando novo alias manual do comando. Carro carro2 = carro1;
1.19.4. TRACEROUTE Este aplicativo indica por quais roteadores um pacote passou antes de atingir seu destino. O exemplo abaixo mostra quantos roteadores existem a partir do computador em que se executa o comando até o destino. traceroute www.linuxdoc.org
2.3
traceroute to linuxdoc.org (152.19.254.81), 30 hops max, 40 byte packets 1 roteador (10.2.0.5) 0.872 ms 0.334 ms 0.320 ms 2 10.1.0.7 (10.1.0.7) 1.049 ms 0.815 ms 0.843 ms 3 ppp254-gnace7004.telebrasilia.net.br (200.163.76.254) 16.285 ms 18.032 ms 16.100 ms 4 200.193.193.193 (200.193.193.193) 16.884 ms 18.170 ms 16.307 ms 5 200.199.245.5 (200.199.245.5) 24.378 ms 26.340 ms 24.531 ms 6 200.193.234.1 (200.193.234.1) 26.033 ms 24.762 ms Figura 2.5 – Layout Memória duas variáveis referênciams para24.778 o mesmo objeto 7 200.193.234.66 (200.193.234.66) 47.527 ms 49.635 ms 49.128 ms 8 BrT-G3-0.cta-border.telepar.net.br (200.163.207.129) 47.849 ms 50.174 ms 49.365 ms 9 brasiltelecom-A0-0-0-32-dist01.cta.embratel.net.br (200.250.208.57) 53.094 ms
Membros de Instância
Cada objeto criado deverá ter sua própria instância de variáveis Os valores das variáveis a fonte e o destino podem existir muitos roteadores quais o pacote (atributos) Entre definidas pela classe. Os métodos definem o comportamento de um pelos em um objeto constituem atravessa antes de pois atingir não respondem a ping, objeto. Isto é importante, denotaseu que destino. um métodoMuitos pertence aroteadores cada objeto da o seu estado. classe. Porém não devemos confundir isto com a implementação do método, que técnica utilizada para testar os roteadores, então pode ocorrer de asobjetos respostas nãotêm Dois distintos é saírem compartilhada por todas as instâncias da classe. na forma de milissegundos (ms), e sim, três * (asteriscos).
o mesmo estado se suas variáveis membro têm os mesmos valores.
2.3.1 Invocação de Métodos 1.19.5.Objetos NMAPse comunicam pela troca de mensagens, isto significa que um objeto pode ter que mostrar um comportamento particular invocando uma operação apropriada que nmap foi definida objeto. de Em portas, Java, istooué seja, feito pela O comando é umnoscanner ele mostra chamada de um método em um objeto usando o operador binário "." (ponto), comunicação estão abertas. devendo especificar a mensagem completa: o objeto que é o recebedor da mensagem, o método a ser invocado eSintaxe os argumentos para o método (se houver). do comando NMAP O método invocado no recebedor pode também enviar informações de volta ao objeto chamador através de um valor de retorno. O método chamado deve ser nmap [opções] um que esteja definido pelo objeto.
quais portas de
Todos os direitos reservados a 3Way Networks
Seja um Profissional Aprendendo com Profissionais Seja um Profissional Aprendendo com Profissionais www.3way.com.br
12 30 30
Linguagem de Programação Java Linux Network Administration
Este material pode ser distribuído. Cursonão Especialista em Redes Somente poderá ser utilizado por alunos da 3Way3232 Networks.
[email protected] | (62) 9333 www.3way.com.br //atribuindo valor a variável Carro carro1 = new Carro(); -sS carro1.ano = "2001"; -sP opções"fusca"; carro1.modelo= -sT carro1.cor = "prata"; -sU
endereço
referência – Scanner silencioso. – Scanner de ping. – Scanner tcp – Scanner udp
Endereço IP ou Hostname da máquina alvo.
O exemplo abaixo mostra quais são as portas (e serviços) que estão momentaneamente abertas na máquina local. nmap 127.0.0.1 #Starting nmap V. 2.54BETA21 ( www.insecure.org/nmap/ ) Interesting ports on localhost.localdomain (127.0.0.1): (The 1535 ports scanned but not shown below are in state: closed) Figura 2.4 – Layout Memória após inicialização Port State Service 80/tcp open http //criando novo alias 111/tcp sunrpc Carro carro2 =open carro1; 119/tcp open nntp 443/tcp open https 515/tcp open printer 878/tcp open unknown 6000/tcp open X11 Nmap run completed -- 1 IP address (1 host up) scanned in 1 second
Figura 2.5 – Layout Memória duas variáveis referência para o mesmo objeto
2.3
Membros de Instância
Cada objeto criado deverá ter sua própria instância de variáveis (atributos) definidas pela classe. Os métodos definem o comportamento de um objeto. Isto é importante, pois denota que um método pertence a cada objeto da classe. Porém não devemos confundir isto com a implementação do método, que é compartilhada por todas as instâncias da classe. 2.3.1 Invocação de Métodos Objetos se comunicam pela troca de mensagens, isto significa que um objeto pode ter que mostrar um comportamento particular invocando uma operação apropriada que foi definida no objeto. Em Java, isto é feito pela chamada de um método em um objeto usando o operador binário "." (ponto), devendo especificar a mensagem completa: o objeto que é o recebedor da mensagem, o método a ser invocado e os argumentos para o método (se houver). O método invocado no recebedor pode também enviar informações de volta ao objeto chamador através de um valor de retorno. O método chamado deve ser um que esteja definido pelo objeto.
Os valores das variáveis em um objeto constituem o seu estado. Dois objetos distintos têm o mesmo estado se suas variáveis membro têm os mesmos valores.
Todos os direitos reservados a 3Way Networks
Seja um Profissional Aprendendo com Profissionais Seja um Profissional Aprendendo com Profissionais www.3way.com.br
12 31 31
Linguagem de Programação Java Linux Network Administration
Este material pode ser distribuído. Cursonão Especialista em Redes Somente poderá ser utilizado por alunos da 3Way3232 Networks.
[email protected] | (62) 9333 www.3way.com.br //atribuindo valor a variável referência Carro carro1 = new Carro(); carro1.ano = "2001"; carro1.modelo= "fusca"; carro1.cor = "prata";
1.20. LABORATÓRIO
Esse laboratório tem o intuito promover a prática sobre a configuração TCP/IP, Xinetd e utilitários de rede. A) Preparar a máquina com as configurações TCP/IP necessárias. Hostname
hostname aluno1.3waylocal.com.br vi /etc/sysconfig/network HOSTNAME=aluno1.3waylocal.com.br Figura 2.4 – Layout Memória após inicialização
up
//criando novo alias Interface de=rede Carro carro2 carro1; ifconfig eth0 192.168.1.101 netmask 255.255.255.0 broadcast 192.168.1.255
vi /etc/sysconfig/network-scripts/ifcfg-eth0 DEVICE=eth0 ONBOOT=yes BOOTPROTO=none" IPADDR=192.168.1.101 NETMASK=255.255.255.0
Rotas Normalmente as rotas são criadas automaticamente, incluindo a padrão, mas se por acaso isso não acontecer, podemos criá-la com o comando: route add default gw 192.168.1.254
Figura 2.5 – Layout Memória duas variáveis referência para o mesmo objeto
Resolução de nomes
2.3
echo "nameserver 192.168.1.254" > /etc/resolv.conf
Membros de Instância Cada objeto deveráa máquina ter sua já própria de variáveis valores das variáveis Desse pontocriado em diante, possuiinstância conectividade na rede, já Os é possível navegar.
(atributos) definidas pela classe. Os métodos definem o comportamento de um em um objeto constituem objeto. Isto é importante, pois denota que um método pertence a cada objeto da o seu estado. B) Configurar o serviço imapisto nocom xinetd para acesso local eque da rede 192.168.1.0/24 no classe. Porém não devemos confundir a implementação do método, Dois objetos distintos têm é servidor compartilhada por todas as instâncias da específico classe. de email e usando banner para usuários bloqueados. 2.3.1 Invocação de Métodos service imap Objetos se comunicam pela troca de mensagens, isto significa que um { stream objeto pode tersocket_type que mostrar um =comportamento particular invocando uma protocol = tcp operação apropriada que foi definida no objeto. Em Java, isto é feito pela wait = no chamada de umuser método em um objeto usando o operador binário "." (ponto), = root only_from = 192.168.1.0 localhost devendo especificar a mensagem completa: o objeto que é o recebedor da banner /usr/local/etc/deny_banner mensagem, o método a ser invocado =e os argumentos para o método (se houver). server = /usr/local/sbin/imapd O método invocado no recebedor pode também enviar informações de volta ao } objeto chamador através de um valor de retorno. O método chamado deve ser um que esteja definido pelo objeto.
o mesmo estado se suas variáveis membro têm os mesmos valores.
C) Testar alguns utilitários de rede para extrair mais informações da mesma. Todos os direitos reservados a 3Way Networks
Seja um Profissional Aprendendo com Profissionais Seja um Profissional Aprendendo com Profissionais www.3way.com.br
12 32 32
Linguagem de Programação Java Linux Network Administration
Este material pode ser distribuído. Cursonão Especialista em Redes Somente poderá ser utilizado por alunos da 3Way3232 Networks.
[email protected] | (62) 9333 www.3way.com.br //atribuindo valor a variável referência Carro carro1 = new Carro(); carro1.ano = "2001"; Resolução de nomes carro1.modelo= "fusca"; host www.3way.com.br carro1.cor = "prata";
Conexões ativas netstat -ano
Forjando conexões ICMP tcpdump icmp
Traçando a rota até um ponto
traceroute www.3way.com.br
Figura 2.4 – Layout Memória após inicialização
//criando novo alias Varredura de Portas Carro carro2 = carro1; nmap -sS 192.168.1.101 nmap -sT 192.168.1.102 nmap -sU 192.168.1.103 nmap -sP -O 192.168.1.*
Figura 2.5 – Layout Memória duas variáveis referência para o mesmo objeto
2.3
Membros de Instância
Cada objeto criado deverá ter sua própria instância de variáveis (atributos) definidas pela classe. Os métodos definem o comportamento de um objeto. Isto é importante, pois denota que um método pertence a cada objeto da classe. Porém não devemos confundir isto com a implementação do método, que é compartilhada por todas as instâncias da classe. 2.3.1 Invocação de Métodos Objetos se comunicam pela troca de mensagens, isto significa que um objeto pode ter que mostrar um comportamento particular invocando uma operação apropriada que foi definida no objeto. Em Java, isto é feito pela chamada de um método em um objeto usando o operador binário "." (ponto), devendo especificar a mensagem completa: o objeto que é o recebedor da mensagem, o método a ser invocado e os argumentos para o método (se houver). O método invocado no recebedor pode também enviar informações de volta ao objeto chamador através de um valor de retorno. O método chamado deve ser um que esteja definido pelo objeto.
Os valores das variáveis em um objeto constituem o seu estado. Dois objetos distintos têm o mesmo estado se suas variáveis membro têm os mesmos valores.
Todos os direitos reservados a 3Way Networks
Seja um Profissional Aprendendo com Profissionais Seja um Profissional Aprendendo com Profissionais www.3way.com.br
12 33 33
Linguagem de Programação Java
//atribuindo valor a variável referência Carro carro1 = new Carro(); carro1.ano = "2001"; carro1.modelo= "fusca"; carro1.cor = "prata";
Figura 2.4 – Layout Memória após inicialização
//criando novo alias Carro carro2 = carro1;
Figura 2.5 – Layout Memória duas variáveis referência para o mesmo objeto
2.3
Membros de Instância
Cada objeto criado deverá ter sua própria instância de variáveis (atributos) definidas pela classe. Os métodos definem o comportamento de um objeto. Isto é importante, pois denota que um método pertence a cada objeto da classe. Porém não devemos confundir isto com a implementação do método, que é compartilhada por todas as instâncias da classe. 2.3.1 Invocação de Métodos Objetos se comunicam pela troca de mensagens, isto significa que um objeto pode ter que mostrar um comportamento particular invocando uma operação apropriada que foi definida no objeto. Em Java, isto é feito pela chamada de um método em um objeto usando o operador binário "." (ponto), devendo especificar a mensagem completa: o objeto que é o recebedor da mensagem, o método a ser invocado e os argumentos para o método (se houver). O método invocado no recebedor pode também enviar informações de volta ao objeto chamador através de um valor de retorno. O método chamado deve ser um que esteja definido pelo objeto.
Os valores das variáveis em um objeto constituem o seu estado. Dois objetos distintos têm o mesmo estado se suas variáveis membro têm os mesmos valores.
Todos os direitos reservados a 3Way Networks
Seja um Profissional Aprendendo com Profissionais www.3way.com.br
12 34
Linguagem de Programação Java Linux Network Administration
Este material pode ser distribuído. Cursonão Especialista em Redes Somente poderá ser utilizado por alunos da 3Way3232 Networks.
[email protected] | (62) 9333 www.3way.com.br //atribuindo valor a variável referência Carro carro1 = new Carro(); carro1.ano = "2001"; carro1.modelo= "fusca"; carro1.cor = "prata";
1.21. EXERCÍCIOS 1)
Tendo como base a rede 192.168.20.0/255.255.255.0, calcular: a) Notação CIDR b) Broadcast c) Número de endereços disponíveis para dispositivos
2) Considerando a rede 192.168.10.0/255.255.255.240, calcular os mesmo itens do exercício anterior. 3) Interpretar a tabela roteamento abaixo, respondendo algumas Figura 2.4de – Layout Memória após inicialização perguntas: //criando novo alias Carro carro2 = carro1;Roteador Destino 10.1.1.23 10.0.0.0 192.168.10.140 127.0.0.1 0.0.0.0
192.168.10.253 0.0.0.0 192.168.10.254 0.0.0.0 192.168.10.1
MáscaraGen. 255.255.255.255 255.255.248.0 255.255.240.0 255.0.0.0 0.0.0.0
Opções UGH U UG U UG
Métrica 0 0 0 0 0
Ref 0 0 0 0 0
a) Se um pacote tiver o destino a 176.16.0.12 para qual roteador ele será enviado? b) E com destino 192.168.10.150? c) Destino 10.1.1.23?
4)
Uso 0 0 0 0 0
Iface eth0 eth0 eth0 lo eth0
Converter os números IP:
a) 10.20.30.40 em b) 11100111.11100111.10000001.00001010 c) 0x11C4C040 em binário e decimal
em
hexadecimal decimal
e
e
binário hexadecimal
Figura 2.5 – Layout Memória duas variáveis referência para o mesmo objeto
5)
Por que os endereços IP foram divididos em classes? Quais são as
2.3 Membros Instância classes e comode identificamos um número IP como pertencente a uma classe?
Cada objeto criado deverá ter sua própria instância de variáveis Os valores das variáveis (atributos) definidas pela classe. Os métodos definem o comportamento de um em um objeto constituem Qual é pois a quantidade de classe A objeto matematicamente possíveis? E de objeto. Isto6) é importante, denota quede umendereços método pertence a cada da o seu estado. classePorém B e C? classe. não devemos confundir isto com a implementação do método, que Dois objetos distintos têm é compartilhada por todas as instâncias da classe.
7)
Conceituar e da exemplos sobre os endereços especiais:
o mesmo estado se suas variáveis membro têm os broadcast mesmos valores. rede
2.3.1 Invocação de a) Métodos b) Objetos se comunicam pela troca de mensagens, isto significa que um c) ter que mostrar um comportamento particular invocando uma privado objeto pode d) localhost operação apropriada que foi definida no objeto. Em Java, isto é feito pela (todas redes) chamada e) derede umpadrão método em um objeto usando o operador binário "." (ponto), devendo especificar a mensagem completa: o objeto que é o recebedor da mensagem,8) o método a seré invocado e os Qual argumentos o métodoComo (se houver). O que sub-rede? a suapara utilidade? criar uma sub-rede? O método invocado no recebedor pode também enviar informações de volta ao objeto chamador através de um valor de retorno. O método chamado deve ser 9) definido O que são portas TCP? Para que servem? Citar pelo menos 5 número de um que esteja pelo objeto.
portas com seus respectivos serviços padrões.
Todos os direitos reservados a 3Way Networks
Seja um Profissional Aprendendo com Profissionais Seja um Profissional Aprendendo com Profissionais www.3way.com.br
12 35 34
Linguagem de Programação Java Linux Network Administration
Este material pode ser distribuído. Cursonão Especialista em Redes Somente poderá ser utilizado por alunos da 3Way3232 Networks.
[email protected] | (62) 9333 www.3way.com.br //atribuindo valor a variável referência Carro carro1 = new Carro(); carro1.ano = "2001"; 10) O que é "fusca"; uma rota? Qual é o comando carro1.modelo= carro1.cor = "prata";
para se definir uma rota?
11) O que é um DNS? Para que serve um DNS? Qual é o endereço IP dos hosts: www.3waylocal.net.br, www.globo.com, www.uol.com.br? 12) Para que servem /etc/services, /etc/hosts?
os
arquivos:
/etc/protocols,
13) O que é FQDN? Qual a utilidade do comando hostname? 14) Para que serve o arquivo /etc/resolv.conf? Figura 2.4 – Layout Memória após inicialização
//criando novo alias Carro 15) carro2 Qual é= acarro1; utilidade
do serviço inetd/Xinetd? Quando devemos utilizá-lo?
Figura 2.5 – Layout Memória duas variáveis referência para o mesmo objeto
2.3
Membros de Instância
Cada objeto criado deverá ter sua própria instância de variáveis (atributos) definidas pela classe. Os métodos definem o comportamento de um objeto. Isto é importante, pois denota que um método pertence a cada objeto da classe. Porém não devemos confundir isto com a implementação do método, que é compartilhada por todas as instâncias da classe. 2.3.1 Invocação de Métodos Objetos se comunicam pela troca de mensagens, isto significa que um objeto pode ter que mostrar um comportamento particular invocando uma operação apropriada que foi definida no objeto. Em Java, isto é feito pela chamada de um método em um objeto usando o operador binário "." (ponto), devendo especificar a mensagem completa: o objeto que é o recebedor da mensagem, o método a ser invocado e os argumentos para o método (se houver). O método invocado no recebedor pode também enviar informações de volta ao objeto chamador através de um valor de retorno. O método chamado deve ser um que esteja definido pelo objeto.
Os valores das variáveis em um objeto constituem o seu estado. Dois objetos distintos têm o mesmo estado se suas variáveis membro têm os mesmos valores.
Todos os direitos reservados a 3Way Networks
Seja um Profissional Aprendendo com Profissionais Seja um Profissional Aprendendo com Profissionais www.3way.com.br
12 36 35
Linguagem de Programação Java Linux Network Administration
Este material pode ser distribuído. Cursonão Especialista em Redes Somente poderá ser utilizado por alunos da 3Way3232 Networks.
[email protected] | (62) 9333 www.3way.com.br //atribuindo valor a variável referência Carro carro1 = new Carro(); carro1.ano = "2001"; carro1.modelo= "fusca"; carro1.cor = "prata";
2. SERVIDOR SSH
O OpenSSH é uma implementação do protocolo SSH (Secure SHell) para o Linux que possui o objetivo de criptografar sessões de shell para máquinas remotas, mas pode ser usado para transferência de arquivos e criar túneis para outros protocolos.
2.1. INSTALAÇÃO E CONFIGURAÇÃO A instalação do cliente e servidor OpenSSH é feita através do comando: yum install openssh openssh-server
Figura 2.4 – Layout Memória após inicialização
configuração se localizam na árvore /etc/ssh/. Os arquivos ssh_config e sshd_config configuram, respectivamente, o cliente e o servidor SSH. Algumas opções do servidor serão listadas a seguir: //criando alias de Todos osnovo arquivos Carro carro2 = carro1;
Opções sshd_config Port 22 Protocol 2 PermitRootLogin yes
Define a porta que o servidor espera conexões. O padrão é a 22. Indica qual a versão do protocolo o OpenSSH dá suporte. O padrão é o 2, devido a algumas falhas da versão 1. Habilita/Desabilita o login do usuário root. O padrão é yes, com a opção estando comentada.
SSH – Conecta remotamente a um host informado. Figura 2.5 – Layout Memória duas variáveis referência para o mesmo objeto Sintaxe: ssh nome_de_usuario@ip_ou_nome_host ou ssh ip_ou_nome_host.
2.3
Membros de Instância
Cada objeto criado deverá ter sua Exemplos própria instância de variáveis Os valores das variáveis (atributos) definidas pela classe. Os métodos comportamento com de um Conecta via sshdefinem ao hosto 192.168.0.150 o usuário user1 através da em um objeto constituem objeto. Isto é importante, poisporta denota que um método pertence a cada objeto da padrão de conexão. o seu estado. classe. Porém não devemos confundir isto com a implementação do método, que ssh
[email protected] Dois objetos distintos têm é compartilhada por todas as instâncias classe.do usuário user1 será solicitada para completar a Obs.: A da senha
o mesmo estado se suas conexão. variáveis membro têm os 2.3.1 Invocação de Métodos Tenta uma conexão ssh no host 192.168.0.150 com o usuário no mesmoslogado valores. ssh 192.168.0.150 Objetos se comunicam pela troca de mensagens, isto significa que um momento, caso ele não exista, exibirá mensagem de erro. objeto pode ter que mostrar um comportamento particular invocando uma ao host maq1istocom o usuário operação apropriada que foiConecta definidavia no ssh objeto. Em Java, é feito pela user2 através da porta ssh user2@maq1 de conexão. nome maq1 resolvido localmente (/etc/hosts) chamada de um método empadrão um objeto usando o O operador bináriodeve "." (ponto), ou por um DNS, caso contrário a conexão nãodaserá completada. devendo especificar a mensagem completa: o objeto que é o recebedor mensagem, o método a ser invocado e os argumentos para user2 o método Faz uma conexão ssh com no (se hosthouver). de nome maq1 através da porta ssh -p 1022 user2@maq1 O método invocado no recebedor pode também enviar informações de volta ao 1022. objeto chamador através de um valor de retorno. O método chamado deve ser um que esteja definido pelo objeto. Todos os direitos reservados a 3Way Networks
Seja um Profissional Aprendendo com Profissionais Seja um Profissional Aprendendo com Profissionais www.3way.com.br
12 37 36
Linguagem de Programação Java Linux Network Administration
Este material pode ser distribuído. Cursonão Especialista em Redes Somente poderá ser utilizado por alunos da 3Way3232 Networks.
[email protected] | (62) 9333 www.3way.com.br //atribuindo valor a variável referência Carro carro1 = new Carro(); carro1.ano = "2001"; carro1.modelo= "fusca"; carro1.cor = "prata";
2.2. LABORATÓRIO
Este laboratório tem o objetivo de mostrar e testar a configuração do servidor SSH na máquina virtual. Você usará a máquina hospedeira para se conectar à VM, configurar o servidor e testá-lo. 1) Antes de qualquer coisa, verifique a conectividade entre as duas máquinas através de um ping. (vamos supor que a máquina hospedeira tem o endereço 192.168.0.103 e a máquina virtual 192.168.0.123) 2.4 – Layout Memória após inicialização ping 192.168.0.123 Estando na hospedeira:Figura
//criando novo alias Carro carro2 carro1; ping 192.168.0.103 Estando na=VM:
2) Se houver conectividade, conecte-se à VM com o usuário root. ssh
[email protected]
3) Se o logon tiver sucesso, faça a seguinte configuração no servidor: vi /etc/ssh/sshd_config Port 41001 Protocol 2 PermitRootLogin no
Essas configurações mudaram a porta de acesso ao servidor e o protocolo do SSH (protocolo 2) e removeram a permissão do usuário root de se logar Figura 2.5 – Layout Memória duas variáveis referência para o mesmo objeto remotamente. 4) Reinicie o servidor para que as alterações passem a valer. 2.3
service de sshd reload Membros Instância
Cada objeto criado deverá ter sua própria instância de variáveis das variáveis 5) Naturalmente espera-se que a conexão estabelecida comOsavalores VM caia, pois (atributos) definidas pela classe. Os métodos definem o comportamento de um em um objeto constituem afinalIsto retiramos a permissão do um usuário de se conectar remotamente. Porém, as objeto. é importante, pois denota que métodoroot pertence a cada objeto da o seu estado. alterações começam a valeristosomente para as novas conexões, precisando assim classe. Porém não devemos confundir com a implementação do método, que Dois objetos distintos têm é finalizar compartilhada por todas as instâncias da classe. os processos anteriores a essa configuração que acabamos de efetuar.
o mesmo estado se suas variáveis membro têm os mesmos valores.
ps aux | grep sshd
2.3.1 Invocação de Métodos kill -9 pid_da_conexao_ssh Objetos se comunicam pela troca de mensagens, isto significa que um objeto pode ter que mostrar um comportamento particular invocandonovamente uma 6) A conexão cairá instantaneamente, conecte-se operação apropriada que foi definida no objeto. Em Java, isto é feito pela configurações. chamada de um método em um objeto usando o operador binário "." (ponto), ssh -p 41001
[email protected] devendo especificar a mensagem completa: o objeto que é o recebedor da mensagem, o método a ser invocado e os argumentos para o método (se houver). O método invocado no recebedor pode também enviar informações de volta ao objeto chamador através de um valor de retorno. O método chamado deve ser um que esteja definido pelo objeto.
já com as novas
Todos os direitos reservados a 3Way Networks
Seja um Profissional Aprendendo com Profissionais Seja um Profissional Aprendendo com Profissionais www.3way.com.br
12 38 37
Linguagem de Programação Java Linux Network Administration
Este material pode ser distribuído. Cursonão Especialista em Redes Somente poderá ser utilizado por alunos da 3Way3232 Networks.
[email protected] | (62) 9333 www.3way.com.br //atribuindo valor a variável referência Carro carro1 = new Carro(); carro1.ano = "2001"; carro1.modelo= "fusca"; carro1.cor = "prata";
2.3. EXERCÍCIOS
O que é o openSSH?
Qual o comando utilizado para instalá-lo (Cliente e Servidor)?
Qual é o arquivo de configuração do servidor e do cliente openSSH? Descreva as principais diretivas.
Explique com detalhes o que faz o comando abaixo:
ssh -p 41002
[email protected]
Figura 2.4 – Layout Memória após inicialização
//criando novo alias Carro carro2 = carro1;
Figura 2.5 – Layout Memória duas variáveis referência para o mesmo objeto
2.3
Membros de Instância
Cada objeto criado deverá ter sua própria instância de variáveis (atributos) definidas pela classe. Os métodos definem o comportamento de um objeto. Isto é importante, pois denota que um método pertence a cada objeto da classe. Porém não devemos confundir isto com a implementação do método, que é compartilhada por todas as instâncias da classe. 2.3.1 Invocação de Métodos Objetos se comunicam pela troca de mensagens, isto significa que um objeto pode ter que mostrar um comportamento particular invocando uma operação apropriada que foi definida no objeto. Em Java, isto é feito pela chamada de um método em um objeto usando o operador binário "." (ponto), devendo especificar a mensagem completa: o objeto que é o recebedor da mensagem, o método a ser invocado e os argumentos para o método (se houver). O método invocado no recebedor pode também enviar informações de volta ao objeto chamador através de um valor de retorno. O método chamado deve ser um que esteja definido pelo objeto.
Os valores das variáveis em um objeto constituem o seu estado. Dois objetos distintos têm o mesmo estado se suas variáveis membro têm os mesmos valores.
Todos os direitos reservados a 3Way Networks
Seja um Profissional Aprendendo com Profissionais Seja um Profissional Aprendendo com Profissionais www.3way.com.br
12 39 38
Siga-nos também no Twitter! twitter.com/3waynet