VMware虚拟机中配置静态IP

news2024/12/24 9:34:39

目录

  • 环境
  • 原因
  • 基础概念
    • VMnet网络
    • IPV4网络私有地址范围
    • Vmnet8的作用
    • 网路通信的过程
    • 解决方法1:修改k8s组件重新启动
    • 解决方法2:配置静态IP
      • 系统网卡设置
      • 设置虚拟机网关
      • 修改虚拟机网卡

环境

  1. 本机系统:windows11
  2. 虚拟机系统:CentOS-7-x86_64-Minimal-2009
  3. 虚拟机运行时:VMware

原因

在一个地方部署的k8s集群,初始化的时候使用的虚拟机ip为ip1,到了另一个地方虚拟机ip因为dhcp自动变了一个,导致k8s集群用不了了,要修改又非常麻烦。

基础概念

VMnet网络

VMware 的 VMnet 是一组用于虚拟机网络的虚拟网络适配器。VMnet 提供了多种虚拟网络模式,允许虚拟机与主机以及其他虚拟机之间进行通信。这些虚拟网络适配器在 VMware 虚拟化平台上创建,并由 VMware Workstation 和 VMware Fusion 等产品使用。

以下是 VMware 中常见的几种 VMnet 网络模式:

  1. VMnet0 (Bridged) 模式:

    • 模式说明:在这个模式下,虚拟机的网络适配器将与主机的物理网络适配器桥接连接,就像虚拟机直接连接到局域网一样。
    • 适用场景:适用于虚拟机需要直接访问网络上其他设备,并且需要和主机在同一网络中出现的情况。
  2. VMnet1 (Host-Only) 模式:

    • 模式说明:在这个模式下,虚拟机只能与主机进行通信,虚拟机之间以及虚拟机与主机外的网络是隔离的。
    • 适用场景:适用于需要在虚拟机之间进行通信,但不希望虚拟机与主机外的网络通信的情况。
  3. VMnet8 (NAT) 模式:

    • 模式说明:在这个模式下,虚拟机通过主机的网络适配器与外部网络通信,主机充当了一个网络地址转换(NAT)路由器。
    • 适用场景:适用于虚拟机需要访问外部网络,但又不希望直接暴露虚拟机的 IP 地址的情况。
  4. VMnet2、VMnet3、VMnet4 等自定义 Host-Only 模式:

    • 模式说明:这些是用户自定义的 Host-Only 模式,可以创建多个独立的 Host-Only 网络,虚拟机只能在同一网络中通信,与主机和外部网络隔离。
    • 适用场景:适用于需要将虚拟机分成多个独立网络的情况,各个网络之间不互通。

通过 VMware 虚拟网络,你可以根据不同的需求为虚拟机配置不同的网络连接方式,以满足各种不同的场景。虚拟网络的灵活性使得虚拟机能够在不同的网络环境中进行开发、测试和运行,而无需影响到主机的网络配置。

IPV4网络私有地址范围

IPv4 私有地址范围是指一些特定的 IP 地址段,这些地址段被保留用于在私有网络中使用,不用于直接连接到公共互联网。在私有网络中,你可以自由地分配和使用这些地址,而无需向公共互联网注册或支付费用。私有地址在局域网(LAN)、家庭网络、企业网络、虚拟化环境等场景中非常常见。

IPv4 的私有地址范围如下:

  1. 10.0.0.0 到 10.255.255.255

    • 这个范围包含了从 10.0.0.0 到 10.255.255.255 共计 16777216 个 IP 地址。
    • 例如,10.0.0.1、10.1.2.3、10.255.255.254 等都是属于这个范围的私有地址。
  2. 172.16.0.0 到 172.31.255.255

    • 这个范围包含了从 172.16.0.0 到 172.31.255.255 共计 1048576 个 IP 地址。
    • 例如,172.16.0.1、172.16.100.10、172.31.255.254 等都是属于这个范围的私有地址。
  3. 192.168.0.0 到 192.168.255.255

    • 这个范围包含了从 192.168.0.0 到 192.168.255.255 共计 65536 个 IP 地址。
    • 例如,192.168.0.1、192.168.100.50、192.168.255.254 等都是属于这个范围的私有地址。

虽然这些私有地址在私有网络中是唯一且可以重复使用的,但是它们不在公共互联网上可路由。当需要从私有网络中的设备与公共互联网进行通信时,通常使用网络地址转换(NAT)来将私有地址转换成公共 IP 地址,以实现与外部网络的通信。

私有地址范围是为了在 IPv4 地址资源有限的情况下,在局域网等场景中提供了一种有效的方式来管理 IP 地址。而在需要连接到公共互联网时,使用私有地址与公共 IP 地址进行转换,使得较少的公共 IP 地址可以服务于更多的私有网络设备。

私有地址范围的存在是为了解决 IPv4 地址资源有限的问题。IPv4 使用 32 位二进制数表示 IP 地址,理论上总共有约 43亿个唯一的 IPv4 地址。然而,随着互联网的快速发展和设备的普及,IPv4 地址资源已经逐渐不够用了。

私有地址范围的引入是为了在局域网、企业内部网络等私有网络环境中,通过重复使用一组特定的 IP 地址,实现了更有效的 IP 地址管理。这样,即使全球范围内 IPv4 地址耗尽,私有网络仍然能够继续使用私有地址。

私有地址范围的优点和用途包括:

  1. 节省公共 IP 地址资源: 在全球范围内,IP 地址已经面临耗尽的问题。通过在私有网络中使用私有地址范围,可以节省公共 IP 地址资源,使得公共 IP 地址能够更有效地被分配给互联网可访问的设备。

  2. 灵活的 IP 地址分配: 在私有网络中,使用私有地址范围可以实现更灵活的 IP 地址分配。你可以根据实际需要自由地分配和使用 IP 地址,而无需向任何注册机构申请。

  3. 安全性: 私有地址范围使得在私有网络中的设备不直接暴露在公共互联网中,从而增加了一定的网络安全性。通过网络地址转换(NAT)技术,私有网络中的设备可以间接访问公共互联网,而公共互联网上的设备不能直接访问私有网络中的设备。

总结来说,私有地址范围的引入是为了解决 IPv4 地址资源不足的问题,并且在私有网络环境中实现了更灵活、更有效的 IP 地址管理。这使得私有网络能够继续正常运行,即使全球范围内的 IPv4 地址已经用尽。

Vmnet8的作用

在 VMware 虚拟化软件中,VMnet8 是一种虚拟网络设备,通常用于 VMware Workstation 或 VMware Fusion 等产品中的 NAT(网络地址转换)网络模式。VMnet8 充当着网络地址转换器(NAT Router)的角色,它在虚拟化环境中扮演着以下决策和功能:

  1. 网络地址转换(NAT): VMnet8 提供了网络地址转换功能,允许虚拟机通过虚拟化软件的 NAT 网络模式与主机系统连接到外部网络(通常是公共互联网)。当虚拟机发送数据包到外部网络时,VMnet8 接收数据包并将其源 IP 地址转换为主机系统的 IP 地址,以便响应数据包的目标服务器可以正确地将数据包返回给虚拟机。这使得虚拟机可以间接访问公共互联网,而不需要分配独立的公共 IP 地址。

  2. DHCP 服务器: VMnet8 还可以充当虚拟化环境中的 DHCP 服务器。当虚拟机连接到 VMnet8 网络时,VMnet8 可以为虚拟机自动分配 IP 地址、子网掩码、网关地址等网络参数,从而实现自动化的 IP 地址配置。

  3. DNS 代理: VMnet8 可以充当 DNS 代理,使得虚拟机能够解析域名。当虚拟机需要解析域名时,VMnet8 可以将 DNS 请求转发到主机系统或其他 DNS 服务器,获取域名对应的 IP 地址,并返回给虚拟机。

  4. 虚拟网络隔离: VMnet8 提供了虚拟网络的隔离功能,使得虚拟机之间相互隔离,并且与主机系统之间也有一定的隔离。这种隔离确保了虚拟机之间的网络流量不会相互干扰,同时也保护了主机系统的网络安全。

总的来说,VMnet8 在虚拟化环境中是一个重要的虚拟网络设备,它通过网络地址转换、DHCP 和 DNS 代理等功能,为虚拟机提供了网络连接和访问外部网络的能力,并确保虚拟机之间和主机系统之间的网络隔离和安全性。

网路通信的过程

网络通信是一个复杂的过程,涉及多个物理硬件和协议的配合。以下是从你的主机获得一个私有 IP 地址开始,到请求公网信息的整个过程,简单概括的步骤:

  1. 获取私有 IP 地址: 当你的主机连接到一个局域网(例如家庭网络或企业局域网)时,它会通过 DHCP 协议向网络中的 DHCP 服务器请求 IP 地址。DHCP 服务器会分配一个私有 IP 地址给你的主机。

  2. 数据封装: 当你的主机要发送请求到公网时,它会根据目标服务器的 IP 地址、子网掩码和网关等信息,将请求数据封装成数据包(通常是以太网帧)。

  3. 发送数据包: 数据包被发送到本地网络的交换机。交换机会根据目标 IP 地址和 MAC 地址查找转发表,决定将数据包发送到哪个端口,以便达到目标设备。

  4. 路由选择: 数据包到达局域网的路由器(通常是网关),路由器根据自己的路由表,确定将数据包发送到公共互联网的下一跳路由器。(通常是你的网络服务提供商的路由器)

  5. NAT 转换: 在路由器将数据包发送到公共互联网之前,进行网络地址转换(NAT)。在这一步,路由器会将数据包的源 IP 地址(也就是你的主机的私有 IP 地址)转换为路由器在公共互联网上拥有的公共 IP 地址。这样做的目的是让公网服务器能够正确地将响应数据发送回路由器(即转换后的公共 IP 地址)。(公网IP在运营商手里

  6. 公网传输: 数据包经过一系列的公共互联网路由器、交换机和服务器,最终到达目标服务器。

  7. 服务器响应: 目标服务器收到请求后,会处理请求并生成响应数据。响应数据会经过相同的网络路径,通过公共互联网回到你的主机所在的网络。

  8. NAT 转换回复: 响应数据通过路由器时,路由器会将公共 IP 地址转换回私有 IP 地址,以便正确地将数据包转发给你的主机。

  9. 数据包解封: 你的主机接收到响应数据包后,根据协议和端口信息解封数据包,得到服务器的响应。

  10. 完成通信: 服务器的响应已经到达你的主机,至此,网络通信过程完成。

在整个网络通信过程中,数据包会通过多个物理硬件设备(如交换机、路由器、服务器等)进行转发和传输,通过网络地址转换(NAT)和路由选择,确保数据能够在不同网络之间正确地传递。

解决方法1:修改k8s组件重新启动

当 Kubernetes 集群的节点 IP 发生变化时,可能会导致集群中的通信和连接问题。为了解决这个问题,你需要进行以下步骤:

  1. 更新节点 IP 地址:首先,你需要登录到每个 Kubernetes 节点,并手动更新网络配置以将新的 IP 地址应用到节点上。具体的网络配置文件可能因操作系统的不同而有所不同。在大多数 Linux 发行版中,你可以编辑 /etc/network/interfaces/etc/sysconfig/network-scripts/ifcfg-<interface> 文件来更改 IP 地址。

  2. 更新 kubelet 配置:在每个节点上,你还需要更新 kubelet 的配置文件,以反映新的节点 IP 地址。kubelet 是在每个节点上运行的 Kubernetes 组件,它需要知道节点的正确 IP 地址以与其他节点和控制平面通信。

  3. 更新 etcd 配置(如果需要):如果你的 Kubernetes 集群使用外部 etcd(分离的 etcd 集群),那么你还需要更新 etcd 配置,使其使用新的节点 IP 地址。这通常涉及到更新 etcd 集群的配置文件,并重新启动 etcd。

  4. 更新其他组件配置:除了 kubelet 和 etcd,如果有其他与节点 IP 地址相关的配置(如 CoreDNS、kube-proxy 等),也需要进行相应的更新。

  5. 重新启动组件:完成以上配置更改后,你需要重新启动相关的 Kubernetes 组件,以使更改生效。

需要注意的是,修改节点 IP 地址是一项敏感的操作,并且可能导致集群中断。在进行这样的更改之前,最好在进行更改之前备份重要的数据和配置文件。

解决方法2:配置静态IP

系统网卡设置

IP地址在私有域内随便配置,子网掩码跟随IP地址,默认网关配置.1:

(在较小的网络中,经常会将子网的第一个可用地址分配给网关。假设使用了 xx.xx.xx.0/24 的子网,第一个可用地址就是 xx.xx.xx.1(网络地址(xx.xx.xx.0)用于标识整个子网,表示这是一个子网的起始地址。),而最后一个可用地址是 xx.xx.xx.254(广播地址(xx.xx.xx.255)用于将数据包广播到子网中的所有设备,所有在该子网中的设备都会接收到广播消息。),这样设计可以更好地管理 IP 地址的分配。)

在这里插入图片描述

设置虚拟机网关

点击导航栏上面的【编辑】–>【虚拟网络编辑器】,并以【管理员】的身份打开虚拟机。
在这里插入图片描述
点击【VMnet8 NAT模式】,取消使用本地使用本地dhcp服务,配置网络段(子网ip段)为xxx.xxx.xxx.xxx,点击NAT设置。

修改虚拟机网卡

vim /etc/sysconfig/network-scripts/ifcfg-ens33(网卡名称也可能是其他名称)

将BOOTPROTO字段修改为static(静态),如果ONBOOT字段为no,则将其修改为yes(开机自启)。然后添加IP地址、子网掩码、网关、以及DNS。

在这里插入图片描述
修改完成后重启网卡

systemctl restart network

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/807214.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

【AutoGluon_03】保存模型并调用模型

在训练好autogluon模型之后&#xff0c;可以将模型进行保存。之后当有新的数据需要使用autogluon进行预测的时候&#xff0c;就可以直接加载原来训练好的模型进行训练。 import pandas as pd from sklearn.model_selection import train_test_split from autogluon.tabular im…

第九章:stack类

系列文章目录 文章目录 系列文章目录前言stack的介绍stack的使用成员函数使用stack 总结 前言 stack是容器适配器&#xff0c;底层封装了STL容器。 stack的介绍 stack的文档介绍 stack是一种容器适配器&#xff0c;专门用在具有后进先出操作的上下文环境中&#xff0c;其删除…

数字孪生技术从哪些方面为钢铁冶炼厂提高管理效率?

数字孪生系统是一种数字化技术&#xff0c;可以将物理世界中的实体对象、过程和数据进行数字化建模&#xff0c;以实现对其的可视化、模拟和优化。在炼铁生产管控中&#xff0c;数字孪生系统可以为以下方面提供支持&#xff1a; 炼铁生产线的可视化和控制&#xff1a;通过数字…

Web3 叙述交易所授权置换概念 编写transferFrom与approve函数

前文 Web3带着大家根据ERC-20文档编写自己的第一个代币solidity智能合约 中 我们通过ERC-20一种开发者设计的不成文规定 也将我们的代币开发的很像个样子了 我们打开 ERC-20文档 我们transfer后面的函数就是transferFrom 这个也是 一个账号 from 发送给另一个账号 to 数量 val…

指针初阶(1)

文章目录 目录1. 指针是什么2. 指针变量的类型2.1 指针变量-整数2.2 指针变量的解引用 3. 野指针3.1 野指针成因3.2 如何规避野指针 4. 指针运算4.1 指针-整数4.2 指针-指针4.3 指针的关系运算 附&#xff1a; 目录 指针是什么指针变量的类型野指针指针运算指针和数组二级指针…

redis集群设置

先下载redis数据库可以在一台机器上设置redis集群高可用 cd /etc/redis/ mkdir -p redis-cluster/redis600{1..6} for i in {1..6} do cp /opt/redis-5.0.7/redis.conf /etc/redis/redis-cluster/redis600$i cp /opt/redis-5.0.7/src/redis-cli /opt/redis-5.0.7/src/redis-s…

号外号外!首届开源 AI 游戏挑战赛圆满结束!

&#x1f917; 宝子们可以戳 阅读原文 查看文中所有的外部链接哟&#xff01; 北京时间 7 月 8 日到 7 月 10 日&#xff0c; 我们举办了首届开源 AI 游戏开发挑战赛。这是一场激动人心的赛事活动&#xff0c;游戏开发者在紧迫的 48 小时内使用 AI 创造、创新有创意的游戏。 本…

gazebo学习记录(杂乱)

一、完整系列教程 如何使用gazebo进行机器人仿真&#xff08;很重要&#xff09;&#xff1a;https://zhuanlan.zhihu.com/p/367796338 基础教程和关键概念讲解&#xff08;很重要&#xff09;&#xff1a;https://zhuanlan.zhihu.com/p/363385163 古月居&#xff1a;http://w…

Web自动化测试高级定位xpath

高级定位-xpath 目录 xpath 基本概念xpath 使用场景xpath 语法与实战 xpath基本概念 XPath 是一门在 XML 文档中查找信息的语言XPath 使用路径表达式在 XML 文档中进行导航XPath 的应用非常广泛XPath 可以应用在UI自动化测试 xpath 定位场景 web自动化测试app自动化测试 …

Selenium多浏览器处理

Python 版本 #导入依赖 import os from selenium import webdriverdef test_browser():#使用os模块的getenv方法来获取声明环境变量browserbrowser os.getenv("browser").lower()#判断browser的值if browser "headless":driver webdriver.PhantomJS()e…

每日一题——删除有序数组中的重复项

删除有序数组中的重复项 题目链接 注&#xff1a;本题所采用的方法是建立在移除元素的基础之上的&#xff0c;如果大家对双指针的方法不大了解&#xff0c;或者不会做《移除元素》这一题&#xff0c;建议先去看看&#x1f449;传送门 具体步骤 定义两个指针slow和fast&#…

计算并展示指定文件夹的大小

背景需求 有时候电脑里磁盘空间越来越小&#xff0c;不得不删除一些占空间大的文件。最笨的方法就是对某一个文件夹下一个一个查看大小&#xff0c;效率太慢。 效果图 Code import os import matplotlib.pyplot as plt plt.rcParams[font.family] sans-serif # 设置字体为…

Jenkins pipeline 脚本语言学习支持

1 引言 Groovy是用于Java虚拟机的一种敏捷的动态语言&#xff0c;它是一种成熟的面向对象编程语言&#xff0c;既可以用于面向对象编程&#xff0c;又可以用作纯粹的脚本语言。 使用该种语言不必编写过多的代码&#xff0c;同时又具有闭包和动态语言中的其他特性。 Groovy是一…

大模型开发(十四):使用OpenAI Chat模型 + Google API实现一个智能收发邮件的AI应用程序

全文共1.2w余字&#xff0c;预计阅读时间约24~40分钟 | 满满干货(附代码)&#xff0c;建议收藏&#xff01; 本文目标&#xff1a;将Gmail API接入Chat模型&#xff0c;编写一个智能收发邮件的AI应用程序 代码下载点这里 一、背景 大模型应用开发从谷歌云入手进行学习和AI…

Python爬虫的urlib的学习(学习于b站尚硅谷)

目录 一、页面结构的介绍  1.学习目标  2.为什么要了解页面&#xff08;html&#xff09;  3. html中的标签&#xff08;仅介绍了含表格、无序列表、有序列表、超链接&#xff09;  4.本节的演示 二、Urllib  1.什么是互联网爬虫&#xff1f;  2.爬虫核心  3.爬虫…

Sentinel 容灾中心的使用

Sentinel 容灾中心的使用 往期文章 Nacos环境搭建Nacos注册中心的使用Nacos配置中心的使用 熔断/限流结果 Jar 生产者 spring-cloud-alibaba&#xff1a;2021.0.4.0 spring-boot&#xff1a;2.6.8 spring-cloud-loadbalancer&#xff1a;3.1.3 sentinel&#xff1a;2021.0…

如何快速模拟一个后端 API

第一步&#xff1a;创建一个文件夹&#xff0c;用来存储你的数据 数据&#xff1a; {"todos": [{ "id": 1, "text": "学习html44", "done": false },{ "id": 2, "text": "学习css", "…

只会“点点点”,凭什么让开发看的起你?

众所周知&#xff0c;如今无论是大厂还是中小厂&#xff0c;自动化测试基本是标配了&#xff0c;毕竟像双 11、618 这种活动中庞大繁杂的系统&#xff0c;以及多端发布、多版本、机型发布等需求&#xff0c;但只会“写一些自动化脚本”很难胜任。这一点在招聘要求中就能看出来。…

Android 面试题 优化 (一)

&#x1f525; Android性能优化指标 &#x1f525; ​ &#x1f525; 包体积优化 &#x1f525; 安装包的大小会影响用户的安装率&#xff0c;如果一个包的太大&#xff0c;用户安装的意愿会大大降低。 经过包分析可以看到&#xff0c;安装包最大的部分是资源和第三方库&#…

奥迪A3:最新款奥迪A3内饰设计及智能科技应用

奥迪A3一直以来都是奥迪的入门级车型&#xff0c;但这并不意味着它在科技和内饰方面会有所退步。最新款奥迪A3的内饰设计和智能科技应用让人们再次惊叹奥迪的创新能力。 内饰设计 奥迪A3最新款的内饰设计引入了奥迪最新的设计元素&#xff0c;比如8.8英寸的中控显示屏&#xf…