cloudemu

Networking

Virtual networks, subnets, security groups, and peering

Networking

Emulates virtual networking: VPC (AWS), VNet (Azure), VPC (GCP).

Provider Mapping

ProviderServiceAccess
AWSVPCaws.VPC
AzureVNetazure.VNet
GCPVPCgcp.VPC

Key Operations

VPCs / Virtual Networks

import netdriver "github.com/stackshy/cloudemu/networking/driver"

vpc, _ := aws.VPC.CreateVPC(ctx, netdriver.VPCConfig{
    CIDRBlock: "10.0.0.0/16",
    Tags:      map[string]string{"env": "production"},
})

Subnets

subnet, _ := aws.VPC.CreateSubnet(ctx, netdriver.SubnetConfig{
    VPCID:            vpc.ID,
    CIDRBlock:        "10.0.1.0/24",
    AvailabilityZone: "us-east-1a",
})

Security Groups

sg, _ := aws.VPC.CreateSecurityGroup(ctx, netdriver.SecurityGroupConfig{
    Name: "web-sg", Description: "Web traffic", VPCID: vpc.ID,
})

// Add ingress rule
aws.VPC.AddIngressRule(ctx, sg.ID, netdriver.SecurityRule{
    Protocol: "tcp", FromPort: 443, ToPort: 443, CIDR: "0.0.0.0/0",
})

// Add egress rule
aws.VPC.AddEgressRule(ctx, sg.ID, netdriver.SecurityRule{
    Protocol: "tcp", FromPort: 0, ToPort: 65535, CIDR: "0.0.0.0/0",
})

VPC Peering

peering, _ := aws.VPC.CreatePeeringConnection(ctx, netdriver.PeeringConfig{
    RequesterVPCID: vpc1.ID, AccepterVPCID: vpc2.ID,
})
aws.VPC.AcceptPeeringConnection(ctx, peering.ID)

NAT Gateways

nat, _ := aws.VPC.CreateNATGateway(ctx, netdriver.NATGatewayConfig{
    SubnetID: subnet.ID,
})

Route Tables

rt, _ := aws.VPC.CreateRouteTable(ctx, netdriver.RouteTableConfig{
    VPCID: vpc.ID,
})
aws.VPC.AssociateRouteTable(ctx, rt.ID, subnet.ID)

Flow Logs

aws.VPC.CreateFlowLog(ctx, netdriver.FlowLogConfig{
    ResourceID: vpc.ID, TrafficType: "ALL",
})

On this page