码迷,mamicode.com
首页 > 其他好文 > 详细

SNAT和DNAT

时间:2018-08-16 19:49:49      阅读:196      评论:0      收藏:0      [点我收藏+]

标签:修改   地址   案例   开启路由转发   ipv4   局域网共享   pos   elinks   nat实现方式   

一、SNAT

SNAT作用

  • 实现局域网共享IP实现上网

  • 隐藏内部主机

SNAT原理

  • 通过修改数据包的源IP地址(修改为公网IP)

SNAT实现方式

  • 硬件级路由器

  • 硬件级防火墙

  • 软件级防火墙:vim /etc/sysctl.conf --> net.ipv4.ip_forward = 1(开启路由转发) --> sysctl -p

SNAT规则

iptables -t nat -A POSTROUTING -s 内网IP -j SNAT --to-source 公网IP //适用于静态公网IP地址

iptables -t nat -A POSTROUTING -s 内网IP -j MASQUERADE //适用于动态公网IP地址

二、SNAT案例

二台服务器,一台内网(vmnet1)、一台Linux网关服务器(两块网卡、vmnet1、桥接)

1.部署内网服务器

vim  /etc/sysconfig/network-scripts/ifcfg-eth0
DEVICE="eth0"
NM_CONTROLLED="no"
ONBOOT="yes"
BOOTPROTO="static"
IPADDR=192.168.1.10
NETMASK=255.255.255.0
GATEWAY=192.168.1.1
DNS1=114.114.114.114
/etc/init.d/iptables stop
/etc/init.d/network restart
rm -rf /etc/yum.repos.d/*
vim /etc/yum.repos.d/local.repo
[local]
name=local
baseurl=file:///mnt
gpgcheck=0
mount /dev/cdrom /mnt
yum -y install elinks

2.部署Linux网关

vim  /etc/sysconfig/network-scripts/ifcfg-eth0
DEVICE="eth0"
NM_CONTROLLED="no"
ONBOOT="yes"
BOOTPROTO="static"
IPADDR=192.168.1.1
NETMASK=255.255.255.0
cp /etc/sysconfig/network-scripts/ifcfg-eth1
vim /etc/sysconfig/network-scripts/ifcfg-eth1
DEVICE="eth1"
NM_CONTROLLED="no"
ONBOOT="yes"
BOOTPROTO="dhcp"
/etc/init.d/iptables stop
/etc/init.d/network restart
vim /etc/sysctl.conf
  net.ipv4.ip_forward = 1
sysctl -p
iptables -t nat -I POSTROUTING -s 192.168.1.0/24 -j SNAT --to-source 192.168.10.34

3.测试

内网服务器:elinks www.baidu.com || ping www.baidu.com

二、DNAT

DNAT作用

  • 发布内部主机,使公网客户端可访问内网

  • 隐藏内部主机

注:DNAT需配合DNS使用,将域名解析到公网IP

DNAT原理

  • 通过修改数据包的目的IP地址(修改为公网IP)

DNAT实现方式

  • 硬件级路由器

  • 硬件级防火墙

  • 软件级防火墙:vim /etc/sysctl.conf --> net.ipv4.ip_forward = 1(开启路由转发) --> sysctl -p

四、DNAT案例

二台服务器,一台内网(vmnet1)、一台Linux网关服务器(两块网卡、vmnet1、桥接)、实现公网访问内网的ssh

1.部署内网服务器

vim  /etc/sysconfig/network-scripts/ifcfg-eth0
DEVICE="eth0"
NM_CONTROLLED="no"
ONBOOT="yes"
BOOTPROTO="static"
IPADDR=192.168.1.10
NETMASK=255.255.255.0
GATEWAY=192.168.1.1
DNS1=114.114.114.114
/etc/init.d/iptables stop
/etc/init.d/network restart

2.部署Linux网关

vim  /etc/sysconfig/network-scripts/ifcfg-eth0
DEVICE="eth0"
NM_CONTROLLED="no"
ONBOOT="yes"
BOOTPROTO="static"
IPADDR=192.168.1.1
NETMASK=255.255.255.0
cp /etc/sysconfig/network-scripts/ifcfg-eth1
vim /etc/sysconfig/network-scripts/ifcfg-eth1
DEVICE="eth1"
NM_CONTROLLED="no"
ONBOOT="yes"
BOOTPROTO="dhcp"
/etc/init.d/iptables stop
/etc/init.d/network restart
vim /etc/sysctl.conf
  net.ipv4.ip_forward = 1
sysctl -p
iptables -t nat -I PREROUTING -d 192.168.10.231 -p tcp --dport 2333 -j DNAT --to-destination 192.168.1.10:22

3.测试

公网client:ssh root@192.168.10.231 -p 2333

SNAT和DNAT

标签:修改   地址   案例   开启路由转发   ipv4   局域网共享   pos   elinks   nat实现方式   

原文地址:http://blog.51cto.com/13770206/2160845

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!