Políticas de Roteamento

Esta é uma API de configuração de nível de serviço mínimo necessário para considerar uma política de roteamento como operacional. Uma política de roteamento pode verificar latência, jitter e/ou perda de pacotes, para uma lista de endereços.

Listar políticas de roteamento

API de listagem de políticas de roteamento

GET /api/sdwan/policy/routing

Exemplo de requisição

GET /api/sdwan/policy/routing HTTP/1.1
Host: api.exemplo.com
Accept: application/json
Authorization: Bearer <Access-Token>
response = sdk.sdwan.get_policies_routing()
print(response.payload)
const response = sdk.sdwan.getPoliciesRouting();
console.log(response.payload);

Exemplo de resposta

HTTP/1.1 200 OK
Content-Type: application/json

{
  "policies_routing": [
    {
      "id": 1,
      "routing_table_priorities": [[1], [2], [3]],
      "name": "PolicyRouting01",
      "test_interval": 10,
      "test_timeout": 1000,
      "analysis_interval": 90,
      "valid_time": 180,
      "manual_failback": false,
      "failback_limiter": 50,
      "packet_loss": {
        "enabled": true,
        "type": "count",
        "percentage": null,
        "count": 15,
      },
      "latency": {
        "enabled": false,
        "threshold": null,
        "type": null,
        "percentage": null,
        "count": null,
      },
      "jitter": {
        "enabled": false,
        "threshold": null,
        "type": null,
        "percentage": null,
        "count": null,
      },
      "hosts_verification_logic": "any",
      "test_hosts": ["8.8.8.8", "200.160.2.3"],
      "routing_table_configs": [
        {
          "routing_table_id": 1,
          "test_hosts": ["192.168.10.20", "www.test.com"],
        },
      ],
      "created_at": "2018-12-13T12:20:02.932000+00:00",
      "updated_at": "2018-12-13T12:20:02.932000+00:00"
    },
    {
      "id": 2,
      "routing_table_priorities": [[1], [3]],
      "name": "PolicyRouting02",
      "test_interval": 10,
      "test_timeout": 1000,
      "analysis_interval": 90,
      "valid_time": 180,
      "manual_failback": false,
      "failback_limiter": 50,
      "packet_loss": {
        "enabled": true,
        "type": "count",
        "percentage": null,
        "count": 10,
      },
      "latency": {
        "enabled": true,
        "threshold": 500,
        "type": "percentage",
        "percentage": 50,
        "count": null,
      },
      "jitter": {
        "enabled": true,
        "threshold": 200,
        "type": "percentage",
        "percentage": 50,
        "count": null,
      },
      "hosts_verification_logic": "all",
      "test_hosts": ["8.8.8.8", "200.160.2.3"],
      "routing_table_configs": [
        {
          "routing_table_id": 1,
          "test_hosts": ["192.128.50.20", "www.test02.com"],
        },
      ],
      "created_at": "2018-12-13T14:15:02.932000+00:00",
      "updated_at": "2018-12-13T14:15:02.932000+00:00"
    }
  ]
}
[
    PolicyRouting(
        id=1,
        routing_table_priorities=[[1], [2], [3]],
        name="PolicyRouting01",
        test_interval=10,
        test_timeout=1000,
        analysis_interval=90,
        valid_time=180,
        manual_failback=False,
        failback_limiter=50,
        packet_loss=PacketLoss(
            enabled=True,
            type="count",
            percentage=None,
            count=15,
        ),
        latency=Latency(
            enabled=False,
            threshold=None,
            type=None,
            percentage=None,
            count=None,
        ),
        jitter=Jitter(
            enabled=False,
            threshold=None,
            type=None,
            percentage=None,
            count=None,
        ),
        hosts_verification_logic="any",
        test_hosts=["8.8.8.8", "200.160.2.3"],
        routing_table_configs=[
            RoutingTableConfig(
                routing_table_id=1,
                test_hosts=["192.168.10.20", "www.test.com"],
            ),
        ],
        created_at=DateTime(2018, 12, 13, 12, 20, 2, tzinfo=Timezone('+00:00')),
        updated_at=DateTime(2018, 12, 13, 12, 20, 2, tzinfo=Timezone('+00:00'))
    ),
    PolicyRouting(
        id=2,
        routing_table_priorities=[[1], [3]],
        name="PolicyRouting02",
        test_interval=10,
        test_timeout=1000,
        analysis_interval=90,
        valid_time=180,
        manual_failback=False,
        failback_limiter=50,
        packet_loss=PacketLoss(
            enabled=True,
            type="count",
            percentage=None,
            count=10,
        ),
        latency=Latency(
            enabled=True,
            threshold=500,
            type="percentage",
            percentage=50,
            count=None,
        ),
        jitter=Jitter(
            enabled=True,
            threshold=200,
            type="percentage",
            percentage=50,
            count=None,
        ),
        hosts_verification_logic="all",
        test_hosts=["8.8.8.8", "200.160.2.3"],
        routing_table_configs=[
            RoutingTableConfig(
                routing_table_id=1,
                test_hosts=["192.128.50.20", "www.test02.com"],
            ),
        ],
        created_at=DateTime(2018, 12, 13, 14, 15, 2, tzinfo=Timezone('+00:00')),
        updated_at=DateTime(2018, 12, 13, 14, 15, 2, tzinfo=Timezone('+00:00'))
    )
]
[
  {
    id: 1,
    routingTablePriorities=[[1], [2], [3]],
    name: "PolicyRouting01",
    testInterval: 10,
    testTimeout: 1000,
    analysisInterval: 90,
    validTime: 180,
    manualFailback: false,
    failbackLimiter: 50,
    packetLoss: {
      enabled: true,
      type: "count",
      percentage: null,
      count: 15,
    },
    latency: {
      enabled: false,
      threshold: null,
      type: null,
      percentage: null,
      count: null
    },
    jitter: {
      enabled: false,
      threshold: null,
      type: null,
      percentage: null,
      count: null
    },
    hostsVerificationLogic: "any",
    testHosts: ["8.8.8.8", "200.160.2.3"],
    routingTableConfigs: [
      {
        routingTableId: 1,
        testHosts: ["192.168.10.20", "www.test.com"]
      }
    ],
    createdAt: "2018-12-13T12:20:02.000Z",
    updatedAt: "2018-12-13T12:20:02.000Z"
  },
  {
    id: 2,
    routingTablePriorities=[[1], [3]],
    name: "PolicyRouting02",
    testInterval: 10,
    testTimeout: 1000,
    analysisInterval: 90,
    validTime: 180,
    manualFailback: false,
    failbackLimiter: 50,
    packetLoss: {
      enabled: true,
      type: "count",
      percentage: null,
      count: 10
    },
    latency: {
      enabled: true,
      threshold: 500,
      type: "percentage",
      percentage: 50,
      count: null
    },
    jitter: {
      enabled: true,
      threshold: 200,
      type: "percentage",
      percentage: 50,
      count: null
    },
    hostsVerificationLogic: "all",
    testHosts: ["8.8.8.8", "200.160.2.3"],
    routingTableConfigs: [
      {
        routingTableId: 1,
        testHosts: ["192.128.50.20", "www.test02.com"]
      }
    ],
    createdAt: "2018-12-13T14:15:02.000Z",
    updatedAt: "2018-12-13T14:15:02.000Z"
  }
];

Buscar política de roteamento

API de consulta de uma política de roteamento

GET /api/sdwan/policy/routing/id

Exemplo de requisição

GET /api/sdwan/policy/routing/1 HTTP/1.1
Host: api.exemplo.com
Accept: application/json
Authorization: Bearer <Access-Token>
response = sdk.sdwan.get_policy_routing(id=1)
print(response.payload)
const response = sdk.sdwan.getPolicyRouting({ id: 1 });
console.log(response.payload);

Exemplo de resposta

HTTP/1.1 200 OK
Content-Type: application/json

{
  "id": 1,
  "routing_table_priorities": [[1], [2], [3]],
  "name": "PolicyRouting01",
  "test_interval": 10,
  "test_timeout": 1000,
  "analysis_interval": 90,
  "valid_time": 180,
  "manual_failback": false,
  "failback_limiter": 50,
  "packet_loss": {
    "enabled": true,
    "type": "count",
    "percentage": null,
    "count": 5,
  },
  "latency": {
    "enabled": false,
    "threshold": null,
    "type": null,
    "percentage": null,
    "count": null,
  },
  "jitter": {
    "enabled": false,
    "threshold": null,
    "type": null,
    "percentage": null,
    "count": null,
  },
  "hosts_verification_logic": "any",
  "test_hosts": ["8.8.8.8", "200.160.2.3"],
  "routing_table_configs": [
    {
      "routing_table_id": 1,
      "test_hosts": ["192.168.10.20", "www.test.com"],
    },
  ],
  "created_at": "2018-12-13T12:20:02.932000+00:00",
  "updated_at": "2018-12-13T12:20:02.932000+00:00"
}
PolicyRouting(
    id=1,
    routing_table_priorities=[[1], [2], [3]],
    name="PolicyRouting01",
    test_interval=10,
    test_timeout=1000,
    analysis_interval=90,
    valid_time=180,
    manual_failback=False,
    failback_limiter=50,
    packet_loss=PacketLoss(
        enabled=True,
        type="count",
        percentage=None,
        count=5,
    ),
    latency=Latency(
        enabled=False,
        threshold=None,
        type=None,
        percentage=None,
        count=None,
    ),
    jitter=Jitter(
        enabled=False,
        threshold=None,
        type=None,
        percentage=None,
        count=None,
    ),
    hosts_verification_logic="any",
    test_hosts=["8.8.8.8", "200.160.2.3"],
    routing_table_configs=[
        RoutingTableConfig(
            routing_table_id=1,
            test_hosts=["192.168.10.20", "www.test.com"],
        ),
    ],
    created_at=DateTime(2018, 12, 13, 12, 20, 2, tzinfo=Timezone('+00:00')),
    updated_at=DateTime(2018, 12, 13, 12, 20, 2, tzinfo=Timezone('+00:00'))
)
{
  id: 1,
  routingTablePriorities: [[1], [2], [3]],
  name: "PolicyRouting01",
  testInterval: 10,
  testTimeout: 1000,
  analysisInterval: 90,
  validTime: 180,
  manualFailback: false,
  failbackLimiter: 50,
  packetLoss: {
    enabled: true,
    type: "count",
    percentage: null,
    count: 5,
  },
  latency: {
    enabled: false,
    threshold: null,
    type: null,
    percentage: null,
    count: null,
  },
  jitter: {
    enabled: false,
    threshold: null,
    type: null,
    percentage: null,
    count: null,
  },
  hostsVerificationLogic: "any",
  testHosts: ["8.8.8.8", "200.160.2.3"],
  routingTableConfigs: [
    {
      routingTableId: 1,
      testHosts: ["192.168.10.20", "www.test.com"],
    },
  ],
  createdAt: "2018-12-13T12:20:02.000Z",
  updatedAt: "2018-12-13T12:20:02.000Z"
}

Buscar tabelas de roteamento da política

API de consulta das tabelas de roteamento de uma política

GET /api/sdwan/policy/routing/id/routing/table

Exemplo de requisição

GET /api/sdwan/policy/routing/1/routing/table HTTP/1.1
Host: api.exemplo.com
Accept: application/json
Authorization: Bearer <Access-Token>
response = sdk.sdwan.get_routing_tables_by_policy_routing(id=1)
print(response.payload)
const response = sdk.sdwan.getRoutingTablesByPolicyRouting({ id: 1 });
console.log(response.payload);

Exemplo de resposta

HTTP/1.1 200 OK
Content-Type: application/json

{
  "routing_tables": [
    {
      "id": 1,
      "name": "GVT"
    },
  ]
}
[
    RoutingTable(
        id=1,
        name="GVT",
    ),
]
[
  {
    id: 1,
    name: "GVT"
  }
];

Criar política de roteamento

API de criação de uma política de roteamento

POST /api/sdwan/policy/routing

Exemplo de requisição

POST /api/sdwan/policy/routing HTTP/1.1
Host: api.exemplo.com
Content-Type: application/json
Accept: application/json
Authorization: Bearer <Access-Token>

{
  "name": "PolicyRouting01",
  "routing_table_priorities": [[1], [2], [3]],
  "test_interval": 10,
  "test_timeout": 1000,
  "analysis_interval": 90,
  "valid_time": 180,
  "manual_failback": false,
  "failback_limiter": 50,
  "packet_loss": {
    "enabled": true,
    "type": "count",
    "percentage": null,
    "count": 5,
  },
  "latency": {
    "enabled": false,
    "threshold": null,
    "type": null,
    "percentage": null,
    "count": null,
  },
  "jitter": {
    "enabled": false,
    "threshold": null,
    "type": null,
    "percentage": null,
    "count": null,
  },
  "hosts_verification_logic": "any",
  "test_hosts": ["8.8.8.8", "200.160.2.3"],
  "routing_table_configs": [
    {
      "routing_table_id": 1,
      "test_hosts": ["192.168.10.20", "www.test.com"],
    },
  ],
  "apply": true,
}
from itflex_sdk.sdwan.types import CreatePolicyRoutingRequest, PacketLoss, Latency, Jitter, RoutingTableConfig

request = CreatePolicyRoutingRequest(
    name="PolicyRouting01",
    routing_table_priorities=[[1], [2], [3]],
    test_interval=10,
    test_timeout=1000,
    analysis_interval=90,
    valid_time=180,
    manual_failback=False,
    failback_limiter=50,
    packet_loss=PacketLoss(
        enabled=True,
        type="count",
        percentage=None,
        count=5,
    ),
    latency=Latency(
        enabled=False,
        threshold=None,
        type=None,
        percentage=None,
        count=None,
    ),
    jitter=Jitter(
        enabled=False,
        threshold=None,
        type=None,
        percentage=None,
        count=None,
    ),
    hosts_verification_logic="any",
    test_hosts=["8.8.8.8", "200.160.2.3"],
    routing_table_configs=[
        RoutingTableConfig(
            routing_table_id=1,
            test_hosts=["192.168.10.20", "www.test.com"],
        ),
    ],
    apply=True,
)
response = sdk.sdwan.create_policy_routing(request)
print(response.payload)
const policyRouting = sdk.sdwan.types.policyRouting();
policyRouting.routingTablePriorities = [[1], [2], [3]];
policyRouting.name = "PolicyRouting01";
policyRouting.testInterval: 10;
policyRouting.testTimeout: 1000;
policyRouting.analysisInterval: 90,
policyRouting.validTime: 180,
policyRouting.manualFailback: false;
policyRouting.failbackLimiter: 50;
policyRouting.packetLoss: {
  enabled: true,
  type: "count",
  percentage: null,
  count: 5,
};
policyRouting.latency: {
  enabled: false,
  threshold: null,
  type: null,
  percentage: null,
  count: null,
};
policyRouting.jitter: {
  enabled: false,
  threshold: null,
  type: null,
  percentage: null,
  count: null,
};
policyRouting.hostsVerificationLogic: "any";
policyRouting.testHosts: ["8.8.8.8", "200.160.2.3"];
policyRouting.routingTableConfigs: [
  {
    routingTableId: 1,
    testHosts: ["192.168.10.20", "www.test.com"],
  };
];
policyRouting.apply: true;

const response = sdk.sdwan.createPolicyRouting(policyRouting);
console.log(response.payload);

Exemplo de resposta

HTTP/1.1 200 OK
Content-Type: application/json

{
  "id": 1,
  "routing_table_priorities": [[1], [2], [3]],
  "name": "PolicyRouting01",
  "test_interval": 10,
  "test_timeout": 1000,
  "analysis_interval": 90,
  "valid_time": 180,
  "manual_failback": false,
  "failback_limiter": 50,
  "packet_loss": {
    "enabled": true,
    "type": "count",
    "percentage": null,
    "count": 5,
  },
  "latency": {
    "enabled": false,
    "threshold": null,
    "type": null,
    "percentage": null,
    "count": null,
  },
  "jitter": {
    "enabled": false,
    "threshold": null,
    "type": null,
    "percentage": null,
    "count": null,
  },
  "hosts_verification_logic": "any",
  "test_hosts": ["8.8.8.8", "200.160.2.3"],
  "routing_table_configs": [
    {
      "routing_table_id": 1,
      "test_hosts": ["192.168.10.20", "www.test.com"],
    },
  ],
  "created_at": "2018-12-13T12:20:02.932000+00:00",
  "updated_at": "2018-12-13T12:20:02.932000+00:00"
}
PolicyRouting(
    id=1,
    routing_table_priorities=[[1], [2], [3]],
    name="PolicyRouting01",
    test_interval=10,
    test_timeout=1000,
    analysis_interval=90,
    valid_time=180,
    manual_failback=False,
    failback_limiter=50,
    packet_loss=PacketLoss(
        enabled=True,
        type="count",
        percentage=None,
        count=5,
    ),
    latency=Latency(
        enabled=False,
        threshold=None,
        type=None,
        percentage=None,
        count=None,
    ),
    jitter=Jitter(
        enabled=False,
        threshold=None,
        type=None,
        percentage=None,
        count=None,
    ),
    hosts_verification_logic="any",
    test_hosts=["8.8.8.8", "200.160.2.3"],
    routing_table_configs=[
        RoutingTableConfig(
            routing_table_id=1,
            test_hosts=["192.168.10.20", "www.test.com"],
        ),
    ],
    created_at=DateTime(2018, 12, 13, 12, 20, 2, tzinfo=Timezone('+00:00')),
    updated_at=DateTime(2018, 12, 13, 12, 20, 2, tzinfo=Timezone('+00:00'))
)
{
  id: 1,
  routingTablePriorities: [[1], [2], [3]],
  name: "PolicyRouting01",
  testInterval: 10,
  testTimeout: 1000,
  analysisInterval: 90,
  validTime: 180,
  manualFailback: false,
  failbackLimiter: 50,
  packetLoss: {
    enabled: true,
    type: "count",
    percentage: null,
    count: 5,
  },
  latency: {
    enabled: false,
    threshold: null,
    type: null,
    percentage: null,
    count: null,
  },
  jitter: {
    enabled: false,
    threshold: null,
    type: null,
    percentage: null,
    count: null,
  },
  hostsVerificationLogic: "any",
  testHosts: ["8.8.8.8", "200.160.2.3"],
  routingTableConfigs: [
    {
      routingTableId: 1,
      testHosts: ["192.168.10.20", "www.test.com"],
    },
  ],
  createdAt: "2018-12-13T12:20:02.000Z",
  updatedAt: "2018-12-13T12:20:02.000Z"
}

Editar política de roteamento

API de edição de uma política de roteamento

PUT /api/sdwan/policy/routing/id

As routing_table_configs já existentes no não podem ser desvinculadas da política de roteamento que estiver sendo utilizada por algum recurso do serviço.

Exemplo de requisição

PUT /api/sdwan/policy/routing/3 HTTP/1.1
Host: api.exemplo.com
Content-Type: application/json
Accept: application/json
Authorization: Bearer <Access-Token>

{
  "routing_table_priorities": [[1], [2], [3]],
  "test_interval": 10,
  "test_timeout": 1000,
  "analysis_interval": 90,
  "valid_time": 180,
  "manual_failback": false,
  "failback_limiter": 50,
  "packet_loss": {
    "enabled": true,
    "type": "count",
    "percentage": None,
    "count": 5,
  },
  "latency": {
      "enabled": true,
      "threshold": 500,
      "type": "percentage",
      "percentage": 50,
      "count": null,
    },
  "jitter": {
    "enabled": false,
    "threshold": null,
    "type": null,
    "percentage": null,
    "count": null,
  },
  "hosts_verification_logic": "any",
  "test_hosts": ["8.8.8.8", "200.160.2.3"],
  "routing_table_configs": [
    {
      "routing_table_id": 1,
      "test_hosts": ["192.168.10.20", "www.test.com"],
    },
  ],
  "apply": true,
}
from itflex_sdk.sdwan.types import UpdatePolicyRoutingRequest, PacketLoss, Latency, Jitter, RoutingTableConfig

request = UpdatePolicyRoutingRequest(
    id=1,
    routing_table_priorities=[[1], [2], [3]],
    test_interval=10,
    test_timeout=1000,
    analysis_interval=90,
    valid_time=180,
    manual_failback=False,
    failback_limiter=50,
    packet_loss=PacketLoss(
        enabled=True,
        type="count",
        percentage=None,
        count=5,
    ),
    latency=Latency(
        enabled=True,
        threshold=500,
        type="percentage",
        percentage=50,
        count=None,
    ),
    jitter=Jitter(
        enabled=False,
        threshold=None,
        type=None,
        percentage=None,
        count=None,
    ),
    hosts_verification_logic="any",
    test_hosts=["8.8.8.8", "200.160.2.3"],
    routing_table_configs=[
        RoutingTableConfig(
            routing_table_id=1,
            test_hosts=["192.168.10.20", "www.test.com"],
        ),
    ],
    apply=True,
)
response = sdk.sdwan.update_policy_routing(request)
print(response.payload)
const policyRouting = {
  id: 1,
  routingTablePriorities=[[1], [2], [3]],
  testInterval: 10,
  testTimeout: 1000,
  analysisInterval: 90,
  validTime: 180,
  manualFailback: false,
  failbackLimiter: 50,
  packetLoss: {
    enabled: true,
    failTime: 90,
    validTime: 180,
    type: "count",
    percentage: 100,
    count: null
  },
  latency: {
    enabled: true,
    threshold: 500,
    type: "percentage",
    percentage: 50,
    count: null,
  },
  jitter: {
    enabled: false,
    threshold: null,
    type: null,
    percentage: null,
    count: null
  },
  hostsVerificationLogic: "any",
  testHosts: ["8.8.8.8", "200.160.2.3"],
  routingTableConfigs: [
    {
      routingTableId: 1,
      testHosts: ["192.168.10.20", "www.test.com"]
    }
  ],
  apply: true
};
const response = sdk.sdwan.updatePolicyRouting(policyRouting);
console.log(response.payload);

Exemplo de resposta

HTTP/1.1 200 OK
Content-Type: application/json

{
  "id": 1,
  "routing_table_priorities": [[1], [2], [3]],
  "name": "PolicyRouting01",
  "test_interval": 10,
  "test_timeout": 1000,
  "analysis_interval": 90,
  "valid_time": 180,
  "manual_failback": false,
  "failback_limiter": 50,
  "packet_loss": {
    "enabled": true,
    "type": "count",
    "percentage": null,
    "count": 5,
  },
  "latency": {
    "enabled": true,
    "threshold": 500,
    "type": "percentage",
    "percentage": 50,
    "count": null,
  },
  "jitter": {
    "enabled": false,
    "threshold": null,
    "type": null,
    "percentage": null,
    "count": null,
  },
  "hosts_verification_logic": "any",
  "test_hosts": ["8.8.8.8", "200.160.2.3"],
  "routing_table_configs": [
    {
      "routing_table_id": 1,
      "test_hosts": ["192.168.10.20", "www.test.com"],
    },
  ],
  "created_at": "2018-12-14T09:20:02.932000+00:00",
  "updated_at": "2018-12-14T10:30:02.932000+00:00"
}
PolicyRouting(
    id=1,
    routing_table_priorities=[[1], [2], [3]],
    name="PolicyRouting01",
    test_interval=10,
    test_timeout=1000,
    analysis_interval=90,
    valid_time=180,
    manual_failback=False,
    failback_limiter=50,
    packet_loss=PacketLoss(
        enabled=True,
        type="count",
        percentage=None,
        count=5,
    ),
    latency=Latency(
        enabled=True,
        threshold=500,
        type="percentage",
        percentage=50,
        count=None,
    ),
    jitter=Jitter(
        enabled=False,
        threshold=None,
        type=None,
        percentage=None,
        count=None,
    ),
    hosts_verification_logic="any",
    test_hosts=["8.8.8.8", "200.160.2.3"],
    routing_table_configs=[
        RoutingTableConfig(
            routing_table_id=1,
            test_hosts=["192.168.10.20", "www.test.com"],
        ),
    ],
    created_at=DateTime(2018, 12, 14, 9, 20, 2, tzinfo=Timezone('+00:00')),
    updated_at=DateTime(2018, 12, 14, 10, 30, 2, tzinfo=Timezone('+00:00'))
)
{
  id: 1,
  routingTablePriorities: [[1], [2], [3]],
  name: "PolicyRouting01",
  testInterval: 10,
  testTimeout: 1000,
  analysisInterval: 90,
  validTime: 180,
  manualFailback: false,
  failbackLimiter: 50,
  packetLoss: {
    enabled: true,
    type: "count",
    percentage: null,
    count: 5,
  },
  latency: {
    enabled: true,
    threshold: 500,
    type: "percentage",
    percentage: 50,
    count: null,
  },
  jitter: {
    enabled: false,
    threshold: null,
    type: null,
    percentage: null,
    count: null,
  },
  hostsVerificationLogic: "any",
  testHosts: ["8.8.8.8", "200.160.2.3"],
  routingTableConfigs: [
    {
      routingTableId: 1,
      testHosts: ["192.168.10.20", "www.test.com"],
    },
  ],
  createdAt: "2018-12-14T09:20:02.000Z",
  updatedAt: "2018-12-14T10:30:02.000Z"
}

Excluir política de roteamento

API de exclusão de uma política de roteamento

DELETE /api/sdwan/policy/routing/id

Não é possível deletar as políticas de roteamento que estiverem sendo utilizadas por algum recurso do serviço.

Exemplo de requisição

DELETE /api/sdwan/policy/routing/1 HTTP/1.1
Host: api.exemplo.com
Accept: application/json
Authorization: Bearer <Access-Token>
response = sdk.sdwan.delete_policy_routing(id=1)
const response = sdk.sdwan.deletePolicyRouting({ id: 1 });

Exemplo de resposta

HTTP/1.1 200 OK
Content-Type: application/json

Aplicar política de roteamento

API de aplicação de uma política de roteamento existente

POST /api/sdwan/policy/routing/id/apply

Exemplo de requisição

POST /api/sdwan/policy/routing/1/apply HTTP/1.1
Host: api.exemplo.com
Accept: application/json
Authorization: Bearer <Access-Token>
response = sdk.sdwan.apply_policy_routing(id=1)
const response = sdk.sdwan.applyPolicyRouting({ id: 1 });

Exemplo de resposta

HTTP/1.1 200 OK
Content-Type: application/json

Aplicar políticas de roteamento

API de aplicação das políticas de roteamento existentes

POST /api/sdwan/policy/routing/apply

Exemplo de requisição

POST /api/sdwan/policy/routing/apply HTTP/1.1
Host: api.exemplo.com
Accept: application/json
Authorization: Bearer <Access-Token>
response = sdk.sdwan.apply_policies_routing()
const response = sdk.sdwan.applyPoliciesRouting();

Exemplo de resposta

HTTP/1.1 200 OK
Content-Type: application/json

Failback manual de uma política de roteamento

API que aplica o failback manual de uma política de roteamento existente.

PUT /api/sdwan/policy/routing/id/failback

Exemplo de requisição

PUT /api/sdwan/policy/routing/1/failback HTTP/1.1
Host: api.exemplo.com
Accept: application/json
Authorization: Bearer <Access-Token>

{
  "routing_table_id": 1,
}
response = sdk.sdwan.failback(id=1, routing_table_id=1)
const response = sdk.sdwan.failback({ id: 1, routingTableId: 1 });

Exemplo de resposta

HTTP/1.1 200 OK
Content-Type: application/json

Formato dos dados

Parâmetros da url

Campo Descrição
id int

Identificador da política de roteamento

Requisição

Campo Descrição
name stringrequerido único

Nome da política de roteamento.

Não editável.

Caracteres permitidos: A-Z a-z 0-9 - .

Tamanho máximo: 30 caracteres

routing_table_priorities array<array<int>>requerido

Prioridades das tabelas da política de roteamento.

O primeiro nível do array é a prioridade, o segundo nível são os identificadores das tabelas que serão usadas na prioridade. Por enquanto será permitido somente uma tabela por nível de prioridade.

Exemplo (id 1 é a tabela de roteamento WAN-EMB, id 2 é a tabela WAN-OI, id 3 é a tabela WAN-UNIFIQ):

[[1], [3], [2]]

Neste exemplo, a prioridade é que o tráfego passe pela tabela WAN-EMB, caso a WAN-EMB não cumprir os parâmetros da política, o tráfego passa pela WAN-UNIFIQ, caso nenhum das duas tabelas anteriores cumpram os parâmetros, o tráfego é direcionado para a tabela WAN-OI.

test_interval intrequerido

Tempo entre testes da política de roteamento.

  • Unidade: segundos
  • Mínimo: 1
  • Máximo: 3600
  • Valor padrão: 1
test_timeout intrequerido

Tempo de timeout de um teste.

Deve sempre ser menor que o campo test_interval.

  • Unidade: milisegundos
  • Mínimo: 100
  • Máximo: 5000
  • Valor padrão: 500
analysis_interval intrequerido

Período analisado para determinar o status de uma tabela de roteamento.

Deve ter no mínimo o dobro de tempo do campo test_interval.

  • Unidade: segundos
  • Mínimo: 2
  • Máximo: 86400
  • Padrão: 90
valid_time int

Tempo de verificação para considerar a política como operacional, após a mesma ter entrado em estado de falha.

  • Unidade: segundos
  • Mínimo: 0
  • Máximo: 86400
  • Padrão: 0
manual_failback boolrequerido

Flag que informa se o failback da política de roteamento será realizado manualmente.

failback_limiter int

Limitador de tempo de failback da política de roteamento.

Utilizado para determinar quanto tempo cada política, que foi classificada como inoperacional, deve ficar como operacional para o failback automático ocorrer.

Este campo é ignorado se manual_failback for verdadeiro

  • Unidade: segundos
  • Mínimo: 0
  • Máximo: 86400
  • Valor padrão: null
packet_loss objectrequerido

Configurações de verificação de perda de pacotes da política de roteamento.

packet_loss.enabled boolrequerido

Flag que habilita a verificação por perda de pacotes da política de roteamento.

Para uma política de roteamento ser válida, pelo menos um dos critérios (packet_loss, latency ou jitter) deve estar habilitado.

packet_loss.type string

Tipo de verificação que a política de roteamento usará para validar a perda de pacotes.

Requerido se packet_loss.enabled for verdadeiro.

Valores possíveis:

  • percentage
  • count

Valor padrão: percentage

packet_loss.percentage int

Percentual mínimo de testes em falha para considerar a tabela de roteamento como inoperacional na verificação de perda de pacotes.

Requerido se packet_loss.type for percentage.

  • Unidade: %
  • Mínimo: 1
  • Máximo: 100
  • Valor padrão: 30
packet_loss.count int

Quantidade de testes em falha para considerar a tabela de roteamento como inoperacional na verificação de perda de pacotes.

Requerido se packet_loss.type for count

  • Unidade: quantidade
  • Mínimo: 1
  • Máximo: 500
  • Valor padrão: 10
latency objectrequerido

Configurações de verificação de latência da política de roteamento.

latency.enabled boolrequerido

Flag que habilita a verificação de latência da política de roteamento.

Para uma política de roteamento ser válida, pelo menos um dos critérios (packet_loss, latency ou jitter) deve estar habilitado.

latency.threshold int

Latência máxima aceita como válida.

Requerido se latency.enabled for verdadeiro.

  • Unidade: milisegundos
  • Mínimo: 1
  • Máximo:5000
  • Valor padrão: 500
latency.type string

Tipo de verificação que a política de roteamento usará para validar latência.

Requerido se latency.enabled for verdadeiro.

Valores possíveis:

  • percentage
  • count

Valor padrão: percentage

latency.percentage int

Percentual mínimo de testes em falha para considerar a tabela de roteamento como inoperacional na verificação de latência.

Requerido se latency.type for percentage.

  • Unidade: %
  • Mínimo: 1
  • Máximo:100
  • Valor padrão: 50
latency.count int

Quantidades de testes em falha para considerar a tabela de roteamento como inoperacional na verificação de latência.

Requerido se latency.type for count

  • Unidade: quantidade
  • Mínimo: 1
  • Máximo: 500
  • Valor padrão: 10
jitter objectrequerido

Configurações de verificação de jitter das políticas da política de roteamento.

Jitter é a variação de latência entre os pings. Ele serve para identificar variações grandes nos resultados de latência dos pings. Por exemplo, foram realizados pings sequenciais e resultaram nos seguintes valores de latência 136, 184, 528, 148, 125, 142. O cálculo do jitter entre pacotes é realizado da seguinte forma:

136 - 184 ~= 48
184 - 528 ~= 334
528 - 148 ~= 380
148 - 125 ~= 23
125 - 142 ~= 17

Neste caso, se o limite de jitter estivesse configurado em 200ms, teria ocorrido duas falhas durante o período dos testes.

jitter.enabled boolrequerido

Flag que habilita a verificação de jitter da política de roteamento.

Para uma política de roteamento ser válida, pelo menos um dos critérios (packet_loss, latency ou jitter) deve estar habilitado.

jitter.threshold int

Jitter máximo aceito como válido.

Requerido se jitter.enabled for verdadeiro

  • Unidade: milissegundos
  • Mínimo: 1
  • Máximo: 5000
  • Valor padrão: 200
jitter.type string

Tipo de verificação que a política de roteamento usará para validar jitter.

Requerido se jitter.enabled for verdadeiro

Valores possíveis:

  • percentage
  • count

Valor padrão: percentage

jitter.percentage int

Percentual mínimo de testes em falha para considerar a tabela de roteamento como inoperacional na verificação de jitter.

Requerido se jitter.type for percentage

  • Unidade: %
  • Mínimo: 1
  • Máximo:100
  • Valor padrão: 50
jitter.count int

Quantidades de testes em falha para considerar a tabela de roteamento como inoperacional na verificação de jitter.

Requerido se jitter.type for count

  • Unidade: quantidade
  • Mínimo: 1
  • Máximo: 500
  • Valor padrão: 10

hosts_verification_logic stringrequerido

Parâmetro de verificação dos hosts.

Valores possíveis:

  • all
  • any

Valor padrão: all

Se o valor for all, a tabela de roteamento só será considerada como falha se todos os endereços de teste estiverem em falha.

Se o valor for any, a tabela de roteamento será considerada como falha se qualquer um dos endereços de teste estiver em falha.

test_hosts array<string>requerido

Lista de endereços de teste da política de roteamento para todas as tabelas de roteamento.

Podem ser IPs ou hostnames. Pode ser uma lista vazia.

Valor padrão: ["8.8.8.8", "200.160.2.3"]

routing_table_configs array<object>requerido

Lista de configurações das tabelas de roteamento dentro da política de roteamento.

routing_table_configs[].routing_table_id intrequerido

Identificador da tabela de roteamento associada a política de roteamento.

routing_table_configs[].test_hosts array<string>requerido

Lista de endereços de teste específicos da tabela para a política de roteamento.

Podem ser IPs ou hostnames.

Valor padrão: []

apply boolean

Flag que habilita a aplicação do provisionamento da política de roteamento.

Resposta

Campo Descrição
id int

Identificador da política de roteamento

name stringrequerido único

Nome da política de roteamento.

routing_table_priorities array<array<int>>

Prioridades das tabelas da política de roteamento.

test_interval int

Tempo entre testes da política de roteamento.

test_timeout int

Tempo de timeout de um teste.

analysis_interval int

Período analisado para determinar o status de uma tabela de roteamento.

valid_time int

Tempo de verificação para considerar a política como operacional, após a mesma ter entrado em estado de falha.

manual_failback bool

Flag que informa se o failback da política de roteamento será realizado manualmente.

failback_limiter int

Limitador de tempo de failback da política de roteamento.

packet_loss object

Configurações de verificação de perda de pacotes da política de roteamento.

packet_loss.enabled bool

Flag que indica se a verificação por perda de pacotes da política de roteamento está habilitada.

packet_loss.type string

Tipo de verificação que a política de roteamento usará para validar a perda de pacotes.

packet_loss.percentage int

Percentual mínimo de testes em falha para considerar a tabela de roteamento como inoperacional na verificação de perda de pacotes.

packet_loss.count int

Quantidade de testes em falha para considerar a tabela de roteamento como inoperacional na verificação de perda de pacotes.

latency object

Configurações de verificação de latência da política de roteamento.

latency.enabled bool

Flag que indica se a verificação de latência da política de roteamento está habilitada.

latency.threshold int

Latência máxima aceita como válida.

latency.type string

Tipo de verificação que a política de roteamento usará para validar latência.

latency.percentage int

Percentual mínimo de testes em falha para considerar a tabela de roteamento como inoperacional na verificação de latência.

latency.count int

Quantidades de testes em falha para considerar a tabela de roteamento como inoperacional na verificação de latência.

jitter object

Configurações de verificação de jitter das políticas da política de roteamento.

jitter.enabled bool

Flag que indica se verificação de jitter da política de roteamento está habilitada.

jitter.threshold int

Jitter máximo aceito como válido.

jitter.type string

Tipo de verificação que a política de roteamento usará para validar jitter.

jitter.percentage int

Percentual mínimo de testes em falha para considerar a tabela de roteamento como inoperacional na verificação de jitter.

jitter.count int

Quantidades de testes em falha para considerar a tabela de roteamento como inoperacional na verificação de jitter.

hosts_verification_logic string

Parâmetro de verificação dos hosts.

test_hosts array<string>

Lista de endereços de teste da política de roteamento para todas as tabelas de roteamento.

routing_table_configs array<object>

Lista de configurações das tabelas de roteamento dentro da política de roteamento.

routing_table_configs[].routing_table_id int

Identificador da tabela de roteamento associada a política de roteamento.

routing_table_configs[].test_hosts array<string>

Lista de endereços de teste específicos da tabela para a política de roteamento.

created_at string

Data de criação

Formato: ISO-8601

updated_at string

Data da última edição

Formato: ISO-8601