CentOS开启NAT路由转发功能

马谦马谦马谦 2018年12月31日17:04:53 发表评论
文章最后编辑于:2018-12-31 17:05:04

一、拓扑图

学习linux的网络框架netfilter,想用centos作为路由器,在下面接PC产生流量测试。

默认情况下linux是没有开启数据包转发功能的,需要手动配置,linux使用centos6.9,网络拓扑图如下:

CentOS开启NAT路由转发功能

路由器的eth0口接外网,IP地址192.168.123.102,内网口eth0地址10.0.0.x/24,希望PC通过路由nat上网。

二、转发配置

开启路由转发首先检查好防火墙配置,清空原有的nat规则:iptables -F,然后添加nat规则,一共有两种方式:

第一种:iptables -t nat -A POSTROUTING -s 10.0.0.0/24 -j SNAT --to 192.168.123.102

第二种:iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE

其中的部分参数含义为:

  • -t: 类型为nat
  • -A: 添加新规则到规则链的末尾
  • POSTROUTING: 在包就要离开防火墙之前改变其源地址
  • -s: 源地址段,这里设置我的内网地址网段10.0.0.0/24
  • -j SNAT: 满足snat条件的时候跳转
  • --to: 跳转时设置的Ip地址
  • -o: 跳转时的出口设备为eth0

具体可参考防火墙规则,这里设置好后,开启设备的数据包转发:

转发永久生效

上面的echo开启数据包转发只是临时生效,下次重启后就失效了,如果需要永久生效,得修改/etc/sysctl.conf文件,把net.ipv4.ip_forwar设置为1。

三、生效性测试

检测是否生效,给PC配置好IP,然后ping百度,同时设备上也开启抓包:

CentOS开启NAT路由转发功能

本文共执行41次查询,耗时0.268秒!
马谦马谦马谦

发表评论

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen: