Fase Experimental do Serviço de Aceleração do Transporte de Dados com o Emprego de Redes de Circuitos Dinâmico (FE-ATER)

Ir para o final dos metadados
Ir para o início dos metadados

1. Implantação

1.1 Requisitos de Hardware recomendado

  • 2 vCPU
  • 2 GB RAM
  • 10 GB HD
  • 2 NIC
    1. Acesso remoto com um IP público
    2. Comunicação com o Switch OpenFlow utilizando IP privado
  • Sistema Operacional: GNU/Linux Debian 7
    • Utilizar hostname no seguinte formato: race-<Estado onde o RACE está sendo implantado> 
      Ex: race-go, race-rj, race-mg...

1.2 Processo de implantação

  1. Subir a VM do RACE com os requisitos de hardware recomendados utilizando o software de virtualização a escolha;
  2. Configurar as interfaces de rede da VM conforme especificado na seção 1.2.1;
  3. Instalar os pacotes necessários listados na seção 1.2.2;
  4. Configurar o firewall da VM conforme especificado na seção 1.2.3;
  5. Configurar o servidor ssh conforme especificado na seção 1.2.4;
  6. Criar uma conta ater conforme especificado na seção 1.2.5;

1.2.1 Configuração das interfaces de rede

  1. Adote o seguinte padrão para as interfaces:
     

    Interface
    Descrição
    eth0Interface de acesso remoto para o RACE
    eth1Interface de comunicação do RACE com o Switch Openflow


    Certifique-se que as bridges da VM do RACE estão configuradas para seguirem este padrão.

  2. Para configurar as interfaces de rede no Debian 7 devemos modificar o arquivo de interfaces contido em "/etc/network/interfaces";

  3. Abra o arquivo "/etc/network/interfaces" com o seu editor de preferência:

     

    # nano /etc/network/interfaces
  4. Configure o arquivo seguindo o seguinte padrão:

     

    # This file describes the network interfaces available on your system
    # and how to activate them. For more information, see interfaces(5).
    # The loopback network interface
    auto lo
    iface lo inet loopback
    # Interface de acesso remoto
    auto eth0
    iface eth0 inet static
        address <IP público para acesso remoto>
        netmask <Máscara do IP>
        gateway <Gateway da rede>
        dns-nameservers <Servidor de DNS primário> <Servidor de DNS secundário>
    # Interface de comunicação com o switch openflow
    auto eth1
    iface eth1 inet static
        address 10.0.0.1
        netmask 255.255.255.0


    Substitua as seguintes variáveis:

    Descrição
    <IP público para acesso remoto>Endereço de IP público para o acesso remoto da VM do RACE
    <Máscara do IP>Máscara de subrede do IP público
    <Gateway da rede>Endereço IP do gateway para o acesso a internet
    <Servidor de DNS primário>Endereço do servidor de nomes primário
    <Servidor de DNS secundário>Endereço do servidor de nomes secundário (opcional)
  5. Após modificar o arquivo e deixa-lo de acordo com o padrão salve-o e feche o editor;
  6. Reinicie as configurações de interface:

    # /etc/init.d/networking restart
  7. Efetue os seguintes testes:

    Comando
    Resultado esperado
    Conexão com a internet# ping 8.8.8.8 -c 55 packets transmitted, 5 received, 0% packet loss...
    Resolução de nomes (DNS)# ping google.com -c 55 packets transmitted, 5 received, 0% packet loss...
    Conectividade com o switch# ping 10.0.0.2 -c 55 packets transmitted, 5 received, 0% packet loss...

     

     

     

1.2.2 Instalação dos pacotes necessários

  1.  Atualize a lista de repositórios do sistema:
    1. No Debian 7 o arquivo de repositórios fica localizado em "/etc/apt/sources.list";
    2. Abra o arquivo "/etc/apt/sources.list" com o seu editor de preferência:

       

      # nano /etc/apt/sources.list
    3. Deixe o arquivo da seguinte forma:

       

      deb http://ftp.br.debian.org/debian/ wheezy main contrib non-free
      deb-src http://ftp.br.debian.org/debian/ wheezy main contrib non-free
      deb http://security.debian.org/ wheezy/updates main contrib non-free
      deb-src http://security.debian.org/ wheezy/updates main contrib non-free
      # wheezy-updates, previously known as 'volatile'
      deb http://ftp.br.debian.org/debian/ wheezy-updates main contrib non-free
      deb-src http://ftp.br.debian.org/debian/ wheezy-updates main contrib non-free
    4. Assim que o arquivo estiver conforme acima, salve-o e feche o seu editor;
    5. Recarregue a sua lista de diretórios:

      # apt-get update
  2. Abaixo a lista de pacotes necessários para a implantação da VM do RACE: 

     

     

    Nome do pacote
    Descrição
    Versão homologada
    iptablesRegras de filtragem de tráfego (firewall)1.4.14-3.1
    iptables-persistentSoftware para persistência das configurações das regras do iptables0.5.7
    sshCliente e servidor de secure shell1:6.0p1-4+deb7u2
    sudoProvém poderes limitados de super-usuário (root) a usuários específicos1.8.5p2-1+nmu1
    ntpDaemon para sincronismo do relógio1:4.2.6.p5+dfsg-2+deb7u1
    tcpdumpFerramenta para análise de tráfego4.3.0-1+deb7u1
    tcptracerouteFerramenta para traçar rotas utilizando pacotes TCP1.5beta7+debian-4
    tracerouteFerramenta para traçar a rota dos pacotes em redes IPv4 e IPv61:2.0.18-3
    mtrFerramenta de visualização Full screen do traceroute X11 e ncurses0.82-3
    ethtoolFerramenta para visualização e configuração de interfaces de rede Ethernet1:3.4.2-1
    wgetFerramenta para baixar arquivos da web1.13.4-3+deb7u2

    uptimed

    Ferramenta de medição de uptime

    1:0.3.17-3.1

    pythonLinguagem de programação, geralmente já vem com Python2.7
    oml4py  
    Ryu Framework que implementa o Padrão Openflow 
  1. Instale os pacotes necessários listados acima:

    # aptitude install iptables iptables-persistent ssh sudo ntp tcpdump tcptraceroute traceroute mtr ethtool wget uptimed python
    # pip install oml4py

     

     

  2. Instalação do Ryu*:

     

    # pip install ryu

     

     

    *Se você obteve algum erro na instalação do Ryu, cheque as dependências:

     
    apt install gcc python-dev libffi-dev libssl-dev libxml2-dev libxslt1-dev zlib1g-dev

1.2.3 Configuração do firewall

  1. A política do firewall do RACE recomendada é de:

    Chave
    Política
    INPUTDROP [0:0]
    FORWARDACCEPT [0:0]
    OUTPUTACCEPT [0:0]
  2. Para configurar o firewall utilizando a ferramenta iptables no Debian 7 devemos modificar o arquivo "/etc/iptables/rules.v4";

  3. Abra o arquivo "/etc/iptables/rules.v4" com o seu editor de preferência:

    # nano /etc/iptables/rules.v4
  4. Por padrão, seguindo a política descrita acima damos drop em todo pacote que tenta entrar no RACE, entretanto ele deve aceitar pacotes de:

     
    Regra
    Rede local-A INPUT -i lo -j ACCEPT
    Switch Openflow-A INPUT -s 10.0.0.0/24 -j ACCEPT
    CORE-A INPUT -s 200.130.99.82/32 -j ACCEPT
    Rede do INF (UFG)-A INPUT -s 200.137.197.192/26 -j ACCEPT
    ICMP-A INPUT -p icmp -j ACCEPT
    NTP-A INPUT -p udp --sport 123 -j ACCEPT
    Conexões já estabelecidas-A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT

     

    Aconselhamos a liberar também a conexão para a rede da sua instituição.
     

  5.  No final, seu arquivo rules.v4 deve estar parecido com:

    # Generated by iptables-save v1.4.14 on Tue Jan 20 14:00:00 2015
    *filter
    :INPUT DROP [0:0]
    :FORWARD ACCEPT [0:0]
    :OUTPUT ACCEPT [0:0]

    # localhost
    -A INPUT -i lo -j ACCEPT

    # redes e máquinas permitidas
    -A INPUT -s 10.0.0.0/24 -j ACCEPT
    -A INPUT -s 200.130.99.82/32 -j ACCEPT
    -A INPUT -s 200.137.197.192/26 -j ACCEPT

    # icmp
    -A INPUT -p icmp -j ACCEPT

    # ntp
    -A INPUT -p udp --sport 123 -j ACCEPT

    # established
    -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT

    # commit
    COMMIT
    # Completed on Tue Jan 20 14:00:00 2015
  6. Após modificar o arquivo e deixá-lo de acordo com o padrão salve-o e feche o editor;
  7. Para que as regras de firewall sejam aplicadas é necessário que seja dado um reload no iptables-persistent:

    # /etc/init.d/iptables-persistent reload
  8. Verifique se as regras foram aplicadas rodando o comando:

    # iptables -L -n
  9. Você deverá ter algo semelhante a:

     

    Chain INPUT (policy DROP)
    target prot opt source destination
    ACCEPT all -- 0.0.0.0/0 0.0.0.0/0
    ACCEPT all -- 10.0.0.0/24 0.0.0.0/0
    ACCEPT all -- 200.130.99.82 0.0.0.0/0
    ACCEPT all -- 200.137.197.192/26 0.0.0.0/0
    ACCEPT icmp -- 0.0.0.0/0 0.0.0.0/0
    ACCEPT udp -- 0.0.0.0/0 0.0.0.0/0 udp spt:123
    ACCEPT all -- 0.0.0.0/0 0.0.0.0/0 state RELATED,ESTABLISHED
    Chain FORWARD (policy ACCEPT)
    target prot opt source destination
    Chain OUTPUT (policy ACCEPT)
    target prot opt source destination

1.2.4 Configuração do servidor SSH

  1. Para configurar o servidor SSH no Debian 7 devemos modificar o arquivo "/etc/ssh/sshd_config";
  2. Abra o arquivo "/etc/ssh/sshd_config" com o seu editor de preferência:

    # nano /etc/ssh/sshd_config
  3. Por padrão o RACE deve ter as seguintes configurações de SSH:
     

    Configuração
    Valor
    Port6622
    PermitRootLoginyes
    UseDNSno

     

    Caso o seu arquivo de configuração não tenha alguma das configurações, basta adicioná-la no final do arquivo. 
     

  4. No final, seu arquivo sshd_config deve ter algo semelhante a:

     

    # Package generated configuration file
    # See the sshd_config(5) manpage for details

    # What ports, IPs and protocols we listen for

    Port 6622

    ...

    # Authentication:

    ...

    PermitRootLogin yes

    ...
    UseDNS no
  5. Após modificar o arquivo e deixa-lo de acordo com o padrão salve-o e feche o editor;

  6. Para que as configurações entrem em vigor é necessário reiniciar o servidor ssh:

    # /etc/init.d/ssh restart

1.2.5 Criação da conta ATER

  1. Para criar uma conta no Debian 7 você pode utilizar o comando "useradd":

    # useradd ater -m -s /bin/bash
  2. A conta deve ter permissão de sudo (deve estar no grupo sudo);

    1. Para adicionar o usuário no grupo sudo no Debian 7 devemos modificar o arquivo "/etc/group";
    2. Abra o arquivo "/etc/group" com o seu editor de preferência:

       

      # nano /etc/group
    3. Procure por algo como: 

       

      sudo:x:27:


      O número 27 pode mudar para outro, este é apenas o identificador do grupo no seu sistema.

       

    4. Adicione o usuário ATER no grupo, para isto basta adicionar o nome do usuário no final da linha:

      sudo:x:27:ater


      Caso tenha múltiplos usuários eles devem estar separados por "," (vírgula), por exemplo:

      sudo:x:27:ater,ater2
    5. Após a modificação, salve o arquivo e feche o seu editor;

  3. Altere a senha da conta para uma senha qualquer (senha segura de preferência);

    1. Para alterar a senha de um usuário no Debian 7 você deve utilizar o comando "passwd":

      # passwd ater
  4. Após a criação da conta encaminhe os dados de acesso a nossa equipe ATER.

2. Instalação/Configuração do Software

Observações do novo Software RACE Daemon

O módulo RACE Daemon que é responsável por se comunicar com o Switch OpenFlow enviando comandos de criação, exclusão e modificação de regras recentemente passou por uma atualização. Nessa atualização foram feitas melhoras na arquitetura e no código mas o principal motivo foi o suporte ao OpenFlow 1.3.

O Framework que utilizávamos para implementar o padrão OpenFlow era o POX, esse que parou de receber atualizações e consequentemente não implementou a versão 1.3 do OpenFlow. Devido a isso implementamos um novo RACE com o Framework Ryu, esse que está constantemente sendo atualizado e tem implementações do OpenFlow 1.0, 1.2, 1.3, 1.4 e 1.5. Atualmente o RACE Daemon oferece suporte ao OpenFlow 1.0 e 1.3.

Instale a ultima versão do race-daemon-2.

2.1 Download

  1. A equipe ATER mantém as versões do RACE em pacotes para o DEBIAN (.deb) disponíveis para download em http://labora.inf.ufg.br/gt-ater/manuais/packets/ater/
  2. A versão mais nova é o race-deamon-2
  3. Para a instalação do RACE, baixe os seguintes pacotes em suas versões mais atualizadas:

    Componente
    Descrição
    Nome do pacote
    RACE DaemonControlador do switch openflowrace-daemon-2_<versão>_amd64.deb
    RACE CommComponente de comunicação do CORE para o RACErace-comm_<versão>_amd64.deb
    CORE CheckerComponente verificador do status do CORE perante o RACEcore-checker_<versão>_amd64.deb
  4. Você pode baixar os pacotes no Debian 7 utilizando o comando "wget":

    # wget http://labora.inf.ufg.br/gt-ater/manuais/packets/ater/race-daemon-2_<versão>_amd64.deb
    # wget http://labora.inf.ufg.br/gt-ater/manuais/packets/ater/race-comm_<versão>_amd64.deb
    # wget http://labora.inf.ufg.br/gt-ater/manuais/packets/ater/core-checker_<versão>_amd64.deb


    Substitua a variável <versão> pela versão do componente a ser baixada.

2.2 Instalação

  1. Para instalar os componentes de software do RACE utilize o gerenciador de pacotes do Debian 7 e instale os pacotes baixados como especificado na seção anterior:

    # dpkg -i race-daemon-2_<versão>_amd64.deb
    # dpkg -i race-comm_<versão>_amd64.deb
    # dpkg -i core-checker_<versão>_amd64.deb

     

    Substitua a variável <versão> pela versão do componente baixada.

  2. Caso seja apontada alguma dependência no pacote você pode instala-las utilizando o comando:

    # apt-get -f install

     

    ou instalando manualmente a dependência:

    # aptitude install <nome da dependência>

2.3 Configuração

2.3.1 RACE Daemon

  1.  O arquivo de configuração do RACE Daemon está localizado em "/opt/ater/race/race_daemon/conf/general_settings.py";
  2. Abra o arquivo de configuração do RACE Daemon com o seu editor de preferência:

    # nano /opt/ater/race/race-daemon-2/conf/general_settings.cfg
  3. Configure os seguintes parâmetros:

     

    Parâmetro
    Valor
    hal_driverModelo do switch a ser implementado o RACE. As versões são: brocade e datacom Ex: brocade
    race_idRace<Identificador do Estado>
    Ex: RaceGO, RaceRJ, RaceMG...
    cipo_portNúmero da porta do switch ao qual a rede CIPÓ está ligada
    ipe_portNúmero da porta do switch ao qual a rede IPÊ está ligada
    client_portsNúmero das portas do switch ao qual os clientes estão ligados separados por vírgula e entre []
    Ex: [6] para a porta 6 
    [6, 7, 8] para as portas 6, 7 e 8
    of_proto*Versão do protocolo a ser utilizado: Opções: 1.0 e 1.3


    É altamente recomendado que apenas os parâmetros listados acima sejam modificados.

    *Verifique qual a versão do OpenFlow está ativa em seu switch

     

  4. Após modificar o arquivo e deixa-lo de acordo com o padrão salve-o e feche o editor;
  5. Para que as configurações entrem em vigor é necessário reiniciar o RACE Daemon:

     

    # /etc/init.d/race-daemon-2 restart

2.3.2 RACE Comm

  1. O arquivo de configuração do RACE Comm está localizado em "/opt/ater/race/race_comm/conf/generalSettings.py";

    Não é necessário modificar nenhum parâmetro de configuração do RACE Comm, é altamente recomendado que ele fique no padrão.  

2.3.3 CORE Checker

  1. O arquivo de configuração do CORE Checker está localizado em "/opt/ater/race/core_checker/conf/generalSettings.py";

    Não é necessário modificar nenhum parâmetro de configuração do RACE Checker, é altamente recomendado que ele fique no padrão.  


Etiquetas
  • Nenhum