RFC1924 – Uma forma de compactar os endereços IPv6 que causa confusão a olhos leigos que nem os meus

Ano de 1996, universidade de Melbourne. Como os endereços IPv6 possuem 128 bits, alguem imaginou que podia diminuir o tamanho do endereço sem altera-lo. Como? Buscaram uma base que tivesse o mesmo tamanho que 2^128 o numero maximo de representações que um endereço IPv6 pode tomar ou seja 340282366920938463463374607431768211456 (que loucura!) e encontraram a base 85 porque 85^20  = 387595310845143558731231784820556640625 ou seja em 20 digitos da base 85 temos a representação máxima de 128 bits, bingo!

As bases 85 a 94 servem para representar o endereço IPv6. Como compactar? Codificando em caracteres do tipo:

'0'..'9', 'A'..'Z', 'a'..'z', '!', '#', '$', '%', '&', '(',
')', '*', '+', '-', ';', '<', '=', '>', '?', '@', '^', '_',
'`', '{', '|', '}', and '~'.

A conversão de um endereço IPv6 a um em base 85 é feita obviamente dividindo o equivalente em decimal (endereços IPv6 sao normalmente dados em Hexadecimal) do endereço por 85. Os seus restos sao o resultado.

Por exemplo:

21932261930451111902915077091070067066

Dividindo sucessivamente por 85 obtem-se:

 51, 34, 65, 57, 58, 0, 75, 53, 37, 4, 19, 61, 31, 63, 12, 66, 46, 70,
 68, 4

Consequentemente o novo numero torna-se (trás a frente):

4-68-70-46-66-12-63-31-61-19-4-37-53-75-0-58-57-65-34-51

Transformando o acima em binario e usando 5 caracteres ASCII para representar um bloco de 4 bytes (4bytes=32bits). Compactado fica assim:

+k&C#VzJ4br>0wv%Yp

Pergunto: Para os olhos humanos isso interessa? Acho que não talvez por isso nao se ouve falar muito dele, apesar de ter sido proposto em 1996.

Referencias Bibliograficas:

RFC 1924:A Compact Representation of IPv6 Addresses
Binary to text encoding
Base85(ASCII85)

Telefonista foi condenado por fazer chamadas piratas

O Tribunal de Polícia condenou ontem, em Luanda, Cardoso José acusado de crime contra as telecomunicações.

O réu em sua defesa disse que só estava a controlar a “casa de chamada” que são as cabines telefónicas onde os “telefonistas” vendem telefonemas à custa da Angola Telecom.

“O dono da casa de chamada é o meu amigo, mas ele foi embora e eu é que fui apanhado”, disse o réu Cardoso José. Para mostrar que é bom cidadão, o “telefonista” contou à meritíssima juíza que o preço das chamadas para o estrangeiro, depende do país. “Por exemplo, se os clientes quiserem falar para França, cobramos 40 kwanzas por minuto”.

O agente da Polícia Económica que apanhou o “telefonista” em flagrante delito, Cardoso José estava num quintalão do Bairro Hoji ya Henda, e na altura da detenção foi encontrado com dois telefones fixos, um aparelho que usa para piratear as chamadas e um aparelho de contagem.

Cardoso José foi condenado a dois meses de multa à razão de 50 kwanzas por dia, mas na condição do pagamento imediato. Foi ainda condenado a pagar uma taxa de justiça no valor de 13 mil kwanzas e 250 a favor do defensor oficioso.

Pelo mesmo crime, foi absolvido Adriano Muculayanga porque não houve matéria de prova dos factos .

fonte: JA

Chegou a vez da Intel mamar nas mãos da UE

A Uniao Europeia quando quer encher os bolsos cria mais uma situação. Como é praticamente um estado tem todo o direito de decidir sobre violações a livre concorrencia e como empresas como a Intel engordaram com o tempo e fazem de tudo para ganhar mercados, há sempre legislações que sao violadas. Resultado:

O órgão executivo europeu acusou a Intel de fazer pagamentos ilegais a fabricantes de PCs em 2007, e em julho do ano passado acrescentou a acusação de pagamentos ilegais a grupos de varejo.

Serão milhões de dolares que entrarão para os cofres da UE, e a Intel fica com alguns tentaculos cortados.

fonte: yahoo

A tenebrosa mansão de Steve Jobs

Incrivel, um homem com bom gosto ter uma casa como essa. É de assustar.

Mais fotos

Microsoft disponibiliza Windows 7 RC para download

A Microsoft disponibilizou publicamente a versão Release Candidate de seu próximo sistema operacional, Windows 7.

O aplicativo pode ser baixado nas versões 32 bits ou 64 bits, a partir do atalho tinyurl.com/crxlpq .

fonte: yahoo

Ainda o roteamento estatico, básico

Roteamento Estatico

Alguém pode perguntar porquê isso agora?

Pela mesma razão que provedores criam rotas estaticas a seus clientes.

Roteamento estatico é trabalhoso sem duvida, no entanto util quando se deseja criar uma rota certa para um destino.

No diagrama acima temos 3 redes. Uma ponto a ponto WAN 47.2.0.0 que interliga dois links ponto a ponto e mais 2 redes LAN (172.16.1.1/24 e 172.16.2.1/24)

A empresa detentora da infra acima e do bloco /30 decide que quer ligar as 2 redes LAN, mas quer roteamento estatico para maior segurança.

Designemos por RoteadorDaEsquerda o roteador que encontra-se a esquerda da figura e RoteadorDaDireita o roteador que se encontra a direita da figura.

Quando se deseja criar rotas estaticas deve-se indicar as rotas nao directamente conectadas (ao contrario do roteamento dinamico).

Assim, para o RoteadorDaEsquerda deve-se indicar uma rota para a rede 172.16.2.1/24 e o endereço de proximo salto (ou interface de saída) e para o RoteadorDaDireita deve-se indicar uma rota para a rede 172.16.1.1/24 e o endereço de proximo salto (ou interface de saída).

OBS1: O RoteadorDaEsquerda faz o clock
OBS2: 2 router 2811 com uma interface WAN cada e duas interfaces LAN. Dois switchs 2960 ou outro.
OBS3: Testado no packet tracer. GNS3 e dynamips desnecessario.

Segue o output da CLI do RoteadorDaEsquerda:

Router>
Router>en
Router#conf t
Enter configuration commands, one per line.  End with CNTL/Z.
Router(config)#hostname RoteadorDaEsquerda
RoteadorDaEsquerda(config)#interface serial 0/3/0
RoteadorDaEsquerda(config-if)#ip address 47.2.0.1 255.255.255.252
RoteadorDaEsquerda(config-if)#clock rate 64000
RoteadorDaEsquerda(config-if)#no shutdown

%LINK-5-CHANGED: Interface Serial0/3/0, changed state to down
RoteadorDaEsquerda(config-if)#
RoteadorDaEsquerda(config-if)#end
%SYS-5-CONFIG_I: Configured from console by console
RoteadorDaEsquerda#
RoteadorDaEsquerda#
RoteadorDaEsquerda#config t
Enter configuration commands, one per line.  End with CNTL/Z.
RoteadorDaEsquerda(config)#
%LINK-5-CHANGED: Interface Serial0/3/0, changed state to up
%LINEPROTO-5-UPDOWN: Line protocol on Interface Serial0/3/0, changed state to up
RoteadorDaEsquerda(config)#
RoteadorDaEsquerda(config)#
RoteadorDaEsquerda(config)#
RoteadorDaEsquerda(config)#interface fa 0/0
RoteadorDaEsquerda(config-if)#ip address 172.16.1.1 255.255.255.0
RoteadorDaEsquerda(config-if)#no shutdown

%LINK-5-CHANGED: Interface FastEthernet0/0, changed state to up
RoteadorDaEsquerda(config-if)#
RoteadorDaEsquerda(config-if)#
RoteadorDaEsquerda(config-if)#exit
RoteadorDaEsquerda(config)#ip route 172.16.2.0 255.255.255.0 47.2.0.2
RoteadorDaEsquerda(config)#ip route 0.0.0.0 0.0.0 47.2.0.2
^
% Invalid input detected at ‘^’ marker.

RoteadorDaEsquerda(config)#ip route 0.0.0.0 0.0.0.0 47.2.0.2
RoteadorDaEsquerda(config)#

Segue o output da CLI do RoteadorDaDireita:

Router>
Router>en
Router#conf t
Enter configuration commands, one per line.  End with CNTL/Z.
Router(config)#
Router(config)#
Router(config)#
Router(config)#interface serial 0/3/0
Router(config-if)#ip address 47.2.0.2 255.255.255.252
Router(config-if)#no shutdown

%LINK-5-CHANGED: Interface Serial0/3/0, changed state to up
Router(config-if)#
%LINEPROTO-5-UPDOWN: Line protocol on Interface Serial0/3/0, changed state to up
Router(config-if)#
Router(config-if)#
Router(config-if)#interface fa 0/0
Router(config-if)#ip address 172.16.2.1 255.255.255.0
Router(config-if)#no shutdown

%LINK-5-CHANGED: Interface FastEthernet0/0, changed state to up
Router(config-if)#
Router(config-if)#
Router(config-if)#
Router(config-if)#
Router(config-if)#
Router(config-if)#exit
Router(config)#hostname RoteadorDaDireita
RoteadorDaDireita(config)#
RoteadorDaDireita(config)#
RoteadorDaDireita(config)#ip route 172.16.1.0 255.255.255.0 47.2.0.1
RoteadorDaDireita(config)#ip route 0.0.0.0 0.0.0.0 47.2.0.1
RoteadorDaDireita(config)#
RoteadorDaDireita(config)#
RoteadorDaDireita(config)#exit
%SYS-5-CONFIG_I: Configured from console by console
RoteadorDaDireita#

Testando a conectividade

No RoteadorDaDireita um ping ao RoteadorDaEsquerda:

RoteadorDaDireita#ping 47.2.0.1

Type escape sequence to abort.
Sending 5, 100-byte ICMP Echos to 47.2.0.1, timeout is 2 seconds:
!!!!!
Success rate is 100 percent (5/5), round-trip min/avg/max = 6/16/34 ms

RoteadorDaDireita#

No RoteadorDaEsquerda um ping ao RoteadorDaDireita:

RoteadorDaEsquerda#ping 47.2.0.2

Type escape sequence to abort.
Sending 5, 100-byte ICMP Echos to 47.2.0.2, timeout is 2 seconds:
!!!!!
Success rate is 100 percent (5/5), round-trip min/avg/max = 4/21/33 ms

RoteadorDaEsquerda#

Mas se calhar é uma suposição errada, quem sabe nao existe conectividade entre as LANS. Vamos add 2 Pcs as Switchs:

drawing2

Agora um ping do PC da esquerda para o PC da direita:

PC>ping 172.16.2.2

Pinging 172.16.2.2 with 32 bytes of data:

Reply from 172.16.2.2: bytes=32 time=70ms TTL=126
Reply from 172.16.2.2: bytes=32 time=52ms TTL=126
Reply from 172.16.2.2: bytes=32 time=56ms TTL=126
Reply from 172.16.2.2: bytes=32 time=45ms TTL=126

Ping statistics for 172.16.2.2:
Packets: Sent = 4, Received = 4, Lost = 0 (0% loss),
Approximate round trip times in milli-seconds:
Minimum = 45ms, Maximum = 70ms, Average = 55ms

Agora um ping do PCDaDireita para o PCDaEsquerda:

PC>ping 172.16.1.2

Pinging 172.16.1.2 with 32 bytes of data:

Reply from 172.16.1.2: bytes=32 time=65ms TTL=126
Reply from 172.16.1.2: bytes=32 time=51ms TTL=126
Reply from 172.16.1.2: bytes=32 time=45ms TTL=126
Reply from 172.16.1.2: bytes=32 time=64ms TTL=126

Ping statistics for 172.16.1.2:
Packets: Sent = 4, Received = 4, Lost = 0 (0% loss),
Approximate round trip times in milli-seconds:
Minimum = 45ms, Maximum = 65ms, Average = 56ms

Como podem ver existe conectividade.

Bandwith! O calvário das apps de cá?

Alguns meses atrás escrevi um projecto para um portal duma entidade governamental, que incluia programação dinamica (ASP.Net ou JSP), Databases (SQL Server), XML,  ASP Components, WebMail, FTP, HTTPS, SSH, templates e-gov etc, tudo a contar com um dos maiores provedores de aplicação dos EUA, por causa duma recomendação da DotNetNuke que eu gosto muito de usar.

De repente o meu cliente embirra e acha que o projecto tem de ser hospedado num provedor Angolano. Tudo bem nao tem problema, ele procura o tal e encontra, vamos lá no provedor XYZ (nao vou dizer o nome, nê?). Chegados lá qual o meu espanto, nao havia capacidade de suportar toda aquela buginganga tecnologica.

Falta de capacidade? Nao. O administrador do Windows Server cheio de medo pedia para nao o sobrecarregarem muito com aplicações “gulosas”. Porquê? Falta de capacidade? Nao, ele podia dormir com uns livros e resolvia no dia seguinte. A maka era largura de banda, isso mesmo, bandwith, sabe?

E eu os dou razão. Os provedores necessitam de ser fuinhas nessa questão, ou fazem um investimento gigantesco em infra de links v-sat, já que por cabo Sat-3 está garantido que nao se pode esperar muito dele ou contratam um empregado para ser o desligador de interfaces, ou pagam uma fortuna a um CCIE, ou corram o risco de sairem do mercado.

Por isso prometeu-se muito ao longo dos anos mas nao se altera muita coisa também, basta visitar os planos de hospedagem oferecidos pelos provedores e percebe-se logo a armadilha em que eles estão. Nao podem dar o que não é possivel dar.

Fiquei de boca aberta quando fui informado dum famoso provedor aqui em Luanda que fornece links ponto a ponto (VPN) que apenas podiam suportar ao maximo 256 Kbps de bandwith e isto como plano empresarial, obrigando as vezes as mais carenciadas empresas adquirirem 2 a 4 planos para evitarem todo um constrangimento de velocidade e redundancia para integridade dos dados entre os pontos.