在oneprovider服务器上安装ESXI6.5并用openwrt做软路由开NAT小鸡 作者: Fmq 时间: 2018-09-25 分类: 随手笔记 oneprovider是世界有名的服务器二道贩子,销售全世界140多个地方的服务器和VPS,其中最大的倒卖对象就是online的机器。本次使用的机器就是online淘汰下来的7欧机器,oneprovider转手8欧出售,供不应求,真香。 ESXi由于其使用了vSwitch作为网络交换设备,因此没有类似NAT这样的选项了。但在实际环境中,我们还是经常会遇到IP不够用的情况,比如只有一个或者两个公网IP,但是有一堆虚拟机需要上网,此时就要通过软路由来达到目的。本次使用openwrt做软路由介绍。 本次使用oneproviderder 8欧的服务器,单网卡,一个默认的主IP做为ESXI的管理IP,另外购买一个故障转移IP用于给虚拟机做NAT连接外网。软路由使用最新版的openwrt。 oneprovider的控制面板提供了ESXI6.5的模板,可以直接重装系统,不用操心驱动问题。等待30分钟左右即可重装完成,用主IP地址即可访问ESXI网络控制端。 首先是ESXI的网络配置图 [![network](/usr/uploads/2018/09/network.png "network")](/usr/uploads/2018/09/network.png "network") 虚拟交换机nat下面连接的虚拟机通过同一网段的软路由openwrt的LAN口连接至软路由,同时软路由的WAN口连接至虚拟交换机vSwitch0,再桥接至物理网口vmnic0,最后连接到外网。软路由负责全部数据的转发。 #### 新建虚拟交换机 全新安装的ESXI只有vSwitch0一个交换机,我们还需要新建一个虚拟交换机nat,需要注意的是新建的虚拟交换机不要让它与物理网卡相关,需要点击图中的X,删除上行链路,之所以这么做,是因为我们要把这个网络的请求都需要通过软路由转发到VM Network上去,而不要让它自己走物理网卡出去。 [![vSwicth](/usr/uploads/2018/09/vSwitch.png "vSwicth")](/usr/uploads/2018/09/vSwitch.png "vSwicth") #### 安装配置软路由 去[openwrt官网](https://downloads.openwrt.org/releases/ "openwrt官网") 下载最新的固件 将下载到的GZ文件解压得到img文件, 使用[starwindconverter](https://dl.fmqcloud.com/soft/starwindconverter.exe "starwindconverter"),转换为vmdk格式,将转换后的2个文件传到esxi里。 然后新建一个虚拟机,创建步骤和普通虚拟机一样,操作系统选择linux->其它3.x或更高版本的linux(64位),内存分配512M即可,硬盘删除默认,单独为这个虚拟机添加一块现有的磁盘, 磁盘文件选择openwrt转换后的vmdk文件,网卡添加两个,一个关联VM Network, 一个关联NAT。 由于oneproviderwe的8欧机器实际为online的服务器,所以我们需要遵守online的一些规定: - 如果将故障转移ip分配给虚拟机则必须要生成mac地址。 - 如果虚拟机的mac地址没有正确配置, 则会触发交换机的保护措施, 网络端口会被关闭。 再去oneproviderwe的管理控制台给故障IP添加一个MAC地址,同时注意左上角的网关和掩码是故障转移IP专用 [![failoverIP](/usr/uploads/2018/09/IP.png "failoverIP")](/usr/uploads/2018/09/IP.png "failoverIP") 然后,给关联VM Network的网卡输入获得的MAC地址 [![MAC](/usr/uploads/2018/09/MAC.png "MAC")](/usr/uploads/2018/09/MAC.png "MAC") 启动虚拟机后,首先使用ifconfig命令查看网卡信息, 通过之前设定的MAC地址找出和两个交换机对应的两个网卡,记下网卡名称。 然后编辑接口配置文件 ```shell vim /etc/config/network ``` 修改其中的LAN和WAN部分,WAN口对应填写了故障转移IP对应MAC地址的网卡,另外一个网卡对应LAN口。 ```shell config interface 'lan' option type 'bridge' option ifname 'eth1' #这个是关联NAT交换机的网卡 option proto 'static' option ipaddr '192.168.1.1' option netmask '255.255.255.0' option ip6assign '60' config interface 'wan' option ifname 'eth0' #这个是关联VM Network交换机的网卡 option proto 'static' option ipaddr '你的故障转移IP' option netmask '255.255.255.255' option gateway 'XX.XX.XX.XX' #你的故障转移IP的网关 option macaddr '00:50:56:44:44:44' #你的故障转移IP的mac地址 #添加以下内容,使得外网与软路由连通 config 'route' 'gateway_route' option 'interface' 'wan' option 'target' 'XX.XX.XX.XX' #故障转移IP的网关 ``` reboot重启虚拟机后,可以通过ping 8.8.8.8来查看是否已经连接外网。 之后可以另外新建虚拟机,带有桌面及浏览器的即可,访问 http://192.168.1.1 进行详细的设置。 参考[https://blog.ni-co.moe/public/538.html](https://blog.ni-co.moe/public/538.html "https://blog.ni-co.moe/public/538.html") #### PS 本例使用了2个IP给ESXI使用,如果是一个IPv4,一个IPv6,可以先用IPv4正常配置,再关闭IPV4管理网络,使用IPv6地址进行ESXI管理(online.net的服务器因为奇葩的IPv6获取方式,不被ESXI支持,所以不行,IPv4给软路由,或者直接利用IPMI来管理,这样可以节省一个故障转移IP的费用。 直接将主IP给软路由使用,设置上需要注意WAN的MAC地址事先改成主IP的物理MAC地址,同时还要在NAT交换机下新建一个管理网络,给与同段IP地址,并给需要远程连接的虚拟机添加端口映射。操作较为复杂,同时风险较大,一个疏忽,就可能造成主机失联。 另外oneprovider家的故障转移IP和配套的网关是比较奇葩的,如果需要单独在一个VM里面设置故障转移IP,是需要特殊设置的,例如在Debian中: ```shell nano /etc/network/interfaces auto eth0 iface eth0 inet static address FAILOVER_HERE netmask 255.255.255.255 broadcast FAILOVER_HERE post-up route add GATEWAY_HERE dev eth0 post-up route add default gw GATEWAY_HERE post-down route del GATEWAY_HERE dev eth0 post-down route del default gw GATEWAY_HERE ``` 另外在windows的VM系统中使用故障转移IP,您需要使用255.255.255.0网络掩码设置网络,然后通过注册表强制它使用255.255.255.255。 再有,online和oneprovider的IPV6也比较奇葩,ESXI不支持配置到管理网络。 ### online已死,hetzner当立 标签: nat, ESXI, openwrt, oneprovider
大神问下
我是实体机六网卡装 ESXi
虚拟两台VM
一台装 Opencart 拨号取得外网ip
一台装 Centos7 可以正常 yum install
但某些程序会回报 Centos7这台的ip是软路由内网IP
也就是192.168.0.1 不是公网ip
我六口网口 每个设置一个vSwitch0
每个vSwitch0又设置一个VM Network
Centos7 设置一个VM Network与软路由相同实现上网
但就是 某些程序显示IP是 软路由IP导致封包传不出去
问下是不 ESXi网络设置方面有误
没用过。
这个可能是软路由的问题吧,要把外网路由到内网的IP上,要不然就DMZ试试