在传统的网络结构中,每个子网都有一个网关,子网内的主机通过这个网关进行上网,网关进行地址转换,修改IP报文的源地址等,具体的原理有兴趣的百度一下就知道了。
在传统机房内几乎都是有路由器的,而路由器也自带网关的功能,基本用不到自建NAT,但是在如今横行的公有云中,却是有着很大的需求,例如阿里云,阿里云内网中没有公网IP的电脑如何通过有公网IP的电脑进行上网,这就需要NAT网关。其他公有云也类似,这里以阿里云进行举例:
在阿里云的传统网络中,是不支持自建NAT网关,配置SNAT的。只有在专有网络VPC中,才可以。而其实在专有网络中,内网的主机的网络设置,比如网关也是无法修改的,路由表也没法添加修改。根本没办法将内网主机的网关设为专有网络内带有公网IP的主机。
只能通过专有网络中的虚拟路由器,在路由器中添加路由,通过将所有目标请求都指定下一跳到有公网IP的ecs上,这样才可以将内网中的ecs请求都发到有公网ip的ecs上。
为什么要在vpc中使用自建网关呢,当然是因为阿里云自身的NAT网关是要钱的,需要买额外的带宽。
实现步骤如下:
1. 进入阿里云控制台,专有网络,路由器,创建路由表:
目标网段设为所有:0.0.0.0/0
下一跳指定ecs实例为专有网络内有公网IP的ecs实例。
2. 在指定的带有公网IP的实例上操作,启动NAT网关的SNAT源地址转换功能。
# 开启firewalld防火墙,默认是关闭的。
systemctl enable firewalld
systemctl start firewalld
# 网卡默认是在public的zones内,也是默认zones。永久添加源地址转换功能
firewall-cmd --add-masquerade --permanent
firewall-cmd --reload
# 添加网卡的ip转发功能,添加如下配置
vim /etc/sysctl.conf
------------------------------------------------------------------------------
net.ipv4.ip_forward=1
------------------------------------------------------------------------------
# 重载网络配置生效
sysctl -p
OK,到此,自建NAT网关成功,实现了内网主机通过这台机进行上网,而反向的DNAT端口转发也是可以通过firewalld的端口转发功能来实现。
这样就不需要买阿里云的收费NAT网关了。
另:如果不是公有云主机,而是本机机房的话,那就更简单了:(当然一般本地机房是不需要的,一般都会有网络设备,防火墙,路由器等)
##直接类似的开启可以访问网络的主机的firewalld防火墙源地址转化功能,和网卡的ip_forward转发功能。
## 内网电脑只需修改网关,指定网关为配置了snat功能的电脑,则可以通过改电脑访问网络。
$ vim /etc/sysconfig/network-scripts/ifcfg-exxxxx
----------------------------------------------------------------------------------------------------------
GATEWAY="192.168.9.2" # 网关指向有带宽的公网服务器
DNS1="xxx.xxx.xxx.xxx" (跟网关服务器的dns相同)
----------------------------------------------------------------------------------------------------------
## 重启网络配置,生效
$ systemctl restart network
OK,到此,自建NAT网关就顺利完成。
---------------------
作者:Amos_x
来源:CSDN
原文:https://blog.csdn.net/weixin_41004350/article/details/78493077
版权声明:本文为博主原创文章,转载请附上博文链接!
推荐本站淘宝优惠价购买喜欢的宝贝:
本文链接:https://hqyman.cn/post/317.html 非本站原创文章欢迎转载,原创文章需保留本站地址!
休息一下~~