如何在Azure Bicep中创建VM时禁用IPv6以实现域自动加入?
问题描述
我在创建Azure虚拟机(VM)时,尝试通过Microsoft.Compute/virtualMachines/extensions自动加入域时遇到问题,原因似乎是TCP/IP v6处于启用状态。我当前使用Microsoft.Network/networkInterfaces创建网卡、Microsoft.Compute/virtualMachines创建VM,想问下如何在Bicep文件中创建VM时禁用IPv6,确保域自动加入能正常工作?
补充:后续我发现VM启动后手动可以成功加入域。以下是我用于域加入的Bicep代码段:
resource virtualMachineExtension 'Microsoft.Compute/virtualMachines/extensions@2021-03-01' = { parent: windowsVm name: 'joindomain' location: location properties: { publisher: 'Microsoft.Compute' type: 'JsonADDomainExtension' typeHandlerVersion: '1.3' autoUpgradeMinorVersion: true settings: { name: 'corp.mydomain.com' ouPath: 'Servers,DC=corp,DC=mydomain,DC=com' user: 'corp.mydomain.com\${domainJoinUserName}' restart: true options: 3 } protectedSettings: { Password: domainJoinUserPassword } } }
我通过以下PowerShell部署脚本捕获域管理员用户名和密码:
$domainJoinUserName = Read-Host -Prompt 'Domain Admin Username' $domainJoinUserPassword = Read-Host -AsSecureString -Prompt 'Domain Admin Password' $domainJoinUserPassword = [System.Runtime.InteropServices.Marshal]::PtrToStringAuto([System.Runtime.InteropServices.Marshal]::SecureStringToBSTR($domainJoinUserPassword))
解决方案
要在Bicep中创建VM时禁用IPv6,只需在Microsoft.Network/networkInterfaces资源配置里明确设置enableIpv6为false,同时确保网卡的IP配置仅包含IPv4相关项,不添加IPv6的IP配置。
示例网卡Bicep配置:
resource nic 'Microsoft.Network/networkInterfaces@2023-04-01' = { name: 'vm-nic' location: location properties: { enableIpv6: false # 禁用IPv6 ipConfigurations: [ { name: 'ipconfig1' properties: { privateIPAllocationMethod: 'Dynamic' subnet: { id: subnet.id } publicIPAddress: { id: publicIp.id } } } ] # 按需添加网络安全组、DNS设置等其他网卡配置 } }
将该网卡关联到VM资源:
resource windowsVm 'Microsoft.Compute/virtualMachines@2023-07-01' = { name: 'windows-vm' location: location properties: { hardwareProfile: { vmSize: 'Standard_D2s_v3' } networkProfile: { networkInterfaces: [ { id: nic.id } ] } # 按需添加存储、OS配置等其他VM参数 } }
通过上述配置创建的VM会默认禁用IPv6,配合你现有的域加入扩展脚本,即可解决因IPv6启用导致的自动域加入问题。
内容的提问来源于stack exchange,提问作者nashken
相关产品推荐
相关产品推荐

