NAT虚拟网络配置
1.为什么出现了NAT?
IP地址只有32位,最多只有42.9亿个地址,还要去掉保留地址、组播地址,能用的地址只有36亿左右,但是当下有数以万亿的主机,没有这么多IP地址怎么办,后面有了IPv6,但是当下IPv4还是主流,利用IPv4怎么满足这么多主机的IP地址呢?答案就是NAT,NAT技术使公司、机构以及个人产生以及局域网,然后在各个局域网的边界WAN端口使用一个或多个公网的IPv4进行一对多转换
**NAT使用基于session的转换规则**
TCP/UDP :私有Host的Ipv4 + port <> NAT公网的Ipv4 + port
ICMP :私有Host的Ipv4 + sessionID <> NAT公网的Ipv4 + sessionID
### 2.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地址,这在某种意义上也增加了内部网络的安全性。
3.三种NAT技术
假设一种场景,公司对外的有两个公网IP地址是 191.4.4.1/191.4.4.2,有两台主机A和B,局域网地址分别是192.168.1.2和192.168.1.3
3.1 静态NAT
静态NAT就是一对一映射,内部有多少私有地址需要和外部通信,就要配置多少外网IP地址与其对应,并不节省外网IP,所以一般不用 ![NAT静态映射表](//upload-images.jianshu.io/upload_images/1329440-b468266fcead90dd.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)
3.2 动态NAT
动态NAT是在路由器上配置一个外网IP地址池,当内部有计算机需要和外部通信时,就从地址池里动态的取出一个外网IP,并将他们的对应关系绑定到NAT表中,通信结束后,这个外网IP才被释放,可供其他内部IP地址转换使用,这个DHCP租约IP有相似之处。
3.3 PAT(port address Translation,端口地址转换,也叫端口地址复用)
这是最常用的NAT技术,也是IPv4能够维持到今天的最重要的原因之一,它提供了一种多对一的方式,对多个内网IP地址,边界路由可以给他们分配一个外网IP,利用这个外网IP的不同端口和外部进行通信。
4.NAT虚拟网络配置
我们知道 在局域网内部访问时,必须是同一网段才可以访问。我们修改网络配置前,必须知道所属网段才行:
4.1. 查看网段
4.2. 通过上面操作我们可以看到网段为194, 网关ip为2。现在我们通过 vi /etc/sysconfig/network-scripts/ifcfg-xxx 来设置服务器ipTYPE=Ethernet
BOOTPROTO=static //把dhcp改为static
DEFROUTE=yes
PEERDNS=yes
PEERROUTES=yes
IPV4_FAILURE_FATAL=no
IPV6INIT=yes
IPV6_AUTOCONF=yes
IPV6_DEFROUTE=yes
IPV6_PEERDNS=yes
IPV6_PEERROUTES=yes
IPV6_FAILURE_FATAL=no
IPV6_ADDR_GEN_MODE=stable-privacy
NAME=ens33
UUID=f1d0dd87-ed43-4a32-984c-7d4baa9f007f
DEVICE=ens33
ONBOOT=yes //开启网卡
IPADDR=192.168.194.100 //自定义ip
NETMASK=255.255.255.0 //设置子网掩码
GATEWAY=192.168.194.2 //网关ip
// 因为我们设定了固定ip,所以要配置DNS解析器(楼主在广州,所以这里是广东的DNS地址)。
// 若仅仅是想开启网卡只需要把onboot设置为yes就好了。会自动给我们分配一个ip和dns地址。
DNS1=202.96.128.86
// 湖北dns地址
// DNS1=211.136.17.97
4.3. 修改就完成后,重启,就能通过ip addr查看当前ip了。通过ping命令查看是否可以上网!
例如直接ping百度的ip: ping 202.108.22.5能上网,可是ping www.baidu.com不能上网,就需要像上面那样配置dns解析器。
127.0.0.1 localhost localhost.localdomain localhost4 localhost4.localdomain4
::1 localhost localhost.localdomain localhost6 localhost6.localdomain6
# 给服务器ip起别名 是的可以通过这个别名访问我们服务器。
192.168.194.100 server1
192.168.194.101 server2
192.168.194.102 server3
参数解析:
Ip 192.168.194.128 (ip是由8位的二进制组成的,最大为255。由于255是广播地址,所以它的范围在1~254)
Netmask 255.255.255.0 (子网掩码: 用来和ip进行与操作计算出网段。例:255.255.255.0 & 192.168.33.6 = 192.168.33.6)
Gateway 192.168.33.1 (网关: 路由器的ip。例:局域网中多个电脑连接的同一个路由器的ip)
Dns 域名解析服务器 (当我们访问一个域名时,它会去本地hosts文件找到ip映射信息;若这个文件中这个没有这个映射信息,它就会去公网的DNS服务器查询;拿到真实的ip之后,就会发出请求。)
链接:https://www.cnblogs.com/wlwl/p/9498220.html
(版权归原作者所有,侵删)
微信扫码关注该文公众号作者