15158846557 在线咨询 在线咨询
15158846557 在线咨询
所在位置: 首页 > 营销资讯 > 网站运营 > 深入理解SDN之二-固定虚拟机IP

深入理解SDN之二-固定虚拟机IP

时间:2023-07-17 22:51:01 | 来源:网站运营

时间:2023-07-17 22:51:01 来源:网站运营

深入理解SDN之二-固定虚拟机IP:

深入理解SDN之二-固定虚拟机IP

本章主要介绍如何配置让vm启动时用dhcp获取我们指定的IP,我们接着上一篇的环境继续往下做。

固定虚拟机IP

在前面的《深入理解k8s网络》中,我们配置POD的网络,可以通过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

创建dhcp的ns

为了最大限度减少dhcp服务对物理主机的影响,最好的做法是在一个独立的ns中运行dhcp服务,所以先创建一个名为dhcp-ns的ns,连接br0交换机

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

在dhcp-ns中运行dhcp服务

dnsmasq是一个小巧且可以运行dhcp/dns服务的工具,支持手动配置指定mac对应的IP地址。先依照下面的链接安装dnsmasq:

dnsmasq (简体中文) - ArchWiki

编辑文件/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.dip netns exec dhcp-ns /usr/sbin/dnsmasq--conf-file=/home/dnsmasq/default.conf--dhcp-hostsfile=/home/dnsmasq/addon.hostfile--bind-interfacesqemu-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了;

一般在SDN的方案中会在每个子网中运行一个dnsmasq服务,除了dhcp服务外,还能定制子网的dns解析(例如把内网服务通过域名调用另一内网服务的DNS解析为内网IP,这样就避免去外网跑一圈再进来),具体的配置可以看dnsmasq官网的文档:

https://wiki.archlinux.org/title/Dnsmasq_(%E7%AE%80%E4%BD%93%E4%B8%AD%E6%96%87)

接下来我们介绍一下如何完成跨节点的vm连接。

关键词:虚拟,固定,理解,深入

74
73
25
news

版权所有© 亿企邦 1997-2025 保留一切法律许可权利。

为了最佳展示效果,本站不支持IE9及以下版本的浏览器,建议您使用谷歌Chrome浏览器。 点击下载Chrome浏览器
关闭