AskOverflow.Dev

AskOverflow.Dev Logo AskOverflow.Dev Logo

AskOverflow.Dev Navigation

  • 主页
  • 系统&网络
  • Ubuntu
  • Unix
  • DBA
  • Computer
  • Coding
  • LangChain

Mobile menu

Close
  • 主页
  • 系统&网络
    • 最新
    • 热门
    • 标签
  • Ubuntu
    • 最新
    • 热门
    • 标签
  • Unix
    • 最新
    • 标签
  • DBA
    • 最新
    • 标签
  • Computer
    • 最新
    • 标签
  • Coding
    • 最新
    • 标签
主页 / server / 问题 / 826457
Accepted
Jeff
Jeff
Asked: 2017-01-16 16:38:47 +0800 CST2017-01-16 16:38:47 +0800 CST 2017-01-16 16:38:47 +0800 CST

Google Cloud Compute 将 /20 子网掩码设置为内部接口

  • 772

谷歌云使用 DHCP 为实例分配 IP。出于某种原因,即使您在自己的 /20 网络上,他们也会使用 /32 网络掩码分配地址。我发现如果我将实例公共 IP 设置为静态,我可以进入 /etc/syconfig/network-scripts/ifcfg-eth0,将 BOOTPROTO 从 DHCP 更改为 STATIC,然后手动设置 IP 设置并使用 /20 或 / 24 子网,它将在重新启动后继续存在。但是,在这样做之后,我失去了与内部网络上的该主机通信的能力。如果实例使用 DHCP 参数,我可以毫无问题地在 LAN 上的主机之间进行通信。

在线阅读后,我发现这篇文章https://cloud.google.com/compute/docs/networking有一节讨论对 DNS 和 resolv.conf 进行更改以及使用 dhcp.lease 配置来执行此操作。当我查看这个文件时,我看到它有“选项子网掩码 255.255.255.255;” 环境。如果我更改网络掩码并重新启动网络,则更改将恢复。

仅供参考:

instance-2 is using default DHCP and has the IP 10.128.0.5
instance-4 is using my custom static config and has the IP 10.128.0.6

我还比较了具有默认 DHCP 地址的实例和具有我的静态 IP 设置的实例之间的路由表。

实例 2(DHCP):

[root@instance-2 network-scripts]# route -n
Kernel IP routing table
Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
0.0.0.0         10.128.0.1      0.0.0.0         UG    100    0        0 eth0
10.128.0.1      0.0.0.0         255.255.255.255 UH    100    0        0 eth0
10.128.0.5      0.0.0.0         255.255.255.255 UH    100    0        0 eth0
169.254.169.254 10.128.0.1      255.255.255.255 UGH   100    0        0 eth0

instance-4(自定义静态):

[root@instance-4 NetworkManager]# route -n
Kernel IP routing table
Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
0.0.0.0         10.128.0.1      0.0.0.0         UG    100    0        0 eth0
10.128.0.0      0.0.0.0         255.255.240.0   U     100    0        0 eth0

然后我手动将不同的路由添加到 instance-4:

[root@instance-4 NetworkManager]# route -n
Kernel IP routing table
Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
0.0.0.0         10.128.0.1      0.0.0.0         UG    100    0        0 eth0
10.128.0.0      0.0.0.0         255.255.240.0   U     100    0        0 eth0
10.128.0.1      0.0.0.0         255.255.255.255 UH    0      0        0 eth0
10.128.0.6      0.0.0.0         255.255.255.255 UH    0      0        0 eth0
169.254.169.254 10.128.0.1      255.255.255.255 UGH   0      0        0 eth0

但这也没有解决问题。

instance-4 网络脚本:

TYPE=Ethernet
BOOTPROTO=static
DEFROUTE=yes
IPV4_FAILURE_FATAL=no
NAME=eth0
UUID=cde7258f-6857-4015-86de-6bb520fcd550
ONBOOT=yes
PEERDNS=yes
PEERROUTES=yes
MTU=1460
PERSISTENT_DHCLIENT="y"
NETMASK=255.255.240.0
IPADDR=10.128.0.6
DNS1=169.254.169.254
GATEWAY=10.128.0.1

instance-2 网络脚本

TYPE=Ethernet
BOOTPROTO=dhcp
DEFROUTE=yes
IPV4_FAILURE_FATAL=no
NAME=eth0
UUID=cde7258f-6857-4015-86de-6bb520fcd550
ONBOOT=yes
PEERDNS=yes
PEERROUTES=yes
MTU=1460
PERSISTENT_DHCLIENT="y"

如何正确获取接口以使用 /32 以外的网络掩码,并且仍然能够与 LAN 上的其他实例通信?

操作系统是 CentOS 7

我需要 /32 以外的网络掩码,以便我可以安装 FreeIPA。如果网络掩码是 /32,它将不会安装。

google-cloud-platform google-compute-engine
  • 2 2 个回答
  • 2801 Views

2 个回答

  • Voted
  1. Best Answer
    Jeff
    2017-01-17T10:38:06+08:002017-01-17T10:38:06+08:00

    我还没有找到解决谷歌云网络掩码问题的方法,但我确实发现 IPA 项目已经解决了这个问题并发布了一个更新,只是为了使其与 GCloud 兼容。ipa 4.4.2 及更高版本不会有这个问题。但是,到目前为止,该版本还没有向后移植到 centos。

    这是要手动解决的补丁信息。

    https://git.fedorahosted.org/cgit/freeipa.git/commit/?id=dee950d88ec969b36c1271a3ef9fe4e4f5b48b01

    这是 ipa 项目网站上的实际错误报告。

    https://fedorahosted.org/freeipa/ticket/5814

    这是我向谷歌提交的关于网络连接方面的错误。

    https://code.google.com/p/google-compute-engine/issues/detail?id=522&sort=stars&colspec=ID%20Type%20Component%20Resource%20Service%20Status%20Stars%20Summary%20Log

    只需将所有这些都放在那里,以便其他遇到此问题的人可以找到一些答案。

    • 2
  2. kamihack
    2019-06-14T15:26:43+08:002019-06-14T15:26:43+08:00

    对于从 Google 搜索到这里的任何人,这是我在 GCE 文档中找到的内容。逐字引用:

    要使用 /32 以外的网络掩码配置接口,您应该使用标志 --guest-os-features MULTI_IP_SUBNET 创建一个映像并使用它来创建您的实例。例如,如果您使用的是基于 debian-9 的映像,则可以使用以下命令创建映像:

    gcloud compute images create debian-9-multi-ip-subnet \
         --source-disk debian-9-disk \
         --source-disk-zone us-west1-a \
         --guest-os-features MULTI_IP_SUBNET
    
    • 2

相关问题

  • 带有 OpenVPN 的 Google Compute Engine 上的 VPN 服务器

  • 如果您失去了 Google Apps 的管理员权限,如何恢复?

  • 云有多大?[关闭]

  • 谷歌应用引擎中的 joomla

  • 无需短信即可注册 Google AppEngine?

Sidebar

Stats

  • 问题 205573
  • 回答 270741
  • 最佳答案 135370
  • 用户 68524
  • 热门
  • 回答
  • Marko Smith

    新安装后 postgres 的默认超级用户用户名/密码是什么?

    • 5 个回答
  • Marko Smith

    SFTP 使用什么端口?

    • 6 个回答
  • Marko Smith

    命令行列出 Windows Active Directory 组中的用户?

    • 9 个回答
  • Marko Smith

    什么是 Pem 文件,它与其他 OpenSSL 生成的密钥文件格式有何不同?

    • 3 个回答
  • Marko Smith

    如何确定bash变量是否为空?

    • 15 个回答
  • Martin Hope
    Tom Feiner 如何按大小对 du -h 输出进行排序 2009-02-26 05:42:42 +0800 CST
  • Martin Hope
    Noah Goodrich 什么是 Pem 文件,它与其他 OpenSSL 生成的密钥文件格式有何不同? 2009-05-19 18:24:42 +0800 CST
  • Martin Hope
    Brent 如何确定bash变量是否为空? 2009-05-13 09:54:48 +0800 CST
  • Martin Hope
    cletus 您如何找到在 Windows 中打开文件的进程? 2009-05-01 16:47:16 +0800 CST

热门标签

linux nginx windows networking ubuntu domain-name-system amazon-web-services active-directory apache-2.4 ssh

Explore

  • 主页
  • 问题
    • 最新
    • 热门
  • 标签
  • 帮助

Footer

AskOverflow.Dev

关于我们

  • 关于我们
  • 联系我们

Legal Stuff

  • Privacy Policy

Language

  • Pt
  • Server
  • Unix

© 2023 AskOverflow.DEV All Rights Reserve