Conheça o Software Defined Networking (SDN)
Este artigo promoverá alguns esclarecimentos simples acerca deste tema que está bastante na moda.
O conceito de SDN surgiu há mais ou menos 10 anos e, lá no início, com o apelo de desenvolvimento de novas técnicas para o encaminhamento de pacotes IP. Depois, por um momento, acreditávamos que os protocolos de roteamento tradicionais precisavam ser substituídos. Depois passamos a pensar que as redes deveriam ser comissionadas somente por meios de software (por exemplo, em um hypervisor), e daí os conceitos de interfaces de programabilidade.
O fato é que para as soluções SDN não precisam necessariamente reunir os três apelos acima para serem consideradas como “SDN”.
Dos fatos realmente verdadeiros:
- SDNs não substituem projetistas de redes, tampouco engenheiros de redes
- SDNs não obrigam os engenheiros de redes a se tornarem programadores (embora, óbvio, noções de programação ajudarão muito aqui).
- SDN definitivamente não são ferramentas onde clicamos em um botão e – voilà! – todos os problemas da rede estarão resolvidos.
O que é o SDN?
O SDN pode ser descrito como uma nova abordagem a qual procura-se de forma mais inteligente a separação dos planos de controle e de dados, especialmente com a centralização lógica dos estados de informação.
Dentre as diversas possibilidades proporcionadas pelo SDN, temos a notória abstração da infraestrutura de redes e das aplicações – a efetiva “virtualização da rede” – a qual é consideravelmente bem ampla aqui, em particular o conceito de reaproveitamento das interfaces de programação em combinação com sistemas externos para, não somente influenciar, mas modificar substancialmente o provisionamento, controle e operações de serviços de rede, tornando estas ações bastante ágeis, flexíveis, seguras, escaláveis e melhor gerenciáveis.
Em outras palavras, o SDN dá ao administrador da rede um tremendo poder de influência acerca do projeto de rede em si, e também das operações sobre esta, pois a centralização dos estados de informação permite uma compreensão muito maior de diversas das áreas funcionais de uma rede e, a partir de então, mais fácil e interativamente esta rede poderá ser programada para cumprir com os padrões técnicos definidos para ela.
Esta interação entre equipamentos e serviços e controladores, APIs, e afins, fornece um novo paradigma que promove múltiplos benefícios, dentre os quais podemos destacar a drástica redução de downtime decorrente de erro por falha humana, além do provisionamento muito mais acelerado, rápido e flexível de serviços, sem contar com as massivas evoluções dos aspectos de gerenciamento, monitoramento, e manutenção dos níveis de serviço.
Uma revisão dos conceitos de Plano de Controle e Plano de Dados
Para exemplificar isto de forma bem prática:
Em uma rede tradicional, os equipamentos de rede empregam dois principais componentes sistêmicos e funcionais aqui; o Control Plane e o Data Plane. Ou Plano de Controle e Plano de Dados. O Control Plane aprende e computa as decisões de encaminhamento de pacotes, enquanto o Data Plane age com base nestas decisões que foram realizadas no control plane.
Atualmente o Control Plane é bastante centralizado na grande maioria das plataformas ou equipamentos de redes e, em outras plataformas, potencialmente bem mais especializadas, um control plane mais distribuído – como é o caso de roteadores equipados com o Cisco IOS XR – e ali é onde operam todos os protocolos de roteamento (OSPF, IS-IS, RIP, BGP, etc.), MPLS (LDP, RSVP, BGP), além de Spanning Tree, SYSLOG, AAA, NDE, CLI, SNMP, SSH, Telnet, e muitos outros.
E no que diz respeito ao Data Plane em si, cujas as características variam muito de plataforma para plataforma, mas que, idealmente, este plano deva empregar ASICs / NPUs dedicados e bastante especializados para o processamento de pacotes, com funções tais como Layer 2 Switching, Layer 3 IPv4 e IPv6 switching, MPLS forwarding, VRF forwarding, ACL, QoS, e muitas outras ações.
Por que o modelo de redes tradicionais é operacionalmente oneroso e impactante?
Onde isto é impactante para você? Um universo de protocolos de roteamento, sinalização, serviços e etc., os quais você é obrigado a tomar uma decisão puramente humana com base no fato de você ser o projetista/engenheiro da rede, ou seja, o planejamento e projeto técnico, os quais incluem a definição de seus padrões, métodos, opções, parâmetros, etc., e, em seguida, a parte realmente mais onerosa disto tudo, a configuração manual destes serviços em todos os elementos de rede e em conformidade com o seu projeto técnico. Em termos de esforço e custos operacionais, isto se estende para as ações de manutenção e monitoramento da infraestrutura.
Tudo bem que numa rede “tradicional” há formas de automatizarmos isto por meios de scripting e similares, mas, convenhamos, em sua essência, isto não seria diferente de um “projeto de redes tradicional”, com intervenção humana em tudo com ações de configuração independentes em todos os elementos, com base nos critérios que VOCÊ definiu.
A evolução das redes para Software Defined Networking (SDN)
No mundo ideal do Software Defined Networking (SDN), a proposta é a de manter o control plane centralizado, enquanto os dispositivos físicos ou virtualizados retém somente as funções do Data Plane. Obviamente a grande maioria do hardware e software de fabricantes ainda não está 100% pronta para uma interação com este modelo de control plane centralizado, mas, no entanto, há caminhos de transição para tal.
A infraestrutura de programabilidade da rede que é “device-specific” (ou seja, depende ou varia em termos de opções conforme o equipamento) poderá incluir componentes tais como TCL, EEM, Power on Auto Provisioning, Smart Install, Smartports Macros, Python e outros.
Já nas redes mais modernas, isto poderá ser feito por REST APIs, NETCONF, RESTCONF, SDKs, DevOps, Linux e outros, particularmente nas redes Cisco mais modernas, com novas abordagens de construção do projeto técnico.
As SDN são constituídas por um vasto cenário de soluções, frameworks, processos, integrações e afins, incluindo OpenFlow Switch, OpFlex Policy Framework, NETCONF, YANG, RESTCONF, OpenStack, OpenDaylight, e outros, e é por este caminho que estamos seguindo, com as soluções da Cisco, e mirando o futuro já no presente. Com soluções já disponíveis para NX-OS e NX-API, Cisco NSO, Cisco ACI, Cisco IOS XE, Cisco IOS XR, Cisco ASA REST API, Cobra SDK e Arya, Cisco APIC-EM, e a consequente evolução de todo o portfólio.
Consulte o Redes definidas por software da Cisco, e também o solução para Service Providers.
E consulte também o vídeo a seguir para obter uma visão bem objetiva acerca de conceitos de SDN:
Treinamentos Cisco para programabilidade de redes
O Gifará Serviços Avançados em TIC recentemente adicionou dois cursos oficiais do Cisco Learning Partner em nossa cesta de serviços, e agora oferecemos os seguintes cursos sobre este tema:
- Designing and Implementing Cisco Network Programmability (NPDESI)
- Developing with Cisco Network Programmability (NPDEV)
- Configuring Cisco Nexus 9000 Series Switches in ACI Mode (DCAC9K)
Consulte-nos!