刘伟 发表于 2017-7-8 20:39:57

没有固定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的简单配置:
# 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 OUTPUTACCEPT
$IPT -t filter -P INPUTDROP
  # 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经过测试需要使用高端口进行映射才可以正常使用
页: [1]
查看完整版本: 没有固定IP地址怎么实现SNAT和DNAT