场景描述:
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 即可)
- 笔记本在wifi 上添加一个虚拟ip
虚拟机centos7上设置: 2个网卡,一个eth0 (桥接模式) IP:192.168.2.20 255.255.255.0 网关:空着
[[email protected] 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)
[[email protected] 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
至此,验证成功。
希望本文章对需要移动办公平台网络设置的朋友有帮助。