Mudanças entre as edições de "Gerência de Redes (diário 2011-2)"
(→NTP) |
(→NTP) |
||
Linha 222: | Linha 222: | ||
Ambos os serviços mencionados na aula anterior dependem fortemente do sistema operando com a hora certa. O [http://datatracker.ietf.org/wg/ntp/charter/ histórico] protocolo [http://ntp.br/NTP/MenuNTPNtp NTP] permite a sincronização da hora dos sistemas em rede. [http://ntp.br/ No Brasil], está disponível um ''pool'' de servidores: <tt>pool.ntp.br</tt>. | Ambos os serviços mencionados na aula anterior dependem fortemente do sistema operando com a hora certa. O [http://datatracker.ietf.org/wg/ntp/charter/ histórico] protocolo [http://ntp.br/NTP/MenuNTPNtp NTP] permite a sincronização da hora dos sistemas em rede. [http://ntp.br/ No Brasil], está disponível um ''pool'' de servidores: <tt>pool.ntp.br</tt>. | ||
− | A instalação e configuração do serviço é bastante simples: | + | A instalação e configuração do serviço é bastante simples ([http://ntp.br/NTP/MenuNTPGuia#Instala_o_para_GNU_Linux_e_outro baseado no guia do NTP.br]): |
<syntaxhighlight lang=bash> | <syntaxhighlight lang=bash> | ||
apt-get install ntp | apt-get install ntp |
Edição das 02h02min de 14 de outubro de 2011
Endereço encurtadi: http://bit.ly/ger20112
Planejamento
01/08
Discussão e montagem coletiva do plano de ensino deste semestre.
05/08
Visão histórica dos sistemas operacionais, linguagens de programação e redes de computadores.
Revisão e Integração das Disciplinas
Sistema Operacional
08/08
Paralisação das atividades docentes.
12/08
Aula de sistemas operacionais baseados em UNIX, em particular GNU/Linux. Revisão dos conceitos originários do UNIX[1] e que podem ser utilizados na administração de sistemas até hoje, como por exemplo no Linux[2].
graph SO {
Usuário "Memória principal" "Dispositivo(s) de armazenamento" subgraph clusterSO { label="S.O." Usuários [shape=plaintext] Processos [shape=plaintext] Dados [shape=plaintext] Kernel [shape=circle] } Usuário -- Usuários [label=Interação,fontcolor=red,color=red] "Memória principal" -- Processos [label=Processamento,fontcolor=red,color=red] "Dispositivo(s) de armazenamento" -- Dados [label="Sistema(s) de arquivos",fontcolor=red,color=red] Usuários -- Processos [color=lightgray] Processos -- Dados [color=lightgray] Kernel -- Usuários [color=blue] Kernel -- Processos [color=blue,fontcolor=blue,label="Chamadas de sistema"] Kernel -- Dados [color=blue]
}
</graphviz>15/08
Visão do início do sistema (initialization) em PC, do POST à seleção do nível de execução.
Software básico
19/08
Do código-fonte, passando pela compilação e código final, ao empacotamento. Como exemplo, foi utilizado o Asterisk para compreensão do processo de compilação de software (bibliotecas, dependências, ativação de funcionalidades e outros). No Ubuntu 10.04 - já de posse do código no diretório corrente - foram necessários os comandos para uma instalação básica:
aptitude update
aptitude install buid-essential
aptitude install libxml2-dev
aptitude install libsqlite3-dev
aptitude install libncurses-dev
./configure
make
make install
make samples
asterisk -c
Nota-se, nos comandos acima, os comandos aptitude para instalar via pacote as bibliotecas necessárias a compilação.
Rede
22/08
26/08
Não haverá aula devido a greve dos servidores públicos federais.
Controle de versão
29/09
Utilizado o material publicado para a disciplina de TCC I, uma vez que vários alunos fazem as duas matérias neste semestre.
03/10
Apresentação dos alunos sobre o NetKit, o qual será utilizado como ferramenta de apoio, junto ao controle de versão, para o projeto da disciplina.
A proposta de rede, até o final do semestre, é esta:
<graphviz> graph Projeto {
rankdir=LR Internet [shape=circle] Servidor_F [label=Servidor,shape=Mrecord] Firewall_M [label=Firewall,shape=Mrecord] Servidor_DMZ [label=Servidor,shape=Mrecord] Servidor_LAN [label=Servidor,shape=Mrecord] Switch_F [label=Switch,shape=record] Switch_LAN [label=Switch,shape=record] Cliente1_F [label="Cliente 1",shape=plaintext] Cliente2_F [label="Cliente 2",shape=plaintext] Cliente1_LAN [label="Cliente 1",shape=plaintext] Cliente2_LAN [label="Cliente 2",shape=plaintext] Cliente3_LAN [label="Cliente 3",shape=plaintext] Internet -- Servidor_F Internet -- Firewall_M subgraph clusterFilial { label=Filial Servidor_F -- Switch_F Switch_F -- Cliente1_F Switch_F -- Cliente2_F } subgraph clusterMatriz { label=Matriz subgraph clusterDMZ { label=DMZ Firewall_M -- Servidor_DMZ } subgraph clusterLAN { label=LAN Firewall_M -- Switch_LAN Switch_LAN -- Servidor_LAN Switch_LAN -- Cliente1_LAN Switch_LAN -- Cliente2_LAN Switch_LAN -- Cliente3_LAN } }
} </graphviz>
Em relação ao NetKit, trabalharemos com uma versão oficial congelada para uso neste semestre de 2011-2, onde haverá três níveis de arquivo:
- Configuração da rede: o arquivo lab.conf define os componentes da rede. Baixa taxa de modificação.
- Modelo do sistema de arquivos: arquivo modelo a ser usado por toda máquina do cenário. Sem qualquer modificação ao longo do projeto.
- Configuração dos computadores: cada máquina terá, além do modelo, arquivos adicionais de configuração dos serviços prestados (DHCP, DNS, HTTP e outros). Alta taxa de modificação.
Como serão duas redes distintas, unidas pela "nuvem Internet", haverá dois diretórios com os arquivos mutáveis: configuração da rede (arquivo lab.conf) e configuração das máquinas correspondentes.
- Diretório raiz
- Matriz
- lab.conf
- Firewall
- Arquivo 1
- Arquivo 2
- Arquivo 3
- ...
- Servidor-DMZ
- Arquivo 1
- Arquivo 2
- Arquivo 3
- ...
- Servidor-LAN
- Arquivo 1
- Arquivo 2
- Arquivo 3
- ...
- Filial
- lab.conf
- Servidor
- Arquivo 1
- Arquivo 2
- Arquivo 3
- ...
- Matriz
Assim, poderemos controlar a versão de todos os arquivos mutáveis do projeto: configuração da rede e dos computadores. Para fazer isso, é preciso preparar o ambiente. A sequência dos passos está descrita no blog de Tele, a qual explicamos abaixo para o usuário etorresini:
cd $HOME
wget http://tele.sj.ifsc.edu.br/arquivos/publicos/.gitconfig
vi .gitconfig
wget http://tele.sj.ifsc.edu.br/arquivos/publicos/.netrc
vi .netrc
git clone https://tele.sj.ifsc.edu.br/projetos/ger-etorresini
cd ger-etorresini
mkdir Matriz
vi Matriz/lab.conf
git add Matriz/lab.conf
mkdir Filial
vi Filial/lab.conf
git add Filial/lab.conf
git commit -a -m "Arquivos de configuração do NetKit: redes Matriz e Filial."
git push origin master
Esse processo, acima descrito, deve ser executado apenas na primeira vez. Nas demais ocasiões, é interessante sincronizar a base remota com a local (pull), editar o(s) arquivo(s), registrar a versão localmente (commit) e sincronizar a base local com a remota (push). Segue o exemplo abaixo:
cd $HOME/ger-etorresini
git pull
vi <nome do arquivo>
vi <nome do outro arquivo>
...
git add <arquivo novo, se houver>
git add <outro arquivo novo, se houver>
git commit -a -m "<mensagem do commit>"
git push
O professor acompanhará as atividades pela interface Web comum a todos os projetos. Os alunos poderão utilizar ferramentas CLI ou gráficas para ler os repositórios local e remoto(s), bem como material de apoio disponível na Internet [3].
Serviços
A tabela abaixo se refere a sistemas baseados em Debian, como Ubuntu e o próprio NetKit.
Tipo | Serviço | Porta | Executável | Configuração |
Facilitadores | cron | - | /usr/sbin/cron | /etc/crontab |
syslog | 514/UDP | /usr/sbin/rsyslogd | /etc/rsyslog.conf | |
ntp | 123/UDP | /usr/sbin/ntpd | /etc/ntp.conf |
Facilitadores
07/10
Vistos os serviços locais de sistema operacional cron e syslog, que tratam do agendamento de tarefas e registro de eventos respectivamente.
Cron
Esse termo, comumente usado noAgendamento de Tarefass sistemas Windows, serve para abranger todos os serviços que programam a execução de aplicações em horários predefinidos, permitindo inclusive executá-los periodicamente. Nos sistemas baseados em UNIX (homenagem a Dennis Ritchie), essa tarefa fica a cargo do serviço cron.
O cron possui arquivos de configuração para:
- Sistema: /etc/crontab, que pode incluir outros arquivos.
- Usuário: armazenado em /var/spool/cron/crontabs/<usuário>, porém com edição facilitada pelo aplicativo crontab.
Syslog
Termo também emprestado do mundo Windows, significam os serviços responsáveis por armazenar eventos importantes do sistema, como por exemplo detecção de novo hardware USB ou tentativa frustrada de autenticação de usuário.
O serviço syslog, da família UNIX, organiza os registros, ou logs, segundo a sua origem (facility) e gravidade (priority). Assim, todo log será identificado com a hora da ação, facility e priority. De acordo com o arquivo de configuração do serviço, tal log será guardado em um ou mais arquivos - geralmente em /var/log. (Lembre-se: ler log é uma arte...)
10/10
NTP
Ambos os serviços mencionados na aula anterior dependem fortemente do sistema operando com a hora certa. O histórico protocolo NTP permite a sincronização da hora dos sistemas em rede. No Brasil, está disponível um pool de servidores: pool.ntp.br.
A instalação e configuração do serviço é bastante simples (baseado no guia do NTP.br):
apt-get install ntp
E adicionar o pool brasileiro, mantendo apenas essa linha (e removendo as demais):
server pool.ntp.br
e reiniciar o serviço:
/etc/init.d/ntp restart
Obs.: por questões de S.O., o serviço não alterará o relógio quando a diferença for maior que 128ms. Assim, nesses casos é preciso um ajuste diferenciado:
/etc/init.d/ntp stop
ntpd -q -g
/etc/init.d/ntp start
Diretórios e Bancos de Dados
Compartilhamento
Comunicação
Gerência
29/08 02/09 05/09 09/09 12/09 16/09 19/09 23/09 26/09 30/09
03/10 07/10 10/10 14/10 17/10 21/10 24/10 31/10 04/11 07/11 11/11
18/11
21/11 25/11 28/11 02/12 05/12 09/12 12/12 16/12 19/12
Referências
- ↑ RITCHIE, D. M. e THOMPSON, K. The UNIX Time-Sharing System. The Bell System Technical Journal. no. 57 parte 2. 1978.
- ↑ NEMETH, E. et al. UNIX and Linux System Administration Handbook. 4 ed. 2010. ISBN 0131480057.
- ↑ CHACO, S. Pro Git. Apress. 2009.