linux natNAT是在数据包通过路由器或防火墙时重写数据包的源地址和目的地址。管理员重写IP包的源地址或目的地址的原因有很多。到目前为止,最常见的原因是使用私人IP地址访问互联网。

了解更多关于IP地址的类在Udemy.com。

今天,几乎所有的私人企业和家庭网络都使用私人IP地址。除了面向internet的外部广域网外,不需要使用真实的IP地址。有时,管理员可能纯粹为了性能而在DMZ中为web服务器和其他半私有资源使用私有地址。

那么为什么这些私人地址不能在互联网上使用呢?

这些内部IP地址不是唯一的。私有地址块是IANA(国际分配号码授权机构)的策略,用来减缓IPv4地址范围的耗尽和可能的耗尽。通过分发这些私有地址块在私有网络中使用,那么真正的IP地址就可以保留下来,以便在Internet上需要它们时使用。

管理员可以在其网络中自由使用IANA的私有地址块如下:

10.0.0.0/16

172.16.0.0/12

192.168.0.0/16

管理员可以随意使用这些地址和子网,因为没有人会在网络边界之外看到这些地址。这些地址曾经是完全合法的地址。所发生的是(通过将它们分配给公众使用)它们不再是唯一的。数以百计,甚至数以百万计的小型网络正在使用相同的IP地址范围。互联网上的私人地址由IANA指定。缺省情况下,所有网关路由器都配置了在出口接口上过滤掉它们。如果任何私有地址的数据包被丢弃,它们将被丢弃在下一跳路由器上。

NAT就是解决这个问题的一种方法,因为NAT为私有地址的主机访问Internet提供了一种方便的方式。NAT通过用“真实”的IP地址重写源地址,巧妙地借用外部广域网接口,确保数据包现在兼容并能够穿越互联网。

通过Udemy.com的课程了解更多关于Linux和NAT的知识。

NAT在实践中

在下面的场景中,有一个小型的私有网络,它有三台计算机:一台是Linux服务器,它将被配置为路由器,允许所有三台机器共享一个ADSL互联网连接。

主机名 IP地址 网关
Linux01 以太网0 = 192.168.1.1 (DHCP服务器)以太网1 = 203.53.122.65 0/0/0/0203.53.122.66
Windows-01 192.168.1.2 (DHCP客户端) 192.168.1.1
Windows-02 192.168.1.3 (DHCP客户端) 192.168.1.1

步骤1—在Linux机器上配置NAT时,管理员应确保Linux发行版上已经配置或至少安装了一些先决条件。这些是iptables和称为Netfilter的包过滤框架。安装了Netfilter和两个或多个网络接口后,管理员可以使用命令集iptables来配置Linux机器,使其充当路由器并执行NAT。

#重要提示:在内核中激活ip转发!#默认情况下禁用!$ >Echo "1" > /proc/sys/net/ipv4/ip_forward#加载各个模块。通常它们已经加载了#(特别是对于更新的内核),在这种情况下#不需要以下命令。#负载iptables模块:$ >modprobe ip_tables#激活连接跟踪#(考虑连接状态)$ >modprobe ip_conntrack#IRC的特殊功能:$ >modprobe ip_conntrack_irc#FTP的特殊功能:$ >modprobe ip_conntrack_ftp

现在,iptables模块被加载并配置为转发IP报文。

下一步是配置iptables规则,用internet接口的外部IP地址重写传入的IP数据包的源地址。

步骤2 -#将局域网连接到因特网上$ >iptables -t nat -A POSTROUTING -o eth1 -j MASQUERADE

这里的语法如下

步骤3 -

其他本地Windows客户端通过DHCP指向Linux机器的内部以太网接口192.168.1.1作为默认网关。

来自内部接口(以太网0)上的其他网络主机的源地址为(192.16.1.x)范围的数据包将从(以太网1)路由到源地址为203.53.122.66的Internet

剩下的就是通过在Windows客户端上浏览互联网来检查配置。

其他NAT行动

上面的场景是在网络中实现NAT的一个非常常见的原因。在这种情况下,Linux路由器用外部接口Eth-1的公网IP地址重写了离开网络的报文的源地址。

然而,也有其他的选择:

#在下面的表选择中,命令和匹配模式#将被缩写为[…]#Source-NAT:将“sender”修改为“123.123.123.123”$ >iptables[…-j SNAT——to-source 123.123.123.123#掩码:将发送端更改为发送网络接口$ >iptables[…] - j化妆舞会#目的nat:将“收件人”修改为“123.123.123.123”,端口为22$ >iptables[…-j DNAT——to-destination 123.123.123.123:22#重定向到本地端口8080$ >iptables[…-j重定向——到端口8080

以上选择如下:

在Udemy.com了解更多关于NAT、Linux和网络的信息。

Linux顶级课程

Linux初级到中级
L D
4.3 (60)
使用实例完成Linux安全加固
伊姆兰·阿夫扎尔(24万+学生)
4.6 (418)
掌握Linux:在11.5小时内掌握Linux命令行
Ziyad Yehia,物联网学院
4.7 (12875)
畅销书
完成Linux培训课程获得你的梦想的IT工作2021年
伊姆兰·阿夫扎尔(24万+学生)
4.6 (9704)
畅销书
Linux Shell脚本:基于项目的学习方法
杰森大炮
4.5 (6777)
畅销书
Ubuntu Linux服务器基础
科迪雷米勒
4.5 (1912)
Linux Administration: The Complete Linux Bootcamp 2021
安德烈·杜米特雷斯库,水晶思维学院
4.6 (267)
畅销书
Asterisk Made Easy:学习安装Asterisk和Linux
乔恩·曼宁
4.7 (854)
评价最高
Linux for Network Engineers:实用Linux with GNS3
David Bombal的专家
4.7 (2984)
Linux初学者
Bogdan Stashchuk
4.8 (251)
畅销书
红帽认证系统管理员(RHCSA 8)训练营
班达尔·加里布,艾哈迈德·阿尔卡布里
4.2 (205)
畅销书

更多的Linux的课程

Linux学生也会学到

让你的团队。领导行业。

使用Udemy for Business订阅在线课程库和数字学习工具。

请求一个演示