Contratos são usados para controlar o fluxo de tráfego dentro da ACI Fabric entre EPGs.
Configurado entre EPGs ou entre EPGs e L3out.
Dentro de um Contrato podem haver vários Subjects e cada um com suas policias de permissão (Filtros). É como se fossem ACLs (Access Control List) para cada SBJ (subject) e dentro de um mesmo Contrato.
Por exemplo:
Contrato X
SBJ Web (Filtro > nega ou permite ICMP, http)
SBJ Redes (Filtro > nega ou permite ssh, ftp, telnet)
O Subject é como eu posso organizar as politicas de permissões dentro do Contrato, separados por grupos de filtros para um aplicativo ou serviço especifico.
Por default, a VRF dentro de um Tenant é Enforce, que significa que os EPs (Endpoints) em cada EPG anexado a este VRF pode comunicar dentro de um EPG, mas não entre EPG.
Se você definir a VRF como Unenforced (inter-EPG) a comunicação é permitida entre EPGs.
Uma maneira de configurar a comunicação entre EPG é habilitar o Grupo Preferencial na VRF + o Grupo Preferencial em cada EPG.
O modo Enforce é mais usado, pois trás mais segurança e controle dos EPGs.
Aos contratos é atribuído um escopo Global, Tenant, VRF ou Application Profile, que limita a acessibilidade do contrato.
Antes de criar os contratos, é bom criar os Filtros.
Contract
Taboos - esse é um contrato de prioridade
Standart - é o mais usado
Tenants > Seleciona o Tenant > Contracts > Standard > Create Contract
Scope - pode ser por:
- Application Profiles - significa que esse contrato que está sendo criado poderá ser usado para EPGs dentro do mesmo Application Profiles.
- VRF - múltiplos Application Profiles dentro da mesma VRF.
- Tenant - pode ser utilizado em qualquer coisa que faça parte dentro do Tenant.
- Global - pode ser entre Tenants, fazendo o leaking de informações entre Tenants dentro do mesmo contrato.
Subjects
Apply Both Directions - se o Subject será o mesmo nas duas direções da comunicação, na ida e volta do pacote (opção selecionada) ou se serão diferentes (opção não selecionada). Por default, ela vem habilitada.
Quando não selecionada, é aberto mais opções para que seja criado o SBJ de ida e o SBJ de volta.
Reverse Filter Ports - quando selecionado, a reversão da porta será realizada automaticamente, sem se preocupar se a porta de destino é http ou qualquer outra. Por default, ela vem selecionada.
Os Tenants criados na Common, podem ser utilizados por qualquer Tenant.
Verificar os contratos criado no Subject:
Consumed - quem solicita a comunicação via porta X de um serviço;
Provider - quem responde a solicitação via porta X como Origem e entrega o serviço ao Consumed.
Por exemplo:
Usuário quer acessar a WEB via porta 8080 (Consumed)
O Servidor de WEB responde a solicitação com o serviço (Provider)
Isso serve para qualquer tipo de comunicação.
Verificar o trafego (Physical) do EPG por Subjects