【教程】可视化配置多台主机通过交换机实现互联通信

转载请注明出处:小锋学长生活大爆炸[xfxuezhagn.cn]

如果本文帮助到了你,欢迎[点赞、收藏、关注]哦~

目录

场景定义

配置步骤

1. 确认网络接口名称

2. 配置静态 IP 地址

3. 验证连接

主机间速率测试


场景定义

有两台主机通过网线与交换机相连。主机操作系统是“ubuntu”,主机A连接交换机的网卡接口是“ens1f1、ens1f0”,主机B连接交换机的网卡接口是“ens2f1、ens2f0”。交换机没有额外的连接(如没有接入互联网),它仅与两台主机有网线连接。基于以上信息,如何配置使得两台主机能通过交换机进行通信?

配置步骤

1. 确认网络接口名称

在每台主机上,使用以下命令查看可用的网络接口:

ip link show | grep ens*f*

这将列出所有网络接口。例如,可能会看到类似 ens1f0ens1f1 的接口名称。


可以通过以下指令来详细查看网口信息和类型:

需先安装nmcli:

# Debian/Ubuntu 系统
sudo apt install network-manager network-manager-gnome

# CentOS 7 系统
sudo yum install NetworkManager

# CentOS/RHEL 系统
sudo yum install NetworkManager

还需要启动NetworkManager服务:

sudo systemctl start NetworkManager
nmcli device status  # 查看网络设备状态

  1. DEVICE:网络接口的名称。

  2. TYPE:网络接口的类型(如以太网、桥接、隧道、环回)。

  3. STATE:网络接口的当前状态(如已连接、未管理)。

  4. CONNECTION:与该设备关联的连接配置名称。

  • eno1:以太网接口,已连接,使用 Wired connection 1

  • docker0:桥接设备,已连接,用于 Docker 容器网络。

  • eno2:以太网接口,已连接,使用 Wired connection 2

  • ens1f0:以太网接口,已连接,使用 netplan-ens1f0

  • ztk4jieaxmztklhzrkoh:隧道接口(如 VPN 或其他隧道协议),已连接。

  • ens1f1:以太网接口,已连接,使用 Wired connection 5

  • veth3001267:虚拟以太网接口,未管理(通常用于容器网络)。

  • lo:环回接口(本地回环),未管理。

注意:

  • 如果STATE显示connected,那就没问题,表示该网口已连接并且已启用。
  • 如果STATE显示unavailable,可以通过"ip link show"来查看状态。如果是网口没启用(显示DOWN),可以通过"sudo ip link set ens1f0 up"来启用。注意改ens1f0为你的。
  • 如果STATE显示unmanaged,可能该网卡可能被系统配置为不被 NetworkManager 管理,可以使用"sudo nmcli device set ens1f0 managed yes"来手动设置网卡为 managed。注意改ens1f0为你的。不过在设置前需要特别注意,检查这个网卡是不是有其他用处!

nmcli c show  # 网络连接配置

  1. NAME:连接配置的名称。

  2. UUID:连接配置的唯一标识符。

  3. TYPE:连接类型(如以太网、桥接、隧道)。

  4. DEVICE:当前使用的网络接口(如果没有绑定设备,则显示 --)。

  • Wired connection 1:以太网连接,绑定到 eno1

  • Wired connection 2:以太网连接,绑定到 eno2

  • docker0:桥接连接,绑定到 docker0

  • netplan-ens1f0:以太网连接,绑定到 ens1f0

  • ztk4jieaxmztklhzrkoh:隧道连接,绑定到对应的隧道接口。

  • Wired connection 5:以太网连接,绑定到 ens1f1

  • Wired connection 3Wired connection 4:以太网连接,但未绑定到任何设备(可能是未使用的配置)。

通过以上检测,就可以看出:

  1. 物理以太网接口

    1. eno1eno2ens1f0ens1f1 是物理以太网接口,分别绑定到不同的连接配置。

  2. 虚拟网络设备

    1. docker0 是 Docker 的桥接设备,用于容器网络。

    2. ztk4jieaxmztklhzrkoh 是隧道接口(如 VPN)。

    3. veth3001267 是虚拟以太网接口(通常用于容器)。

  3. 环回接口

    • lo 是本地回环接口,未管理。

  4. 未使用的连接配置

    • Wired connection 3Wired connection 4 是未绑定设备的以太网连接配置。

这表明系统中有多个物理和虚拟网络接口,配置了多种网络连接(包括以太网、桥接、隧道等)。

更进一步地,要查看特定连接配置的详细信息,可以用:

nmcli connection show 'Wired connection 4'

要查看特定网卡的详细信息,可以用:

nmcli device show ens1f0

更多说明:

  • 更多网口配置相关的内容,可以参考这篇博客:【linux】配置网口IP|RDMA配置IP|ens、eno、enp网口的区别|ping不通问题排查|DNS设置
  • nmcli、nmtui创建的配置文件在:/etc/NetworkManager/system-connections/

  • nmcli的常用命令:
步骤命令说明
查看网络连接nmcli connection show显示当前所有网络连接
配置静态IP地址nmcli connection modify "Wired connection 1" ipv4.addresses "192.168.1.100/24" ipv4.gateway "192.168.1.1" ipv4.dns "8.8.8.8 8.8.4.4" ipv4.method manual设置IP地址、网关和DNS
激活网络连接nmcli connection up "Wired connection 1"激活网络连接
检查连接状态nmcli device status查看设备连接状态
查看IP配置nmcli device show eth0显示设备的IP配置信息
测试网络连通性ping -c 4 192.168.1.1测试与网关的连通性
查看路由表ip route显示当前路由表
检查DNS解析nslookup google.com测试DNS解析是否正常
修改默认网关nmcli connection modify "Wired connection 1" ipv4.gateway "192.168.1.1"如果默认网关配置错误,可以通过该命令修改

以上步骤是为了更好的了解现有的连接配置和网卡信息。

2. 确定主机连接同一交换机

要确定两台未配置IP地址且无法访问交换机的服务器是否连接至同一台交换机,可以利用LLDP/CDP协议。LLDP(Link Layer Discovery Protocol)是一种网络发现协议,如果交换机支持 LLDP,并且服务器网卡的驱动支持 LLDP,可以使用 lldpd 来发现交换机信息。

安装LLDP工具

  • 在两台服务器上安装lldpad

apt install lldpd  # Debian/Ubuntu
yum install lldpd  # CentOS/RHEL
  • 启动服务并启用LLDP(注意ens1f0可能不一样):
sudo systemctl start lldpad

查询交换机信息

  • 在两台主机上,使用 lldpctl 查看交换机信息
sudo lldpctl

    lldpctl 输出解释:

    接口信息

    Interface: ens1f1, via: LLDP, RID: 1, Time: 0 day, 00:00:01
    • Interface: ens1f1 → 主机上的物理网卡 ens1f1
    • via: LLDP → 该信息是通过 LLDP 协议获取的。
    • RID: 1 → 这个是 LLDP 记录的唯一标识符(Record ID),一般用于内部索引。
    • Time: 0 day, 00:00:01 → 这是 LLDP 信息的存活时间,表示此信息在 1 秒前收到(通常 LLDP 信息会定期更新)。

    交换机(Chassis)信息

      Chassis:
        ChassisID:    mac 1c:34:da:a8:b5:40
        SysName:      switch-a48bbc
        SysDescr:     MSN2100,Onyx,SWv3.9.0300
        Capability:   Bridge, on
        Capability:   Router, off
    
    • ChassisID: mac 1c:34:da:a8:b5:40 → 这是交换机的 MAC 地址,1c:34:da:a8:b5:40
    • SysName: switch-a48bbc → 交换机的主机名(名称),在网络管理中通常用于识别设备。
    • SysDescr: MSN2100, Onyx, SWv3.9.0300 → 交换机的型号和操作系统版本:
      • MSN2100 → 交换机型号(Mellanox SN2100)。
      • Onyx → Mellanox Onyx 操作系统。
      • SWv3.9.0300 → 交换机的固件/软件版本 3.9.0300。
    • Capability: Bridge, on → 交换机具备 二层交换(Bridge)功能,并且已启用。
    • Capability: Router, off → 交换机具备 三层路由(Router)功能,但未启用。

    端口(Port)信息

      Port:
        PortID:       ifname Eth1/1
        PortDescr:
        TTL:          120
    
    • PortID: ifname Eth1/1 → 主机 ens1f1 连接到了交换机的 Eth1/1 端口
    • PortDescr: → 端口描述,交换机端口的备注信息(这里没有填写)。
    • TTL: 120 → LLDP 信息的生存时间(Time To Live),单位为秒,意味着如果 120 秒内没有更新,这条 LLDP 记录将被删除。

    对比方法:

    • SysName(交换机名称)是否相同?
    • ChassisID(MAC 地址)是否相同?
    • 交换机端口 PortID 是否不同?
      • 如果是不同的 EthX/X 端口,则说明两台服务器连接到了同一台交换机的不同端口。
      • 如果 PortID 完全相同,那可能是一个 LAG/LACP 端口组,或者是错误配置。

    找到主机上ChassisID相同的网口,表示他们连接的是同一个交换机。注意,如果不是连接的同一个交换机,那么后续的配置即使完成了,主机之间也是无法通信的。

    3. 配置静态 IP 地址

    先查看那些网段被占用了:

    ifconfig

    先安装nmtui,后面要用到:

    # Debian/Ubuntu 系统
    sudo apt install network-manager network-manager-gnome
    
    # CentOS 7 系统
    sudo yum install NetworkManager-tui
    
    # CentOS/RHEL 系统
    sudo yum install nm-connection-editor

    假设选择在每台主机上使用 ens1f0 接口进行通信,按照以下步骤配置静态 IP 地址:

    主机 A:

    打开终端,输入以下命令:

    sudo nmtui

    按以下步骤执行:

    修正说明:修改后,上图中要“手动Deactivate、再Activate一下”,不然可能不会生效。

    如果要用nmcli进行设置,参考命令:

    nmcli connection modify "Wired connection 4" ipv4.addresses "192.168.3.10/24" ipv4.method manual

    激活该配置:

    nmcli connection up "Wired connection 4"

    然后就可以看到设置完成了:

    主机 B:

    与主机A的操作一样,只是在设置ip时候,注意不要用一样的。比如主机A是192.168.3.10/24,那么主机B可以设置为192.168.3.11/24。

    4. 验证连接

    先清空arp表:

    sudo ip -s -s neigh flush all

    在完成上述配置后,您可以通过 ping 命令测试两台主机之间的连接:

    • 在主机 A 上,输入:

      ping 192.168.3.11
    • 在主机 B 上,输入:

      ping 192.168.3.10

    如果配置正确,您将看到来自对方主机的响应,表示两台主机已经通过交换机成功建立通信。

    注意,如果你的交换机不支持或者关闭了router,那需要通过arp方式:

    sudo apt install arping
    
    sudo arping 192.168.3.11

    主机间速率测试

    这里测试一下这两台主机之间的通信速率。

    1、首先在两台主机上安装 iperf

    # Debian/Ubuntu 系统
    sudo apt install iperf
    
    # CentOS/RHEL 系统
    sudo yum install iperf

    2、在主机A上启动一个 iperf 服务器,监听端口 5001

    iperf -s -p 5001

    3、在主机B上运行 iperf 客户端

    iperf -c 192.168.3.11 -p 5001 -t 10
    • -c:指定服务器的 IP 地址。

    • -p:指定服务器的端口号。

    • -t:指定测试时间(单位:秒)。

    在主机 B 上,iperf 会显示测试结果,包括带宽、延迟等信息。

    无法通信的可能情况

    1、ip冲突

    可能你设置的静态ip与其他服务的ip冲突了。通过以下指令来查看arp表:

    arp -a

    可以看到192.168.3.x的网段已经被用了。因此在配置静态IP时候,可以选择其他网段,如192.168.4.x。

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

    如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

    相关文章

    HTTP/2 服务器端推送:FastAPI实现与前端集成指南

    HTTP/2 服务器端推送:FastAPI实现与前端集成指南 注意:本文末尾附有完整示例代码,文中仅展示核心关键代码。完整代码可在GitHub仓库获取。 本文将会讲解HTTP2协议和相关配置实践。但是不要混淆,SSE的实现完全基于HTTP/1.1的持久连…

    【CSS—前端快速入门】CSS 常用样式

    CSS 常用 CSS 样式 1. 前端样式查询网站: MDN Web Docs (mozilla.org) w3school 2. border 2.1 借助 MDN 了解 border 我们借助 MDN 网站来学习 border 样式的使用: 2.2 border 常见属性 保存代码,打开页面: 对于标签不同样式的…

    Autosar精华

    应用层(APP) 目标:掌握如何设计软件组件(SWC)及其交互。 软件组件(SWC): 原子级SWC:独立的功能模块(如控制算法、传感器处理)。 端口(Ports):Sender-Receiver(数据传递)、Client-Server(服务调用)。 接口(Interface):定义组件间通信的数据类型(如Autosar …

    【AD】AD软件中工具栏无IPC封装向导

    问题:点击AD工具栏,无IPC封装向导 解决: 点击后点击install,关闭重启软件

    【Python 初级函数详解】—— 参数沙漠与作用域丛林的求生指南

    欢迎来到ZyyOvO的博客✨,一个关于探索技术的角落,记录学习的点滴📖,分享实用的技巧🛠️,偶尔还有一些奇思妙想💡 本文由ZyyOvO原创✍️,感谢支持❤️!请尊重原创&#x1…

    MacBook Pro使用FFmpeg捕获摄像头与麦克风推流音视频

    FFmpeg查看macos系统音视频设备列表 ffmpeg -f avfoundation -list_devices true -i "" 使用摄像头及麦克风同时推送音频及视频流: ffmpeg -f avfoundation -pixel_format yuyv422 -framerate 30 -i "0:1" -c:v libx264 -preset ultrafast -b:v 1000k -…

    42 session反序列化漏洞

    参考资料:3. php反序列化从入门到放弃(入门篇) - bmjoker - 博客园 session文件上传漏洞利用原理 当在php.ini中设置session.upload_progress.enabled On的时候,PHP将能够跟踪上传单个文件的上传进度。当上传正在进行时,以及在将与session…

    leetcode第77题组合

    原题出于leetcode第77题https://leetcode.cn/problems/combinations/ 1.树型结构 2.回溯三部曲 递归函数的参数和返回值 确定终止条件 单层递归逻辑 3.代码 二维数组result 一维数组path void backtracking(n,k,startindex){if(path.sizek){result.append(path);return ;}…

    基于html的俄罗斯方块小游戏(附程序)

    一、前言 俄罗斯方块(Tetris)是一款经典的益智游戏,由苏联程序员阿列克谢帕基特诺夫(Alexey Pajitnov)于1984年开发。这款游戏最初是为减少计算机的恐怖效果而设计的,后来通过盗版传播到全球,成…

    openwebUI访问vllm加载deepseek微调过的本地大模型

    文章目录 前言一、openwebui安装二、配置openwebui环境三、安装vllm四、启动vllm五、启动openwebui 前言 首先安装vllm,然后加载本地模型,会起一个端口好。 在安装openwebui,去访问这个端口号。下面具体步骤的演示。 一、openwebui安装 rootautodl-co…

    机器学习:线性回归,梯度下降,多元线性回归

    线性回归模型 (Linear Regression Model) 梯度下降算法 (Gradient Descent Algorithm) 的数学公式 多元线性回归(Multiple Linear Regression)

    加入二极管的NE555 PWM 电路

    只用电阻、电容构成的一般定时电路的占空比无法低于50%,如下图: 电容的充电路径上串联了R1 和R2,而放电路径上只有R2,所以放电的时间不可能比充电长。加入二极管就能解决这个问题,用二极管把充电和放电路径分离开&…

    游戏引擎学习第131天

    仓库:https://gitee.com/mrxiao_com/2d_game_3 运行游戏并识别我们的小问题 今天的工作重点是对游戏引擎进行架构优化,特别是针对渲染和多线程的部分。目前,我们的目标是让地面块在独立线程上进行渲染,以提高性能。在此过程中,我…

    并发编程1

    JAVA线程回顾 多线程 多个并行的线程来完成个自的任务,优点是程序响应速度更快,程序性能得到提升。 并行执行与并发执行 并发执行就是在单核CPU下,现成实际上是串行执行的,任务调度器将cpu的时间片分给不同的线程使用&#xff0…

    AI: Cursor是否已奠定AI开发环境的龙头地位?

    近年来,人工智能(AI)在软件开发领域的应用迅速升温,而Cursor作为一款AI驱动的代码编辑器,凭借其创新功能和市场表现,引发了广泛讨论。许多人认为,Cursor已经奠定了AI开发环境的龙头地位。然而&a…

    贪心算法+题目

    贪心算法 跳跃游戏跳跃游戏2 跳跃游戏 题目 拿到题目就暴力穷举,我用的是dfs,加上备忘录之后还是超出时间限制。就考虑一下贪心算法。你想 我在[0,n-2]位置遍历求出可以跳跃的最远距离,用farthest更新最大值,如果>终点就返回t…

    02 2个交换机+vlan构造两个逻辑上的子网

    前言 这是最近一个朋友的 ensp 相关的问题, 这里来大致了解一下 ensp, 计算机网络拓扑 相关基础知识 这里一系列文章, 主要是参照了这位博主的 ensp 专栏 这里 我只是做了一个记录, 自己实际操作了一遍, 增强了一些 自己的理解 当然 这里仅仅是一个 简单的示例, 实际场景…

    【前端基础】Day 7 CSS高级技巧

    目录 1. 精灵图 1.1 为什么需要精灵图 1.2 精灵图(sprites)的使用 2. 字体图标 2.1 字体图标的产生 2.2 字体图标的优点 2.3 字体图标的下载 2.4 字体图标的引入 2.5 字体图标的追加 3. CSS三角形 4. CSS用户界面样式 4.1 更改用户鼠标样式 …

    React低代码项目:问卷编辑器 II

    吐司问卷:问卷编辑器 II Date: February 26, 2025 Log **软件设计的可拓展性:**对修改封闭,对拓展开放 工具栏 删除组件 需求: 要点: 实现删除选中组件 思路:重新计算 selectedId,优先选择…

    图像处理之图像边缘检测算法

    目录 1 图像边缘检测算法简介 2 Sobel边缘检测 3 经典的Canny边缘检测算法 4 演示Demo 4.1 开发环境 4.2 功能介绍 4.3 下载地址 参考 1 图像边缘检测算法简介 图像边缘检测是计算机视觉和图像处理中的基本问题,主要目的是提取图像中明暗变化明显的边缘细节…