kumfo · 2019年09月04日

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

准备材料:

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

网络组成示例

网络.jpg

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

  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的配置

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. 设置页点击 bVbxhda.png 按钮;
  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配置;

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

推荐阅读
关注数
3
文章数
3
程序生存法则:1.不要写死2.不要相信产品⎝≧⏝⏝≦⎠
目录
极术微信服务号
关注极术微信号
实时接收点赞提醒和评论通知
安谋科技学堂公众号
关注安谋科技学堂
实时获取安谋科技及 Arm 教学资源
安谋科技招聘公众号
关注安谋科技招聘
实时获取安谋科技中国职位信息