1 Star 0 Fork 11

coder_lw / wiki

forked from deepinwiki / wiki 
加入 Gitee
与超过 1200万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
克隆/下载
家庭网络配置.md 13.84 KB
一键复制 编辑 原始数据 按行查看 历史
htqx 提交于 2023-06-02 11:38 . 补充参考

家庭网络配置

前言

很多人也许会玩电脑,但是对网络是不太清楚的。在我大学的时候,也是如此,但是为了能够共享上网,所以我们还是学会了一个叫做网关的概念。如果是普通家庭,电信工作人员帮你配置好光猫,自己简单连一个路由器,基本上也能保证正常上网了,所以可能对网络的拓扑结构其实也是一知半解。

在什么时候可能需要一定的网络知识,那就是家庭的物理拓扑达到一定规模的时候,就如我们上学的时候,有8台电脑需要上网,所以我们才接触到网关的概念。所以如果你以前不清楚相关的概念,也是情有可原。

不过网络通信其实挺有趣,不妨可以学习一下。

网络概念

两台电脑怎么可以通信?只需要链接一根网线,然后设置 ip 地址,即可。ip 地址是一种网络协议下的通信地址,它有如下形式: 192.168.0.1。

它有逗号分隔的4组数字,从0~255之间。这些数字不是瞎填,全世界那么多网络设备,就靠这个ip地址来定位,所以有相关的世界性规范来分配地址。而家庭网络属于局域网,一般是192.168.x.x 网段。

ip 地址是有网络和主机的概念的,只有处于同一个网络的主机,才能相互通信。如 192.168.1.100, 192.168.1 是一个网络, 后面的 100 是主机标识。是不是所有网络都是前三组数字?并不是,它是通过一个叫掩码的东西决定的,形式类似 255.255.255.0 ,这数字有点看不懂,其实要看它的二进制,在电脑中就是1111...0000 这种,经过位运算“与”,就会保留前面三组数字,后面一组清零。

也就是掩码可以决定网络占多少位,主机占多少位,可能有一些分段占 2 组,甚至占了2.5 组这种。

但这些是细节,以 192.168.x.y 这种经常使用的局域网网段来说,一般可以把x 看作自己定义的网络(192.168定死了), y 看作主机。主机的 0 和 255 有特殊用途,不要使用。

因为 ip 地址的以上特性,所以严格来说,唯一标识一个地址应该提供 ip 地址和它的掩码,表示成 192.168.1.1/255.255.255.0 或者等价的 192.168.1.1/24 (前24个二进制位为网络,0~255占的二进制位就是 8 位) ,但是日常交流中,常见的网段一般会忽略掉掩码。

  1. 网络地址: 192.168.1.1/24 即 192.168.1.0
  2. 本地地址(固定): 127.0.0.1,网络 127.0.0.0/8,意思是这个访问这个地址永远返回自己的电脑
  3. 广播地址: 192.168.1.255/24, 即主机号都为255。访问该地址等于发信息给整个网络
  4. 下面地址都是局域网用的,家庭组网,互联网地址只能由运营商给你分配,否则拒绝接入
    1. 192.168.0.0/16
    2. 172.16.0.0/12
    3. 10.0.0.0/8

网络协议

tcp / ip 四层模型:

  1. 应用程序层
  2. 传输层
  3. 因特网层
  4. 网络访问层

原理是上层应用不用管下层实现,从而达到灵活配置的目的。网络协议分部在上诉各层,有负责地址通信,有负责管理配置。

  1. tcp : 传输协议
  2. udp: 无连接传输
  3. icmp: 控制协议,如 ping 命令
  4. igmp: 组管理协议
  5. dhcp: 给网络内的设备自动分配不冲突的 ip
  6. nat: 网关将外网络地址和局域网内的地址进行相互转换,从而进行通信的过程
  7. dns: 将 ip 和网址进行绑定
  8. ipv4: 老版本 ip 地址,如 192.168.1.1/24
  9. ipv6: 新版 ip 地址,如 ::1/128, fe80::c2ed:1157:382d:6be5/64
    1. 邻居发现(ND):自动配置本地网络
    2. 单播地址:对应一台设备
      1. fe80::/10 链路本地地址,无法路由,用来自动配置网络
      2. fec0::/10 站点本地地址,相当于 ipv4 的局域网地址
      3. 2/3 开头,互联网地址
    3. 多播地址:对应某些网络服务的地址,设备会自动加入该组,从而实现一对多的广播
      1. ff 开头
    4. 任播地址:对应多个设备,比如多台路由实现冗余管理。
  10. vlan: 虚拟局域网,用虚拟信道,将局域网划分成多个子网

对于底层设备来说,只需要将设备电缆链接在一起,那么它就天然输入一个网络中,当需要高级功能,不如划分不同子网,隔离通信,那就要加路由这种中间设备。家庭网络和互联网需要路由连接,因为互联网需要收费,需要运营商给你分配 ip 地址。

交换机

电脑和电脑一对一,端口有限,如果三个电脑怎么相互链接?要买个新往网卡嘛?这样链接的复杂度会是 n 的 2 次方。

这时可以使用一个叫交换机的独立设备。你可以把交换机看作一个实现端口间两两连接的设备。只需要将原本插入到另一个电脑的网线,插在交换机的任意端口上即可。

网关

192.168.0.1 要访问 192.168.1.1 怎么办?这种跨网络的访问需要一个中介。中介拥有两个网口, 一个处于 192.168.0 网络(如主机号 2), 一个处于 192.168.1(如主机号 5)。这个中介配置了转发功能,相当于桥梁的作用(网桥)。然后 192.168.0.1 这个主机,就可以这样配置网关: 192.168.0.2。

如果 192.168.1.1 也想访问 192.168.0.1 ,那么它可以配置网关: 192.168.1.5。总之就是网关在自己网络中的 ip 地址。

现实设备中,网关由路由器实现,它同时也是一台交换机,只是一般只有一个 wan 口,连接上级设备,有 n 个 lan 口,连接本地网络,这部分也相当于本地的交换机。

路由器这种设计,它主要是为了让wan口链接外网,也就是上级电信网络的服务器。一般只有一条网线到户,所以不需要那么多 wan 口。

路由器 wan 口连接的叫上级网络,lan 口连接的到本地网络,路由器会自动将 lan 口对外访问转发到 wan 口,但是不会自动将 wan 口访问 lan 口进行转发。所以这两类接口还是有区别的。

当然如果想实现两个网络自由连接,那你可以再增加一台反向的路由器。(或者稍微复杂一点,通过配置 wan 口到 lan 口的自定义转发)

和交换机不同的点,交换机是只相当于添加多个网口,减少连线。而网关则相当于一台智能的电脑,它拥有两个端口(两个ip),链接两个网络,自己具备转发功能。

dhcp

很多时候,我们的设备上网,从来就没有设置什么 ip 地址,为什么也能上网?这就是有一个 dhcp 服务器,给本地网络提供了自动分配地址的功能。

这个 dhcp 功能一般也集成到路由器中,相当于一个服务,可以开启关闭。

DNS

我们上网,并不使用 ip 地址,而是使用网址。但实际上网址首先得翻译成 ip 地址,才能实现通信。而将 ip 和 网址一一对应,并提供翻译服务的服务器,就叫 DNS 服务器。 dhcp 服务器一般也会将正确的 dns 服务器的地址配置好。如果没有配置 dns 服务器,那么本地主机会将网关视为 dns 服务器,由网关向上级网络提交 dns 翻译请求。

注意 dns 不是路由器的功能,而只是一个配置项。dns 服务器一般设置在电信,因为路由器的 wan 口通过电信服务器的 dhcp 获取了 ip / dns 的配置信息,所以它可以将这些信息再通过自身的 dhcp 服务给本地网络做配置。当然你也可以自己设置电脑的 dns 配置,来忽略上级的配置。

有时候电信的 dns 服务器抽风,就会打开网页上不了网,但是 QQ 等一些网络应用却能用,这时候你可以更换一个第三方的 dns 服务器配置,如阿里巴巴的公共 dns 服务器: 223.5.5.5 ,也许就能解决问题了。

拨号

路由器和上级电信服务器,很多时候并不是通过通常的 dhcp 分配ip 手段来实现链接的。因为电信他要帐号,他要收你的钱,所以就有一个验证的过程。总而言之,就有个拨号的过程,只有拨号成功了,你才能获得公网的 ip 地址,才能访问外网(可以将外网看作一个超大的网络,主机容量数以亿计)。

你不能天真的认为,可以通过自己设置一个外网 ip 来达到上述效果,但公网上的网关不会认可你瞎搞的设置,会直接屏蔽掉你的物理链路。

拨号技术有很多种,常见的有 pppoe。

路由器一般带有拨号功能,当然你也可以用自己的电脑来拨号,只是这样能上网的就只有拨号的那台电脑。

光猫

电信一般会给你提供一台光猫,光猫本身也是路由器,但性能比较弱,端口比较少,所以下面一般会再接自己的路由器。光猫和普通路由器的区别,它的 wan 口是连接光纤的,具备将光信号转换成电信号的能力,具备这种能力也叫调制解调器,也就是所谓的 modem(音译猫)的来由。

wifi

wifi 是一种无线链接上网的方式,提供 wifi 功能的设备叫 ap,一般路由器会带 ap 功能,但是也会有独立的 ap。 可见 wifi 是只一种连接形态,相当于一个无形的网线(端口)。

从网络功能上它类似交换机。不过因为路由器也集成了 ap 功能,所以可能会导致有些人觉得 ap 具备路由功能(也就是联通两个网段)。

你可以将路由的 wifi 理解为连接到 lan 口上的一台交换机。比如你手机 wifi 上网,如果你电脑连接到 lan 口,那么手机和电脑处于同一个网络(当然需要配置好ip)。

当然你把电脑连接到 wan 口,那么电脑和手机就处于不同网络。不过这是路由提供的功能,而不是ap提供的功能。要明确的是这点。

独立的 ap 设备比较小众,所以很贵,如果要将路由作为纯 ap 使用,一般需要关闭路由的 dhcp 等路由自带的服务(不屏蔽可能会和上级路由提供类似功能产生冲突),然后上级网络连接到 lan 口即可。

有一些路由器支持 ap 模式,或者桥接模式,这时候的 wan 口会转变成 lan 口,失去转发功能。

如果你有多级路由器(路由器下面再连路由器),这样多层转发会带来一定的性能损耗,同时如果你的设备不是都在一个路由器下,那么他们就不处于同一个网络,不能直接访问,这时候也可以设置桥接模式让所有设备处于同一个网络。

vlan

vlan 是虚拟 lan 口的意思,它的作用就是让一个端口,具备多个逻辑 lan 口的功能,也就是所谓的单线复用。

现实生活中,我们的网线布线因为种种原因,可能少了,后期也不好加,那么就想办法通过一个端口来实现多个端口的效果。

vlan 在网络技术栈中,属于二层,路由属于上层(三层)。它属于交换机这种设备,但是并不是所有交换机都配置这个功能。这是属于比较专业的设置,很多家用设备可能没有。这点需要用户注意的。

端口 vlan : 这类 vlan 是将 lan 口(比如5个)分组,比如一组2个是一个 vlan 网络,一组3个是另一个 vlan 网络,实现隔离。

802.1Q vlan: 这类 vlan 技术对数据帧进行修改,添加 vlan 标识(如vlan 3),对应端口收到数据帧,对其进行识别,无效的丢弃,属于自己的保留。也就是各个端口要在同一个 vlan 网络,只需要配置相同的 vlan id 即可。

这里重点放在 802.1Q vlan,讲解它的相关配置细节:

  1. PVID : 即 prot vlan id(端口 vlan id)
  2. unTagged: 去标签(可以标记多个 id)
  3. Tagged: 标签(可以标记多个id)

端口可以配置 id, 并且有两个可配置属性,去标签,和 标签 端口,同时会遇到 vlan 数据帧和非 vlan 数据帧(非vlan 数据帧是没打过标签的原始数据,这里记作 lan帧)。

首先每个端口都会有一个 pvid,每一个端口都是自己 id 的去标签端口。所谓去标签端口是针对外部 lan帧 来说的,当原始 Lan 帧通过端口 1 进入交换机,那么会打上内部交流的 vlan 1,同理,从端口1 出去的任何数据,必然要去除 vlan 1 来还原成原始 lan 数据,这样才被终端正确识别。去标签的名词就是这样来的。

当端口只配置一个去标签id,这类口也叫 Access (存取)口。

如果去标签标记多个id会怎样?它就允许对多个不同id的帧进行去除。而和标记不匹配的将会丢弃。

打标签口类似,但它不会去标签,而是保留 vlan 帧,但 vlan帧不被终端设备识别,所以这类端口的用途是连接下一个交换机。这类口也叫 trunk(主干)口。

总结:

  1. pvid 给所有进入交换机的 lan 帧打上标签
  2. unTagged 给指定的id(自动加上当前pvid)去除标记
    1. 单个 id 表示连接到最终设备(如电脑)
  3. Tagged 允许指定的id 的 vlan 帧通过。
  4. pvid只有一个,但是可以同时具备 unTagged 和 Tagged,并支持对他们配置多个关联 id。

虽然 vlan 这套技术很复杂,有点绕晕的感觉,但是其实和我们之前表达的内容差不多。标记相同 vlan 在同一个网络。细节是怎么去标记,这里用的是 pvid 标记入口,用 unTagged 标记出口,用 tagged 标记内部流通。

单臂路由

路由和光猫处于同一个局域网(连接到同一个交换机),可以通过路由拨号(就类似你可以用局域网任意电脑拨号)。因为 wan 口和局域网是在同一个网络,所以路由器支持物理端口复用(wan 和 lan共用一个物理端口时)也可以相互访问。

这个方案可以使用比较廉价的傻瓜交换机。(虽然也要一台高级路由器)

参考

  1. 用最野的路子教你布局家庭网络@第二期——通过VLAN实现单网口软路由网口复用: https://www.bilibili.com/video/BV1e34y1Q7bj?spm_id_from=333.999.0.0
  2. 测试 ipv6 地址连通性:https://ipw.cn/ipv6ping
1
https://gitee.com/coder_lw/wiki.git
git@gitee.com:coder_lw/wiki.git
coder_lw
wiki
wiki
master

搜索帮助