腾讯云云托付物理服务器二次虚拟化网络配置
操作场景
CHC 物理服务器不提供虚拟化方案,您需自行选用虚拟化方案。可参考本文,实现虚拟机与主机间的网络互通。本文采用网络配置方案如下:
虚拟机仅支持通过发送 GARP 绑定 DHCP IP 地址的方式与内网通信。
操作步骤
申请 DHCP IP
在执行虚拟化方案前,请根据具体的 IP 地址需求申请 DHCP IP 地址,在安装虚拟机时将 DHCP IP 作为虚拟机的 IP 地址。申请步骤如下:1. 进入 API Explorer 工具的 CreateDhcpIp 接口页面。2. 根据实际情况输入 region、vpcid、subnetID、dhcpIpName、SecondaryPrivateIpAddressCount(个数)。如需了解输入参数含义,请参见 创建 DhcpIp。3. 输入后单击发起调用,调用成功后请保存返回的响应结果。
如下图所示,在本例中,调用 API 生成了一个 DHCP IP:10.99.0.5
(即下图中 PrivateIpAddress
的值)。
注意该接口不支持指定 IP 地址,只能由系统随机生成 DHCP IP。
发送 GARP 包
该步骤将 IP 地址绑定至虚拟机。本文提供以下两种方式,您可按需选择其中一种即可:方式1方式2操作对象
虚拟机操作方式
发送如下 arping 指令:
arping -c 运行次数 -I 虚拟机的接口 -U dhcp ip
示例如下:
arping -c 1 -I eth0 -U 10.99.0.5
特点:
无法指定 mac 地址,因此只能在虚拟机上执行操作对象
虚拟机、宿主机操作方式
执行 arp.py 脚本,命令如下。执行10秒后,请通过 Ctrl + c 停止脚本。
python arp.py --iface 接口--src_mac 虚拟机mac --src_ip 虚拟机ip --dst_ip 虚拟机ip --dst_mac 虚拟机mac
示例如下:
python arp.py --iface eth0 --src_mac 28:6e:d4:89:91:cf --src_ip 10.27.8.155 --dst_ip 10.27.8.155 --dst_mac 28:6e:d4:89:91:cf
特点:
需获取虚拟机的 mac 地址,且需有 Python 环境。执行完成后,虚拟机与同 VPC 的其他主机即可正常通信。
查询 DHCP IP 是否绑定成功
发送 GARP 包后,可以通过接口自助查询是否绑定成功。步骤如下:1. 进入 API Explorer 工具的 DescribeDhcpIps 接口页面。2. 根据实际情况输入 region 及 DhcpIpIds。
其中,DhcpIpIds 请使用 申请 DHCP IP 步骤中获取的 PrivateIpAddress
。3. 单击发起调用,通过返回结果确认是否绑定成功。如需了解返回结果含义,请参见 查询 DhcpIp 列表。
虚拟机访问公网
若虚拟机需要访问公网,可以通过 DHCP IP 绑定 EIP 的方式实现。步骤如下:1. 参见 申请 EIP,获取一个 EIP。2. 进入 API Explorer 工具的 AssociateDhcpIpWithAddressIp 接口页面。3. 根据实际情况输入 DHCP IP 及 EIP,发起调用后即可。
不支持热迁移
目前 CHC 物理服务器不支持用户的子机的热迁移,原因如下:子机上线需要发送 GARP,被网卡捕获上送控制面。子机迁移到另外一台 CHC 服务器后,无法主动发送 GARP。子机从一台 CHC 迁移到另外一台 CHC 时,源网卡上的相关会话不会同步到目标 CHC 网卡,会造成已有连接中断。
附录
arp.py 脚本
#!/usr/bin/python# -*- coding: utf-8 -*-import socket, binascii,struct,os,subprocess,sys,threading,json,re,argparse,time
class arping(): def __init__(self, iface): self.sock = socket.socket(socket.AF_PACKET, socket.SOCK_RAW, ) self.sock.bind((iface, 0)) def arp_request(self, src_ip, src_mac, dst_ip, dst_mac): src_mac_addr = binascii.a2b_hex(src_mac.replace(':','')) dst_mac_addr = binascii.a2b_hex(dst_mac.replace(':',''))
src_ip = socket.inet_aton(src_ip) dst_ip = socket.inet_aton(dst_ip)
eth = "\xff\xff\xff\xff\xff\xff"+src_mac_addr+"\x08\x06"+ \ "\x00\x01\x08\x00\x06\x04\x00\x01"+src_mac_addr+src_ip+dst_mac_addr+dst_ip
self.sock.send(eth)
if __name__ == '__main__': parser_t = argparse.ArgumentParser(description='arp_req') parser_t.add_argument('--iface', dest= 'iface', type=str, help='interface') parser_t.add_argument('--src_mac', dest= 'src_mac', type=str, help='source mac') parser_t.add_argument('--src_ip', dest= 'src_ip', type=str, help='source ip') parser_t.add_argument('--dst_mac', dest= 'dst_mac',type=str, help='destination mac') parser_t.add_argument('--dst_ip', dest= 'dst_ip', type=str, help='destination ip')
args = parser_t.parse_args() while True: handler = arping(args.iface) handler.arp_request(args.src_ip, args.src_mac, args.dst_ip, args.dst_mac) time.sleep(10)
官网1折活动,限时活动,即将结束,速速收藏
同尘科技为腾讯云授权服务中心。
购买腾讯云产品享受折上折,更有现金返利。同意关联立享优惠
暂无评论,你要说点什么吗?