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:
     

    InterfaceDescriçã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:

     ComandoResultado 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 pacoteDescriçãoVersã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

    python  
    oml4py  
    paramiko  
  3. 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 -U setuptools -i https://pypi.python.org/simple/
    # pip install oml4py -i https://pypi.python.org/simple/
    # pip install paramiko -i https://pypi.python.org/simple/

1.2.3 Configuração do firewall

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

    ChavePolí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çãoValor
    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

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. Para a instalação do RACE, baixe os seguintes pacotes em suas versões mais atualizadas:

    ComponenteDescriçãoNome do pacote
    RACE DaemonControlador do switch openflowrace-daemon_<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
  3. 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_<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_<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/conf/general_settings.py
  3. Configure os seguintes parâmetros:

     

    ParâmetroValor
    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


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

  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 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 Comm, é altamente recomendado que ele fique no padrão.  
Etiquetas