没有固定IP地址怎么实现SNAT和DNAT

环境介绍

实现目标:
1、ADSL拨号
2、没有固定IP 地址
3、想实现SNAT和DNAT

条件:
由于之前不知道谁采购的cisco路由器当出口,用着很不爽,CPU经常负载到99%,查看原因是因为nat表过多,路由器扛不住导致的。没办法,换服务器吧。

想法:
1、rp-pppoe 实现拨号
2、MASQUERADE 实现SNAT
3、DNAT的实现稍微复杂一点,不想花钱,注册一个花生壳域名,然后解析到PPPOE的公网地址。
实时解析的,也就是说公网地址变了,这里也会变。做DNAT的时候是使用 -i参数 指定网卡而不是IP 地址


下面是iptables的简单配置:
[root@iptables iptables]# cat base_iptables.sh
#!/bin/bash

IPT=/sbin/iptables

# init iptables
modprobe ip_tables
modprobe iptable_filter
modprobe iptable_nat
modprobe ip_conntrack
modprobe ip_conntrack_ftp
modprobe ip_nat_ftp
modprobe ipt_state

# clean all iptables
$IPT -F
$IPT -Z
$IPT -X


# set base iptables rules
$IPT -t filter -A INPUT -s 内网ip地址段 -j ACCEPT
$IPT -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
$IPT -t filter -P FORWARD ACCEPT
$IPT -t filter -P OUTPUT ACCEPT
$IPT -t filter -P INPUT DROP

# ADSL dialing
$IPT -t nat -A POSTROUTING -s 内网ip地址段 -j MASQUERADE


#################
### BT & p2p ####
#################
#$IPT -A FORWARD -m layer7 --l7proto bittorrent -j DROP


################################################# DNAT
$IPT -t nat -A PREROUTING -i ppp0 -p tcp --dport 18080 -j DNAT --to 内网服务ip地址:80


# 注意 这里的DNAT经过测试需要使用高端口进行映射才可以正常使用

 

posted @ 2016-08-15 16:04  fish01  阅读(400)  评论(0编辑  收藏  举报