Professional Documents
Culture Documents
Slackmini
Linux server, simples.
MANUAL E DOCUMENTAÇÃO
Interfaces de rede Gerenciamento de VLANs Configurando rede IPv4 Tabela ARP (IPv4/MAC)
Configurando rede IPv6 Vizinhança IPv6 (IPv6/MAC) Cliente DNS Tuneis GRE sobre IPv4
Tuneis GRE sobre IPv6 Tuneis IP sobre IP (IPv4 e IPv6) Data/hora e time-zone Data/hora automática via NTP
Servidor: WEB Banco de dados MariaDB Servidor: Quagga OSPF/BGP Via VMWare Fusion
Via VirtualBox
SOBRE O AUTOR
Olá pessoal!
Eu sou Patrick Brandão.
Em minha experiência de quase 20 anos com sistemas Linux, percebi que boa parte do meu tempo era consumido com re-trabalhos:
reinstalar SO, reparar danos por desastres naturais (raios, quedas de energia, componentes queimados), sabotagens causadas por
invasões, danos causados por usuários inexperientes e MUITA, mas MUITA dificuldade ao lidar com usuário inexperiente por telefone diante
de um terminal.
Como sou desenvolvedor de software, meus sistemas eram feitos para rodar no Linux Conectiva, Debian, CentOS, Ubuntu entre outras. Isso
se mostrou um problema pois meus clientes (usuários) sempre conseguiam dar algum comando que danificava o sistema ou causavam
inconcistencias no software com seus 'apt-get', 'yum', 'rm -rf /', 'chmod 000 *', etc...
Consegui resolver muito desses problemas migrando e homologando meus softwares somente no Slackware. Reduzi a quase zero o indice
de suportes por problemas criados pelo usuário e seus técnicos aventureiros. O servidor passou a ter um pouco de paz e meus softwares
chegaram perto do SUPORTE-ZERO.
Mas como nem tudo é perfeito, faltava lidar com os problemas de instalação, reparação do sistema em caso de danos e recuperação de
dados, o que por telefone ainda eram penosos.
Apos estudar o Slackware por 10 anos, resolvi criar minha propria distribuição Linux.
Meu objetivo com o Slackmini é criar uma distribuição extremamente simples para o usuário inexperiente mas muito abrangente para
desenvolvedores e pessoas experientes.
http://manual.slackmini.com.br/ 1/69
21/11/2017 Distribuição Linux Slackmini
Seu projeto visa atender todas as necessidades para executar sistemas personalizados em plataforma x86 64bits sem muita perda de tempo
e dispensando "ajustes finos".
SOBRE O SLACKMINI
Inspirado no Slackware, o Slackmini é uma distribuição desenvolvida do zero, compilada pacote por pacote com o objetivo de manter apenas
arquivos necessários e executar processos com o mínimo de recursos de hardware com estabilidade.
Recursos
Gratuita sobre liçenca GNU/GPL e similares (os diferentes pacotes de fontes possuem licenças diferentes).
Código de construção da distro e fontes são compartilhados no GIT-HUB e no site principal (http://sourcecode.slackmini.com.br/).
Imagem ISO pequena (CD/DVD ~200 megas).
Instalação simples e rápida, sem muitas opções para confundir o usuário.
Verificador de assinatura de pacotes pre-instalação, para previnir problemas com CD/DVD/Pendrive danificado.
Somente para x86_64, impedindo o usuário de instalar em sucatas (32 bits e embarcados).
Particionamento automático de 4 partições primarias (swap + boot + root + storage).
Detecção automática de coneção com a internet (cliente DHCP).
Suporte a pilha dupla: IPv4 e IPv6.
Principais bibliotecas e aplicativos prontos (MariaDB, Apache, Lighttpd, Nginx, PHP).
Coletania de comandos para diagnostico (leia o manual).
Sistema anti-corrupção de arquivos, capaz de recuperar danos por queda de energia e sabotagem de arquivos estáticos.
Sistema de recuperação via instalador capaz de restaurar o sistema ou recuperar dados (backup).
Pronto para a nuvem, rodando em maquinas virtuais com leveza e sem bloquear recursos.
Updates automáticos e silenciosos de correções.
Finalidade
Em sua forma original, o Slackmini não prove nada, apenas um Linux cujo boot rápido e linear (baseado no Slackware) se encarrega de subir
o ambiente mínimo para execução de programas (que você deve instalar e pre-configurar).
Voce pode usar o Slackmini em conjunto com seus pacotes personalizados, o manual lhe ensinara como cria-los. Bastará instalar o
Slackmini e seu pacote para ter um sistema pronto, pequeno, rápido, estavel e imune a sabotagens.
Lembre-se: KISS - Keep it Short & Simple.
LICENÇA DE USO
Dos conceitos:
Os diferentes pacotes que constituem essa distribuição podem possuir contratos diferentes, para descobrir o contrato dos pacotes de
software que compõem essa distribuição acesse o diretório de códigos-fonte (http://sourcecode.slackmini.com.br/).
O desenvolvedor da distribuição mantem o compromisso de publicar todos os códigos baseados em licenças GNU/GPL e semelhantes.
Os arquivos de configuração serão criados pelo usuário do software que deverá lhes atribuir uma licença de uso para proteger sua
propriedade intelectual.
http://manual.slackmini.com.br/ 2/69
21/11/2017 Distribuição Linux Slackmini
A distribuição Slackmini bem como os programas de computador especialmente desenvolvidos para a distribuição Slackmini são de
propriedade intelectual do desenvolvedor Patrick Brandão que se reserva ao direito de licenciar (permitir o uso) apenas a quem for
especificado por escrito.
O valor da licença, seus limites e atribuições, o suporte técnico, direitos e deveres do usuário devem ser atrituidos por contrato firmado entre
as partes (desenvolvedor e usuário final).
Pacotes que venham a ser instalados no Slackmini devem possuir uma licença de uso atribuida pelo seu autor em conformidade com o
desenvolvedor do Slackmini.
Ao baixar e/ou ao instalar o Slackmini você automaticamente concorda com as seguintes licenças e contratos de software:
Entre em contato com o desenvolvedor (Patrick Brandão) para obter a licença de uso pelo e-mail patrickbrandao@gmail.com
BAIXANDO O SLACKMINI
Para baixar o Slackmini, acesse o site http://www.slackmini.com.br e clique na opção DOWNLOAD.
Você não deve gravar esse arquivo simplesmente colocando ele no CD/DVD ou pendrive pois não irá funcionar dessa maneira.
Para gravar a imagem ISO em um CD ou DVD, clique com o botão direito sobre o arquivo a escolha "ABRIR COM" e selecione um programa
gravador de CD/DVD.
Caso tenha dificuldades ao gravar a imagem ISO em um CD/DVD, consulte o suporte técnico de seu sistema operacional (Windows, MacOS,
etc...).
Softwares para gravação de ISO em CD/DVD ou Pendrive:
Unetbootin: https://unetbootin.github.io/
Yumi: http://www.pendrivelinux.com/yumi-multiboot-usb-creator/
Universal USB Installer: http://www.pendrivelinux.com/universal-usb-installer-easy-as-1-2-3/
LiLi Usb Creator: http://www.pendrivelinux.com/linux-live-usb-creator/
INSTALAÇÃO
Primeiro passo: BOOT no servidor
http://manual.slackmini.com.br/ 3/69
21/11/2017 Distribuição Linux Slackmini
Caso tenha dificuldades em dar BOOT ou acessar a BIOS, consulte o suporte do servidor para dar RESET NA BIOS e inicie o processo de
BOOT novamente.
Tome cuidado especial com o CD/DVD ou Pendrive, se ele estiver corrompido ou com problemas o BOOT não será possível.
Teste o BOOT com outro sistema (como Ubuntu ou Debian) para se certificar que o BOOT funciona.
Tecle ENTER para continuar. Caso não aperte nada o sistema de instalação será executado em alguns segundos.
A opção padrão no menu inicial é INSTALAR. Tecle enter na opção INSTALAR para iniciar a instalação do Slackmini:
http://manual.slackmini.com.br/ 4/69
21/11/2017 Distribuição Linux Slackmini
Instalar o Slackmini no disco implica em formatar o disco e apagar todos os dados que se encontram nele. Você precisa ter certeza
que o disco não possui dados importantes antes de continuar:
O instalador irá formatar e particionar seu disco. Se o disco for maior que o espaço necessário para rodar o Slackmini, uma quarta
partição será criada e montada em /storage:
http://manual.slackmini.com.br/ 5/69
21/11/2017 Distribuição Linux Slackmini
O instalador irá verificar se os pacotes estão corretos (teste de integridade) certificando-se de que não houver erros durante a
gravação do CD/DVD ou se houve problemas no pendrive/cartão de memória por conta de badblocks.:
http://manual.slackmini.com.br/ 6/69
21/11/2017 Distribuição Linux Slackmini
http://manual.slackmini.com.br/ 7/69
21/11/2017 Distribuição Linux Slackmini
No primeiro login, informe o usuário "root" (sem aspas) e a senha padrão "tulipa" (sem aspas):
http://manual.slackmini.com.br/ 8/69
21/11/2017 Distribuição Linux Slackmini
Seu Slackmini está instalado e você tem acesso ao shell Linux (bash). Isso conclui o estágio de instalação.
Usuário: root
Senha: tulipa
No primeiro login, informe o usuário "root" (sem aspas) e a senha padrão "tulipa" (sem aspas), ambos com letra minúscula:
Altere a senha padrão usando o comando "passwd" (sem aspas), observe a imagem:
Hackers usam listas de senhas mais usadas, todas as datas entre 01/01/1990 e 01/01/2016, dicionarios dos principais idiomas para fazer
brute-force (tentar todas as senhas automaticamente até acertar) para invadir seu servidor.
http://manual.slackmini.com.br/ 9/69
21/11/2017 Distribuição Linux Slackmini
Você pode usar senhas compostas por duas palavras e adicionar entre elas números ou simbolos, tornando-as muito dificil de advinhar (evite
usar meus exemplos):
aniversario$18021982
janela@aberta@para@rua
%quero-mais-cafe%
o.rato.roeu.a.roupa.do.rei.de.roma.123
X.impresso-hp-na-minha-mesa.X
99123-Sou_o_administrador!@#$
P@l@vr@-secreta
Seu Slackmini está instalado e com uma senha segura. Isso conclui o estágio de instalação.
CONECTAR A INTERNET
Para configurar a internet execute o comando "ipconfig" (sem aspas). As alterações feitas no IPCONFIG não ficam salvas e são
apenas para facilitar a primeira conexão com a internet.
http://manual.slackmini.com.br/ 10/69
21/11/2017 Distribuição Linux Slackmini
Ao atualizar o status na tela principal do IPCONFIG aparecerá seu IP atual, seu MAC e seu gateway padrão:
Use a opção "Testar" do IPCONFIG (ou o comando no shell: ipconfig test) para verificar se há acesso a internet:
http://manual.slackmini.com.br/ 11/69
21/11/2017 Distribuição Linux Slackmini
Para alterar as opções do servidor SSH, edite o arquivo /etc/ssh/sshd_config e reinicie o serviço openssh (leia o capítulo sobre serviços).
TERMINAL DE CONFIGURAÇÃO
O Slackmini conta com 2 softwares de interface com o administrador (shell):
O usuário root tem por padrão o shell BASH (/bin/bash), no entando o Slackmini baseia todo seu gerenciamento e configuração pelo shell
próprio: ZeroShell (/bin/zeroshell).
O shell Bash deve ser usado apenas pelo usuário root pois tem todo o poder de alterar arquivos e executar qualquer processo com privilegio
de administrador.
Para evitar problemas com usuários de soluções finais nas quais o Slackmini é baseado, recomendo que novos usuários tenham seu shell
definido como /bin/zeroshell.
Se esses usuários foram administradores eles poderão usar o ZeroShell para configurar o sistema mas limitados as opções dos serviços do
ZeroShell.
Usuários comuns que forem criados no sistema que usarem o ZeroShell estarão limitados aos comandos de consulta.
ZEROSHELL
Para acessar o ZeroShell, execute o comando zeroshell
http://manual.slackmini.com.br/ 12/69
21/11/2017 Distribuição Linux Slackmini
Você pode usar ".." (sem aspas) para voltar ao diretório superior.
[admin@servidor] /system> ..
[admin@servidor] >
[admin@servidor] > -
[admin@servidor] /system>
Você pode especificar o caminho completo para um diretório para entrar nele.
Ao abreviar nomes, o ZeroShell irá procurar um item ou diretorio semelhante
para tentar descobrir o que você queria dizer.
[admin@servidor] > -
http://manual.slackmini.com.br/ 13/69
21/11/2017 Distribuição Linux Slackmini
[ @ ]
[admin@servidor] /ip address>
[admin@servidor] /ip address> ping 127.0.0.1 count=2
Comandos importantes:
http://manual.slackmini.com.br/ 14/69
21/11/2017 Distribuição Linux Slackmini
/
/system desligar export logout poweroff reboot reiniciar
/system clock export print set
/system kernel print set
/system package info install print remove repair update view
/system service disable enable print restart start status stop
/tools ethtool free htop iperf iptraf lscpu mtr ping ping6 ps ssh tcpdump telnet top traceroute uptime
INTERFACES DE REDE
Gerenciando interfaces de rede pelo ZeroShell
[admin@servidor] /interface> /
[admin@servidor] > /int
[admin@servidor] /interface>
http://manual.slackmini.com.br/ 15/69
21/11/2017 Distribuição Linux Slackmini
http://manual.slackmini.com.br/ 16/69
21/11/2017 Distribuição Linux Slackmini
02:07.0 Ethernet controller: Intel Corporation 82545EM Gigabit Ethernet Controller (Copper) (rev 01)
Subsystem: VMware 82545EM Gigabit Ethernet Controller (Copper) (PRO/1000 MT Single Port Adapter)
Physical Slot: 39
Control: I/O+ Mem+ BusMaster+ SpecCycle- MemWINV+ VGASnoop- ParErr- Stepping- SERR+ FastB2B- DisINTx-
Status: Cap+ 66MHz+ UDF- FastB2B- ParErr- DEVSEL=medium >TAbort- <TAbort- <MAbort- >SERR- <PERR- INTx-
Latency: 0 (63750ns min), Cache Line Size: 64 bytes
Interrupt: pin A routed to IRQ 17
Region 0: Memory at fd540000 (64-bit, non-prefetchable) [size=128K]
Region 2: Memory at fdfc0000 (64-bit, non-prefetchable) [size=64K]
Region 4: I/O ports at 2400 [size=64]
[virtual] Expansion ROM at fd530000 [disabled] [size=64K]
Capabilities: [dc] Power Management version 2
Flags: PMEClk- DSI+ D1- D2- AuxCurrent=0mA PME(D0-,D1-,D2-,D3hot-,D3cold-)
Status: D0 NoSoftRst- PME-Enable- DSel=0 DScale=0 PME-
Capabilities: [e4] PCI-X non-bridge device
Command: DPERE- ERO+ RBC=512 OST=1
Status: Dev=ff:1f.0 64bit+ 133MHz+ SCD- USC- DC=simple DMMRBC=2048 DMOST=1 DMCRS=16 RSCEM- 266MHz- 533MHz-
Kernel driver in use: e1000
Kernel modules: e1000
Settings for eth0:
Supported ports: [ TP ]
Supported link modes: 10baseT/Half 10baseT/Full
100baseT/Half 100baseT/Full
1000baseT/Full
Supported pause frame use: No
Supports auto-negotiation: Yes
Advertised link modes: 10baseT/Half 10baseT/Full
100baseT/Half 100baseT/Full
1000baseT/Full
Advertised pause frame use: No
Advertised auto-negotiation: Yes
Speed: 1000Mb/s
Duplex: Full
Port: Twisted Pair
PHYAD: 0
Transceiver: internal
Auto-negotiation: on
MDI-X: off (auto)
Supports Wake-on: d
Wake-on: d
Current message level: 0x00000007 (7)
drv probe link
Link detected: yes
02:06.0 Ethernet controller: Intel Corporation 82545EM Gigabit Ethernet Controller (Copper) (rev 01)
Subsystem: VMware 82545EM Gigabit Ethernet Controller (Copper) (PRO/1000 MT Single Port Adapter)
Physical Slot: 38
Control: I/O+ Mem+ BusMaster+ SpecCycle- MemWINV+ VGASnoop- ParErr- Stepping- SERR+ FastB2B- DisINTx-
Status: Cap+ 66MHz+ UDF- FastB2B- ParErr- DEVSEL=medium >TAbort- <TAbort- <MAbort- >SERR- <PERR- INTx-
Latency: 0 (63750ns min), Cache Line Size: 64 bytes
Interrupt: pin A routed to IRQ 16
Region 0: Memory at fd560000 (64-bit, non-prefetchable) [size=128K]
Region 2: Memory at fdfd0000 (64-bit, non-prefetchable) [size=64K]
Region 4: I/O ports at 20c0 [size=64]
[virtual] Expansion ROM at fd520000 [disabled] [size=64K]
Capabilities: [dc] Power Management version 2
Flags: PMEClk- DSI+ D1- D2- AuxCurrent=0mA PME(D0-,D1-,D2-,D3hot-,D3cold-)
Status: D0 NoSoftRst- PME-Enable- DSel=0 DScale=0 PME-
Capabilities: [e4] PCI-X non-bridge device
Command: DPERE- ERO+ RBC=512 OST=1
Status: Dev=ff:1f.0 64bit+ 133MHz+ SCD- USC- DC=simple DMMRBC=2048 DMOST=1 DMCRS=16 RSCEM- 266MHz- 533MHz-
Kernel driver in use: e1000
Kernel modules: e1000
02:07.0 Ethernet controller: Intel Corporation 82545EM Gigabit Ethernet Controller (Copper) (rev 01)
Subsystem: VMware 82545EM Gigabit Ethernet Controller (Copper) (PRO/1000 MT Single Port Adapter)
Physical Slot: 39
Control: I/O+ Mem+ BusMaster+ SpecCycle- MemWINV+ VGASnoop- ParErr- Stepping- SERR+ FastB2B- DisINTx-
Status: Cap+ 66MHz+ UDF- FastB2B- ParErr- DEVSEL=medium >TAbort- <TAbort- <MAbort- >SERR- <PERR- INTx-
http://manual.slackmini.com.br/ 17/69
21/11/2017 Distribuição Linux Slackmini
Latency: 0 (63750ns min), Cache Line Size: 64 bytes
Interrupt: pin A routed to IRQ 17
Region 0: Memory at fd540000 (64-bit, non-prefetchable) [size=128K]
Region 2: Memory at fdfc0000 (64-bit, non-prefetchable) [size=64K]
Region 4: I/O ports at 2400 [size=64]
[virtual] Expansion ROM at fd530000 [disabled] [size=64K]
Capabilities: [dc] Power Management version 2
Flags: PMEClk- DSI+ D1- D2- AuxCurrent=0mA PME(D0-,D1-,D2-,D3hot-,D3cold-)
Status: D0 NoSoftRst- PME-Enable- DSel=0 DScale=0 PME-
Capabilities: [e4] PCI-X non-bridge device
Command: DPERE- ERO+ RBC=512 OST=1
Status: Dev=ff:1f.0 64bit+ 133MHz+ SCD- USC- DC=simple DMMRBC=2048 DMOST=1 DMCRS=16 RSCEM- 266MHz- 533MHz-
Kernel driver in use: e1000
Kernel modules: e1000
GERENCIAMENTO DE VLANS
Conceitos básicos de VLAN
VLANs são formas de usar uma interface de rede física para participar de varias redes virtuais diferentes.
Mais informações:
(P) Dispositivo de acesso: é um computador, roteador, servidor, access point ou qualquer equipamento que se conecta a rede e que
não sofre nenhuma configuração de VLAN. É apenas um usuário dos serviços da rede.
(SW) Switch gerenciável: é um switch que faz o gerenciamento das VLANs. Cada porta do switch pode assumir 2 modos básicos:
(A) Acesso ou Untagged: é uma porta destinada a um usuário final (dispositivo de acesso). Essa porta deve receber um PVID
(port VID, VID = vlan id). Todo quadro (pacote IP, pacote IPv6, ARP) que entrar por uma porta de acesso será marcado com o
número de PVID da porta.
O switch só permite que portas com o mesmo PVID se comuniquem.
(T) TRUNK ou tagged: é uma porta que recebe e encaminha quadros marcados com o número de PVID da porta por onde o
quadro entrou na rede. A marcação é na verdade um cabeçalho (sequencia de bits no inicio do quadro) do protocolo IEEE 802.1q
(ou apenas 1q) ou IEEE 802.1ad (conhecido como Q-in-Q).
É preciso cadastrar na porta TRUNK do switch quais PVIDs ele pode encaminhar.
A porta TRUNK de um switch deve ser ligada a uma porta de um servidor/roteador em que tenha sido cadastradas as VIDs
(interface VLAN).
(BR) Bridges: uma bridge (ponte) é semelhante a um switch porem pode realizar operações mais complexas como:
Fazer NAT-MAC: alterar o MAC-Address do quadro quando ele entrar na rede e recuperar para o original quando o quadro sair da
rede.
Permitir que quadros de uma VLAN sejam traduzidos para outra VLAN (exemplo: entra um quadro com VID 15 na porta 1 e saia
na porta 2 com VID 21)
Permitir que quadros de VLANs diferentes participem de uma unica VLAN central, essa operação se chama VLAN-MAPPING e
requer muita experiencia para manipular.
(S) Servidor/Roteador: tem como função rotear o trafego entre VLANs (ou não, caso seja uma questão de segurança) ou fornecer ao
membro da VLAN os serviços necessários (servidor VOIP, servidor de arquivos, acesso a internet, acesso a câmeras de segurança,
monitoramento e administração de dispositivos). Sempre que ele desejar se comunicar com alguma VLAN, bastará enviar ao switch
gerenciável o quadro marcado com o VID da VLAN de destino.
Alguns switchs podem assumir a função de rotear trafego entre vlans sendo chamados de switchs layer 3
http://manual.slackmini.com.br/ 18/69
21/11/2017 Distribuição Linux Slackmini
Cuidado com a VLAN 1 (PVID 1). Todos os switchs gerenciáveis vem com a configuração padrão definindo todas as portas
na PVID 1.
A PVID 1 não recebe o mesmo tratamento das PVIDS de 2 a 4094 por ser a VLAN ADMINISTRATIVA NATIVA. São
características da VLAN administrativa:
Tem PVID 1 em todos os switchs gerenciáveis (consulte o fabricante do seu switch, talvez ele tentou inventar alguma
modinha)
Não recebe encapsulamento 802.1q ao entrar ou sair por quaisquer porta tagged (Trunk).
Quadros que entram nos switchs em portas com PVID 1 continuam intactos por toda a rede, passando de trunk em
trunk normalmente.
A maioria dos switchs gerenciáveis te obriga a permitir a PVID 1 nas portas tagged (ou nem te avisam que isso está
sendo feito)
Um equipamento enviando broadcasts em uma porta PVID 1 atingirá todo o seu dominio de switchs com excessão das
portas ACESSO em PVID de 2 a 4094.
Um LOOP originado numa porta PVID 1 irá afetar todo o seu dominio de switchs, jamais entregue uma porta PVID 1 a
um cliente final.
Portanto ao projetar uma rede VLAN sempre coloque equipamento de clientes ou equipamentos publicos em VLANS entre 2
e 4094.
Alguns fabricantes de switchs que tambem fabricam telefones IP criaram protocolos de negociação automática de VLAN de
voz entre o telefone e o switch. Para que o switch aceite um telefone IP e faça um QoS desse tráfego com alta prioridade
(protocolo 802.1p) é necessário atribuir na porta do switch uma VOICE VLAN ID (VVID).
O valor PVID e VVID coexistem na mesma porta, sendo o PVID para dados e o VVID para voz sobre IP.
O servidor vai atuar como um roteador para venda de links dedicados. Recebendo a conexão do backbone de 10 gigas e distribuindo em um
POP onde atenderemos
clientes com contratos de 10 megabit/s a 1 gigabit/s. O switch será usado para atender 1 cliente por porta, cada cliente possuirá sua VLAN
no servidor.
http://manual.slackmini.com.br/ 19/69
21/11/2017 Distribuição Linux Slackmini
O servidor possui apenas 1 interface de rede, mas precisa se conectar a internet e distribuir essa internet para uma rede local.
Com o emprego de um switch gerenciável, podemos dividi-lo em 2 switchs virtuais (VLAN = Virtual LAN): o switch amarelo e o switch verde e
por meio de uma porta TRUNK permitir que o servidor se comunique com essas VLANs.
Vamos criar a configuração de VLANs de acordo com o desenho acima (exemplo 2).
http://manual.slackmini.com.br/ 20/69
21/11/2017 Distribuição Linux Slackmini
Opcoes:
name=NOME : Nome simbolico
comment=COMENTARIO : Comentario da VLAN
mac-address=COMENTARIO : Especificar MAC-ADDRESS
Exemplos:
add eth1.800 : Cria a vlan 1q com VID '800' na interface 'eth1'
add eth1 801 : Cria a vlan 1q com VID '801' na interface 'eth1'
add eth1 80 disabled : Cria a vlan desabilitada no sistema (em DOWN)
add eth2 127 qinq : Cria a vlan QinQ com VID '127' na interface 'eth2'
Num switch é possivel ter 4094 VIDs. As vezes grandes redes enfrentam problemas técnicos e administrativos onde os seguintes problemas
aparecem:
Repetição de VIDs (o mesmo VID para clientes diferentes): muito comum quando se agrega uma rede de terceiros à rede atual.
Tambem ocorre quando se deseja passar todo o roteamento entre VLANs para um roteador central (Agregador de serviços de
roteamento).
São necessárias mais de 4094 VLANs
Quando iremos oferecer o transporte a um cliente dentro de uma rede metro-ethernet. O cliente será obrigado a solicitar o cadastro das
VLANs que ele deseja usar nas portas TRUNK do provedor do transporte, isso poderá resultar em conflitos de VIDs (o cliente
participará de uma rede que ele não deveria participar).
Enquanto que o protocolo 802.1q serve para encapsular dados proveniente de portas de usuários ou serviços comuns, o protocolo 802.1ad
serve para encapsular os quadros 802.1q ou quadros comuns adicionando
uma nova numeração com cabeçalho 802.1ad INDEPENDENTE de como o quadro esteja (com ou sem VLAN 1q).
O Protocolo 802.1ad pode ser chamado de Q-in-Q ou "Service TAG".
Ao transportar VLANS 802.1q em uma rede 802.1ad o quadro original (acesso) será encapsulado duas vezes. Na primeira vez ele receberá o
cabeçalho 802.1q (ao sair por uma porta trunk em direção a porta do provedor de transporte)
e ao entrar em uma interface com tunelamento Q-in-Q ele receberá um cabeçalho 802.1ad.
Como existem 2 cabeçalhos, o primeiro (contendo o tipo 802.1ad) recebe o nome de OUTSIDE VLAN. O segundo cabeçalho (contendo o
tipo 802.1q) recebe o nome de INSIDE VLAN.
http://manual.slackmini.com.br/ 21/69
21/11/2017 Distribuição Linux Slackmini
http://manual.slackmini.com.br/ 22/69
21/11/2017 Distribuição Linux Slackmini
Exemplo:
Interface eth0 VLAN 802.1q VID 8 gera o nome eth0.8
Interface eth0 VLAN 802.1ad VID 8 gera o nome eth0.s8
Com as duas VLANs Q-in-Q acima o servidor consegue enxergar qualquer equipamento ligado diretamente a porta que encapsulou os
quadros com 802.1ad (cabos azuis do diagrama), mas as VLANs que porventura vierem de switchs mais adiante (vlans dos balões) não
serão interpretadas pois possuem ainda marcações adicionais (1q). Para conseguir comunicação com elas é preciso criar interfaces VLANs
802.1q dentro da interface Q-in-Q
http://manual.slackmini.com.br/ 23/69
21/11/2017 Distribuição Linux Slackmini
Diferenças:
Q-in-Q: coloca um cabeçalho 802.1ad no quadro recebido já com o cabeçalho 802.1q (OUTSIDE 1ad INSIDE 1q)
Double 1q: coloca um cabeçalho 802.1q no quadro recebido já com o cabeçalho 802.1q (OUTSIDE 1q INSIDE 1q)
No modelo Double 1q, uma bridge recebe um quadro em uma interface por onde entram quandros marcados com 1q e o coloca dentro de
outro quadro 1q, gerando um duplo cabeçalho 1q (1q dentro de 1q).
http://manual.slackmini.com.br/ 24/69
21/11/2017 Distribuição Linux Slackmini
Ao criar uma interface VLAN no Slackmini, os quadros enviados por essa interface usarão como MAC de origem o mesmo MAC da interface
principal.
Em alguns casos será necessário personalizar esse MAC (como numa interligação a uma rede onde há controle de MAC e você trocou a
placa de rede).
Para criar uma VLAN com MAC alterado basta informar o MAC como parametro ao adicioná-la. Exemplo:
/interface vlan add ethX.VID MAC : Criar VLAN com MAC alterado.
[admin@servidor] /interface vlan> print
Flags: C - Cabo conectado, X - Cabo desconectado x - interface desativada
R - Ativa (UP) D - Administrativamente desativada (DOWN)
F - Full-Duplex, H - Half-Duplex
4 - 10 gigabit, 3 - 1 gigabit, 2 - 100 mbit, 1 - 10 mbit
Q - protocolo 802.1q, A - protocolo 802.1ad (QinQ)
Endereços IP são formas de localizar um computador em uma rede específica. Por exemplo: para encontrar o endereço de uma casa é
preciso saber a cidade, o nome da rua e o número da casa.
Quando se trata de computadores, toda rede local (computadores ligados a um switch por exemplo) pode ser considerada uma rua e cada
computador precisará ter um número na mesma sequencia.
Seguindo o exemplo, se o nome da "rua" fosse 10.0.0.X, o primeiro computador seria o número 10.0.0.1, o segundo computador seria o
número 10.0.0.2, e assim por diante.
Essa analogia é simplória, para mais informações sobre o que são endereços IP consulte os links abaixo.
http://manual.slackmini.com.br/ 25/69
21/11/2017 Distribuição Linux Slackmini
/ip address add help : Exibe ajuda para configurar endereço IPv4.
[admin@servidor] /ip address> add help
Adicionar endereco IPv4 na interface
Use:
add [opcoes]
Opcoes:
address=x.x.x.x/nn : Endereco IP e numero de bits da mascara
interface=DEV : Interface de rede
comment=COMENTARIO : Comentario no registro
disabled=yes/no : Adicionar desativado (yes = nao aplicar na interface)
Exemplo:
add eth0 192.168.0.1/24
Exemplos de compatibilidade com outros sistemas:
add address=192.168.0.1/24 interface=eth0 disabled=no
[admin@servidor] /ip address>
http://manual.slackmini.com.br/ 26/69
21/11/2017 Distribuição Linux Slackmini
Ao configurar um endereço IP em uma interface de rede seu servidor conseguirá se comunicar com os computadores que estiverem na
mesma rede.
Para que ele consiga se comunicar com computadores de outra rede (ou redes distantes com a Internet) é necessário usar um GATEWAY.
O Gateway tambem recebe o nome de "default", "rota padrão", "gateway padrão" e é representado pelo prefixo 0.0.0.0/0,
que deve apontar para um endereço IP na mesma rede em que o servidor/roteador se encontra.
http://manual.slackmini.com.br/ 27/69
21/11/2017 Distribuição Linux Slackmini
/ip route add help : Exibe ajuda para adicionar rotas IPv4.
[admin@servidor] /ip route> add help
Adicionar rota estatica IPv4
Use:
add [opcoes]
Opcoes:
dst-address=x.x.x.x/nn : Endereco IP e numero de bits da mascara
interface=DEV : Interface de rede
gateway=DEV : IP do proximo salto
distance=N : Metrica (saltos)
comment=COMENTARIO : Comentario no registro
disabled=yes/no : Adicionar desativado (yes = nao aplicar)
Exemplos:
add 0.0.0.0/0 192.168.0.1
add dst=0.0.0.0/0 gw=192.168.0.1
Exemplos de compatibilidade com outros sistemas:
add dst-address=0.0.0.0/0 gateway=192.168.0.1
[admin@servidor] /ip route>
O Slackmini exibe apenas a tabela de rotas operacionais seguida das rotas cadastradas (rotas estáticas).
Você poderá ver as apenas as rotas cadastras manualmente (algunas podem não estar operacionais) pelo 'print static'.
Opcoes:
cache : Exibir cache de rotas
kernel : Exibir rotas do /proc/net/route
iproute : Exibir rotas via iproute2
route : Exibir rotas via 'route -n'
netstat : Exibir rotas via 'netstat -rn'
static : Exibir rotas estaticas cadastradas
zebra : Exibir rotas pelo Zebra
ospf : Exibir rotas OSPF pelo Zebra
bgp : Exibir rotas BGP pelo Zebra
local : Exibir tabela local
default : Exibir tabela default
rule : Exibir sequencia de roteamento
table [N] : Exibir tabela pelo numero (0-255)
[admin@servidor] /ip route> print
Flags: X - desativa A - ativa, D - dinamica C - conectada
S - estatica B - blackhole U - unreachable P - prohibit
# Destino IP Local Gateway Metrica Interface
A default 172.20.0.1 1 eth0
AC 127.0.0.0/8 lo
AC 172.20.0.0/24 172.20.0.3 eth0
Rotas estaticas cadastradas:
# Destino Gateway Interface Metric IP Local
2 192.168.20.0/24 172.20.11.1 1
3 192.168.30.0/24 172.20.11.1 1
http://manual.slackmini.com.br/ 28/69
21/11/2017 Distribuição Linux Slackmini
4 0.0.0.0/0 172.20.11.1 1
Política de roteamento
O kernel Linux implementa uma sequencia de verificações quando é necessário descobrir o destino de um determinado pacote baseado em
seu IP de destino, essa operação se chama ROUTER LOOKUP.
http://manual.slackmini.com.br/ 29/69
21/11/2017 Distribuição Linux Slackmini
/ip route print get x.x.x.x : Faz ROUTER LOOKUP para determinado IP.
[admin@servidor] /ip route> get 200.160.2.3
- Rota: 200.160.2.3 via 172.20.0.1 dev eth0 src 172.20.0.2 cache
[admin@servidor] /ip route>
http://manual.slackmini.com.br/ 30/69
21/11/2017 Distribuição Linux Slackmini
0: from all lookup local
32766: from all lookup main
32767: from all lookup default
[admin@servidor] /ip route> print cache
[admin@servidor] /ip route> print local
broadcast 127.0.0.0 dev lo proto kernel scope link src 127.0.0.1
local 127.0.0.0/8 dev lo proto kernel scope host src 127.0.0.1
local 127.0.0.1 dev lo proto kernel scope host src 127.0.0.1
broadcast 127.255.255.255 dev lo proto kernel scope link src 127.0.0.1
broadcast 172.20.0.0 dev eth0 proto kernel scope link src 172.20.0.2
local 172.20.0.2 dev eth0 proto kernel scope host src 172.20.0.2
broadcast 172.20.0.255 dev eth0 proto kernel scope link src 172.20.0.2
[admin@servidor] /ip route> print main
Rede locais baseada em broadcast (ethernet / 802) são redes baseada em MAC Address.
Todas as informações enviadas e recebidas em uma rede baseada em broadcast é transportada em sequência de bits chamada QUADRO.
Um quadro precisa ter um cabeçalho com o destinatário (MAC de destino) e um remetente (MAC de origem).
Redes IPv4 são baseadas em endereços IP, assim, para que computadores em uma rede local enviem pacotes IP uns para os outros é
preciso que o remetente DESCUBRA o MAC Address do outro computador na mesma rede local ou do roteador que faz o papel de gateway
padrão para então enviar as informações (quadro contendo pacote IP) na rede local.
O protocolo ARP é utilizado para que um computador descubra o MAC Adress do outro na mesma rede local. Se o computador destinatário
não estiver na mesma rede local será preciso decobrir o MAC Address do gateway padrão (roteador).
http://manual.slackmini.com.br/ 31/69
21/11/2017 Distribuição Linux Slackmini
Os 3 bytes seguintes são atribuidos sequencialmente pelo fabricante a cada dispositivo fabricado.
http://manual.slackmini.com.br/ 32/69
21/11/2017 Distribuição Linux Slackmini
[admin@servidor] /ip arp>
Você pode monitorar os padros enviados e recebidos em uma interface de rede, o comando 'monitor' filtra os pacotes ARP na interface
escolhida.
É possivel contar o tempo desde o envio de um ARP-REQUEST até a chegada de um ARP-REPLY e usar essa medição como um PING:
ARP-PING.
O ARPING envia um broadcast para realizar o primeiro ping. Ao receber a primeira resposta com o MAC Address do alvo ele passa a enviar
os pings seguintes para esse MAC.
Você pode alterar esse comportamente para que todos os pings sejam enviados via BROADCAST o que ajuda a detectar duplicações de IPs
na rede ou loops.
/ip arp arping [IP] broadcast : Ping ARP somente com broadcast.
[admin@servidor] /ip arp> arping 172.20.0.1 count 4 broadcast
É bastante comum não saber em qual interface está determinado IP após ligar os cabos do servidor/roteador numa rede.
É possível fazer uma busca enviando um ARP-REQUEST em todas as interfaces de rede e ver em qual delas está um determinado vizinho
com o comanod 'scan'.
http://manual.slackmini.com.br/ 33/69
21/11/2017 Distribuição Linux Slackmini
O comando 'flush' permite remover registros não utilizados e renova registros que estejam em uso.
No capítulo IPv4 você aprendeu como funciona os endereços IP, especificamente IP versão 4 (IPv4) que foi a versão que deu vida a Internet.
Quando a internet surgiu o plano de usar 4 bytes para endereçar computadores parecia ser suficiente porem o sucesso da Internet fez com
que os números disponíveis acabassem (ainda sobrou um pouco que é racionado).
O protocolo IPv6 foi criado para substituir gradativamente o protocolo IPv4. Essa transição deve demorar algumas décadas.
Enquanto o IPv4 tem 4 bytes (32 bits) escritos na forma decimal (n.n.n.n, onde cada n representa 8 bits em números de 0 a 255)
possibilitando 4 bilhões de possibilidades,
o IPv6 é constituido de 16 bytes (128 bits) escritos na forma hexadecimal (hh:hh:hh:hh:hh:hh:hh:hh) possibilitando 11 undecilhões de
possibilidades.
Para não ficar complicado dar números IPv6 para computadores, existe uma organização natural que torna tudo mais fácil.
1 - Organização de prefixos
http://manual.slackmini.com.br/ 34/69
21/11/2017 Distribuição Linux Slackmini
Você verá com frequencia o prefixo 2001:db8::/32 sendo usado em muitos tutoriais e manuais. Essa faixa é de uso privado
para fins de documentação.
No IPv4 é comum distribuir IPs aos usuários entregando-lhes um único IP público ou privado e deixar que o roteador faça NAT dos
endereços internos.
No IPv6 isso mudou. Não existe NAT em IPv6 (existe mas não é publicamente disponivel).
http://manual.slackmini.com.br/ 35/69
21/11/2017 Distribuição Linux Slackmini
Para que o usuário tenha capacidade de navegar em IPv6 pelo menos 2 prefixos devem ser alocados.
O primeiro prefixo será atribuido a rede entre o provedor e o usuários e o segundo
prefixo o provedor fará o roteamento para o usuário usa-lo dentro de sua rede.
Toda interface de rede com IPv6 ativo recebe automaticamente (atribuido pelo sistema operacional) um endereço fixo
chamado LINK LOCAL.
O endereço LINK LOCAL é o resultado de um cálculo chamado EUI 64 usando o prefixo fe80::/64 e o endereço MAC da
interace.
Você não pode editar ou remover os endereços LINK LOCAL pois eles são a base do funcionamento do ICMPv6, sem ele o
protocolo IPv6 não funciona.
http://manual.slackmini.com.br/ 36/69
21/11/2017 Distribuição Linux Slackmini
O protocolo IPv6 possui uma peculiaridade: todos os computadores com IPv6 numa rede local já podem se comunicar por meio de
endereços LINK-LOCAL.
Sempre que o sistema operacional ativa o suporte IPv6 em uma interface de rede ela se atribui um IPv6 LINK-LOCAL baseado no MAC-
ADDRESS da interface usando o cálculo EUI-64.
O endereço LINK-LOCAL é vital para todo o funcionamento do IPv6 e não deve ser removido. Muitos sistemas impedem que você remova o
LINK-LOCAL por segurança.
http://manual.slackmini.com.br/ 37/69
21/11/2017 Distribuição Linux Slackmini
O simples fato de possuir um endereço IPv6 na mesma rede (FE80::/64) torna a comunicação possível por padrão.
Uma coisa que pode parecer estranho no IPv6 é que a rede FE80::/64 pode existir em vários lugares ao mesmo tempo mudando o
paradigma aprendido no IPv4 de que um endereço de rede só pode estar em um lugar.
Observe o Rotaedor B no desenho acima. Ele participa de duas redes FE80::/64. Ele pode se comunicar com o roteador A e o roteador C
bastando usar o IPv6 Link-Local da interface conectada a eles.
O Roteador A pode se comunicar com o Roteador B usando IPv6 LINK-LOCAL mas não pode se comunicar com C pois endereços IPv6
LINK-LOCAL não são roteados entre redes físicas (ou VLANS) diferentes
Como a rede FE80::/64 existe em várias interfaces simultaneamente é preciso especificar a interface de rede para dar PING em um
endereço IPv6 Link-Local
O IPv6 permite que você de PING em todos os vizinhos com endereços IPv6 LINK-LOCAL ao mesmo tempo. Para isso basta informar no
ping o endereço do grupo MULTICAST e a interface de rede.
http://manual.slackmini.com.br/ 38/69
21/11/2017 Distribuição Linux Slackmini
É muito importante que você atribua endereços IPv6 nas interfaces de rede para então configurar esses endereços estáticos como gateway
padrão.
Basear as rotas estáticas em endereços link-local é uma péssima ideia pois como eles são gerados pelo MAC-ADDRESS uma futura
alteração física na rede poderá requerer uma grande mão de obra.
Você irá observar no futuro que protocolos de roteamento dinamico como o RIP-NG e o OSPFv3 adicionam as rotas sempre baseadas no
endereço Link-Local do vizinho, isso é normal e não acarreta problemas visto que sempre que você alterar a interface de rede ou o MAC-
Address o protocolo atualizará as rotas.
Vamos usar o diagrama acima como exemplo para configurar o servidor A para usar o Roteador como gateway padrão IPv6:
/ipv6 route add help : Exibe ajuda para adicionar rotas IPv6.
[admin@servidor-a] /ipv6 route> add help
Adicionar rota estatica IPv6
Use:
add [opcoes]
Opcoes:
dst-address=x::x/nn : Endereco IPv6 e numero de bits do prefixo
interface=DEV : Interface de rede
gateway=DEV : IP do proximo salto
http://manual.slackmini.com.br/ 39/69
21/11/2017 Distribuição Linux Slackmini
distance=N : Metrica (saltos)
comment=COMENTARIO : Comentario no registro
disabled=yes/no : Adicionar desativado (yes = nao aplicar)
Exemplos:
add ::/0 2001:db8::1
add default 2001:db8::1
add dst=::/0 gw=2001:db8::1
Exemplos de compatibilidade com outros sistemas:
add dst-address=::/0 gateway=2001:db8::1
[admin@servidor-a] /ipv6 route>
Você aprendeu no protocolo IPv4 que para descobrir o MAC Address de um vizinho (computador na mesma rede local) é utilizado o protocolo
ARP que é baseado em BROADCAST.
No protocolo IPv6 isso mudou. Em vez de usar um protocolo separado para a descoberta de MAC baseado em BROADCAST, o IPv6 usa um
protocolo da propria pilha (ICMP versão 6) para descoberta de vizinhos via MULTICAST.
O protocolo MULTICAST se comporta, na maioria das redes, igual ao BROADCAST (enviado para todas as portas de switch/bridge na rede
local), porem, em redes locais com suporte a gerenciamento de grupos multicast (IGMP) os quadros MULTICAST são enviados apenas para
membros do grupo, nesse caso, apenas os computadores que possuem suporte a IPv6.
Por conta da natureza MULTICAST da descoberta de vizinhos é possivel dar ping em todos os computadores na mesma rede
com um único comando.
http://manual.slackmini.com.br/ 40/69
21/11/2017 Distribuição Linux Slackmini
[2] MAC..: 7c:6d:62:89:b3:47
[2] DEV..: eth0
[2] Vendor.: Apple
[3] IPv6 Address..: fe80::46d9:e7ff:fe07:3e44
[3] MAC..: 44:d9:e7:07:3e:44
[3] DEV..: eth0
[3] Vendor.: Ubiquiti Networks
[4] IPv6 Address..: fe80::250:ccff:fecc:cc01
[4] MAC..: 00:50:cc:cc:cc:01
[4] DEV..: eth0
[4] Vendor.: Xyratex
[admin@servidor] /ipv6 neighbor>
[admin@servidor] /ipv6 neighbor>
O comando 'flush' permite remover registros não utilizados e renova registros que estejam em uso.
Como o controle de vizinha do IPv6 é feito por MULTICAST cada tipo de membro na rede pode participar de um ou mais grupos.
Existem os seguintes grupos:
FF02::6 All Routers OSPF Designated Routers Roteadores IPv6 rodando OSPFv3 operando como roteadores designados
CLIENTE DNS
Como funciona o protocolo DNS
http://manual.slackmini.com.br/ 41/69
21/11/2017 Distribuição Linux Slackmini
Redes de computadores baseado em IPv4 ou IPv6 precisam apenas de números IP e rotas para funcionar, considerando que 'funcionar' é
apenas o envio e o recebimento de pacotes dos quais os endereços (números) você ja conheça.
A internet para humanos é baseada em nomes amigáveis, como 'www.google.com' e 'www.registro.br'
Para que essa 'converção' seja possível existe um sistema de banco de dados distribuidos chamado DNS.
Existe um tipo de servidor DNS chamado DNS RECURSIVO. Esse tipo de servidor é responsável por consultar toda a estrutura de
servidores DNS desde os ROOT SERVERS até os sub-dominios mais específicos em busca de um registro que associa um nome a um IP
(IPv4, IPv6 ou ambos).
Todo computador que deseja navegar pela internet basendo-se no nome dos sites e serviços precisa utilizar um servidor DNS RECURSIVO.
Todo sistema operacional tem um software responsável por enviar as perguntas a um servidor DNS RECURSIVO e aguardar apenas a
resposta pronta. Esse software se chama CLIENTE DNS.
http://manual.slackmini.com.br/ 42/69
21/11/2017 Distribuição Linux Slackmini
Existe hoje no mercado uma quantidade enorme de roteadores domésticos e para pequenos escritórios que implementam recurso de Proxy-
DNS. Os principais fabricantes desse tipo de produto são: TP-LINK, D-LINK, Opticom, Ubiquiti, Intelbras, Mikrotik.
O Proxy-DNS é um tipo de servidor DNS que não tem poderes para fazer uma buscas recursivas mas é capaz de repassar solicitações de
um cliente para um servidor DNS RECURSIVO.
Alguns roteadores com firewall impedem que o cliente acesse o DNS desejado e desvia as requisições para um proxy-dns interno. Essa
técnica é conhecida como DNS Transparente
Roteadores ou Firewalls que implementem técnicas de DNS Transparente no provedor de acesso a Internet impedem que
consultas recursiva sejam realizadas.
Se seu provedor de internet fizer isso seu servidor DNS RECURSIVO não irá funcionar.
DNS Transparente é uma técnica muito empregada em roteadores HOTSPOT para impedir que usuários não autenticados
usem o DNS para navegar por VPNs UDP.
http://manual.slackmini.com.br/ 43/69
21/11/2017 Distribuição Linux Slackmini
O cliente DNS do Slackmini tem como objetivo permitir que os softwares rodando nele tenham a capacidade de resolver nome de domínos
usando um servidor DNS RECURSIVO (ou um DNS Proxy).
http://manual.slackmini.com.br/ 44/69
21/11/2017 Distribuição Linux Slackmini
Caso você não tenha ou não vá montar um DNS RECURSIVO próprio, existem os seguintes servidores DNS RECURSIVOS
gratuitos:
Google DNS IPv4: 8.8.8.8, 8.8.4.4
Google DNS IPv6: 2001:4860:4860::8888, 2001:4860:4860::8844
Giga DNS IPv4: 189.38.95.95, 189.38.95.96
Giga DNS IPv6: 2804:10:10::10, 2804:10:10::20
OpenDNS IPv4: 208.67.222.222, 208.67.220.220, 208.67.222.220, 208.67.220.222
OpenDNS IPv6: 2620:0:ccc::2, 2620:0:ccd::2
Level3 IPv4: 4.2.2.2, 4.2.2.3, 4.2.2.4, 4.2.2.5, 4.2.2.6, 209.244.0.3, 209.244.0.4
Yandex.DNS IPv4 (Basic): 77.88.8.8, 77.88.8.1
Yandex.DNS IPv6 (Basic): 2a02:6b8::feed:0ff, 2a02:6b8:0:1::feed:0ff
Yandex.DNS IPv4 (Safe): 77.88.8.88, 77.88.8.2
Yandex.DNS IPv6 (Safe): 2a02:6b8::feed:bad, 2a02:6b8:0:1::feed:bad
Yandex.DNS IPv4 (Family): 77.88.8.7, 77.88.8.3
Yandex.DNS IPv6 (Family): 2a02:6b8::feed:a11, 2a02:6b8:0:1::feed:a11
censurfridns.dk IPv4: 89.233.43.71
censurfridns.dk IPv6: 2002:d596:2a92:1:71:53::
censurfridns.dk IPv4 (anycast): 91.239.100.100
censurfridns.dk IPv6 (anycast): 2001:67c:28a4::
puntCAT IPv4: 109.69.8.51
puntCAT IPv6: 2a00:1508:0:4::9
Verifique qual oferece melhor latência até você. Alguns deles fazem filtros de site (Safe e Family).
Agora é preciso adicionar no Slackmini os IPs dos servidores DNS RECURSIVOS que você irá consultar para resolver nomes.
/ip dns add help : Exibir ajuda para adicionar servidor DNS
[admin@servidor] /ip dns> add help
Exemplos:
add name Localhost 127.0.0.1 1
add name Teste1 8.8.4.4 1
add name Google 8.8.8.8 2
add 4.2.2.2
[admin@servidor] /ip dns>
Configuração de pesquisa
O cliente DNS interno pesquisa pelo nome solicitado na ordem em que os servidores foram cadastrados.
Caso algum servidor não responda por um tempo (esse tempo é o timeout) a consulta pode ser repetida (o número de tentativas é o tries)
passa a ser feita em outro servidor.
Tambem é possível balancear o trafego entre os servidores DNS que você cadastrou (opção balance).
http://manual.slackmini.com.br/ 45/69
21/11/2017 Distribuição Linux Slackmini
O Slackmini é equipado de várias ferramentas para testar e diagnosticar a qualidade de servidores DNS.
Cuidado
Muita gente testa a qualidade do DNS usando um simples 'ping'.
O comando 'ping' gera pacotes ICMP-ECHO-REQUEST, esse tipo de pacote é respondido pelo KERNEL do IP de destino e
não pelo software de DNS que roda no IP de destino.
Esse sutil diferença engana muita gente. As vezes um servidor DNS RECURSIVO pode ter bloqueado pacotes ICMP no
firewall e mesmo assim permitir que consultas dns (UDP porta 53) passem pelo firewall.
Outro engano é considerar que a latência do PING ICMP tem relação a latência de DNS. Normalmente a latência do serviço
de DNS é igual ou levemente maior que a latência medida via ICMP mas em casos onde há QoS que a latência de DNS
pode ser menor que a latência ICMP.
IP ver.: 4
Host...: www.registro.br
Server.: 4.2.2.2
SEQ Q. Type Ans Aut TIME STATUS
1 1 A 2 5 2.415 Reply
2 1 A 2 5 3.235 Reply
3 1 A 2 5 5.841 Reply
4 1 A 2 5 2.373 Reply
sent=4 received=4 packet-loss=0 min-rtt=2.373 avg-rtt=3.466 max-rtt=5.841
O SlackMini possui várias ferramentas de teste de consulta DNS que são padrões em Linux e alguns facilitadores, veja:
/ip dns test (FQDN) [SERVER] : Testar nome nos DNSs cadastrados
[admin@servidor] /ip dns> test uol.com.br 4.2.2.2
> Servidor..: 4.2.2.2
- FQDN......: uol.com.br
uol.com.br IN A 200.147.67.142
uol.com.br IN A 200.221.2.45
uol.com.br IN AAAA 2804:49c:3103:401:ffff:ffff:ffff:1
Você tambem pode testar a requisição para os servidores cadastrados, basta informar só o nome:
http://manual.slackmini.com.br/ 46/69
21/11/2017 Distribuição Linux Slackmini
;; QUESTION SECTION:
;uol.com.br. IN A
;; ANSWER SECTION:
uol.com.br. 271 IN A 200.221.2.45
uol.com.br. 271 IN A 200.147.67.142
Server: 8.8.8.8
Address: 8.8.8.8#53
Non-authoritative answer:
uol.com.br
origin = eliot.uol.com.br
mail addr = root.uol.com.br
serial = 2016032286
refresh = 7200
retry = 3600
expire = 432000
minimum = 3600
Name: uol.com.br
Address: 200.147.67.142
Name: uol.com.br
Address: 200.221.2.45
uol.com.br has AAAA address 2804:49c:3103:401:ffff:ffff:ffff:1
uol.com.br mail exchanger = 10 mx.uol.com.br.
uol.com.br text = "v=spf1 ip4:200.147.96.0/23 ip4:187.17.116.0/24 ip4:200.98.217.0/24 ip4:200.147.1.0/22
ip4:200.147.32.0/22 ip4:200.147.40.192/26 ip4:200.147.54.0/23 ip4:200.147.98.72/27
ip4:200.147.99.24/26 ip4:186.234.128.16/29 ip4:200.147.41.88/26 -all"
uol.com.br text = "DZC=qvK68EJ"
uol.com.br nameserver = charles.uol.com.br.
uol.com.br nameserver = eliot.uol.com.br.
uol.com.br nameserver = borges.uol.com.br.
Antes de usar consultas DNS baseadas em pacotes IPv6, teste a consulta de DNS usando IPv6 com o comando 'test'.
/ip dns test (FQDN) [IPv6] : Testar nome usando DNS via IPv6
[admin@servidor] /ip dns> test facebook.com 2001:4860:4860::8888
> Servidor..: 2001:4860:4860::8888
- FQDN......: facebook.com
facebook.com IN A 66.220.156.68
facebook.com IN AAAA 2a03:2880:11:1f83:face:b00c:0:25de
No teste do exemplo acima observe que houve sucesso. Caso o transito de pacotes IPv6 não seja possível o resultado seria como abaixo:
http://manual.slackmini.com.br/ 47/69
21/11/2017 Distribuição Linux Slackmini
Erro na consulta tipo A (IPv4)
;; connection timed out; no servers could be reached
Erro na consulta tipo AAAA (IPv6)
Servidor DNS nao respondeu.
Se você constatou o correto funcionamento da Internet usando IPv6, adicione um servidor DNS IPv6 na sua lista de consulta:
IP ver.: 6
Host...: ipv6.br
Server.: 2001:4860:4860::8844
SEQ Q. Type Ans Aut TIME STATUS
1 1 A 1 0 144.770 Reply
2 1 A 1 0 154.415 Reply
3 1 A 1 0 199.472 Reply
4 1 A 1 0 153.871 Reply
sent=4 received=4 packet-loss=0 min-rtt=144.770 avg-rtt=163.132 max-rtt=199.472
http://manual.slackmini.com.br/ 48/69
21/11/2017 Distribuição Linux Slackmini
Temos duas localidades que possuem conexão com a internet porem as redes locais de cada localidade não possuem capacidade
de se comunicarem pois usam ips privados (RFC1918, 10.x.x.x).
Uma solução para que o computador PC A-2 e o PC B-8 se comuniquem é estabelecer um tunel entre o Roteador A e o Roteador B de forma
que os pacotes da rede 10.100.0.0/24 sejam encapsulados (pegar um pacote IP e colocar dentro de outro pacote IP) e enviados para o outro
lado usando a Internet.
Essa ação é semelhante a você pegar uma carta pronta, colocar dentrou de outra carta e então submete-la aos correios, a diferença é que
no nosso caso em vez dos correios temos a Internet.
O protocolo GRE encapsula o pacote orignal em um pacote GRE e em seguida coloca o pacote GRE dentro do pacote IP que irá transportá-
lo pela Internet.
Por ter um cabeçalho proprio, o GRE pode transportar protocolos diferentes (IPv4, IPv6, etc...).
Criaremos então um tunel entre os dois roteadores. Esse primeiro exemplo demonstrará o uso de tuneis baseado em pacotes onde as duas
pontas possuem sempre o mesmo IP.
http://manual.slackmini.com.br/ 49/69
21/11/2017 Distribuição Linux Slackmini
Tuneis GRE é uma forma de criar tuneis de camada 3 baseados em IPv4, ou seja, o conteudo a ser transportado pelo tunel será
encapsulado dentro de uma pacote IPv4.
Um tunel GRE suporta transportar apenas pacotes de camada 3, ou seja: IPv4 ou IPv6.
Ele é baseado em pacote, o que significa que não haverá uma etapa de construção do tunel para que ele entre em operação.
Para que que um tunel GRE funcione é preciso que ambos os lados tenham coerencia em seus ips LOCAL e REMOTE.
http://manual.slackmini.com.br/ 50/69
21/11/2017 Distribuição Linux Slackmini
Exemplos:
add name Teste1 local 172.20.0.49 remote 172.20.0.1
add local=172.20.0.49 remote=172.20.0.21
add 172.20.0.49 172.20.0.21
Exemplos de compatibilidade com outros sistemas:
add local-address=172.20.0.49 name=gre-tunnel1 remote-address=172.20.0.1
http://manual.slackmini.com.br/ 51/69
21/11/2017 Distribuição Linux Slackmini
Adicione o IP na interface gri1:
Após configurar a outra ponta como no diagrama, vamos testar o ping para o outro lado do tunel:
http://manual.slackmini.com.br/ 52/69
21/11/2017 Distribuição Linux Slackmini
http://manual.slackmini.com.br/ 53/69
21/11/2017 Distribuição Linux Slackmini
Generic Routing Encapsulation sobre IPv6
Tuneis GRE é uma forma de criar tuneis de camada 3 baseados em IPv6, ou seja, o conteudo a ser transportado pelo tunel será
encapsulado dentro de uma pacote IPv6.
Um tunel GRE suporta transportar apenas pacotes de camada 3, ou seja: IPv4 ou IPv6.
Ele é baseado em pacote, o que significa que não haverá uma etapa de construção do tunel para que ele entre em operação.
Para que que um tunel GRE funcione é preciso que ambos os lados tenham coerencia em seus ips LOCAL e REMOTE.
Opcoes:
name=NOME : Nome simbolico
comment=COMENTARIO : Comentario do tunnel
NOTA: o LOCAL-IPv6 deve estar atribuido a uma interface local
http://manual.slackmini.com.br/ 54/69
21/11/2017 Distribuição Linux Slackmini
Exemplos:
add name Teste1 local 2001:db9:cafe::2 remote 2001:db9:fada::1
add local=2001:db9:cafe::2 remote=2001:db9:fada::1
add 2001:db9:cafe::2 2001:db9:fada::1
Após configurar a outra ponta como no diagrama, vamos testar o ping para o outro lado do tunel:
/interface 6to4 IPv4 público para IPv4 público Apenas IPv6, protocolo oficial para implementar IPv6 na internet IPv4.
Os tuneis baseado em IP não possuem um cabeçalho intermediário como o GRE e por esse motivo só podem transportar um tipo de
protocolo. A ausencia do cabeçalho adicionar economiza alguns bytes permitindo uma MTU levemente maior.
Para saber como exibir e adicionar tuneis IP sobre IP, entre no diretório de configuração e use 'print help' e 'add help' respectivamente.
DATA/HORA E TIME-ZONE
É de suma importancia para todos os softwares que rodam no Linux que a data/hora esteja devidamente atualizada e se possível,
sincronizada com um servidor NTP.
A data/hora UTC é esse valor de referência, assim, para um computador o primeiro valor importante é a data/hora do Arquipélago de
Madeira (ilha de Portugal).
O segundo valor de referência é o TIME-ZONE. O time-zone informa a um computador a diferença de horas e minutos que há entre hora
local e a hora UTC.
Para calcular a data/hora local, a fórmula é: (UTC) + (TIME-ZONE)
http://manual.slackmini.com.br/ 55/69
21/11/2017 Distribuição Linux Slackmini
No Brasil, em geral, temos um TIME-ZONE -3h, assim, se na hora UTC são 23:12, no Brasil serão (23:12) + (-3) = 20:12.
Devido o fato que o planeta tem um eixo inclinado e a iluminação do sol muda em cada região, o TIME-ZONE não é fixo o ano todo. Em
alguns lugares ele é um valor dinâmico, para o verão pode ser um e no inverno outro e tambem pode
haver na região um horário de verão.
Por causa disso, em vez de informar apenas um número positivou ou negativo de horas é mais pertinente informar o nome da localização
(exata ou aproximada) para que por meio de um arquivo de configuração da região seja possível ao servidor obedecer a diferença de acordo
com a época do ano.
Relógio de hardware
Todo computador possui um relógio interno em hardware sendo mantido por uma bateria para que a data/hora seja mantida até mesmo
quando o servidor está totalmente desligado.
Quando o sistema operacional é iniciado ele copia a data/hora do relógio de hardware para um relógio de software mantido pelo Kernel e da
qual depende todos os softwares (banco de dados, BGP, logs, etc...).
O relógio de software precisa saber se o relógio de hardware estava definido baseado na data/hora local ou na data/hora UTC.
Para permitir que sejam feitos ajustes na BIOS decorrente de troca de bateria ou RESET, o Slackmini toma como base que a data/hora da
BIOS é uma data/hora local.
Nessa sequencia basta a ele saber o TIME-ZONE para obter a data/hora UTC e então iniciar as operações confiando num valor
hipoteticamente confiável.
Exemplo:
quando o kernel Linux foi iniciado a data/hora na BIOS era 2016-01-01 12:00, ao carregar o time-zone como America/Sao_paulo (-3h) ele
pode concluir que a hora UTC está em +3h, sendo 2016-01-01 15:00, o relógio de software então é ajustado para 2016-01-01 15:00 UTC e a
data/hora baseado no time-zone será 2016-01-01 12:00 BRT.
Quando o servidor for desligado a data/hora da BIOS deve ser atualizada baseada no time-zone.
Infelizmente os relógios de hardware (BIOS + bateria) e software (kernel + processador) não possuem precisão suficiente para que a
data/hora seja 100% confiável.
Ele se atrasa ou se adianta aleatoriamente de acordo com pertubações locais (bateria fraca, temperatura variando e afetando os circuitos,
etc...).
Existem algumas formas de obter uma data/hora com certa precisão, são elas:
GPS Bom, satélites GPS possuem relógio atômico Requer circuito GPS.
Pelo Zeroshell:
http://manual.slackmini.com.br/ 56/69
21/11/2017 Distribuição Linux Slackmini
[admin@servidor] /system clock>
America/Sao_Paulo
[admin@servidor] /system clock>
26/06/2016 19:04:36
26/06/2016 22:04:36
America/Araguaina
America/Bahia
America/Belem
America/Boa_Vista
America/Buenos_Aires
America/Campo_Grande
America/Cuiaba
America/Maceio
America/Manaus
America/Noronha
America/Porto_Acre
America/Porto_Velho
America/Recife
America/Rio_Branco
America/Santarem
America/Sao_Paulo
[admin@servidor] /system clock>
Data/hora
TimeZone.........: America/Manaus
http://manual.slackmini.com.br/ 57/69
21/11/2017 Distribuição Linux Slackmini
Local software...: 13/05/2016 07:38:12
UTC..............: 13/05/2016 10:38:12
Data/hora
TimeZone.........: America/Sao_Paulo
Local software...: 13/05/2016 07:38:21
UTC..............: 13/05/2016 10:38:21
Você pode definir a data e a hora manualmente caso um servidor NTP não esteja disponivel (caso sua internet tenha caido).
Não altere a data ou a hora para um tempo FUTURO ou PASSADO. Leve muito a sério a coerência temporal entre o relógio
do servidor (hardware e software) e a realidade!
Alguns softwares do Linux são baseados numa estrutura temporal linear, ou seja, sempre avançando para o futuro, nunca
voltando no tempo.
Pode parecer óbvio mas violar essa coerência pode causar danos em sistemas de banco de dados, os softwares mais
afetados com esse tipo de violação são:
Logs: eventos do servidor são armazenados com a data/hora, se ela estiver errada ficará difícil determinar o momento
do evento registrado. Logs são importantes e tem relação com a lei (marco civil principalmente);
SGDB: MySQL, Postgree, Sqlite: registros inseridos com data/hora da criação do registro;
RRDTOOL: software de gerar gráficos baseado em round-robin, ele nunca armazena dados cuja data/hora sejam
menores que do último registro;
Softwares proprietários licenciados: licenças de software baseada em restrição de tempo (mensal, anual, trial) podem
detectar a perturbação no tempo linear e pararem de funcionar.
Os exemplos abaixo devem ser lidos para entendimento, não execute os mesmos comandos que constam no manual pois
você irá danificar a coerência temporal do servidor.
Data/hora
TimeZone.........: America/Sao_Paulo
Local software...: 01/01/2016 07:38:21
UTC..............: 01/05/2016 10:38:21
Sempre que o Slackmini é corretamente desligado (via comando 'poweroff' ou 'shutdown') ele salva a data/hora do relógio de
software para o relógio da BIOS.
É preciso salvar a data/hora na BIOS por segurança sempre que você alterar manualmente pois se houver uma queda de
energia ou desligamento incorreto a BIOS pode iniciar com uma data/hora incoerente.
Para salvar a data/hora do relógio de software para o relógio de hardware observe os seguintes comandos:
http://manual.slackmini.com.br/ 58/69
21/11/2017 Distribuição Linux Slackmini
Data/hora
TimeZone.........: America/Sao_Paulo
Local software...: 01/01/2016 23:19:00
UTC..............: 01/05/2016 01:19:21
Local hardware...: Fri Jan 1 23:19:00 2016 .629641 seconds
[admin@servidor] /system clock> print
Mesmo que você configure a data e a hora corretamente o relógio do computador sofre atrasos ou adiantamentos imprevisíveis.
A única forma de resolver esses atrasos e adiantamentos aleatórios é fazendo com que seu servidor, roteador ou dispositivo qualquer
sempre sincronize o relógio local com informações precisas de data e hora fornecidas por um relógio atômico.
http://manual.slackmini.com.br/ 59/69
21/11/2017 Distribuição Linux Slackmini
Por questões de segurança o administrador de rede pode optar por montar um servidor NTP local que sempre sincronize seu relógio com o
servidor NTP oficial e então distribua a roteadores e servidores dentro da rede interna.
Esse tipo de técnica é recomendada caso você tenha roteadores que não possuam acesso a internet (apenas repassam pacotes, comum em
redes MPLS) e servidores com aplicações para a intranet.
Você tambem pode optar para que todos os dispositivos consultem diretamente um servidor NTP oficial. Isso dispensa a montagem de um
servidor NTP próprio mas requer que o dispositivo cliente sempre tenha acesso a internet para sincronizar seu relógio.
http://manual.slackmini.com.br/ 60/69
21/11/2017 Distribuição Linux Slackmini
Operadoras de telefonia móvel sempre mantem suas antenas e sub-sistemas fielmente sincronizados com um relógio atômico.
Alem de servir para propósitos técnicos da operador esse sincronismo tambem serve para fornecer aos aparelhos dos clientes um relógio
fiel.
Você já deve ter reparado alguma vez que seu celular teve a data/hora automaticamente ajustada ao receber o sinal de celular.
Uma opção semelhante a utilizada por operadoras, celulares e smartphone é o uso de dispositivo GPS via porta USB.
http://manual.slackmini.com.br/ 61/69
21/11/2017 Distribuição Linux Slackmini
O servidor pasará a ter um relógio extremamente fiel a um relógio atômico e eliminanto problemas de volatilidade da latência da Internet e
ainda
poderá prover aos roteadores, servidores e demais computadores da organização uma data/hora estremamente precisa.
Bom, agora que você ja sabe a importancia de ter a data e a hora sempre atualizada e sincronizada com um servidor NTP vamos configurar
o Slackmini para sincronizar o relógio automaticamente.
Opcoes:
name=NOME : Nome simbolico
comment=COMENTARIO : Comentario do tunnel
Exemplos:
add name a.ntp.br 200.160.0.8 1
add name a.ntp.br 2001:12ff::8 2
Data/hora
http://manual.slackmini.com.br/ 63/69
21/11/2017 Distribuição Linux Slackmini
TimeZone.........: America/Sao_Paulo
Local software...: 31/07/2016 17:57:38
UTC..............: 31/07/2016 20:57:38
Local hardware...: Sun Jul 31 17:57:38 2016 .498781 seconds
PACOTES E ATUALIZAÇÕES
O Slackmini é uma distribuição em constante desenvolvimento e aperfeiçoamento, alem da necessidade de atualizações próprias, surgem as
necessidades de atualizações por motivos de segurança quando se descobre bugs em pacotes que compôem sua base.
Para haver coerência entre binários e bibliotecas o Slackmini é composto de poucos pacotes, assim, quando uma biblioteca ou programa
precisa ser atualizado todas as suas dependencias são atualizadas juntas.
Atualizar Slackmini
Use:
update all : Atualizar todos os pacotes
update (pkgname) : Atualizar apenas o pacotes 'pkgname'
Opcoes:
(pkgname) : Informacoes do pacote 'pkgname'
all : Informacoes sobre todos os pacotes
help : Exibir ajuda
GERENCIAMENTO DE SERVIÇOS
Este capítulo lhe ensinará como criar, ativar e desativar serviços no Slackmini.
O Slackmini conta com alguns serviços pre-instalados porem eles não iniciam automaticamente, é necessário ativa-los.
Cada serviço requer um script de controle instalado no diretório /etc/init.d.
Se o script estiver com flag de execução ativo (-x) ele será executado durante o boot recebendo o parâmetro start e durante o desligamento
recebendo o parâmetro stop.
#!/bin/sh
#@95
#&95
case "$1" in
'start')
echo "Iniciar servico HELLO-WORLD"
;;
'stop')
echo "Parar servico HELLO-WORLD"
;;
'restart')
echo "Reiniciar servico HELLO-WORLD"
;;
'status')
echo "Servico HELLO-WORLD vai bem, obrigado"
;;
*)
echo "Nao entendi, use: start/stop/restart/status"
esac
Observe os números nos primeiros dois comentários. O #@ determina a prioridade do serviço durante o boot e #& determina a prioridade
durante o desligamento.
REPARANDO DANOS
Todos sabemos que no dia-a-dia problemas acontecem e seu Slackmini pode parar de funcionar.
Se tem uma pergunta que me irrita é essa: O servidor parou. O QUE PODE SER?
Afinal, pode ser qualquer coisa e o que importa é voltar o serviço ao ar o quanto antes e deixar a investigação para depois.
Para evitar houvir essa pergunta eu projetei o Slackmini para impedir configurações destrutivas e ser capaz de identificar se algum arquivo foi
danificado.
Muitas vezes tentar reparar um servidor pode dar mais trabalho e tomar muito mais tempo do que simplesmente reinstalar tudo novamente,
portanto, siga esses conselhos:
Se algum arquivo vital para o sistema for perdido, danificado ou alterado indevidamente o comando de reparar irá resolve isso reinstalando o
arquivo original.
Após reparar os pacotes nativos realize o update para garantir que possíveis bugs já tenham sido reparados.
http://manual.slackmini.com.br/ 66/69
21/11/2017 Distribuição Linux Slackmini
SERVIDOR: DNS
O Slackmini disponibiliza os dois principais softwares de servidor DNS: BIND-9 e Unbound.
Para montar um servidor DNS você precisa escolher um deles. Se ativar os dois um deles irá falhar por não conseguir abrir a porta udp/53.
Bind9 /etc/named.conf
Unbound /etc/unbound/unbound.conf
SERVIDOR: WEB
O Slackmini disponibiliza os três principais softwares de servidor HTTP: Apache2, Lighttp e Nginx.
Para montar um servidor HTTP você precisa escolher um deles. Se ativar os dois ou mais um deles irá falhar por não conseguir abrir a porta
tcp/80 ou você terá que rodar os demais em portas diferentes.
Usando PHP
Para usar programas em PHP nas suas páginas web usando o Apache 2 basta subir o serviço do Apache.
Para usar PHP com o Lighttpd é preciso subir o serviço PHP-FPM.
Exemplos:
1 - Servidor Web Apache2 e PHP
http://manual.slackmini.com.br/ 67/69
21/11/2017 Distribuição Linux Slackmini
Obs.: o PHP é ativado no Apache2 pois no arquivo de configuração /etc/httpd/httpd.conf já consta por padrão a 'include' do modulo PHP.
Testando
Apos escolher seu serviço de HTTP abra o navegador e digite o IP atual do servidor (ou o nome caso tenha atribuido no DNS autoritativo).
Para testar o PHP e as informações de suporte a modulos, acesse o caminho /info.php (http:// + ip + /info.php).
http://manual.slackmini.com.br/ 68/69
21/11/2017 Distribuição Linux Slackmini
support-files/mysql.server to the right place for your system
which will also give you the option of removing the test
databases and anonymous user created by default. This is
strongly recommended for production servers.
See the MariaDB Knowledgebase at http://mariadb.com/kb or the
MySQL manual for more instructions.
A primeira vez que você ativar o MariaDB o script do serviço irá instalar automaticamente o banco de dados padrão dispensando assim a
execução do comando 'mysql_install_db --user=mysql' como demonstrado acima.
Observe:
VIA VIRTUALBOX
(Arquivo /storage0/wwwroot/manual.slackmini.com.br/_extra-virtualbox.php nao encontrado).
http://manual.slackmini.com.br/ 69/69