Wake-on-LAN, como usar ?


Wake-on-Lan permite ligar um computador que está electricamente desligado (power off) mas com cabo de rede ligado ao switch. 

De notar que Wake-on-Lan pode ser usado em computadores que estejam ligado fisicamente à rede e não por wireless. 

Como verificar se o computador tem esta funcionalidade ?


Para que o wake-on-Lan funcione, a motherboard do computador tem que suportar esta funcionalidade. Consultando o manual da motherboard, ou navegando nos menus da BIOS poderemos encontrar 'PCI Power up' ou “Allow PCI wake up event”. Praticamente todas as motherboards modernas suportam  esta funcionalidade.


Após activar o WOL na motherboard, para acordar o PC podem usar este software cliente em ambiente Windows, para enviar o pedido WOL. O único requisito necessário, é saber qual é o MAC address da placa de rede do computador que queremos acordar.



Como usamos o MAC address do computador de destino, o WOL só vai funcionar se estivermos no mesmo domínio de broadcast.

Caso estejam ligados à rede remota (onde está localizado o PC a acordar), através de uma VPN Layer3, então uma das soluções passa por criar um script no raspberry onde termina a VPN, colocando no script os comandos necessários para invocar o WOL.

Antes de criar o script, devemos instalar o cliente linux:

sudo apt-get update
sudo apt-get install etherwake

Após instalar o etherwake, podemos executar o comando com o MAC de destino associado:

sudo etherwake xx:yy:zz:11:22:33


Se não quiserem estar a decorar o MAC de destino, podem criar um script com o comando.

pico acorda_frodo.sh

editando o script com a seguinte informação:

#!/bin/bash
echo "Enviando WOL ao Frodo !"
sudo etherwake xx:yy:zz:11:22:33

Após gravar o script temos que dar permissões de execução

sudo chmod o+x acorda_frodo.sh

Para executar o script basta chamar o mesmo da seguinte forma:

./acorda_frodo.sh

Desta forma, o Raspberry é que envia o pedido para acordar o PC, e como estão ambos no mesmo domínio de broadcast, funciona.

Backup ao cartão SD do Raspberry

Hoje é dia de backups aos cartões SD de memória do Gandalf e Saruman, os dois Raspberrys, que tomam conta de diversos serviços de rede cá em casa.

Após 64 dias de uptime, temos pena, mas tem que ser. Nestes 64 dias instalei bastante software que está comprovadamente a funcionar bem e por esta razão, quero fazer um backup integral de cada cartão para um ficheiro ISO. Assim, caso seja necessário, posso repor rapidamente o sistema a funcionar já com as alterações dos últimos 64 dias.

Para fazer o backup integral uso a ferramenta Win32DiskImager que permite tanto fazer backup de cartão, como repor uma imagem ISO no cartão. Hoje vou usar para copiar o conteúdo de cada cartão para um ficheiro ISO no PC.

Antes de mais, devemos parar o Raspberry, fazendo um halt ao sistema com o comando:

sudo shutdown -h now



Após o comando podemos desligar o Raspberry, retirar o cartão e realizar o backup.



No campo "Image File" colocamos o nome do ficheiro (imagem) que vai receber o backup do cartão,
escolhendo depois a opção "Read" que vai ler o conteúdo do cartão para o ficheiro pretendido.


Tornamos a colocar o cartão no Raspberry e liga-lo à corrente e pronto, o Raspberry continua a funcionar, e o  backup está feito e pronto a ser usado caso seja necessário.

Boson Subnet Calculator

Dando continuidade à temática do subnetting IPv4 no tutorial anterior fiz uma abordagem em que o subnetting é realizado recorrendo a papel e caneta. A razão é puramente académica, é claro que um profissional da área não vai fazer subnetting recorrendo a papel e caneta, porque leva muito tempo, logo não é produtivo, e porque somos humanos e facilmente nos enganamos numa conta realizada "à mão".

Um profissional da área, vai recorrer a uma ferramenta específica para fazer operações de subnetting.
Existem no mercado muitas calculadoras subnetting, podem pesquisar e irão encontrar várias, inclusivamente algumas online. Neste tutorial vou utilizar o Boson Subnet Calculator que poderão fazer download gratuito aqui.

Vamos utilizar o seguinte caso prático. O departamento IT de uma seguradora, tem como ponto de partida a rede 10.10.0.0/16. A sua tarefa é partir esta rede base de forma a criar várias redes mais "pequenas" para atribuir a várias filiais.

Vamos partir do princípio que as filiais terão as seguintes necessidades ao nível de quantidade de IP's:
  • Lisboa - 200 hosts
  • Porto - 340 hosts
  • Coimbra - 100 hosts
  • Faro - 50 hosts
  • Vila Real - 30 hosts
  • Viana do Castelo - 60 hosts
Quando iniciamos um projecto de subnetting do "zero" um dos truques que se utiliza para rentabilizar os blocos de ip's, (evitando o desperdício ou blocos não atribuídos), é começar o subnetting pela rede que necessita de mais hosts até à que necessita de menos.
Sendo assim a ordem aconselhada seria :
  • Porto
  • Lisboa
  • Coimbra
  • Viana do Castelo
  • Faro
  • Vila Real

Então se o nosso ponto de partida é a rede 10.10.0.0/16, o subnet id da rede do Porto será o 10.10.0.0 mas com quantos bit's para a rede ?

No Boson colocamos no campo Host IP o endereço 10.10.0.0 e vamos aumentar os bits da máscara até 23, o campo Max Hosts, dá a indicação que com 23 bits cabem 510 hosts na rede, com 24 bits para a rede cabem 254 hosts. Então a rede do Porto terá um máscara de rede com 23 bits onde cabem os 340 hosts necessários e ainda sobram bastantes hosts para possíveis necessidade futuras.
O Boson dá igualmente (no campo Current Host Range) o intervalo de IP's que poderão ser utilizados pelos hosts, neste caso o intervalo vai de 10.10.0.1 até 10.10.1.254. Temos também a indicação do endereço IP de broadcast 10.10.1.255


Sub-rede do Porto

Tendo a rede do Porto terminado no IP 10.10.1.254 e de forma a maximizar o aproveitamento da rede base, a rede de Lisboa vai ter como subnet id o ip seguinte ao de broadcast do Porto. Neste caso Lisboa terá como subnet id o ip 10.10.2.0 falta calcular quantos bits terá a máscara em Lisboa. 


Sub-rede de Lisboa

Com 24 bits para a rede cabem 254 hosts com 25 bits para a rede caberiam apenas 126 hosts, então a escolha são os 24 bits. 
A rede de Lisboa terá as seguintes características:
  • Subnet id: 10.10.2.0/24
  • Máscara de rede: 255.255.255.0 
  • Primeiro ip utilizável para hosts: 10.10.2.1
  • Último ip utilizável para hosts: 10.10.2.254
  • Endereço ip de broadcast: 10.10.2.255
Coimbra necessita de uma rede com pelo menos 100 hosts. Sabendo que Lisboa termina no ip 10.10.2.255, Coimbra irá iniciar no ip seguinte, que será 10.10.3.0 mas com quantos bits para a rede?
neste caso são necessário apenas 25 bits, cabendo 126 hosts na rede.


Sub-rede de Coimbra
A rede de Coimbra terá as seguintes características:
  • Subnet id: 10.10.3.0/25
  • Máscara de rede: 255.255.255.128
  • Primeiro ip utilizável para hosts: 10.10.3.1
  • Último ip utilizável para hosts: 10.10.3.126
  • Endereço ip de broadcast: 10.10.3.127


Viana do Castelo necessita 60 hosts, sabendo que Coimbra terminou no IP 10.10.3.127, Viana do Castelo pode começar em 10.10..3.128 com 26 bits para a rede.

Sub-rede de Viana do Castelo
A rede de Viana do Castelo terá as seguintes características:
  • Subnet id: 10.10.3.128/26
  • Máscara de rede: 255.255.255.192
  • Primeiro ip utilizável para hosts: 10.10.3.129
  • Último ip utilizável para hosts: 10.10.3.190
  • Endereço ip de broadcast: 10.10.3.191

Faro necessita 50 hosts, sabendo que Viana do Castelo terminou no IP 10.10.3.191, Faro pode começar em 10.10..3.192 igualmente com 26 bits para a rede (cabem no máximo 62 hosts).

Sub-rede de Faro
A rede de Faro terá as seguintes características:
  • Subnet id: 10.10.3.192/26
  • Máscara de rede: 255.255.255.192
  • Primeiro ip utilizável para hosts: 10.10.3.193
  • Último ip utilizável para hosts: 10.10.3.254
  • Endereço ip de broadcast: 10.10.3.255
Vila Real necessita 30 hosts, sabendo que Faro terminou no IP 10.10.3.255, Vila Real pode começar em 10.10.4.0 com 27 bits para a rede. 
De notar que neste caso estamos a criar um bloco onde cabem apenas 30 hosts, sendo que se no futuro Vila Real necessitar de mais hosts, não caberão neste bloco. Uma solução seria criar um rede com 26 bits, de forma a sobrarem ip's para situações futuras.

Sub-rede de Vila Real
A rede de Vila Real terá as seguintes características:
  • Subnet id: 10.10.4.0/27
  • Máscara de rede: 255.255.255.224
  • Primeiro ip utilizável para hosts: 10.10.4.1
  • Último ip utilizável para hosts: 10.10.4.30
  • Endereço ip de broadcast: 10.10.4.31

Com isto terminamos a atribuição de blocos/sub-redes para cada uma das filiais.
Sabendo que as mesmas filiais estarão interligadas através de links dedicados de dados, teremos igualmente que preparar o endereçamento para cada troço de interligação de filial.

Quantos ip's necessita cada troço de interligação ? Apenas 2, um para cada router, sendo assim, temos que preparar 5 sub-redes com 30 bits cada uma.

Viana do Castelo <-> Porto
  • Subnet id: 10.10.4.32/30
  • Máscara de rede: 255.255.255.252
  • Ip em Viana do Castelo: 10.10.3.33
  • Ip no Porto: 10.10.3.34
  • Endereço ip de broadcast: 10.10.3.35
Vila Real <-> Porto
  • Subnet id: 10.10.4.36/30
  • Máscara de rede: 255.255.255.252
  • Ip em Vila Real: 10.10.3.37
  • Ip no Porto: 10.10.3.38
  • Endereço ip de broadcast: 10.10.3.39

Coimbra <-> Porto
  • Subnet id: 10.10.4.40/30
  • Máscara de rede: 255.255.255.252
  • Ip em Coimbra: 10.10.3.41
  • Ip no Porto: 10.10.3.42
  • Endereço ip de broadcast: 10.10.3.43

Coimbra <-> Lisboa
  • Subnet id: 10.10.4.44/30
  • Máscara de rede: 255.255.255.252
  • Ip em Coimbra: 10.10.3.45
  • Ip em Lisboa: 10.10.3.46
  • Endereço ip de broadcast: 10.10.3.47

Faro <-> Lisboa
  • Subnet id: 10.10.4.48/30
  • Máscara de rede: 255.255.255.252
  • Ip em Faro: 10.10.3.49
  • Ip em Lisboa: 10.10.3.50
  • Endereço ip de broadcast: 10.10.3.51

Network Design


Resumidamente, a ferramenta Boson permite-nos de forma rápida e eficiente fazer o subnetting para um protejo, evitando erros de cálculo, que são mais propícios quando as contas são realizadas "à mão".

Resumidamente:

  • No campo  Host id, colocamos o endereço IP de partida
  • Em Mask Bits aumentamos ou diminuímos os bits atribuídos à rede, ao mesmo tempo analisamos o campo max hosts que indica quantos hosts cabem na rede
  • No Current Host Range, podemos ver o intervalo de ip's passiveis de atribuição a hosts
  • O campo subnet informa o endereço de rede ou subnet id
  • No campo broadcast o endereço ip de broadcast



Subnetting IPv4

Conceitos gerais de Subnetting


O Subnetting IPv4 serve para a partir de um bloco de ip's (que poderão representar uma rede grande), cortar/dividir esse bloco em blocos de ip's mais pequenos (redes mais pequenas).

O endereçamento IP foi desenhado de forma que cada organização pudesse ter um bloco com ip's contíguos. Desta forma as organizações podem gerir esse bloco de ip's da forma que bem entenderem, dividindo por exemplo em blocos mais pequenos.

Ao fazer a divisão em redes mais pequenas, podemos identificar cada bloco  de forma inequívoca através do seu subnet ID ou network ID. de uma forma lógica que faça sentido para a organização, e de forma que esta possa implementar uma política de roteamento de tráfego IP entre blocos, usando os  subnet ID ou network ID. 

Um endereço IP é apenas um número que tem 32 bits, podemos equiparar um endereço IP a uma morada, é a morada do host.
Este endereço IP está dividido em 4 grupos ou 4 octetos. Cada octeto tem 8 bits, 4 grupos de 8 bits dão os 32 bits totais.

Por exemplo o endereço IP 192.168.10.192 tem o equivalente em binário 11000000.10101000.00001010.11000000

Os métodos de subnetting foram feitos para tratarmos de 8 bits de cada vez (1 octeto) o que facilita a leitura no número pois só tem 8 bits, sendo que em notação decimal poderá variar entre 0 e 255.

Cada endereço IP está dividido em duas partes:

  1. A parte que representa a rede (primeira a ser lida da esquerda para a direita)
  2. A parte do host (o que sobra do lado direito)

Quando olhamos para um endereço IP em notação decimal, torna-se confuso entender onde acaba a parte da rede e começa a parte do host, mas quando olhamos para o endereço IP em notação binária, a fronteira entre a rede e o host está algures nesse número de 32 bits, podendo por exemplo a parte da rede terminar no bit 24 e do 25 ao 32 estar a parte do host (neste caso teríamos um endereço que faz parte de uma rede com 24 bits vulgarmente conhecida por ter uma máscara 255.255.255.0)

Portanto, a parte da rede pode ter X bits, sendo que para os hosts sobram 32-X 
Num IP com notação decimal não conseguimos ter uma visão clara de onde começa/acaba uma rede, por este motivo, em notação decimal usamos aquilo que se chama "máscara de rede" que aponta para a fronteira. 
Então uma máscara de rede 255.255.255.0 em binário é presentada por 1111111.1111111.1111111.00000000 vemos claramente que se trata de uma rede com 24 bits (os 24 "1s" à direita representam a quantidade de bits que representam a rede e os 8 bits a "0" que sobram à esquerda representam a parte dos hosts)

A estudar endereçamento IP, não nos podemos abstrair dos 4 parâmetros associados a um endereço IP:
  1. Subnet ID
  2. Início dos IP's utilizáveis
  3. Fim dos IP's utilizáveis
  4. Endereço IP de broadcast
Vejamos o exemplo da rede 192.168.1.0 com máscara 255.255.255.0
  1. Subnet ID: 192.168.1.0
  2. Primeiro IP utilizável: 192.168.1.1
  3. Último IP utilizável: 192.168.1.254
  4. Endereço IP de broadcast: 192.168.1.255
Com esta configuração de rede, poderia acomodar 254 hosts (computadores, impressoras, routers, servidores, etc), cada ativo de rede iria ter um IP que varia entre 192.168.1.1 e 192.168.1.254, a variação seria no quarto octeto.

Um ativo de rede, por exemplo com o endereço IP 192.168.1.200 e máscara 255.255.255.0 tem capacidade para determinar a resposta a estas simples perguntas:
  • Como enviar um broadcast na minha rede IP
  • O destino de um pacote IP faz parte da minha rede ? ou necessito de usar o default gateway ?
  • O meu endereço IP é válido ?

Como realizar o Subnetting ?

O processo de subnetting passa por 4 fases:
  1. Determinar o tamanho do bloco base (aquele que serve de ponto de partida e que vai ser dividido em blocos mais pequenos).
  2. Determinar os 4 parâmetros que representam o bloco base.
  3. Determinar o tamanho dos blocos que resultam da divisão do bloco base.
  4. Mapear a posição no bloco base onde vamos efectuar cada corte.
  5. Determinar os 4 parâmetros de cada bloco "filho".

Vamos supor que queremos dividir o bloco 192.168.1.0/24 em 8 blocos mais pequenos

  1. Determinar o tamanho do bloco base. Olhando para o endereço notamos que tem uma máscara com /24 bits (255.255.255.0). Portanto 24 bits dos 32 estão reservados para a parte da rede. Sobram 2^8 possíveis IP's para hosts o que dá 256. A estes 256 temos que retirar 2 (o da subnet id e de broadcast) sobrando 254 ip's para hosts.
  2. Determinar os 4 parâmetros que representam o bloco base 
    1. Subnet ID: 192.168.1.0
    2. Primeiro IP utilizável: 192.168.1.1
    3. Último IP utilizável: 192.168.1.254
    4. Endereço IP de broadcast: 192.168.1.255
  3. Determinar o tamanho dos novos blocos.  Como necessitamos cortar em 8 subnets, então dos 8 bits do último octeto, vamos necessitar de 3 bits para a parte da rede pois 2^3=8 subnets. sendo assim sobram 5 bits para hosts, então 2^5 =32 endereços ip em cada bloco para utilizar com os hosts. 
  4. Como os blocos terão 32 ip's cada um, já conseguimos determinar os 8 endereços ip para cada subnet id, 
    1. 192.168.1.0 
    2. 192.168.1.32
    3. 192.168.1.64
    4. 192.168.1.96
    5. 192.168.1.128
    6. 192.168.1.160
    7. 192.168.1.192
    8. 192.168.1.224
  5. Podemos então determinar para cada bloco, os 4 parâmetros, sendo que por exemplo para o bloco 3 teríamos a seguinte informação
    • Subnet id : 192.168.1.64
    • Primeiro IP utilizável: 192.168.1.65
    • Último IP utilizável: 192.168.1.94
    • Endereço IP de broadcast: 192.168.1.95