解惑 -- 为什么我学不好网络?
前言
很多朋友(网友)问我,以下几个问题/困扰:
如果你有以上的困扰,我这里确实有一些解决的小指南。
但并不是什么灵丹妙药,该踩的坑还是得踩。
解惑
问题 一 、二
如果出现前一二点的问题,我认为是网络基础太差了,或者是基础的网络知识没有成体系。
导致这个的原因:
我推荐先补完基础知识以及基础实验,先打打基础。网络基础
在网络方案上,我推荐去看华为高端核心交换机的文档。
看一下华为在不同的网络场景需求下,提供了什么样的方案以及相应的配置。
在别的平台上,一样会有相应的实现的。原理都一样的。

链路聚合 https://support.huawei.com/enterprise/zh/doc/EDOC1100213153/c1b2412c
问题 三
现在一键脚本那么多,工具层层封装,变得十分易用。但是一出现网络问题,我却两眼一摸黑。解决不了问题,无法有效地跟踪问题,有理有据地解决问题。
这个问题,体现了下面几个问题:
-
对于脚本不熟悉。
-
对于脚本所封装的核心不熟悉。譬如:calico的安装命令就两条。但是你对calico不了解,calico出了问题,这就很难进行问题的排查。
-
我他喵的,要是会,还用脚本?
那么我还是建议你参考问题一、二的建议,先补补基础以及实验。网络基础
然后熟读对应的技术文档。
但是,如果你已经对华为、思科那一套很熟了,但是解决不了Linux网络问题,那么请参考下面的问题解惑。
问题 四
我思科、华为挺6的,但是Linux的网络就是不太会,不知道怎么入手。
对iptables、ipvs、netfilter、ebpf 、SDN、OVS等技术名词,真就只知道这个名词。
这个问题经常出现在运维两年以上或者是现场实施的工作人员。
特别是现场实施的人员会有这个困惑。
以前在客户的机房交付ZTE的云桌面的时候,现场实施的人对交换机、核心路由的配置老熟悉了。
但是他们对Linux、Linux 网络这块就贼模糊。
只会配下IP地址,记录下hba卡的地址去做FC - SAN等等。
剩下的Linux配置工作全靠跑脚本。
他们曾经也跟我交流过这个问题,有什么痛点以及要怎么去突破这个困境。
困境
-
无法在Linux上面做对应CPT(思科网络模拟器)的网络实验。
-
不清楚Linux对网络理论的具体实现。
-
一步到内核实现,过于困难。对于一个初来乍到的初学者,简直就是劝退。
-
Linux实验的时候,感觉抽象化。越陌生,越感觉到抽象。
-
对于Linux相关的技术点都是两眼一抹黑,也不知道该从哪里打灯。
-
不知道如何将已有的网络知识融入到Linux的网络体系中
-
在搜索引擎上搜索 Linux network ,出来的都是在教你什么是网卡,怎么给网卡配IP,重启网络服务等等。你实际上不需要这些基础的网络教程,但又不知道搜什么关键词好。
首先, 笔者必须明确的一个点:网络的规则已经是定下来了,具体的实现就看每个厂商的神通。
因为规则已经定好了,你才可以使用 Go / Java / Node 写一个Web服务,在手机用Chrome,电脑用 Safari ,无差别地访问同一个Web服务。
快速地从 华为、思科的网络体系切换到Linux网络体系的实现,最好的方法应该是对比实验。

因为各种的情况,如 工具链、现有架构等,导致不同的厂商在实现中必定有各种的差异。
观察同一个理论,在不同的体系里面是如何实现的。
通过对比实验,相互去验证以及学习。
譬如,思科的VXLAN实验,在Linux网络体系上面是如何实现。
进而了解Linux网络体系为了实现这个理论,结合自身的实际情况 进而 制造了什么样的工具以及如何使用这些工具。
实际上,你已经从一个封闭的网络体系过度到一个开放的网络体系。
因为厂商的封闭性,在华为、思科体系用到的工具都比较单一。
华为和思科会提供很详细的网络场景文档以及各种培训。
而Linux网络体系的文档还真的没有他们两个厂商全。🤣
所以入门网络推荐从华为、思科的文档以及培训入手。
在Linux网络体系中,由于开放性,各个厂商都可以加进来做自己擅长的事情,工具、标准以及理念繁多。
这也是导致SDN难学的原因之一。
笔者在写本文的时候,依旧在纠结选择什么样的技术点以及工具进行渐进式地学习,才可以让初学者尽量无痛地过渡到Linux Network。