4. Os Softwares de Sistema para Implantação do MBone

Para utilização do MBone em uma organização, existem alguns requisitos necessários à rede local e as estações desta rede. Inicialmente, é necessário que as estações onde é desejado utilizar MBone suportem difusão seletiva IP, ou o protocolo IGMP, em seus sistemas operacionais. Além disso, é necessário também que a rede possua um roteador de difusão seletiva.

4.1. Suporte a Difusão seletiva IP para Estações

Para uma estação estar apta para enviar quadros multimídia participando do MBone, ela deve possuir um sistema operacional que interprete o endereçamento classe D dos pacotes de difusão seletiva IP.

4.1.1. Difusão Seletiva IP para Estações Utilizando Unix

Atualmente, a maior parte dos sistemas operacionais Unix no mercado vem equipados com suporte do sistema para difusão seletiva IP dentro do kernel. Máquinas mais antigas, porém, geralmente possuem um sistema que não suporta esta forma de endereçamento, o que deve ser verificado no manual do sistema operacional. Nestes casos, existem softwares que modificam o kernel do sistema operacional Unix para acrescentar suporte a difusão seletiva IP. Estes softwares podem ser obtidos junto aos fornecedores das estações ou em sites de domínio público que armazenam extensões de kernel de sistemas operacionais para difusão seletiva IP.

As extensões de kernel para difusão seletiva IP estão disponíveis para diversos sistemas, em diversas versões, sendo a versão 3.5 a mais atual encontrada.

Extensões de kernel versões 3.5 para estações SUN utilizando o sistema SunOS 4.1.x podem ser obtidas em [SOF 96][SOF 96a][SOF 96b][SOF 96c]. Instruções para a instalação destas extensões são obtidas no arquivo README, incluído junto aos arquivos de extensões. A instalação pode ser feita manualmente ou através de um arquivo script chamado mcast_install, que efetua as modificações automaticamente.

Para o sistema Solaris, podem ser obtidas extensões para Solaris 2.4, disponíveis em [SOF 96d], e para Solaris 2.5, disponíveis em [SOF 96e][SOF 96f]. A instalação é feita automaticamente através de um script chamado install.multi, que pode ser encontrado junto aos arquivos de extensão, podendo ser consultado o arquivo INSTALL_NOTES com instruções de instalação. Estas extensões modificam os módulos do kernel ip, arp, icmp, udp e tcp. Se, posteriormente a instalação do kernel de difusão seletiva 3.5, for instalado um novo remendo que substitua estes módulos, o kernel 3.5 deve ser reinstalado.

Existem ainda extensões para o sistema operacional DEC-Ultrix 4.x, que podem ser obtidas em [SOF 96g][SOF 96h], para o sistema HP-UX 9.01[SOF 96i], para o sistema SGI-IRIX 4.0x [SOF 96j], SGI­IRIX 5.1+[SOF 96l] e SGI-IRIX 5.3[SOF 96m], para o sistema DEC-OSF1 [SOF 96n][SOF 96o], para o sistema BSD 386 [SOF 96p], para AIX 3.2.5 (RS/6000) [SOF 96r], para NetBSD 0.9 [SOF 96s] e para Linux [SOF 96q].

4.1.2. Difusão Seletiva IP para Microcomputadores PC Utilizando Windows/DOS e para Sistemas Macintosh

Não existe suporte para difusão seletiva IP para o sistema operacional Windows de modo similar ao suporte oferecido para os sistemas Unix. A Microsoft Corp., porém, oferece suporte para IGMP para o sistema operacional Microsoft Windows NT e para o Windows 95, podendo ser obtidos em [SOF 96t] o arquivo winsock.h que provê extensões para difusão seletiva para Win32 e um programa de difusão seletiva exemplo, em linguagem C.

Existe também uma outra empresa de software, a FTP Software Inc., que oferece uma pilha TCP/IP para o sistema MS Windows que suporta difusão seletiva IP, chamada PC/TCP® (3.0) e PC/TCP OnNet® (1.1).

Para o sistema Macintosh, a Apple Computer Inc. oferece o seu sistema MacOS-7.5.2 que suporta difusão seletiva IP. Ele possui uma pilha TCP/IP sobre o sistema MacOS denominada Mac OpenTransport, versão 1.9b2, que segue o System V Unix, como uma interface de programação de rede.

4.2. Roteadores de Difusão Seletiva (mrouters)

Além das estações suportarem difusão seletiva IP, é necessário, para que os nodos de uma rede tenham acesso ao MBone, que exista um roteador de difusão seletiva na rede, de modo que os pacotes do MBone possam ser enviados entre a estação em questão e o MBone no resto do mundo. Como foi visto no capítulo anterior, os pacotes são recebidos e enviados utilizando os túneis do MBone, que utilizam encapsulamento IP para transmitir os pacotes difusão seletiva IP sobre as sub-redes intermediárias. O roteador de difusão seletiva, também denominado mrouter ou mrouted (multicast routing daemon), é o responsável pela transmissão dos pacotes de difusão seletiva para os túneis que interligam as diferentes sub-redes.

O programa mrouted é um pacote de software disponível em domínio público na Internet para diferentes sistemas operacionais, geralmente nos mesmo repositórios FTP onde se encontram as extensões do kernel do sistema operacional para suportar difusão seletiva IP. O software mrouted na versão 3.8 está disponível para o sistema SunOS 4.1.x [SOF 96u][SOF 96v], para os sistemas Solaris 2.4[SOF 96u][SOF 96v][SOF 96x], Solaris 2.5[SOF 96v][SOF 96x] e Solaris 2.5.1[SOF 96v][SOF 96x], para o sistema IRIX 5.4[SOF 96u], para o sistema DEC OSF/1[SOF 96u][SOF 96v], para o sistema HP/UX 9.05[SOF 96u], para o sistema BSD/OS[SOF 96u] e para o sistema Linux[SOF 96v], entre outros.

Existem também softwares de roteadores de difusão seletiva para sistemas Cisco Internetwork Operating System, softwares estes que são implementados para utilizar o protocolo PIM ou DVMRP para os túneis. Uma lista dos repositórios para os diversos programas mrouted para os diversos sistemas está disponível em [THA 96].

4.2.1. Multicast Routing Daemon (mrouted)

O programa mrouted [DEE 95c] é uma implementação de um protocolo de roteamento de difusão seletiva IP, transmitindo os datagramas utilizando uma árvore de menor caminho com raiz na origem do datagrama. O mrouted manuseia somente roteamento com difusão seletiva, sendo indiferente se existe na mesma máquina também algum software de roteamento unicast.

O programa pode ser executado em quatro níveis de depuração, segundo a sintaxe:

No nível 0, invocado também se a opção "-d" não for chamada, onde o programa se desliga do terminal por onde foi invocado. Nos outros níveis, entretanto, o programa permanece relacionado ao terminal por onde foi ativado e responde aos sinais deste terminal. Quando o nível de depuração não é especificado na chamada, a opção de nível 2 é ativada. O programa escreve as mensagens de aviso e de erros no daemon de log do sistema, independente do nível utilizado.

Quando utilizado o nível 1, todas as mensagens de log do sistema são também apresentadas no terminal. No nível 2, todas as mensagens do nível 1 e também as notificações de eventos significativos são apresentadas no terminal. Por fim, no nível 3, além das mensagens do nível 2 são apresentadas também as notificações de todos os pacotes recebidos e enviados.

O programa, uma vez iniciado, escreve seu número pid para o arquivo /etc/mrouted.pid.

4.2.1.1. Configuração

O mrouted automaticamente se configura para transmitir os datagramas para todas as interfaces com capacidade de difusão seletiva, isto é, interfaces que possuem o flag IFF_MULTICAST ativado (excluindo a interface de loopback), e identifica os outros programas mrouted que são atingíveis diretamente por estas interfaces. Para adicionar túneis para outros roteadores, ou para modificar a configuração padrão, deve ser utilizado o arquivo de configuração /etc/mrouted.conf ou um arquivo alternativo que deve ser indicado através do parâmetro de chamada "-c".

Existem quatro tipos de comandos de configuração [DEE 95c]:

O comando phyint é utilizado para desabilitar o roteamento de difusão seletiva para a interface física identificada pelo endereço IP local <local-addr> ou para associar uma métrica ou threshold diferente dos valores padrões para a interface física indicada. O endereço IP local pode ser substituído pelo nome da interface, por exemplo, le0. Se um phyint está ligado a múltiplas sub-redes IP, deve ser descrita cada sub-rede adicional com a palavra altnet. O comando phyint deve sempre preceder comandos tunnel.

O comando tunnel é usado para estabelecer túneis entre o endereço IP local, identificado por <local-addr> e endereços remotos IP, identificados por <remote-addr>. Valores não padrões podem ser configurados para a métrica ou threshold deste túnel utilizando os parâmetros metric e threshold, seguidos pelo novo valor. O endereço local IP pode, assim como no comando phyint, ser substituído pelo identificação da interface, por exemplo, le0. O endereço IP remoto <remote-addr> pode ser substituído pelo nome do host se este nome possuir um endereço único IP associado a ele. Para que um túnel possa ser utilizado, ele deve estar já configurado em ambos os roteadores do túnel.

O comando cache_lifetime determina a quantidade de tempo que uma rota de difusão seletiva escondida permanece no kernel antes de ter o tempo terminado. O valor <ct> desta entrada deve permanecer entre 300 (5 minutos) e 86400 (1 dia), sendo o valor padrão 300.

A opção prunning <off/on> é oferecida para que um mrouted trabalhe como um roteador sem o esquema de prunning (poda), explicado no capítulo anterior. É também possível iniciar o programa em modo sem poda utilizando a opção "-p" na linha de comando. Este modo é esperado apenas para roteadores em fases de teste, sendo utilizado como modo padrão o esquema com poda ativado.

Utilizando o name, é possível associar nomes para boundaries (fronteiras), de modo a tornar a configuração mais fácil. A opção boundary nos comandos phyint e tunnel pode também aceitar um nome ou fronteiras.

A métrica especifica o custo associado para enviar o datagrama para uma dada interface ou túnel, sendo utilizada para influenciar a escolha dos roteadores a serem utilizados para uma dada transmissão e assim definir túneis reserva. O valor padrão para a métrica é 1. As métricas devem ser mantidas com os menores valores possíveis, pois o roteador não transmite pacotes com caminhos onde a soma das métricas é superior a 31. Podem ser obtidas maiores explicações sobre a métrica no item 3.3.

O threshold indica o menor valor para o campo time to live (TTL) do datagrama IP requerido para que um datagrama de difusão seletiva seja enviado pela interface ou túnel correspondente. Este parâmetro é utilizado para controlar o escopo de distribuição dos pacotes de difusão seletiva, sendo estes decrementados em uma unidade a cada túnel por onde passam. O valor padrão para o threshold é 1. Em geral, todos os roteadores conectados para uma particular sub-rede ou túnel deveriam utilizar o mesmo valor para a métrica e threshold do túnel correspondente. Este parâmetro está explicado com mais detalhes no item 3.3.

A opção rate_limit possibilita ao administrados da rede especificar uma certa largura de banda em kbps que pode ser alocada para o tráfego de difusão seletiva. O valor padrão é 500 kbps em túneis, e 0 (ilimitada) em interfaces físicas.

A opção boundary permite que uma interface seja configurada como uma fronteira administrativa para um endereço especificado, onde pacotes pertencendo a este endereço não serão transmitidos na interface indicada. A opção boundary aceita também um nome específico.

O arquivo de configuração do roteador de difusão seletiva possui formatação livre, podendo ser incluídos espaços em branco e linhas novas sem significado. As opções boundary e altnet podem ser especificada quantas vezes forem necessárias.

Um programa mrouted não iniciará sua execução se possuir menos do que duas interfaces virtuais (vifs) habilitadas, podendo estas serem tanto interfaces físicas capacitadas para difusão seletiva como túneis. Se todas as interfaces forem túneis, uma mensagem de aviso será enviada para o arquivo de log, já que tal configuração poderia ser substituída por um túnel direto, eliminando o roteador em questão.

A seguir, apresentamos um exemplo de um arquivo de configuração, exemplo disponível junto aos arquivos de instalação do programa mrouted 3.8.

# $Id: mrouted.conf,v 3.6 1995/06/25 19:11:55 fenner Exp $
#
# This is the configuration file for "mrouted", an IP multicast router.
#   mrouted looks for it in "/etc/mrouted.conf".
#
# Command formats:
#
# name <boundname> <scoped-addr>/<mask-len>
# cache_lifetime 3600           # seconds
# pruning on
#
# phyint <local-addr> [disable] [metric <m>] [threshold <t>] [rate_limit <b>] 
#        [boundary (<boundname>|<scoped-addr>/<mask-len>)]
# 
# [altnet (<subnet>/<mask-len>|<subnet>)]
# tunnel <local-addr> <remote-addr> [srcrt] [metric <m>] [threshold <t>] [rate_limit <b>] 
#        [boundary (<boundname>|<scoped-addr>/<mask-len>)]
#
#   NOTE: any phyint commands MUST precede any tunnel commands
#   NOTE: the mask-len is the no. of leading 1's in the mask
#   NOTE: rate_limit is in kilobits, and defaults to 500 for tunnels
#
# Example of named bounary:
# name LOCAL 239.255.0.0/16
# name EE 239.254.0.0/16                # i.e. the EE dept wants local groups
#
# Example of use of named boundary
# phyint le1 boundary EE                # le1 is our interface to comp sci,
#                               # keep them away from our local groups
#
# Template tunnel for mcast_install
#        boundary LOCAL
#
# You might want to specify a boundary on your tunnel to the outside world,
# as above.

Para o roteador de difusão seletiva do nosso departamento, instalado na estação com endereço IP 143.54.9.15, foram adicionados túneis para a máquina 200.19.119.120, que corresponde à ligação com o resto do MBone; para a máquina 143.54.7.2, interna ao departamento porém pertencente a outra sub-rede; para a máquina 200.17.166.1, correspondendo a uma universidade que se conecta ao MBone utilizando nosso mrouted. A seguir, pode ser visto o trecho acrescentado ao arquivo de configuração original:

Na primeira chamada do comando tunnel, pode ser vista a configuração do túnel para a máquina 200.19.119.120, que possui métrica 1 e threshold 32. Nos comandos seguintes, os túneis para a máquina 143.54.7.2 e 200.17.166.1.

4.2.1.2. Sinais

O programa mrouted responde aos seguintes sinais:

Para o envio de sinais, deve ser utilizado o valor do identificador pid do programa que é armazenado no arquivo /etc/mrouted.pid no momento de inicialização do programa.

4.2.1.3. Tabelas de roteamento e de cache

O mrouter mantém tabelas de roteamento e de cache [DEE 95c], que podem ser obtidas utilizando os sinais acima. A seguir, apresentamos um exemplo de uma tabela de roteamento, obtidas na máquina 143.54.9.15:

vifs_with_neighbors = 2

Virtual Interface Table
Vif  Name  Local-Address                       M  Thr Rate    Flags
 0    le0  143.54.9.15  subnet: 143.54.9/24    1  1   0  querier leaf
                        groups: 224.0.0.2      
                                224.0.0.4      
                        pkts in : 0
                        pkts out: 1

 1    le0  143.54.9.15  tunnel: 200.19.119.120  1 32   500  
                        peers: 200.19.119.120 (3.8) (0x1e)
                        pkts in : 4951
                        pkts out: 0

 2    le0  143.54.9.15  tunnel: 143.54.7.2      1 1    500   leaf
                        pkts in : 0
                        pkts out: 0

 3    le0  143.54.9.15  tunnel: 200.17.166.1    1 32   500   leaf
                        peers: 200.17.166.1 (3.6) (0xf)
                        pkts in : 0
                        pkts out: 4926


Multicast Routing Table (3990 entries)
 Origin-Subnet      From-Gateway    Metric Tmr In-Vif  Out-Vifs
 206.172.195.32/32  200.19.119.120     9    55   1    0* 2* 3 
 206.172.195.31/32  200.19.119.120     9    55   1    0* 2* 3 
 206.172.195.30/32  200.19.119.120     9    55   1    0* 2* 3 
 206.172.195.20/32  200.19.119.120     9    55   1    0* 2* 3
 .
 .
 .




No exemplo, existem quatro interfaces virtuais (vifs), conectadas a uma sub-redes e três túneis. A vif 2, um túnel, não está em uso, o que é percebido pois não existe o outro endereço do par. A vif 0, sub-rede, possui alguns grupos presentes. Os túneis, por sua vez, nunca possuem grupos presentes. O programa envia mensagens de consulta sobre as associações a grupos periodicamente, como indicado pela palavra querier na coluna flags. Estas mensagens são do tipo Host Membership Query, como foi visto no ítem 2.4.2. O contador com o número de pacotes recebidos e enviados é também mostrado em cada interface.

Na segunda parte da tabela, associado a cada sub-rede da qual o datagrama de difusão seletiva pode se originar está o endereço do roteador anterior (a menos quando a sub-rede está diretamente conectada), a métrica para o caminho de volta à origem, a quantidade de tempo desde que foi recebida a última atualização para esta sub-rede, a interface virtual de recebimento dos datagramas daquela origem e a lista das interfaces virtuais de saída. O sinal * indica que a interface virtual de saída está conectada a uma folha da árvore de difusão seletiva com raiz na origem, e que os datagramas de difusão seletiva da origem em questão serão transmitidos na interface de saída somente se existem membros do grupo nas sub-redes destino.

O programa mrouted também mantém uma cópia da tabela cache de transmissão. As entradas nesta tabela são criadas e eliminadas pelo programa. Um exemplo de tabela cache, extraído da máquina 143.5.9.15, é apresentado abaixo:

Multicast Routing Cache Table (188 entries)
 Origin             Mcast-group     CTmr  Age Ptmr IVif Forwvifs
 143.107.103.0/27   224.0.1.1         3m  13m  86s  1P   3p
>143.107.103.5
 128.4.1/24         224.0.1.1         5m  16m    -  1    3 
>128.4.1.1
 128.232/16         224.0.1.1         6m  17m   5m  1P   3p
>128.232.0.49
>128.232.2.209
 203.178.137.192/27 224.0.1.10        3m  17m   3m  1P   3p
>203.178.137.200
 13.2.116/22        224.0.1.10        8m  17m   8m  1P   3p
>13.2.116.11
.
.
.

Cada entrada é caracterizada pelo número de origem da sub-rede, a máscara e o grupo de difusão seletiva destino. A coluna CTmr indica o tempo de vida da entrada. A entrada é removida da tabela quando o decremento de tempo chegar ao valor zero. A coluna Age indica o tempo desde que a entrada foi criada. Como as entradas são atualizadas se existe tráfego, as entradas na tabela podem permanecer por um longo tempo. O campo Ptmr é um indicador se nenhuma informação de poda foi enviada do lado de cima, ou se a quantidade de tempo até a poda do lado de cima está encerrada.

O campo Ivif indica a interface virtual dos pacotes de difusão seletiva daquela origem. Cada roteador também mantém um registro do número de mensagens de poda recebidas dos roteadores vizinhos para uma particular origem ou grupo. Se não há membros do grupo de difusão seletiva nos enlaces descendentes da árvore de difusão seletiva para uma sub-rede, uma mensagem de poda é enviada para o roteador do lado de cima. Eles são indicados por um "P" depois do número vif.

A coluna Forwvifs mostra a interface para a qual os datagramas pertencentes ao grupo de origem estão sendo enviados. Um sinal "p" indica que nenhum pacote está sendo transmitido para esta interface.

Uma interface não listada é uma sub-rede folha onde não há membros de um particular grupo naquela interface. Um sinal "b" em uma interface indica que esta é uma interface fronteira, isto é, o tráfego não será transmitido no endereço deste intervalo nesta interface. Uma linha adicional, com um sinal ">" no primeiro caracter é apresentada para cada origem na sub-rede, podendo haver muitas origens na mesma sub-rede.

4.2.2. Definição do Ponto de Conexão com o MBone

Para a ligação com o MBone, é necessário, como já foi visto, um túnel para um outro roteador de difusão seletiva conectado a rede MBone. Este outro roteador deve ser escolhido de modo que a topologia da rede virtual fique a mais eficiente possível, devendo ser escolhido um roteador que torne o túnel menor e que utilize os enlaces com maior largura de banda.

Uma boa forma para descobrir qual o melhor roteador a se conectar é enviar um e-mail para a lista de discussão do MBone da região. No Brasil, existe a lista mbone-br@nce.ufrj.br, que espelha também as listas de discussão mbone@isi.edu e mbone-na@isi.edu, transmitindo na lista todas as mensagens que circulam pelas duas listas citadas. Para se inscrever na lista brasileira, deve ser enviado um e-mail para majordomo@acd.ufrj.br, contendo a instrução subscribe mbone-br no campo da mensagem.

No exterior, existem uma série de listas, que englobam cada uma região. Algumas destas listas estão apresentadas na tabela abaixo. Para inscrição nestas listas, deve ser enviado um e-mail para o endereço indicado na coluna Inscrição da tabela.

Tabela 4.1. - Listas de discussão do MBone no exterior

Lista

Inscrição

Região

mbone-eu

mbone-eu-request@sics.se

Europa

mbone-jp

mbone-jp-request@wide.ad.jp

Japão

mbone-korea

mbone-korea-request@cosmos.kaist.ac.kr

Coréia

mbone-ca

canet-mbone-request@canet.ca

Canadá

mbone-na

mbone-na-request@isi.edu

América do Norte

mbone-oz

mbone-oz-request@internode.com.au

Austrália

mbone

mbone-request@isi.edu

outros

4.2.3. Instalação

A instalação do programa mrouted é geralmente realizada através de um arquivo script, obtido junto aos arquivos fontes do programa. Uma vez em posse dos arquivos fontes, já descompactados, deve ser encontrado um arquivo com as instruções de instalação para este programa específico, arquivo que geralmente é chamado README ou INSTALL_NOTES. Neste arquivo existem informações detalhadas sobre a instalação, o script utilizado, opções para instalação dos fontes, etc, que devem ser lidas cuidadosamente. É importante ressaltar que o programa efetua modificações no kernel do sistema, devendo ser instalado atenciosamente. Para instalação, é necessário utilizar a conta root da máquina.

Antes de instalar o programa, deve ser configurado o arquivo de configuração do programa mrouted.conf, já descrito anteriormente no item 4.2.2.1. Este arquivo deve ser copiado para o diretório /etc, onde será consultado pelo programa no momento de sua inicialização.

Como já foi visto, para instalação de um túnel é necessário configurar o túnel em ambos os roteadores das pontas do túnel, indicando o túnel no arquivo mrouted.conf da máquina onde o roteador está sendo instalado e também na máquina do outro lado do túnel. Assim, deve ser solicitado ao administrador da máquina que foi escolhida para fornecer o túnel que configure apropriadamente também seu roteador para o novo túnel.

Após instalação do script, com o arquivo de configuração já apropriadamente configurado e o outro lado do túnel também já configurado, deve ser efetuado um boot na máquina. Se a instalação tiver sido efetuada sem problemas, o daemon será iniciado normalmente na inicialização da máquina.

Existem muitos modos de verificar se o programa está funcionando normalmente, e se o acesso ao MBone já é possível. A forma mais simples consiste na ativação de uma aplicação de software do MBone de anúncio de sessão, como a aplicação SDR, que será descrita no capítulo seguinte. A janela da aplicação aparecerá na tela, e após alguns minutos, nomes de sessão como MBone Audio e Radio Free Vat devem aparecer na janela, mostrando que a conexão com o MBone está funcionando e os pacotes de difusão seletiva estão sendo recebidos pelo roteador. Uma segunda forma de testar o roteador é utilizar as ferramentas de monitoração do MBone, como as ferramentas mrinfo e mtrace, que serão apresentadas posteriormente.

A seguir, será explicado mais detalhadamente a instalação do programa para sistemas SunOS 4.1.x e para sistemas Solaris 2.4 e Solaris 2.5.

4.2.3.1 Instalação do programa mrouted para sistemas SunOS 4.1.x

Os arquivos para instalação da versão 3.5 para SunOS 4.1.3 e SunOS 4.1.4 podem ser obtidos em [SOF 96u], com o arquivo mrouted3.5.tar.Z. A versão consiste dos arquivos para a modificação do kernel dos sistemas SunOS 4.1.3, SunOS 4.1.3_U1B e SunOS 4.1.4; os arquivos binários do programa mrouted. mrinfo, map-mbone e mtrace, sendo os três últimos ferramentas para monitoração; o arquivo CHANGES, que apresenta as modificações efetuadas ao longo das últimas versões que foram desenvolvidas; o arquivo README-3.5, que contém informações gerais sobre o pacote.

A instalação do novo kernel pode ser feita utilizando o arquivo script mcast_install, que é oferecido dentro do pacote, ou de forma manual.

A instalação utilizando o script é bastante simples. Em sistemas onde não foram feitas modificações para difusão seletiva anteriores, isto é, onde é utilizado o kernel como ele vem nos arquivos de instalação, a instalação poderá ser feita apenas mantendo as opções padrões da maioria das perguntas feitas durante o processo. Em estações onde deseja-se fazer uma atualização da versão 3.3 de difusão seletiva, na pergunta

deve ser escolhido a opção "n", seguida pela opção "y" na pergunta

Em estações onde já está instalada uma versão de difusão seletiva anterior a versão 3.3, o script deve ser utilizado para desinstalar as modificações anteriores, e então utilizar o script como se estivesse sendo instalado em um sistema sem alterações anteriores ao kernel. Nesta situação, deve ser escolhida a opção "y" na pergunta

e deve ser informado o caminho para os antigos arquivos quando for perguntado. Após ser desinstalado o pacote antigo, o arquivo script deve ser novamente executado, utilizando a resposta "n" para a questão acima e então instalar a versão 3.5.

A instalação manual é realizada efetuando as cópias dos novos arquivos do kernel, que poderiam ser feitas automaticamente pelo script, manualmente. É composta dos seguintes passos:

  1. Os arquivos igmp.c, igmp.h e igmp_var.h (que implementam o protocolo IGMP) e os arquivos ip_mroute.c e ip_mroute.h (que implementam a parte do kernel do protocolo DVMRP) devem ser copiados do diretório netinet (do pacote) para o diretório sys/netinet nas fontes ou árvores binárias do kernel.
  2. Os outros arquivos no diretório netinet e os arquivos do diretório conf.common, net, sunif e sys contém modificações para outros fontes do kernel que não são distribuídas inteiras devido a restrições de licença. Estas modificações estão na forma de arquivos ".diff", que deveriam fornecer entradas para o novo programa para modificar os arquivos ".c" e ".h". Quando é utilizado um pacote apenas com os arquivos binários, não devem haver muitos arquivos ".c" e podem ser ignorado estes arquivos ".c.diff".
  3. Os arquivos binários (.o) já compilados devem ser copiados para o diretório sys/sun4c/OBJ ou sys/sun4m/OBJ.
  4. As modificações realizadas para suporte a difusão seletiva são identificadas com #ifdef MULTICAST / # endif MULTICAST em todos os arquivos ".c" do kernel, assim como as modificações para roteador de difusão seletiva são identificadas com #ifdef MROUTING / #endif MROUTING. Para construir um sistema que inclua serviços de difusão seletiva, as linhas options MULTICAST e options MROUTING devem ser acrescentadas depois da linha options INET no arquivo de configuração do kernel, no diretório sunX./conf. A opção MROUTING é necessária somente para as máquinas que implementarão o programa mrouted. Deve ser lembrado que estes arquivos podem ser utilizados não apenas para instalação de um roteador de difusão seletiva mas também para transformação de uma máquina para suporte a difusão seletiva IP.
  5. O kernel deve ser construído em um diretório novo, do contrário alguns dos arquivos não serão recompilados com a adição de novas opções no arquivo de configuração. Deve ser executado o arquivo /etc/config, e construído um novo kernel, instalado e deve ser dado um boot na máquina.
  6. Todos os arquivos ".h" novos e atualizados devem também ser instalados ligados logicamente sobre os apropriados subdiretórios do /usr/include, de modo que eles sejam incluídos pelos programas fora do kernel.

Existem também as versões do programa mrouted 3.6 e 3.8 [SOF 96u][SOF 96v], que são somente mrouted, devendo ser instaladas no topo de um kernel 3.5. Estas versões são uma substituição aos programas mrouted de versões anteriores.

4.2.3.2. Instalação do programa mrouted para sistemas Solaris 2.4 e Solaris 2.5

O pacote para instalação do programa nos sistemas Solaris 2.4 e Solaris 2.5 podem ser obtidos em [SOF 96x], através dos arquivos Solaris_mc35.2.4.tar.Z (kernel de difusão seletiva versão 3.6) e Solaris_mc35+.2.5-patch (kernel de difusão seletiva versão 3.8), respectivamente.

O pacote contém um arquivo denominado INSTALL_NOTES, que fornece instruções de como instalar os arquivos utilizando o programa script install.multi, também fornecido neste pacote. O script é similar ao utilizado para instalação em sistemas SunOS 4.1.x, modificando os módulos ip, arp, icmp, udp e etc do kernel. Após ser utilizado o script, o arquivo mrouted.conf deve ser copiado para o diretório /etc, e deve ser feito o boot na máquina. Uma vez instalado o kernel, se for posteriormente instalado uma nova modificação que altere estes módulos, o kernel que suporta difusão seletiva deve ser reinstalado.

4.3. Ferramentas de Monitoração do MBone

Existem diversas ferramentas de monitoração e depuração do MBone, que devem ser utilizadas para monitorar o tráfego de difusões seletivas sobre os túneis da rede virtual e resolver problemas da rede. Muitas destas ferramentas estão disponíveis em domínio público na Internet, sendo encontradas nos repositórios de software do MBone e de gerência de redes. Entre as principais ferramentas pode-se citar três aplicações que são obtidas junto com os pacotes de instalação do programa mrouted: mrinfo, mtrace e map-mbone. Estas ferramentas serão vistas nos itens adiante.

4.3.1. Mrinfo

A ferramenta mrinfo [KUM 95] apresenta a configuração de um roteador de difusão seletiva conectado ao MBone, podendo este ser local ou remoto. As informações fornecidas consiste da versão do programa mrouted, como o roteador está conectado para outros roteadores via túneis, e a especificação do túnel. O mrinfo é chamado com a conta de root segundo a sintaxe abaixo:

A opção -d seleciona o nível de depuração. Quando o nível for superior ao valor padrão 0, mensagens de depuração adicional são apresentadas. Independente do nível de depuração, condições de erro gerarão uma mensagem de erro e causarão o término do mrinfo.

No nível 1, são apresentadas mensagens de aviso. No nível 2, as mensagens do nível 1 são apresentadas juntamente com as mensagens de redes sem conexão. Por fim, no nível 3, além das mensagens do nível 2 são também mostradas as notificações dos pacotes com tempo finalizado.

O parâmetro -r retry_count seleciona o limite de respostas para consulta aos vizinhos. Este parâmetro possui como valor padrão o valor 3.

Por fim, a opção -t timeout_count seleciona o número de segundos que devem ser esperados para uma resposta de uma consulta para um roteador vizinho, possuindo como valor padrão 4.

Um exemplo de execução do programa, realizada da máquina 143.54.9.15 (ijui.inf.ufrgs.br) é apresentado abaixo:

Na linha inicial é apresentada a versão do programa mrouted utilizada (no exemplo, versão 3.8 ), assim como as sub-redes e túneis conectados. No exemplo, o roteador está conectado a sub-rede local (0.0.0.0) e possui túneis para a máquina prenda (143.54.7.2), server3.pop-df.rnp.br (200.19.119.120) e vitoria.ufp.tche.br (200.17.166.1). A métrica e threshold associados aos túneis também são mostrados, como pode ser visto no túnel com a máquina server3, que possui métrica 1 e threshold 32. A ferramenta mostra ainda o estado do túnel, indicando quando este estiver sem conexão ou desabilitado, indicados por down e disabled. No exemplo, o túnel com a máquina vitoria.upf.tche.br está sem conexão.

Nesta execução, o comando foi executado na mesma máquina que o roteador local. É possível, porém, que seja consultado roteadores remotos, como no exemplo abaixo, onde o comando foi executado da máquina ijui.inf.ufrgs.br consultando o roteador 200.19.119.120:


4.3.2. Mtrace

O mtrace apresenta o caminho da difusão seletiva seguido pelos datagramas de uma origem para um determinado destino, coletando estatísticas sobre o tráfego multimídia sobre o MBone. A ferramenta rastreia o braço de uma árvore de difusão seletiva da origem para um destino de um grupo particular, e fornece estatísticas sobre a vazão dos pacotes e perdas a cada nodo ao longo do caminho. A sintaxe de chamada do comando pode ser vista abaixo:

O único parâmetro necessário é o endereço ou nome do nodo de origem. O destino padrão dos pacotes é a estação executando o mtrace, e o grupo padrão é o "MBone Audio", identificado pelo grupo 224.2.0.1.

Além destes dois parâmetros principais, a ferramenta oferece uma série de opções que podem ser utilizadas para testar problemas especiais, apresentadas no manual que acompanha a ferramenta:.

Um exemplo da execução do comando, realizado da máquina prenda.inf.ufrgs.br para a máquina 143.107.103.5 é apresentado abaixo:

Source

143.107.103.5

v




_/

Response Dest

143.54.7.2

rtt 63 ms

Packet Statisticas For

All Multicast Traffic

Lost/Sent = Pct Rate

Only for Traffic

From 143.54.7.2

To 224.2.0.1

143.107.103.5

v ^


lsi.poli.usp.br

ttl 32



-1/95 = 0% 9 pps



0/0 = --% 0 pps

200.19.119.120

v ^


server3.pop-r.br

ttl 33



0/3 = --% 0 pps



0/0 = --% 0 pps

143.54.9.15

v ^


ijui

ttl 34



0/3 = --% 0 pps



0/0 = --% 0 pps

143.54.7.2



\_

prenda

ttl 35

143.54.7.2

Receiver

143.54.7.2

Query Source

A resposta é fornecida em duas seções. A primeira apresenta uma pequena lista dos nodos na ordem que eles são consultados. Para cada nodo, uma linha é impressa mostrando o número do nodo, o protocolo de roteamento de difusão seletiva, o threshold e o atraso acumulativo da consulta para atingir o nodo (válido somente se os relógios estiverem sincronizados).

A segunda seção mostra uma visão do caminho na direção da transmissão com o fluxo de dados indicado pelas setas apontando para baixo e do caminho da consulta indicado pelas setas apontando para cima. Para cada entrada, o endereço de entrada e saída do roteador são mostrados se diferentes, junto com o TTL inicial requerido para o pacote ser enviado deste nodo e o atraso de propagação ao longo do nodo assumindo que ambos roteadores possuem relógios sincronizados.

A metade direita é composta por colunas de estatísticas em dois grupos. Dentro de cada grupo, há o número de pacotes perdidos, o número de pacotes enviados, a porcentagem de perda e a vazão média de pacotes para cada nodo. As estatísticas são calculadas da diferença entre as consultas e de nodo para nodo. O primeiro grupo mostra a estatística de todo tráfego na interface de um nodo e a interface do próximo nodo. O segundo grupo mostra a estatística somente do tráfego do grupo especificado transmitido da origem específica.

As estatísticas são mostradas em uma ou duas linhas para cada nodo. Sem nenhuma opção, como no exemplo, a segunda seção da resposta é apresentada somente uma vez, aproximadamente 10 segundos após o início da monitoração.

4.3.3. Map-mbone

A ferramenta map-mbone  apresenta a topologia da rede de todos os roteadores de difusão seletiva atingíveis de um dado roteador de difusão seletiva no MBone. Se o endereço IP do roteador de difusão seletiva não está especificado na linha de comando, é assumido como pondo de partida para construir a topologia o próprio roteador local [KUM 95]. A ferramenta exige conta de root para ser executada. Um exemplo de sua execução é mostrado abaixo:

No exemplo, é realizada a consulta dos roteadores de difusão seletiva atingíveis a partir da máquina 150.161.2.4. É apresentada a versão utilizada neste roteador, e o túneis desta máquina, no caso, apenas o túnel com a máquina 200.19.119.120.


Capítulo 4 - Os Softwares de Sistema para Implantação do MBone (Parte 5 de 7) de
MELCHIORS, Cristina - Sistemas Interpessoais de
Videoconferência (MBone).
Trabalho Individual n. 596 CPGCC-UFRGS. Jan. 1997