博客是我工作的好帮手,遇到困难就来博客找资料
分类: 系统运维
2017-02-07 18:37:45
1.一对一流量完全DNAT
首先说一下网络环境,普通主机一台做防火墙用,网卡两块
eth0 192.168.0.1 内网
eth1 202.202.202.1 外网
内网中一台主机 192.168.0.101
现在要把外网访问202.202.202.1的所有流量映射到192.168.0.101上
命令如下:
2.多对多流量完全DNAT
说是多对多,实际上这里的配置是指定了多个一对一
环境:
eth0 192.168.0.1 内网
eth1 202.202.202.1 、202.202.202.2 外网
内网中2台主机 192.168.0.101、192.168.0.102
现在要把外网访问202.202.202.1的所有流量映射到192.168.0.101上,同时把把外网访问202.202.202.2的所有流量映射到192.168.0.102上
这里顺便提一下如何为网卡配置多个IP
命令如下:
3.一对多根据协议DNAT
这个最常用,一般是内网或DMZ区内有多个应用服务器,可以将不同的应用流量映射到不同的服务器上
环境:
eth0 192.168.0.1 内网
eth1 202.202.202.1 外网
内网中2台主机 192.168.0.101(Web服务器)、192.168.0.102(邮件服务器)
现在要把外网访问202.202.202.1的Web流量映射到192.168.0.101上,同时把把外网访问202.202.202.1的邮件访问流量映射到192.168.0.102上
命令如下:
转自:http://blog.csdn.net/bill_lee_sh_cn/article/details/4401896
服务器A有两个网卡
内网ip:192.168.1.3
外网ip:10.138.108.103
本地回环:127.0.0.1
服务器B有网卡,8001提供服务
内网ip:192.168.1.1
使用户通过外网10.138.108.103:8001访问内网服务器192.168.1.1:8001
#!/bin/bash
pro='tcp'
src_host1='192.168.1.3'
src_host2='10.138.108.103'
src_port=8001
Dst_Host='192.168.1.1'
Dst_Port=8001
# 清空规则
iptables -F
iptables -X
iptables -Z
iptables -t nat -F
# Destination network address translate (dnat)
# 如图2所示
iptables -t nat -A PREROUTING -p tcp -d 192.168.1.3 --dport 8001 -j DNAT --to 192.168.1.1:8001
iptables -t nat -A PREROUTING -p tcp -d 10.138.108.103
--dport 8001 -j DNAT --to 192.168.1.1:8001
iptables -A FORWARD -p tcp -d 192.168.1.1 --dport 8001 -j ACCEPT
# 本地连接不经过prerouting,只经过output链,所以想要在服务器A通过本地ip访问服务器B需要在output 链增加dnat规则
iptables -t nat -A OUTPUT -p $pro -d $src_host1 --dport $src_port -j DNAT --to $Dst_Host:$Dst_Port
iptables -t nat -A OUTPUT -p $pro -d $src_host2 --dport $src_port -j DNAT --to $Dst_Host:$Dst_Port
# source network address translate (snat)
iptables -t nat -A POSTROUTING -p tcp -d 192.168.1.1 --dport 8001_Port -j SNAT --to 192.168.1.3
# 显示已有规则
iptables -t nat -L -n --line-number