路由器做什么工作(路由器如何工作)
【好玩的网络】系列面向普通人的网络科普视频。
本期知识点
路由器的作用是什么?
如何实现跨子网通信?
路由器的工作原理简介, route表。
好玩的网络第三期!不定期更新。视频传送门。
本系列视频/教程
路由器参数解读传送门。
嗨,大家好!我是你们的小伙伴果子。上一期视频,我们对IP地址,网段,子网有了一定的认识,我们知道,只要配置好IP地址和子网掩码,使两台主机的IP地址属于同一个网段,这两台主机就能通讯了。这一期,我们讲讲跨子网通讯和路由器。
1.引言
我们之前讲过交换机,交换机是一个数据转发设备,在OSI模型中的第二层,数据链路层工作,通过MAC地址和交换机端口号的对应关系来转发数据包,忘记的小伙伴可以看我的第1期视频。而我们今天要讲路由器在OSI模型中的第3层“网络层”工作,是一个三层转发设备。我们所说的多少层,不是说设备只在这一层工作,而是最少能到达到这一层。
路由器在OSI模型中的工作层级
2.路由器的结构与分类:
路由器的本质就是一台电脑,通常插着两张网卡,其中一张网卡连接广域网WAN,另外一张网卡连接局域网LAN。WAN的IP地址由上级网络分配,LAN的IP地址我们可以自己设置。家用路由器一般有自己的默认Lan口IP地址,一般是192.168.1.1/24,在包装说明书或路由器背面的铭牌中都有写明,此地址也是路由器的默认管理地址。
路由器的本质,另外家用路由器是路由交换一体机
更高级的路由器可以有多个WAN口,甚至可以添加虚拟网卡,可以实现“单线多播”负载均衡叠加网速等更高级的功能。另外,路由器也分为硬件路由器和软路由。所谓的硬路由就是我们直接从网上购买到的路由器,主要实现路由功能。而软路由则是在普通电脑上安装openwrt,爱快等路由器系统,实现路由功能的设备,主要是为了实现广告过滤,搭建网络隧道等功能。我们以后会在centos系统中实现部分功能。
3.路由器的功能1:寻址与转发
3.1.路由规则
路由器最主要的作用就是实现跨网段的数据传输与转发。就像交通路标一样,指引着车辆和行人的行动,这种指引行为就叫路由,路由器通过路由表来记录转发规则。我们先来看看路由表长什么样吧。因为普通路由器无法查看路由表,所以我在centos7系统上进行演示。
路由器主要是为了实现跨子网的传输
我们在centos系统中输入route -n命令,就可以查询路由表,查询到的路由表有8列,其中第1列Destination为目的地址,第2列Gateway为网关地址,也叫“下一跳”,第3列Genmask为网关掩码,第8列Iface为网卡接口。
查询路由表的方法,路由表
我们将第1列与第3列合并起来,会惊奇地 发现,第一列不就是网络地址吗?忘记的同学可以翻看第2期视频。Flag带有G的规则代表网关规则,若数据包的目的IP地址与路由表中目的地址匹配,路由器会将数据包转发到Gateway中的网关地址。如果flag不带G,说明本条规则不是网关规则,目标地址肯定就在本地链路,通过同一个交换机相连。
如何看路由表
举个例子,如果想发送数据给百度的服务器39.156.69.79,匹配到的目的地址是0.0.0.0/0,那么这个数据包就会被转发给网卡eth0,走默认网关192.168.0.1。
局域网内发送消息给百度
如果数据包的目的地是我的办公室的主机,IP地址为192.168.2.12,那么会同时符合两个目的网段,0.0.0.0/0和192.168.2.0/24,但是路由器会优先匹配更精确的规则,所以数据包通过tun0网卡转发给网关192.168.10.12。
数据包发送到办公室
3.2网络数据包的长距离传输:
网络数据包长距离传输的过程中,会经过一个个的路由器,我们拿局域网内一台主机和百度的通讯举个例子,假设局域网内一台主机192.168.0.4/24要访问公网上的百度主机39.156.69.79。主机查询自己的路由表,把数据包发送给谁呢?
主机查询自己的路由表,把数据包发送给默认网关192.168.0.1(路由器LAN端IP地址)。路由器收到数据包后,继续发送给更上级的默认网关(运营商的路由器),经过多个路由的传递,最终百度主机就会收到信息了。
我们在centos系统中,可以使用traceroute -n http://baidu.com的命令查看中途经过了哪些路由器。我们很清晰地看到,第一个经历的路由器就是我们自己的路由器192.168.0.1,第二个路由器是运营商的路由器,27.19.176.1,中间的路由器都是城市路由的节点。
到百度主机经历的路由器
3.3.路由规则的获得
路由器如何获得路由规则?
路由器想要实现路由功能,首先路由器本身得知道数据应该向哪里传。路由器得知这些信息的方式大致有3种,第一种方式是直连路由;第二种是通过手动添加路由规则,也就是静态路由。第三种是通过动态路由协议获得的路由,一般在城市或大型企业网络运用比较多,家庭网络甚至小型企业根本用不上,我们主要了解一下前两种方法。
第一种方式是直连路由。
当主机正确配置好一个IP地址后,会自动生成一条目的地址为该子网的路由。例如树莓派的网卡eth0通过dhcp获得192.168.0.4/24的ip地址,那么会自动产生一条目的地址为网段192.168.0.0/24的路由。如果我在网卡tun0上手动设置IP地址为192.168.10.4/24,也会增加192.168.10.0/24的路由。
第二种方式是手动添加静态路由。
例如我添加目的地址为我办公室的子网192.168.2.0/24,网关地址为192.168.10.12,因为树莓派本机根本不知道192.168.2.0/24的子网在哪里,所以必须手动设置。再例如,在mac系统中,手动配置IP地址时,填写的网关或路由,会生成路由表中的默认路由。
4.路由器的功能2:DHCP服务器功能
路由器的第二个功能为DHCP服务器。
DHCP的全称为Dynamic Host Configuration Protocol,也叫动态主机配置协议。 路由器有自带的DHCP服务器,为接入的设备自动分配IP地址,若要使用此功能,需要在路由器上开启DHCP功能。通过DHCP服务器,可以将配置好的IP地址池,子网掩码,网关信息,DNS信息下发给下联的网络设备。需要注意的是,即便路由器的DHCP功能是开启的,主机仍然可以强制手动设置IP地址,子网掩码等,只要这些和路由器管理地址处于同一个网段,IP地址不冲突,仍然可以正常和路由器通讯以及上网。特别值得注意的是,同一个LAN中,最多只能有一个DHCP服务器处于开启状态,否则可能会导致下联的设备不能正确的获取网络配置,从而导致无法上网。
路由器的DHCP功能
5.路由器的功能3:源地址转换NAT
路由器第三个重要功能,就是利用NAT技术为本地局域网做源IP地址转换SNAT。
NAT的全称是Network Address Translation,S的含义是source,也叫IP伪装技术。我们知道,局域网主机ip地址192.168.0.4/24是一个私有地址,可能邻居家也有这个地址。假设发送到公网的地址也是用这个地址的话,百度主机要给我们返回数据包的时候,由于目的地址是私有地址,中途根本不知道会传到哪里。所以,数据包在出路由器之前,路由器会将该数据包的源IP地址伪装成路由器WAN口的公网IP地址,这样百度想要返回数据包时,目的地址是公网IP地址了,数据包就能顺利传回来了。路由器收到传回来的数据包后,会自动做目的地址转换DNAT,将目的地址从公网IP转换为刚才发送消息的主机192.168.0.4,这样内部主机就能顺利接收信息了,路由器内部所有的设备也都能通过这种方式上网了。
局域网能访问公网的原理
6.路由器的功能4:目的地址转换,端口映射,DMZ主机
路由器第四个重要功能,是端口映射或dmz主机。
这个也是利用NAT技术做目的IP地址转换或目的端口转换。不过此行为的目的是为了从公网主动访问内网。一般情况下,一台计算机从公网想要主动连接局域网内的一台计算机是不可能的,因为数据包的目的IP地址是公网地址,发送到路由器WAN口后,路由器以为这个数据包是传给自己的,然而实际却不是给自己的。在路由器上配置端口映射后,当公网主动传来数据包时,路由器判断是否要将数据转发给内部主机。假设在路由器上配置dmz主机,内网主机地址为192.168.0.4,那么路由器收到公网发送的数据包后,会把数据包的目的IP地址改为192.168.0.4,重新封装后转发给内部的树莓派。此行为相当于将树莓派主机直接映射在公网环境中,这样就能实现从公网主动访问内部主机了。
公网能主动访问局域网主机的原理
7.无线路由器:无线桥接和有线桥接
无线路由器和有线路由器,除了无线发射功能外没有本质区别,只是在LAN口桥接了一个无线网,能够收发无线信号而已。
无线桥接和有线桥接功能理解起来也非常简单,唯一的目标是想办法把两个路由器的LAN合并到一起。
我们只需要知道下面两个关键点,就能掌握好桥接。
1.在一个lan中IP地址必须唯一,因此,从路由的LAN必须和主路由属于同一网段并IP地址唯一。
2.在一个lan中最多只能有一个dhcp服务器,因此要把从路由的DHCP功能关闭。
无线桥接和有线桥接
8.本期总结
到现在为止,我们已经可以实现跨子网的访问了,并知道如何去配置路由器。
如何配置静态路由和dmz主机?如何从公网访问内网主机以及稳定的ddns?
欢迎关注博主,学习更多网络知识!有问题,欢迎评论区讨论!
本期视频问题及参考答案:(私“Q1”看答案) 问题1:使用桥接,从路由的Wan口充当什么角色?“从路由”充当什么角色?
问题2:我在最后讲无线桥接时,在视频中讲到“必须”要保证路由器的LAN口ip地址和主路由Lan口IP地址在同一网段而且唯一。真的是这样吗?请大家思考一下,如果主路由配置不变192.168.0.1/24(开启dhcp),从路由强制设置Lan口IP地址为192.168.5.1(关闭dhcp)。这时,1.通过从路由无线网接入的设备(设备获取IP方式为dhcp或自动获取),是否能正常上网?2.设备获取到的IP地址属于哪个网段?3.现在如何访问从路由管理界面?
下一期视频,带大家分析家庭组网,包括如何设计接线,设备摆位等等,非常简单!希望你们有收获。
后期再对评论中的一些其他方法一一做解释,比如改掩码,静态路由等等。
路由器参数解读传送门。
图文编辑: 旋律果子 猫小爪
欢迎关注博主,一起学习网络知识!有问题,欢迎私信、在评论区留言讨论。
旋律果子: 网络Geek/Linux开发者/中国科学院大学在读博士/科技数码博主/国家二级建造师/优质科技领域创作者