DEV Community

Cover image for Using Bicep to setup a network peering
Massimo Bonanni
Massimo Bonanni

Posted on

Using Bicep to setup a network peering

In this post, I would like to continue my posts about Bicep and I would like to show you how you can setup a network peering between to virtual networks in Azure using a Bicep template.

First of all, it's important to recap what a network peering is.
Azure network peering is a feature that allows two virtual networks in Azure (in the same region or in different regions) to be connected so that resources in either network can communicate with each other using private IP addresses. This connectivity is achieved without the need for any additional gateways, VPNs, or other physical hardware.

With network peering, traffic between the virtual networks is routed through the Azure backbone network, providing low-latency, high-bandwidth connectivity. Network peering also supports transit routing, allowing multiple virtual networks to be interconnected through a single hub network.

By using network peering, you can create a more integrated and cohesive network infrastructure within your Azure environment, improving the performance, security, and scalability of your applications and services.

You can find more info about Network Peering in the following link.

If you want to create a peering between two networks in the same resource group, you can use the following Bicep template:

param sourceNetworkname string

param destinationNetworkname string

resource sourceNetwork 'Microsoft.Network/virtualNetworks@2022-09-01' existing = {
  name: sourceNetworkname
}

resource destinationNetwork 'Microsoft.Network/virtualNetworks@2022-09-01' existing = {
  name: destinationNetworkname
}

resource sourceToDestinationPeering 'Microsoft.Network/virtualNetworks/virtualNetworkPeerings@2022-07-01' = {
  name: '${sourceNetworkname}-To-${destinationNetworkname}'
  parent: sourceNetwork
  properties: {
    allowForwardedTraffic: true
    allowGatewayTransit: true
    remoteVirtualNetwork: {
      id: destinationNetwork.id
    }
  }
}

resource destinationToSourcePeering 'Microsoft.Network/virtualNetworks/virtualNetworkPeerings@2022-07-01' = {
  name: '${destinationNetworkname}-To-${sourceNetworkname}'
  parent: destinationNetwork
  properties: {
    allowForwardedTraffic: true
    allowGatewayTransit: true
    remoteVirtualNetwork: {
      id: sourceNetwork.id
    }
  }
}
Enter fullscreen mode Exit fullscreen mode

where

  • sourceNetworkname: is the name of one of the network (you can choose what is the source network as you prefer);
  • destinationNetworkname: is the name of the other network.

For example if you have two virtual networks, called VNet-northeurope and VNet-westus, in the NetworkPeering-rg resource group, you can run the following command:

az deployment group create --template-file .\NetworkPeering.bicep --resource-group NetworkPeering-rg --parameters sourceNetworkname=VNet-northeurope destinationNetworkname=VNet-westus
Enter fullscreen mode Exit fullscreen mode

You can find more info about the properties of the Microsoft.Network/virtualNetworks/virtualNetworkPeerings resource on the following link .

Top comments (1)

Collapse
 
swetapanda profile image
sweta

how to do the same when vnets are in same subscription but different resource groups