centos7 利用firewalld自建NAT网关

在传统的网络结构中,每个子网都有一个网关,子网内的主机通过这个网关进行上网,网关进行地址转换,修改IP报文的源地址等,具体的原理有兴趣的百度一下就知道了。
在传统机房内几乎都是有路由器的,而路由器也自带网关的功能,基本用不到自建NAT,但是在如今横行的公有云中,却是有着很大的需求,例如阿里云,阿里云内网中没有公网IP的电脑如何通过有公网IP的电脑进行上网,这就需要NAT网关。其他公有云也类似,这里以阿里云进行举例

在阿里云的传统网络中,是不支持自建NAT网关,配置SNAT的。只有在专有网络VPC中,才可以。而其实在专有网络中,内网的主机的网络设置,比如网关也是无法修改的,路由表也没法添加修改。根本没办法将内网主机的网关设为专有网络内带有公网IP的主机。
只能通过专有网络中的虚拟路由器,在路由器中添加路由,通过将所有目标请求都指定下一跳到有公网IP的ecs上,这样才可以将内网中的ecs请求都发到有公网ip的ecs上。


实现步骤如下:
## 进入阿里云控制台,专有网络,路由器,创建路由表:
centos7 <wbr>利用firewalld自建NAT网关


目标网段设为所有:0.0.0.0/0
下一跳指定ecs实例为专有网络内有公网IP的ecs实例。




## 在指定的带有公网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网关就顺利完成。
阿里云通过vpn映射到内网
//开启端口转发

iptables -t nat -A POSTROUTING -j MASQUERADE

//将172.17.63.105的82端口转发到192.168.200.116的80端口

iptables -t nat -A PREROUTING --dst 172.17.63.105 -p tcp --dport 82 -j DNAT --to-destination 192.168.200.116:80

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值