交换机组建通信子网并通过macOS共享网络

32次阅读

共计 2061 个字符,预计需要花费 6 分钟才能阅读完成。

准备材料:

  1. 三个没有联网的树莓派,所装系统为 centos7;
  2. 一个交换机;
  3. MacBook 一台;
  4. 正常连接外网的无线路由器一台;
  5. 网线若干,根据具体情况可能还需要准备网线转接头;

网络组成示例

感觉光文字描述不直观,我随便画了个示意图,大概如上图所示:

  1. 三个树莓派通过灰色的网线、交换机和 MacBook 组建成一个通信子网;
  2. MacBook 通过无线(Wi-Fi)、路由器、其他个人电脑组成了另外一个通信子网;

对于交换机来说,交换机不会像路由器一样自动分配 IP 地址,我们通过网线、交换机进行连接的时候,此时虽然物理上产生链接了,但实际上并没有产生通信子网。

我们知道网络连接从功能上划分来说,分为七层,自顶向下分别为:

  • 第七层:应用层;
  • 第六层:表示层;
  • 第五层:会话层;
  • 第四层:传输层;
  • 第三层:网络层;
  • 第二层:数据链路层;
  • 第一层:物理层;

此时我们只是搭好物理层、数据链路层,所以网络并不会产生通路;IP 协议层属于网络层,由于交换机不会自动分配 IP 地址,所以此时我们需要给主机配置 IP 地址,建立网络层。这些层建好后,其他更上层的协议由操作系统进行实现,我们此时不做关注。

具体流程

树莓派的配置

  1. 启动网卡
ifconfig eth0 up

说明:启用名称为 eth0 的网卡,通常来说,树莓派也是有无线网络的,我们在安装系统的时候,进行初始化的时候如果没有选择网络,通常网卡是没有启动的。可以通过

ifconfig -a

进行查看有哪些网卡,然后根据具体情况进行网卡启动,对应的关闭网卡命令为:

ifconfig eth0 down
  1. 配置 IP
vim /etc/sysconfig/network-scripts/ifcfg-eth0

说明:此处根据具体情况,进行网卡配置文件的修改,具体可以到 /etc/sysconfig/network-scripts/ 目录进行查看;

  1. 修改的配置文件内容
ONBOOT=yes # 开机启动
NM_CONTROLLED=yes
BOOTPROTO=static # IP 地址方式设置为静态 IP
IPADDR=192.168.2.1 # IP 地址
NETMASK=255.255.255.0 # 子网掩码,默认为这个,不同的子网掩码能用的地址数不同
GETEWAY=192.168.2.10 # 默认网关先填这个

主要是配置以上几个参数,具体 IP 地址根据具体情况配置,依葫芦画瓢,分别设置其他几台树莓派的 IPADDR 地址为:

  • 192.168.2.2
  • 192.168.2.3
  1. 重启网络
service network restart

正常情况下,当我们给三台主机连上后,三台主机相互进行 ping 是能 ping 得通的,但此时我们的 MacBookping不通其他三台主机的;

MacBook 的配置

如图所示,我们打开 macOS 的网络设置如图,一般来说,当我们的 MacBook 与交换机连上了后,此时的 USB 10/.... 这个网卡是绿色的,表示启用。我写这篇文章的时候不是在连接的情况下写的,所以是红色的。

配置 IPV4 的时候,我们选择 手动 .
然后分别把 IP 地址、子网掩码、路由器分别配置为:

  • 192.168.2.10
  • 255.255.255.0
  • 192.168.2.10

然后点击 应用 按钮生效,正常的话,此时我们在 MacBook 上 ping 其他主机是能 ping 得通的;


好了,我们整个通信子网组建好了,整套网络之间也能互相访问,但是网络的通信机制决定了,不同网段的通信需要做路由器进行数据转发,具体的网络基础知识如果有疑问的话,可以通过搜索引擎搜索“子网掩码 IP 地址 网关”进行了解。而对于子网来说,我们如果不能直接访问外网的话,通常我们在做程序安装的时候会带来诸多不便,也会产生诸多麻烦事。所以,此时我们就需要 MacBook 起到一个路由的作用。

MacBook 配置数据转发

  1. 设置 页点击 按钮;
  2. 选择“互联网共享”
  3. 共享来源选择“Wi-Fi”
  4. 共享给电脑选择“USB 10/100/1000 LAN”,这个地方根据具体情况选择,要看交换机连接的是 MacBook 的哪一张网卡;

此时,正常来说,我们的 MacBook 就实现了网络转发功能,在子网的主机上可以直接上网了;但是,当我们尝试着 ping segmentfault.com 的时候却发现ping 不通;而我们可以随便找个外网的 IP 进行ping,是能 ping 得通的;如果出现这种情况,那么通常来说就是 DNS 需要配置;

子网主机配置 DNS

vi /etc/resolv.conf

写入配置

nameserver 8.8.8.8
nameserver 114.114.114.114

重启子网主机的网络

service network restart

此时我们再来尝试

ping segmentfault.com

或者

yum search nginx

都能正常的进行网络交互了。

总结

整体来说,我们做过的事情其实主要就是 4 件事情:

  1. 网络物理层的连接;
  2. IP 地址配置;
  3. 路由转发配置;
  4. DNS 配置;

而对于理解为什么需要做这些步骤,那么就需要理解网络七层协议的工作流程,理解网络的构建形式以及计算机系统是怎么实现这些协议的,然后才可以在不同的计算机上进行网络配置。

正文完
 0