场景描述:
1.有个笔记本电脑
2.操作系统上安装了个虚拟化平台(virtualbox 或vmare-workstation),运行着1-n个虚拟机,
3.笔记本通过wifi 连接互联网
4. 虚拟机通过笔记本wifi 上互联网

问题描述: 如下图,由于经常在不同的地点使用wifi,
导致笔记本wifi ip 经常变化, 导致虚拟机里面的SDN 网络calico-node 172.20.0.0/16 无法访问。

目标: 在任意地方,连接任意网络,笔记本开机,虚拟机开机后,
可以以固定的方式访问SDN网络里的各种服务。 如:jenkins,sonarqube,devops-box,

整体分析了一下:
虚拟机里的IP是需要有个静态IP地址的,但是Wi-Fi环境一变化,虚拟机上的docker 服务就无法从笔记本电脑上直接访问, 很影响服务的使用。

这个问题其实已经困扰了好几年,之前没有好的解决办法,都是手动修改ip,临时解决一下,非常繁琐,又容易出错.

在这里插入图片描述

设备IP网关掩码DNS

笔记本添加虚拟网卡wifi-virutal 并设置虚拟IP:
在这里插入图片描述
在这里插入图片描述

笔记本WIFI 网卡设置如下: DHCP
在这里插入图片描述
DNS 设置如下:(因为我的虚拟机里有个bind-dns 所以需要设置这个,如果你不需,不用设置这个DNS 192.168.2.20,只需要一条114.114.114.114 即可)
在这里插入图片描述

  1. 笔记本在wifi 上添加一个虚拟ip

虚拟机centos7上设置: 2个网卡,一个eth0 (桥接模式) IP:192.168.2.20 255.255.255.0 网关:空着
[root@localhost network-scripts]# more ifcfg-eth0
TYPE=Ethernet
PROXY_METHOD=none
BROWSER_ONLY=no
BOOTPROTO=static
DEFROUTE=yes
IPV4_FAILURE_FATAL=no
IPV6INIT=yes
IPV6_AUTOCONF=yes
IPV6_DEFROUTE=yes
IPV6_FAILURE_FATAL=no
IPV6_ADDR_GEN_MODE=stable-privacy
NAME=eth0
DEVICE=eth0
ONBOOT=yes
ZONE=public
IPADDR=192.168.2.20
PREFIX=24
#GATEWAY=192.168.2.1
DNS1=192.168.2.20
DNS2=114.114.114.114

eth1(桥接模式 DHCP)
[root@localhost network-scripts]# more ifcfg-eth1
TYPE=Ethernet
PROXY_METHOD=none
BROWSER_ONLY=no
BOOTPROTO=dhcp
DEFROUTE=yes
IPV4_FAILURE_FATAL=no
IPV6INIT=yes
IPV6_AUTOCONF=yes
IPV6_DEFROUTE=yes
IPV6_FAILURE_FATAL=no
IPV6_ADDR_GEN_MODE=stable-privacy
NAME=eth1
DEVICE=eth1
ONBOOT=yes
ZONE=public
DNS2=114.114.114.114

设置完成后, 重现启动虚拟机激活网卡和虚拟机里面的各种服务.

笔记本上添加路由:
2. 添加一条路由
3. sudo route delete -net 172.20.0.0
#mac route命令同时访问内外网
sudo route -n add 172.20.0.0 -netmask 255.255.0.0 192.168.2.20

3.验证:
Connection to mesos closed.
happy:~ happy$ more /etc/resolv.conf
nameserver 192.168.2.20
nameserver 114.114.114.114

在这里插入图片描述
在这里插入图片描述

至此,验证成功。

希望本文章对需要移动办公平台网络设置的朋友有帮助。

Logo

华为开发者空间,是为全球开发者打造的专属开发空间,汇聚了华为优质开发资源及工具,致力于让每一位开发者拥有一台云主机,基于华为根生态开发、创新。

更多推荐