Skip to content
Start here

Create a new Site LAN

client.MagicTransit.Sites.LANs.New(ctx, siteID, params) (*SinglePage[LAN], error)
POST/accounts/{account_id}/magic/sites/{site_id}/lans

Creates a new Site LAN. If the site is in high availability mode, static_addressing is required along with secondary and virtual address.

Security
API Token

The preferred authorization scheme for interacting with the Cloudflare API. Create a token.

Example:Authorization: Bearer Sn3lZJTBX6kkg7OdcBUAxOO963GEIyGQqnFTOFYY
API Email + API Key

The previous authorization scheme for interacting with the Cloudflare API, used in conjunction with a Global API key.

Example:X-Auth-Email: user@example.com

The previous authorization scheme for interacting with the Cloudflare API. When possible, use API tokens instead of Global API keys.

Example:X-Auth-Key: 144c9defac04969c7bfad8efaa8ea194
Accepted Permissions (at least one required)
Magic WAN WriteMagic Transit Write
ParametersExpand Collapse
siteID string

Identifier

maxLength32
params SiteLANNewParams
AccountID param.Field[string]

Path param: Identifier

maxLength32
BondID param.Field[int64]Optional

Body param

IsBreakout param.Field[bool]Optional

Body param: mark true to use this LAN for source-based breakout traffic

IsPrioritized param.Field[bool]Optional

Body param: mark true to use this LAN for source-based prioritized traffic

Name param.Field[string]Optional

Body param

Nat param.Field[Nat]Optional

Body param

Physport param.Field[int64]Optional

Body param

RoutedSubnets param.Field[[]RoutedSubnet]Optional

Body param

NextHop string

A valid IPv4 address.

Prefix string

A valid CIDR notation representing an IP range.

Nat NatOptional
StaticPrefix stringOptional

A valid CIDR notation representing an IP range.

StaticAddressing param.Field[LANStaticAddressing]Optional

Body param: If the site is not configured in high availability mode, this configuration is optional (if omitted, use DHCP). However, if in high availability mode, static_address is required along with secondary and virtual address.

VlanTag param.Field[int64]Optional

Body param: VLAN ID. Use zero for untagged.

ReturnsExpand Collapse
type LAN struct{…}
ID stringOptional

Identifier

maxLength32
BondID int64Optional
IsBreakout boolOptional

mark true to use this LAN for source-based breakout traffic

IsPrioritized boolOptional

mark true to use this LAN for source-based prioritized traffic

Name stringOptional
Nat NatOptional
StaticPrefix stringOptional

A valid CIDR notation representing an IP range.

Physport int64Optional
RoutedSubnets []RoutedSubnetOptional
NextHop string

A valid IPv4 address.

Prefix string

A valid CIDR notation representing an IP range.

Nat NatOptional
StaticPrefix stringOptional

A valid CIDR notation representing an IP range.

SiteID stringOptional

Identifier

maxLength32
StaticAddressing LANStaticAddressingOptional

If the site is not configured in high availability mode, this configuration is optional (if omitted, use DHCP). However, if in high availability mode, static_address is required along with secondary and virtual address.

Address string

A valid CIDR notation representing an IP range.

DHCPRelay DHCPRelayOptional
ServerAddresses []stringOptional

List of DHCP server IPs.

DHCPServer DHCPServerOptional
DHCPOptions []DHCPServerDHCPOptionOptional

Optional list of custom DHCP options to include in DHCP responses. Only valid when DHCP server is enabled.

Code int64

DHCP option number (1-254). Options 0 and 255 are reserved by RFC 2132. Options 3, 6, and 51 are not allowed because they conflict with connector-managed configuration.

maximum254
minimum1
Type DHCPServerDHCPOptionsType

The type of the option value. text: a string (max 255 bytes). hex: colon-separated hex bytes (e.g. “01:04:aa:bb:cc”, max 255 bytes). ip: an IPv4 address (e.g. “10.20.30.40”). byte: an unsigned integer 0-255 (1 byte). short: an unsigned integer 0-65535 (2 bytes). integer: an unsigned integer 0-4294967295 (4 bytes).

One of the following:
const DHCPServerDHCPOptionsTypeText DHCPServerDHCPOptionsType = "text"
const DHCPServerDHCPOptionsTypeHex DHCPServerDHCPOptionsType = "hex"
const DHCPServerDHCPOptionsTypeIP DHCPServerDHCPOptionsType = "ip"
const DHCPServerDHCPOptionsTypeByte DHCPServerDHCPOptionsType = "byte"
const DHCPServerDHCPOptionsTypeShort DHCPServerDHCPOptionsType = "short"
const DHCPServerDHCPOptionsTypeInteger DHCPServerDHCPOptionsType = "integer"
Value string

The option value, interpreted according to the type field.

DHCPPoolEnd stringOptional

A valid IPv4 address.

DHCPPoolStart stringOptional

A valid IPv4 address.

DNSServer stringOptional

A valid IPv4 address.

DNSServers []stringOptional
Reservations map[string, string]Optional

Mapping of MAC addresses to IP addresses

SecondaryAddress stringOptional

A valid CIDR notation representing an IP range.

VirtualAddress stringOptional

A valid CIDR notation representing an IP range.

VlanTag int64Optional

VLAN ID. Use zero for untagged.

Create a new Site LAN

package main

import (
  "context"
  "fmt"

  "github.com/cloudflare/cloudflare-go"
  "github.com/cloudflare/cloudflare-go/magic_transit"
  "github.com/cloudflare/cloudflare-go/option"
)

func main() {
  client := cloudflare.NewClient(
    option.WithAPIToken("Sn3lZJTBX6kkg7OdcBUAxOO963GEIyGQqnFTOFYY"),
  )
  page, err := client.MagicTransit.Sites.LANs.New(
    context.TODO(),
    "023e105f4ecef8ad9ca31a8372d0c353",
    magic_transit.SiteLANNewParams{
      AccountID: cloudflare.F("023e105f4ecef8ad9ca31a8372d0c353"),
    },
  )
  if err != nil {
    panic(err.Error())
  }
  fmt.Printf("%+v\n", page)
}
{
  "errors": [
    {
      "code": 1000,
      "message": "message",
      "documentation_url": "documentation_url",
      "source": {
        "pointer": "pointer"
      }
    }
  ],
  "messages": [
    {
      "code": 1000,
      "message": "message",
      "documentation_url": "documentation_url",
      "source": {
        "pointer": "pointer"
      }
    }
  ],
  "result": [
    {
      "id": "023e105f4ecef8ad9ca31a8372d0c353",
      "bond_id": 2,
      "ha_link": true,
      "is_breakout": true,
      "is_prioritized": true,
      "name": "name",
      "nat": {
        "static_prefix": "192.0.2.0/24"
      },
      "physport": 1,
      "routed_subnets": [
        {
          "next_hop": "192.0.2.1",
          "prefix": "192.0.2.0/24",
          "nat": {
            "static_prefix": "192.0.2.0/24"
          }
        }
      ],
      "site_id": "023e105f4ecef8ad9ca31a8372d0c353",
      "static_addressing": {
        "address": "192.0.2.0/24",
        "dhcp_relay": {
          "server_addresses": [
            "192.0.2.1"
          ]
        },
        "dhcp_server": {
          "dhcp_options": [
            {
              "code": 66,
              "type": "ip",
              "value": "10.20.30.40"
            }
          ],
          "dhcp_pool_end": "192.0.2.1",
          "dhcp_pool_start": "192.0.2.1",
          "dns_server": "192.0.2.1",
          "dns_servers": [
            "192.0.2.1"
          ],
          "reservations": {
            "00:11:22:33:44:55": "192.0.2.100",
            "AA:BB:CC:DD:EE:FF": "192.168.1.101"
          }
        },
        "secondary_address": "192.0.2.0/24",
        "virtual_address": "192.0.2.0/24"
      },
      "vlan_tag": 42
    }
  ],
  "success": true
}
Returns Examples
{
  "errors": [
    {
      "code": 1000,
      "message": "message",
      "documentation_url": "documentation_url",
      "source": {
        "pointer": "pointer"
      }
    }
  ],
  "messages": [
    {
      "code": 1000,
      "message": "message",
      "documentation_url": "documentation_url",
      "source": {
        "pointer": "pointer"
      }
    }
  ],
  "result": [
    {
      "id": "023e105f4ecef8ad9ca31a8372d0c353",
      "bond_id": 2,
      "ha_link": true,
      "is_breakout": true,
      "is_prioritized": true,
      "name": "name",
      "nat": {
        "static_prefix": "192.0.2.0/24"
      },
      "physport": 1,
      "routed_subnets": [
        {
          "next_hop": "192.0.2.1",
          "prefix": "192.0.2.0/24",
          "nat": {
            "static_prefix": "192.0.2.0/24"
          }
        }
      ],
      "site_id": "023e105f4ecef8ad9ca31a8372d0c353",
      "static_addressing": {
        "address": "192.0.2.0/24",
        "dhcp_relay": {
          "server_addresses": [
            "192.0.2.1"
          ]
        },
        "dhcp_server": {
          "dhcp_options": [
            {
              "code": 66,
              "type": "ip",
              "value": "10.20.30.40"
            }
          ],
          "dhcp_pool_end": "192.0.2.1",
          "dhcp_pool_start": "192.0.2.1",
          "dns_server": "192.0.2.1",
          "dns_servers": [
            "192.0.2.1"
          ],
          "reservations": {
            "00:11:22:33:44:55": "192.0.2.100",
            "AA:BB:CC:DD:EE:FF": "192.168.1.101"
          }
        },
        "secondary_address": "192.0.2.0/24",
        "virtual_address": "192.0.2.0/24"
      },
      "vlan_tag": 42
    }
  ],
  "success": true
}