如何用iptables实现NAT

如何用iptables实现NAT,第1张

NAT有三种SNAT,DNAT和PNAT。
先简单介绍下。SNAT(源地址转换):目标地址不免,改写源地址,实现内网多用户使用同一个公网IP上网的情况。DNAT(目标地址转换):源地址不变重新修改目标地址。PNAT(端口映射):在DNAT基础上,实现内网IP端口对外网监听。
SNAT的实现方式:
先把Linux系统ipv4数据包的转发功能打开,系统就有了路由功能。
[root@localhost ~]# echo 1 > /proc/sys/net/ipv4/ip_forward
添加iptables的nat表项
[root@localhost ~]# iptables -t nat -A POSTROUTING -s 192168110/24 -j SNAT --to-source 20210xxxx
表示在postrouting链上,将内网源地址为192168110/24网段的数据包的源地址都转换为公网IP 20210xxxx。这样SNAT配置完毕,可以测试上网了。做NAT服务器的内网IP 19216811x 就是内网主机需要配置的网关地址。当然纯内网环境下,转换的成的IP也可以是另一个内网网段的IP。
SNAT还有一个常用选项:MASQUERADE。此选项可以用在动态获取IP地址的主机,如家用宽带拨号上网的主机。
[root@localhost ~]# iptables -t nat -A POSTROUTING -s 192168110/24 -o eth1 -j MASQUEREADE
在这里-o后面的网卡名是指定出去的接口,MASQUEREADE会调用该接口的地址作为转换后的源地址。
DNAT转换不多介绍了,用到的时候不多,格式如下:
[root@localhost ~]# iptables -t nat -A PREROUTING -d 20210xxXX -p tcp –-dport 8080 -j DNAT –-to-destination 19216811128:80
感兴趣的可以在网上搜一下nat原理。

说明
服务器由一台安装有Windows Server 2012 Datacenter的双网卡计算机充当,一个网卡接校园网并自动获得地址,另一个网卡设置为LAN,设置一个私有地址,例如192168101,并配置DHCP服务器,设置DHCP的作用域地址范围为192168102~254、子网掩码为2552552550、网关为192168101,DNS为校园网DNS。
LAN口网卡连接到一个普通的交换机上,然后将宽带路由器的LAN口(一般4个WAN口、1个LAN口)接到普通交换机上,并将宽带路由器的DHCP功能禁用。这样平板、手机将通过宽带路由器、并从Windows 2012服务器的DHCP获得IP地址、子网掩码、网关。而工作站1、工作站2则设置为“自动获取IP地址与DNS地址”即可。
一、安装远程访问服务
(1)在WindowsServer 2012中,打开“网络连接”,分别设置lan(连接到局域网)与wan(连接到广域网)网卡的地址
(2)配置DHCP服务器
(3)在“服务器管理器→仪表板”中,单击“添加角色和功能”
(4)在“选择安装类型”对话框,单击“基于角色或基于功能的安装”
(5)在“选择目标服务器”对话框,选择要安装RRAS的服务器。当前列表中只有一台服务器,如果有多台服务器,可以在此选择要安装的服务器。
(6)在“选择服务器角色”对话框单击“远程访问”
(7)在d出的“添加远程访问所需的功能”对话框,单击“添加功能”按钮
(8)在“选择功能”对话框,单击“下一步”按钮
(9)在“远程访问”对话框显示了要安装的功能概述
(10)在“选择角色服务”对话框中选中“DirectAccess和”及“路由”复选框
(11)在“确认安装所选内容”对话框,单击“安装”按钮,开始安装。如果选中“如果需要,自动重新启动目标服务器”单选框,在安装服务的时候,如果该安装需要重新启用服务器,安装程序会自动启动服务器。
(12)在“安装进度”中单击“关闭”按钮,安装完成
(13)返回到服务器管理器,单击图标,选择“打开开始向导”
(14)在“配置远程访问”中单击“仅部署DirectAccess”链接
(15)在“远程访问服务器设置”对话框,单击“取消”按钮

1、网络环境介绍

视频终端A:IP:192168330  (内网)

NAT服务器:华为路由器WS5200  有NAT服务功能 

WAN IP :19216808 (对外网的IP地址)

LAN IP:19216831 (内网IP地址,内网网关地址)

视频终端B:19216802 (外网地址)

A:192168330----------------LAN:19216831 || NAT(路由器)||WAN:19216808 ------------------B:19216802

当前网络环境

A直接能ping通B的IP地址 

A:ping 19216802 能通

B ping 不通A的IP地址

点对点会议中:A呼叫B

A发送到B的音频目的端口:60040

A发送到B的视频目的端口:60042

路由器NAT服务配置如下:(只贴了音频端口配置的截图)

NAT服务配置好后

终端A配置静态NAT IP地址

终端A配置静态NAT IP地址:19216808(就是路由器的WAN口地址)

此时发出的包,源IP地址就会变成19216808

路由器接收到的60040端口的UDP数据包,就会发送到映射的内网地址端口号上。实现网络穿越。
配置完后,可以用终端A直接IP呼叫终端B,实现音视频码流的网络穿越。

注:终端B无法呼叫终端A,只能通过终端A主呼。

应该是你nat服务器配置有问题,在接口上把私网和公网地址做一对一的对应
你说的比较模糊,我给你个例子,你看看怎么样
#
//用户NAT的地址池
nat address-group 1 20210013 20210016
#
//配置允许进行NAT转换的内网地址段
acl number 2000
rule 0 permit source 19216800 000255
rule 1 deny
#
interface GigabitEthernet0/0
port link-mode route
//在出接口上进行NAT转换
nat outbound 2000 address-group 1
//在出接口上配置内网服务器19216802的>

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zz/10296414.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-07
下一篇 2023-05-07

发表评论

登录后才能评论

评论列表(0条)

保存