公网 IP 是在互联网上合法的静态 IP 地址。在 QingCloud 系统中,公网 IP 地址与您的账户而非特定的资源关联,您可以将申请到的公网 IP 地址与任意主机(包括私有网络内的主机)/路由器/负载均衡器绑定,并随时可以解绑、再分配到其他资源上。
公网 IP 的绑定模式分为两类: 外部绑定 与 内部绑定 。外部绑定是在主机外部通过网络地址转换( NAT )的方式将公网 IP 地址转换成用户私有网络地址或基础网络地址。内部绑定是通过在主机内部添加一块连接到公网网关的网卡的方式来绑定公网 IP ,该方式需要用户手动为这块网卡配置 IP 地址及相关路由。
注解
目前内部绑定仅支持网络 2.0 区域(北京3区,上海1区和广东2区),并且只允许绑定到主机,不允许绑定到路由器与负载均衡器。
首先在公网 IP 页面申请公网 IP ,并在“绑定方式”一栏选择“内部绑定”。
申请到的公网 IP 会出现在公网 IP 列表页中,这时可将该 IP 地址绑定到主机。右键点击它,选择分配到主机即可。需要注意的是内部绑定的公网 IP 目前只允许绑定到主网卡,并且不能与其他绑定到主网卡的公网 IP 同时存在。
将公网 IP 分配到主机后可以看到主机内多出一块还未分配 IP 地址的公网网卡。如下图所示,此时主机中一共有两块网卡,其中 eth0 为主网卡, IP 地址为 192.168.0.2 ; eth1 为刚刚绑定的公网网卡。
在以内部绑定方式绑定公网 IP 后,还需要手动为主机内的公网网卡进行网络配置,主要包括 IP 地址配置及路由配置。这里仅以 Ubuntu 为例来进行说明,其他系统的配置原理与此类似。
假设刚才绑定的公网 IP 地址为 202.120.111.159 ,在配置文件 /etc/network/interfaces 中添加如下配置来将公网 IP 地址分配到 eth1 :
auto eth1
iface eth1 inet static
address 202.120.111.159
netmask 255.255.255.0
将配置文件保存之后,使用如下命令将配置应用到网卡 eth1 :
#sudo ifup eth1
注解
如果主机中运行了NetworkManager服务,需要在进行上述配置后重启NetworkManager服务,以避免 eth1 的网络配置被擦除
为了让 eth1 可以正常访问公网,还需要进行路由配置。同样在配置文件 /etc/network/interfaces 中添加路由信息,使用 eth1 的网关做为默认路由,网关地址通常为该网段的第一个 IP 地址,添加路由信息后的完整配置如下:
auto eth1
iface eth1 inet static
address 202.120.111.159
netmask 255.255.255.0
post-up ip route replace default via 202.120.111.1 dev eth1
此时在主机中可以访问公网,但是对私有网络及基础网络的访问会出现问题,因此还需要在 eth0 上配置到私有网络及基础网络的路由。
系统中的基础网络地址为 10.0.0.0/8 ,并且假设用户创建的 VPC 网络地址为 192.168.0.0/16 。在配置文件中添加如下配置,将对这些网络的访问的下一跳设置成 eth0 所在网络的网关(默认 IP 地址为 192.168.0.1 ):
auto eth0
iface eth0 inet dhcp
post-up ip route replace 192.168.0.0/16 via 192.168.0.1 dev eth0
post-up ip route replace 10.0.0.0/8 via 192.168.0.1 dev eth0
注解
如需在 Ubuntu Server 16.04.2 LTS 版本中进行网络配置,还需要在 /etc/network/interfaces 文件中将以下语句进行注释: source /etc/network/interfaces.d/*
为了访问内网域名地址,需要再添加一条内网 DNS 的路由信息。内网 DNS 服务器的 IP 地址可以在 /etc/resolv.conf 文件中查看,其中以 100 开头的 IP 地址为内网的 DNS 服务器地址,如下图所示:
假设 DNS 服务器地址为 100.3.3.3 ,将该 IP 地址的路由信息添加到 eth0 网卡对应的配置信息下,如下所示:
post-up ip route replace 100.3.3.3/32 via 192.168.0.1 dev eth0
这里仍然假设绑定的公网 IP 地址为 202.120.111.159 ,网关为 202.120.111.1 ; 用户创建的 VPC 网络地址为 192.168.0.0/16 ,主机在私有网络中的 IP 地址为 192.168.0.2 ,网关为 192.168.0.1 。以 Windows Server 2016 为例来说明网络配置的步骤。
打开 Windows 命令行终端进行路由配置。首先使用 route 命令查看网卡的编号:
route print -4
输出结果如下图所示,其中第一行与第二行分别为私有网络的网络连接与公网的网络连接,每行的第一个数字为网卡的编号。在本示例中,私有网络的网卡编号为 4 ,公网的网卡编号为 6 。
使用如下命令添加路由信息,使用公网网卡的网关做为默认路由,其中 if 指定的参数为公网网卡编号 6 :
route -p add 0.0.0.0 mask 0.0.0.0 202.120.111.1 metric 1 if 6
使用如下命令添加私有网络及基础网络的路由信息,其中 if 指定为私有网络的网卡编号 4 :
route -p add 192.168.0.0 mask 255.255.0.0 192.168.0.1 metric 1 if 4
route -p add 10.0.0.0 mask 255.0.0.0 192.168.0.1 metric 1 if 4
最后需要修改私有网络默认路由的优先级,以保证对于公网的访问使用公网网卡的默认路由:
route -p change 0.0.0.0 mask 0.0.0.0 192.168.0.1 metric 100 if 4
在配置完成后使用 route print -4 查看完整的路由信息,如下图所示:
首先在网卡详细信息页面中查看 DNS 服务器的 IP 地址,如下图所示,其中以 100 开头的 IP 地址为内网的 DNS 服务器地址:
假设 DNS 服务器地址为 100.3.3.3 ,添加路由信息,指定 if 为私有网络的网卡编号 4 :
route -p add 100.3.3.3 mask 255.255.255.255 192.168.0.1 metric 1 if 4
以上示例中假设用户主机加入到了 VPC 网络,并以 192.168.0.1 做为访问内网资源的网关。如果用户主机加入的是基础网络,则需要将上述配置中的 192.168.0.1 修改为基础网络的网关地址,网关地址通常为该网段的第一个 IP 地址。
例如用户主机加入基础网络后的 IP 地址为 10.140.10.15 ,则网关地址为 10.140.10.1 ,并以此 IP 地址做为访问内网资源的网关地址来进行网络配置。
由于内部绑定的公网 IP 是绑定到主机的主网卡上,因此对主网卡应用的防火墙规则都会被应用到公网网卡。当删除主网卡的防火墙时,公网网卡的防火墙也会被同时删除。