0%

Linux路由补完计划01 基本概念说明

前言


既然已经挖坑了,那就必须好好的开始填坑,在开始Linux路由配置之前,有必要先说明一下网络地址转换NAT以及防火墙在Linux路由中的作用。

路由器是什么


路由器(英语:Router,又称路径器)是一种电讯网络设备,提供路由与转送两种重要机制,可以决定数据包从来源端到目的端所经过的路由路径(host到host之间的传输路径),这个过程称为路由;将路由器输入端的数据包移送至适当的路由器输出端(在路由器内部进行),这称为转送。路由工作在OSI模型的第三层——即网络层,例如网际协议(IP)。维基百科

在不同网络之间传输数据的功能叫做路由功能,一般有多个接口,连接到不同的网络中,并且通过路由表进行数据转发,说直白点就是一个向导,当你想去某个地址的时候,你去问它,它就会告诉你如何走,并且帮助你找到这条路;

IP地址只有32位,最多只有42.9亿个地址,还要去掉保留地址、组播地址,能用的地址只有36亿左右,但是当下有数以万亿的主机,没有这么多IP地址怎么办,后面有了IPv6,但是当下IPv4还是主流,利用IPv4怎么满足这么多主机的IP地址呢?答案就是NAT,NAT技术使公司、机构以及个人产生以及局域网,然后在各个局域网的边界WAN端口使用一个或多个公网的IPv4进行一对多转换;

路由转发及NAT是路由器的核心,如果要将Linux改造成路由器就需要实现上述两个功能。

NAT在做啥


NAT定义

NAT是 Network Address Translation 网络地址转换的缩写。
NAT是将私有IP地址通过边界路由转换成外网IP地址,在边界路由的NAT地址转换表记录下这个转换映射记录,当外部数据返回时,路由使用NAT技术查询NAT转换表,再将目标地址替换成内网用户IP地址。

RFC1918规定了三块专有的地址,作为私有的内部组网使用

A类: 10.0.0.0—10.255.255.255 10.0.0.0/8
B类: 172.16.0.0—172.31.255.255 172.16.0.0/12
C类: 192.168.0.0—192.168.255.255 192.168.0.0/16

这三块私有地址本身是可路由的,只是公网上的路由器不会转发这三块私有地址的流量;当一个公司内部配置了这些私有地址后,内部的计算机在和外网通信时,公司的边界路由会通过NAT或者PAT技术,将内部的私有地址转换成外网IP,外部看到的源地址是公司边界路由转换过的公网IP地址,这在某种意义上也增加了内部网络的安全性。

为啥需要防火墙


我所使用的Debian如果要实现NAT功能,所利用的工具是大部分Linux发行版的防火墙————iptables

iptables是运行在用户空间的应用软件,通过控制Linux内核netfilter模块,来管理网络数据包的处理和转发。在大部分Linux发行版中,可以通过手册页或 man iptables 获取用户手册。通常iptables需要内核模块支持才能运行,此处相应的内核模块通常是Xtables。因此,iptables操作需要超级用户权限,其可执行文件通常位于/sbin/iptables或/usr/sbin/iptables。同时,需要说明的是,以上命令通常只用于处理IPv4数据包;而对于IPv6数据包,则使用类似的ip6tables命令。维基百科

同时防火墙最大的功能是帮助你限制某些服务的存取来源,归纳一下即是以下三点:

  • 切割被信任与不信任的网段;
  • 划分出可提供网络的服务与必须受保护的服务;
  • 分析出可接受与不可接受的分包状态;

即能保护自己又能提供网络地址转换,为啥不用呢!

更新历史


  • 2019.07.19 初稿,添加前言
  • 2019.07.20 成稿
  • 2019.09.10 格式调整