Guia da API do Serviço Traffic Management Steering Policies
Use a API REST do Oracle Cloud Infrastructure DNS para criar e configurar políticas de Gerenciamento de Tráfego.
Use o guia a seguir para saber como as políticas são criadas usando a API REST de DNS.
Autenticação e Autorização
Cada serviço do Oracle Cloud Infrastructure se integra ao serviço IAM para autenticação e autorização, para todas as interfaces (a Console, SDK ou CLI e API REST).
Um administrador de uma organização precisa configurar grupos, compartimentos e políticas que controlam quais usuários podem acessar quais serviços, quais recursos e o tipo de acesso. Por exemplo, as políticas controlam quem pode criar novos usuários, criar e gerenciar a rede na nuvem, criar instâncias, criar buckets, fazer download dos objetos, entre outros. Para obter mais informações, consulte Gerenciando Domínios de Identidade. Para ver detalhes específicos sobre a gravação de políticas para cada um dos diversos serviços, consulte Referência de Políticas.
Se você for um usuário comum (não um administrador) que precisa usar os recursos do Oracle Cloud Infrastructure que a empresa possui, entre em contato com um administrador para configurar um ID de usuário para você. O administrador pode confirmar o(s) compartimento(s) que você pode usar.
Componentes da Política de Orientação de Gerenciamento de Tráfego
A lista a seguir descreve os componentes usados para criar uma Política de Orientação do Gerenciamento de Tráfego.
- STEERING POLICIES
- Um framework geral para definir o comportamento do gerenciamento de tráfego para zonas. As políticas de orientação contêm regras que ajudam a fornecer respostas de DNS com inteligência.
- ATTACHMENTS
- Permite vincular uma política de orientação a zonas. Um anexo de uma política de orientação a uma zona oclui todos os registros em seu domínio que são de um tipo de registro coberto, criando respostas de DNS com base em sua política de orientação em vez de com base nos registros desse domínio. Um domínio pode ter no máximo um anexo abrangendo qualquer tipo de registro específico.
- RULES
- As diretrizes que as políticas de orientação usam para filtrar respostas com base nas propriedades de uma solicitação de DNS, como a geolocalização das solicitações ou a integridade dos pontos finais.
- ANSWERS
- As respostas contêm os dados de registro de DNS e os metadados a serem processados em uma política de orientação.
- MODELOS
- Modelos são sequências de regras predefinidas que criam um tipo de política e seu comportamento pretendido. Exemplo: O modelo
FAILOVER
atende as respostas verificando a consulta de DNS em uma regraFILTER
primeiro, depois, as seguintes regras em sequência:HEALTH
,PRIORITY
eLIMIT
. Isso oferece o recurso de failover dinâmico de domínio. As políticas que definem o campotemplate
com qualquer outra política que não sejaCUSTOM
devem seguir a sequência de regras descrita para esse tipo de política; caso contrário, um erro de código de status400
será retornado na criação da política. - CASOS
- Opcionalmente, uma regra pode incluir uma sequência de casos que define configurações alternativas de como ela se comporta durante o processamento de qualquer consulta de DNS específica. Quando uma regra não tem sequência de casos, é sempre avaliada com a mesma configuração durante o processamento. Quando uma regra tem uma sequência vazia de casos, ela é sempre ignorada durante o processamento. Quando uma regra tem uma sequência não vazia de casos, seu comportamento durante o processamento é configurado pelo primeiro caso de correspondência na sequência. Um caso de regra sem
caseCondition
sempre coincide. Um caso de regra com umcaseCondition
só corresponde quando essa expressão é avaliada como verdadeira para a consulta específica.
Criar Políticas de Orientação Usando Modelos
A seção a seguir explica a configuração da regra para cada tipo de modelo de política de orientação seguido de um exemplo de solicitação POST ( CreateSteeringPolicy) exibindo como configurar cada modelo.
FAILOVER
Políticas de failover do usuário para priorizar a ordem em que as respostas são fornecidas em uma política (por exemplo, Principal e Secundário). Os monitores e as investigações sob demanda do Oracle Cloud Infrastructure Health Checks são utilizados para avaliar a integridade das respostas na política. Se a Resposta Principal for encontrada como não íntegra, o tráfego de DNS será automaticamente direcionado para a Resposta Secundária. Cada uma das regras a seguir deve ser definida na ordem especificada no campo rules
do corpo da solicitação ao usar um modelo FAILOVER
:
Ordem | Regra | Restrições | Comentários |
---|---|---|---|
1
|
FILTER
|
|
|
2
|
HEALTH
|
|
Só será incluída se healthCheckMonitorId for definido para a política. |
3
|
PRIORITY
|
|
|
4
|
LIMITE
|
|
Exemplo de uma política POST /steeringPolicies
usando o modelo FAILOVER
:
{
"compartmentId": "ocid1...",
"displayName": "failover between endpoints",
"ttl": 30,
"healthCheckMonitorId": "ocid1...",
"template": "FAILOVER",
"answers": [
{
"name": "server-primary",
"rtype": "A",
"rdata": "192.168.0.2",
"pool": "primary"
},
{
"name": "server-secondary",
"rtype": "A",
"rdata": "192.168.0.3",
"pool": "secondary"
}
],
"rules": [
{
"ruleType": "FILTER",
"defaultAnswerData": [
{
"answerCondition": "answer.isDisabled != true",
"shouldKeep": true
}
]
},
{
"ruleType": "HEALTH"
},
{
"ruleType": "PRIORITY",
"defaultAnswerData": [
{
"answerCondition": "answer.pool == 'primary'",
"value": 1
},
{
"answerCondition": "answer.pool == 'secondary'",
"value": 99
}
]
},
{
"ruleType": "LIMIT",
"defaultCount": 1
}
]
}
LOAD_BALANCE
As políticas do Balanceador de Carga distribuem o tráfego entre muitos pontos finais. Você pode atribuir pesos iguais aos pontos finais para distribuir o tráfego uniformemente entre os pontos finais ou pode atribuir pesos personalizados para balanceamento de carga de proporção. Os monitores e investigações sob demanda do Oracle Cloud Infrastructure Health Checks são aproveitados para avaliar a integridade do ponto final. O tráfego de DNS é distribuído automaticamente para os outros pontos finais, se um ponto final não for íntegro. Cada uma das regras a seguir deve ser definida na ordem especificada no campo rules
do corpo da solicitação ao usar um modelo LOAD_BALANCE
:
Ordem | Regra | Restrições | Comentários |
---|---|---|---|
1
|
FILTER
|
|
|
2
|
HEALTH
|
|
Só será incluída se healthCheckMonitorId for definido para a política. |
3
|
PONDERADO
|
|
|
4
|
LIMITE
|
|
Exemplo de uma política POST /steeringPolicies
usando o modelo LOAD_BALANCE
:
{
"compartmentId": "ocid1...",
"displayName": "Weighted load balance for a set of answers with health checks",
"ttl": 30,
"healthCheckMonitorId": "ocid1...",
"template": "LOAD_BALANCE",
"answers": [
{
"name": "server1",
"rtype": "A",
"rdata": "192.168.0.2"
},
{
"name": "server2",
"rtype": "A",
"rdata": "192.168.0.3"
}
],
"rules": [
{
"ruleType": "FILTER",
"defaultAnswerData": [
{
"answerCondition": "answer.isDisabled != true",
"shouldKeep": true
}
]
},
{
"ruleType": "HEALTH"
},
{
"ruleType": "WEIGHTED",
"defaultAnswerData": [
{
"answerCondition": "answer.name == 'server1'",
"value": 99
},
{
"answerCondition": "answer.name == 'server2'",
"value": 1
}
]
},
{
"ruleType": "LIMIT",
"defaultCount": 1
}
]
}
ROUTE_BY_GEO
As políticas de orientação baseadas em geolocalização distribuem o tráfego de DNS para diversos pontos finais com base na localização do usuário final. Os clientes podem definir regiões geográficas compostas de continentes, países ou estados/províncias de origem (América do Norte) e definir um ponto final separado ou um conjunto de pontos finais para cada região. Cada uma das regras a seguir deve ser definida na ordem especificada no campo rules
do corpo da solicitação ao usar um modelo ROUTE_BY_GEO
:
Ordem | Regra | Restrições | Comentários |
---|---|---|---|
1
|
FILTER
|
|
|
2
|
HEALTH
|
|
Só será incluída se healthCheckMonitorId for definido para a política. |
3
|
PRIORITY
|
|
|
4
|
LIMIT
|
|
Exemplo de um corpo de solicitação POST /steeringPolicies
usando o modelo ROUTE_BY_GEO
:
{
"compartmentId": "ocid1...",
"displayName": "Geolocations mapped to answer pools",
"ttl": 30,
"healthCheckMonitorId": "ocid1...",
"template": "ROUTE_BY_GEO",
"answers": [
{
"name": "US Server 1",
"rtype": "A",
"rdata": "192.168.0.2",
"pool": "US"
},
{
"name": "US Server 2",
"rtype": "A",
"rdata": "192.168.0.3",
"pool": "US"
},
{
"name": "EU Server 1",
"rtype": "A",
"rdata": "192.168.0.4",
"pool": "EU"
},
{
"name": "EU Server 2",
"rtype": "A",
"rdata": "192.168.0.5",
"pool": "EU"
},
{
"name": "rest of world 1",
"rtype": "A",
"rdata": "203.0.113.2",
"pool": "Global"
},
{
"name": "rest of world 2",
"rtype": "A",
"rdata": "203.0.113.3",
"pool": "Global"
}
],
"rules": [
{
"ruleType": "FILTER",
"defaultAnswerData": [
{
"answerCondition": "answer.isDisabled != true",
"shouldKeep": true
}
]
},
{
"ruleType": "HEALTH"
},
{
"ruleType": "PRIORITY",
"cases": [
{
"caseCondition": "query.client.geoKey in (geoKey '6255149')",
"answerData": [
{
"answerCondition": "answer.pool == 'US'",
"value": 1
},
{
"answerCondition": "answer.pool == 'EU'",
"value": 2
},
{
"answerCondition": "answer.pool == 'Global'",
"value": 3
}
]
},
{
"caseCondition": "query.client.geokey in (geokey '6255148')",
"answerData": [
{
"answerCondition": "answer.pool == 'EU'",
"value": 1
},
{
"answerCondition": "answer.pool == 'US'",
"value": 2
},
{
"answerCondition": "answer.pool == 'Global'",
"value": 3
}
]
},
{
"answerData": [
{
"answerCondition": "answer.pool == 'Global'",
"value": 1
},
{
"answerCondition": "answer.pool == 'US'",
"value": 2
},
{
"answerCondition": "answer.pool == 'EU'",
"value": 3
}
]
}
]
},
{
"ruleType": "LIMIT",
"defaultCount": 1
}
]
}
ROUTE_BY_ASN
As políticas de orientação baseadas no ASN permitem direcionar o tráfego de DNS com base nos ASNs (Autonomous System Numbers). As consultas de DNS originárias de um ASN específico ou de um conjunto de ASNs podem ser direcionadas para um ponto final especificado. Cada uma das regras a seguir deve ser definida na ordem especificada no campo rules
do corpo da solicitação ao usar um modelo ROUTE_BY_ASN
:
Ordem | Regra | Restrições | Comentários |
---|---|---|---|
1
|
FILTER
|
|
|
2
|
HEALTH
|
|
Só será incluída se healthCheckMonitorId for definido para a política. |
3
|
PRIORITY
|
|
|
4
|
LIMIT
|
|
Exemplo de um corpo de solicitação POST /steeringPolicies
usando o modelo ROUTE_BY_ASN
:
{
"compartmentId": "ocid1...",
"displayName": "ASNs mapped to pools",
"ttl": 30,
"template": "ROUTE_BY_ASN",
"answers": [
{
"name": "ABC Server",
"rtype": "A",
"rdata": "192.168.0.2",
"pool": "ABC"
},
{
"name": "DEF Server",
"rtype": "A",
"rdata": "192.168.0.3",
"pool": "DEF"
},
{
"name": "Other",
"rtype": "A",
"rdata": "203.0.113.2",
"pool": "Other"
}
],
"rules": [
{
"ruleType": "FILTER",
"defaultAnswerData": [
{
"answerCondition": "answer.isDisabled != true",
"shouldKeep": true
}
]
},
{
"ruleType": "PRIORITY",
"cases": [
{
"caseCondition": "query.client.asn == 3",
"answerData": [
{
"answerCondition": "answer.pool == 'ABC'",
"value": 1
},
{
"answerCondition": "answer.pool == 'DEF'",
"value": 2
},
{
"answerCondition": "answer.pool == 'Other'",
"value": 3
}
]
},
{
"caseCondition": "query.client.asn == 16591",
"answerData": [
{
"answerCondition": "answer.pool == 'DEF'",
"value": 1
},
{
"answerCondition": "answer.pool == 'ABC'",
"value": 2
},
{
"answerCondition": "answer.pool == 'Other'",
"value": 3
}
]
},
{
"answerData": [
{
"answerCondition": "answer.pool == 'Other'",
"value": 1
},
{
"answerCondition": "answer.pool == 'ABC'",
"value": 2
},
{
"answerCondition": "answer.pool == 'DEF'",
"value": 3
}
]
}
]
},
{
"ruleType": "LIMIT",
"defaultCount": 1
}
]
}
ROUTE_BY_IP
As políticas de orientação baseadas no Prefixo IP permitem que os clientes direcionem o tráfego de DNS com base no Prefixo IP da consulta de origem. Cada uma das regras a seguir deve ser definida na ordem especificada no campo rules
do corpo da solicitação ao usar um modelo ROUTE_BY_IP
:
Ordem | Regra | Restrições | Comentários |
---|---|---|---|
1
|
FILTER
|
|
|
2
|
HEALTH
|
|
Só será incluída se healthCheckMonitorId for definido para a política. |
3
|
PRIORITY
|
|
|
4
|
LIMIT
|
|
Exemplo de um corpo de solicitação POST /steeringPolicies
usando o modelo ROUTE_BY_IP
:
{
"compartmentId": "ocid1...",
"displayName": "IP subnets mapped to answer pools",
"ttl": 30,
"template": "ROUTE_BY_IP",
"answers": [
{
"name": "ABC Server",
"rtype": "A",
"rdata": "192.168.0.2",
"pool": "ABC"
},
{
"name": "DEF Server",
"rtype": "A",
"rdata": "192.168.0.3",
"pool": "DEF"
},
{
"name": "Other",
"rtype": "A",
"rdata": "203.0.113.2",
"pool": "Other"
}
],
"rules": [
{
"ruleType": "FILTER",
"defaultAnswerData": [
{
"answerCondition": "answer.isDisabled != true",
"shouldKeep": true
}
]
},
{
"ruleType": "PRIORITY",
"cases": [
{
"caseCondition": "query.client.address in (subnet '10.0.3.0/24')",
"answerData": [
{
"answerCondition": "answer.pool == 'ABC'",
"value": 1
},
{
"answerCondition": "answer.pool == 'DEF'",
"value": 2
},
{
"answerCondition": "answer.pool == 'Other'",
"value": 3
}
]
},
{
"caseCondition": "query.client.address in (subnet '192.0.2.2/24')",
"answerData": [
{
"answerCondition": "answer.pool == 'DEF'",
"value": 1
},
{
"answerCondition": "answer.pool == 'ABC'",
"value": 2
},
{
"answerCondition": "answer.pool == 'Other'",
"value": 3
}
]
},
{
"answerData": [
{
"answerCondition": "answer.pool == 'Other'",
"value": 1
},
{
"answerCondition": "answer.pool == 'ABC'",
"value": 2
},
{
"answerCondition": "answer.pool == 'DEF'",
"value": 3
}
]
}
]
},
{
"ruleType": "LIMIT",
"defaultCount": 1
}
]
}
CUSTOM
Use políticas personalizadas para criar políticas complexas que combinam os recursos de failover, balanceamento de carga, geolocalização, orientação do ASN e de prefixo IP. Modelos personalizados para não exigir uma sequência regimentada de regras. Recomendamos que você entre em contato com o suporte do Oracle Cloud Infrastructure antes de criar uma política personalizada.
Tipos de Regras
- FILTER
- Usa dados boolianos associados a respostas, mantendo respostas apenas se o valor
shouldKeep
da regra fortrue
. - HEALTH
- Usa monitores e investigações sob demanda do OCI Health Checks para avaliar a integridade dos pontos finais e adicionar e remover respostas da política, conforme necessário. Um monitor de verificação de integridade deve ser referenciado em uma regra de integridade para afetar a política. Para obter mais informações sobre Verificações de Integridade, consulte Verificações de Integridade.
- WEIGHTED
- Usa um número entre 0 e 255 usado para avaliar a frequência com que uma resposta é fornecida em relação a outras respostas. As respostas com valores mais altos têm mais probabilidade de serem retornadas.
- PRIORITY
- Usa um número inteiro associado a cada resposta para classificar respostas do valor mais baixo para o mais alto. Exemplo: Uma resposta com valor de prioridade 1 seria retornada antes de uma resposta com valor de prioridade 10 na lista de respostas. As respostas que não tiverem valor de prioridade designado para elas serão movidas para o final da lista de respostas.
- LIMIT
- Usa uma propriedade de contagem para filtrar todas as respostas, exceto as primeiras da lista.