时间:2023-07-17 22:51:01 | 来源:网站运营
时间:2023-07-17 22:51:01 来源:网站运营
深入理解SDN之二-固定虚拟机IP:ip netns exec pod-ns ...
这样去操作,但现在换成VM,我们的控制器是没有办法进入VM去操作设置IP的,也不能在qemu启动时就指定IP地址,但qemu启动时支持指定网卡的MAC地址,dhcp服务默认是根据mac地址分配IP的,所以我们的思路是:运行一个dhcp服务,在dhcp服务中指定MAC对应的IP,然后VM启动时带上这个MAC地址,这样我们就可以给VM设置我们想要的IP了; 下面的ns
是指linux network namspace
ip netns add dhcp-nsip link add eth-sub1 type veth peer name dhcp-vethip link set eth-sub1 netns dhcp-nsip netns exec dhcp-ns ip addr add 172.25.1.2/24 dev eth-sub1ip netns exec dhcp-ns ip link set eth-sub1 upip link set dhcp-veth master br0ip link set dhcp-veth up
/home/dnsmasq/addon.hostfile
,设置指定MAC对应的IP,这里就是最关键的地方了,内容如下:3e:02:d0:40:9e:3a,vm1,172.25.1.103e:02:d0:40:9e:3b,vm2,172.25.1.113e:02:d0:40:9e:3c,vm2,172.25.1.12
编辑文件/home/dnsmasq/resolv.conf
,设置dnsmasq使用的上游dns服务地址,内容如下:nameserver 114.114.114.114
编辑文件/home/dnsmasq/default.conf
,dnsmasq服务的一些通用配置,内容如下:user=dnsmasqgroup=dnsmasqlisten-address=172.25.1.2 # 监听的网卡dhcp-range=172.25.1.10,172.25.1.200,255.255.255.0,12h # 分配IP的段为10-200,掩码24位,租约12小时dhcp-option=3,172.25.1.1 # vm的默认网关dhcp-option=26,1500 # vm的MTUdhcp-option=100,Asia/Shanghai # 时区dhcp-option=129,NIC=eth0 # 网卡名称dhcp-option=42,203.107.6.88 # 时间同步服务地址dhcp-option=option:dns-server,172.25.1.2 # vm的dns服务地址,指向自己log-querieslog-dhcpresolv-file=/home/dnsmasq/resolv.conf # 这里指定上面编辑的配置文件conf-dir=/etc/dnsmasq.d
ip netns exec dhcp-ns /usr/sbin/dnsmasq--conf-file=/home/dnsmasq/default.conf--dhcp-hostsfile=/home/dnsmasq/addon.hostfile--bind-interfaces
qemu-kvm -enable-kvm -name vm1 -smp 1,cores=1 -m 2048 -hda /home/vm/vm1.raw /-netdev tap,id=hostnet0,vhost=on,vhostfd=4,ifname=tap1,script=no 4<>/dev/vhost-net /-device virtio-net-pci,netdev=hostnet0,id=net0,mac=3e:02:d0:40:9e:3a /-vnc 0.0.0.0:0
此时vm启动完成后就会自动获取到我们在配置文件设置的IP172.25.1.10
了;关键词:虚拟,固定,理解,深入