Configurando controladores de rede
Visão geral
Os dispositivos do controlador de rede (NC) fornecem um meio de gerenciar, monitorar e configurar dispositivos de rede suportados por meio de uma interface gráfica de usuário e APIs.
Cadê?
Configuração básica
Em um nível básico, você pode configurar as Configurações Globais e as Configurações de Interface de um Controlador de Rede da mesma forma que faria em um PC comum. Além disso, os controladores podem ser acessados de fora do Packet Tracer via APIs HTTP REST. Esse recurso é chamado de Acesso ao Mundo Real. Seu uso e configuração serão explicados em detalhes nas seções a seguir.
Conectando-o
Os usuários são incentivados a explorar os diversos recursos do NC explorando este e outros arquivos de exemplo relacionados, que fazem parte da instalação do aplicativo Cisco Packet Tracer. Alguns dos principais recursos e interações com o NC são documentados com mais detalhes abaixo.
Configuração e gerenciamento usando interface web
Em um caso de uso básico, no entanto, os usuários gostariam de acessar e gerenciar seus controladores de rede usando uma interface web. Para acessar essa interface, abra o navegador web em um PC conectado ao controlador e navegue até o endereço IP do controlador na URL inserida no navegador. A conectividade básica de rede deve estar presente previamente.
Configuração inicial
A maioria das amostras de rede NC enviadas com PT usam o nome de usuário "admin" e a senha "cisco" como a principal conta de usuário administrador para seus controladores de rede.
Painel e navegação básica
Cada um dos painéis de informações no Painel possui um ícone que permite acesso direto à seção correspondente da interface de gerenciamento do Controlador de Rede. Isso pode ser usado como alternativa ao botão de menu do painel descrito acima.
Provisionamento
Nesta seção, você pode adicionar dispositivos ao controlador, descobrir novos dispositivos na rede e criar credenciais globais para acessá-los. Para acessar esses recursos, selecione "Provisionamento" no menu principal do Painel, conforme mostrado abaixo.
Descoberta
Você pode criar um novo processo de descoberta clicando no botão . No painel da interface do usuário que se abre, você poderá configurar um novo processo de descoberta com base no CDP ou no intervalo de endereços IP .
Garantia
Nesta seção, você pode considerar os dispositivos de rede, a integridade da rede, visualizar a topologia da rede e executar rastreamentos de caminho entre hosts na rede. Para acessar esses recursos, selecione Garantia no menu principal do Painel, conforme mostrado abaixo.
Anfitriões
Clicar em HOSTS na barra de navegação exibe a lista de todos os hosts de rede dos quais o controlador está "ciente".
Topologia
Da mesma forma, TOPOLOGIA na barra de navegação mostrará todos os dispositivos gerenciados e suas conexões.
Rastreamento de caminho
RASTREAMENTO DE CAMINHO - permite rastrear caminhos de tráfego entre interfaces de sua escolha. A visualização abaixo mostra a tela inicial onde você pode adicionar novos rastreamentos de caminho clicando em
Depois de clicar no caminho criado, os resultados desse rastreamento de caminho são exibidos da seguinte forma
Devido a limitações no PT, nem todas as rotas e interfaces de um rastreamento de caminho serão conhecidas.
Política
Para configurar as definições de política, use o item Política no menu do painel principal
Qualidade de Serviço
Aqui está um exemplo de configuração de QoS, usando esta interface
A seção Configurações de Rede permitirá a configuração de configurações globais para cada dispositivo gerenciado, garantindo que todos os dispositivos usem os mesmos valores. Por exemplo, DNS, NTP e diversas outras configurações podem ser aplicadas globalmente a todos os dispositivos gerenciados.
Consulte seu currículo para saber a relação entre escopos e políticas de QoS e várias outras configurações específicas de tecnologia.
Documentação da API
Para descrever brevemente a interface de documentação, consulte as marcações numéricas na imagem acima. Os itens numerados são descritos abaixo.
- Categoria de API. Os exemplos acima incluem TICKETS, ASSURANCE e FLOW ANALYSIS. Cada categoria lista as operações de API incluídas. Por exemplo, a categoria TICKETS possui apenas duas operações: addTicket e deleteTicket .
- Nome da operação , seguido de uma breve descrição de sua função.
- Método HTTP usado para acessar esta função. No caso acima, a API addTicket deve ser acessada via HTTP POST.
- URL base usada para realizar esta operação. Acima: /ticket
- Exemplo de curl . Isso é útil para fazer experimentos rápidos com as APIs usando esta popular ferramenta de acesso HTTP. Observe o formato {IP}:{PORTA}.
Na maioria dos casos simples, suas URLs terão o seguinte formato: http://localhost:{PORTA}/{URL BASE DA API}.
Exemplos concretos do uso dessas URLs para acessar funções NC são fornecidos nas seções a seguir. - Parâmetros. Este segmento descreverá os parâmetros, se houver, que podem ser fornecidos para a operação da API em questão. No exemplo acima, os parâmetros para esta requisição HTTP POST precisarão ser fornecidos como um documento JSON no corpo da requisição HTTP. O esquema JSON é fornecido abaixo. Como você pode ver, para obter um ticket, a entrada pode ser semelhante a esta:
{ "nome de usuário": "admin99", "senha": "d0ntsayit~75" }
Observação! O nome do parâmetro user só é útil nos casos em que esta API é usada por meio de uma interface funcional, que pode ser gerada por ferramentas como o Swagger. Nesse caso, user será o nome de um parâmetro recebido pela função addTicket . A discussão deste caso está fora do escopo deste documento. - Respostas: Sucesso.
Este segmento geralmente descreve respostas bem-sucedidas de uma determinada operação. Respostas bem-sucedidas retornarão JSON de acordo com seu esquema documentado.
No caso do getTicket acima, os dados JSON retornados pela resposta 200 bem-sucedida corresponderão ao esquema mostrado acima. Aqui está um exemplo de tal resposta.{ "resposta": { "tempo limite inativo": 900, "serviceTicket": "NC-5-9b777a75c7bf4bea9317-nbi", "tempo limite da sessão": 3600 }, "versão": "1.0" }
- Respostas: Outras.
Este segmento geralmente descreve respostas que não retornam dados ou retornam erros. Aqui está um exemplo de um erro 401 para a operação getTicket acima, que seria recebido ao especificar um nome de usuário inexistente nos parâmetros da solicitação.{ "resposta": { "detalhe": "Credenciais inválidas", "errorCode": "TICKET_BAD_USER", "message": "Conta de usuário não encontrada. Crie uma conta de usuário antes de solicitar um tíquete." }, "versão": "1.0" }
Exemplo: Script Python na aba Programação
de http importar * do tempo importar * importar json securityUrl = "http://10.1.1.2/api/v1/ticket" securityData = json.dumps({"nome de usuário": "teste","senha": "teste"}) securityHeader = json.dumps({"content-type": "application/json"}) getUrl = "http://10.1.1.2/api/v1/inventory/network-device/count" postUrl = "http://10.1.1.2/api/v1/flow-análise" postData = json.dumps({ "IP de origem": "10.1.1.1", "IP de destino": "10.1.1.1" }) def onHTTPDone(status, dados): print("status: " + str(status)) print("dados: " + dados) def gotToken(status, dados): print("status: " + str(status)) print("dados: " + dados) resultado = json.loads(dados) print("token: " + resultado["resposta"]["serviceTicket"]) http1 = HTTPClient() http1.onDone(onHTTPDone) http1.open(obterUrl); http2 = HTTPClient() http2.onDone(onHTTPDone) postHeader = {} postHeader['content-type'] = 'aplicativo/json' postHeader['x-auth-token'] = resultado["resposta"]["serviceTicket"] http2.postWithHeader(postUrl, postData, json.dumps(postHeader)); def principal(): http = HTTPClient() http.onDone(obteveToken) http.postWithHeader(urldesegurança, dadosdesegurança, cabeçalhodesegurança) # não deixe acabar enquanto Verdadeiro: dormir(3600) se __nome__ == "__principal__": principal()
Exemplo: Script Python na aba de programação usando o módulo 'requests'
de http importar * do tempo importar * importar json solicitações de importação getUrl = "http://10.1.1.2/api/v1/inventory/network-device/count" postUrl = "http://10.1.1.2/api/v1/flow-análise" securityUrlReq = "http://10.1.1.2/api/v1/ticket" securityDataReq = {"nome de usuário": "teste","senha": "teste"} securityHeaderReq = {"tipo de conteúdo": "aplicativo/json"} postDataReq = { "sourceIP": "10.1.1.1", "destIP": "10.1.1.1" } def principal(): print( "Conseguindo uma multa ..." ) r = requests.post(securityUrlReq, dados=json.dumps(securityDataReq), cabeçalhos=securityHeaderReq, tempo limite=30) imprimir(r.status_code) resultado = r.json() print( resultado ) ticket = resultado["resposta"]["serviceTicket"] print("bilhete: " + bilhete) print( "Acesso sem ingresso ..." ) r = solicitações.obter(getUrl) imprimir("OK: %s"%(r.ok,) ) imprimir(r.texto) print( "Acesso usando um ticket ..." ) postHeader = { 'x-auth-token' : tíquete } r = requests.post(postUrl, json=postDataReq, cabeçalhos=postHeader); imprimir(r.status_code) imprimir(r.json()) # não deixe acabar enquanto Verdadeiro: dormir(3600) se __nome__ == "__principal__": principal()
Acesso ao mundo real
Quando Habilitar acesso externo para API REST do controlador de rede estiver desabilitado em Preferências, as configurações neste painel de configuração se tornarão somente leitura .
http://localhost:PORT/api/v1
Para as configurações acima, por exemplo, a URL para adicionar um tíquete será:
http://localhost:58000/api/v1/ticket
Observação: Por motivos de segurança, os controladores de rede do Packet Tracer só permitirão acesso HTTP do seu PC real a partir do host local. Conexões remotas serão recusadas.
Exemplo: Usando curl
curl -X post localhost:58000/api/v1/ticket -H "tipo de conteúdo: aplicativo/json" --data "{\"nome de usuário\":\"admin\",\"senha\":\"cisco\"}"
e você deve conseguir obter uma resposta JSON semelhante a... estatísticas de curl ... { "resposta": { "tempo limite inativo": 900, "serviceTicket": "NC-34-de50f79c8dab4bb4b478-nbi", "tempo limite da sessão": 3600 }, "versão": "1.0" }
Usando scripts Python
O exemplo acima, usando o módulo de requisições do Python dentro da aba de programação, pode ser usado como modelo para uso em um cenário de acesso real. Para que isso funcione, você precisaria alterar todas as URLs usadas naquele exemplo para o estilo de URL mostrado no exemplo curl acima. Isso é deixado como um exercício para o usuário.
Nenhum comentário:
Postar um comentário