整理ros做端口映射.docx

上传人:b****6 文档编号:5554221 上传时间:2022-12-19 格式:DOCX 页数:38 大小:4.06MB
下载 相关 举报
整理ros做端口映射.docx_第1页
第1页 / 共38页
整理ros做端口映射.docx_第2页
第2页 / 共38页
整理ros做端口映射.docx_第3页
第3页 / 共38页
整理ros做端口映射.docx_第4页
第4页 / 共38页
整理ros做端口映射.docx_第5页
第5页 / 共38页
点击查看更多>>
下载资源
资源描述

整理ros做端口映射.docx

《整理ros做端口映射.docx》由会员分享,可在线阅读,更多相关《整理ros做端口映射.docx(38页珍藏版)》请在冰豆网上搜索。

整理ros做端口映射.docx

整理ros做端口映射

ros做端口映射

2010年05月12日星期三11:

53

ROS2.96的端口映射的设置

进入winbox,点击IP→Firewall→Nat打开防火墙设置界面。

点击左上角红色的“+”号,添加一条dstnat规则,其中dst.address填写你要映射的外网IP,本例为218.87.96.xxx(此处请填入您的外网IP),然后选择protocol协议为6,即TCP协议,设置Dst.port(目标端口)为80。

设置完成后如图1所示。

  单击“Action”选项卡,在Action框中,选择“dst-nat”,在“To.Address”框中填写内网提供服务的IP地址,本例为192.168.1.3,在“To.Port”填写内网提供服务的IP端口,这样基本映射就完成了,如图2所示,此时可以在外网中输入你的外网IP,即可看到内网192.168.1.3WEB服务器上的网站了。

以同样的方法可以设置FTP和远程桌面。

注意这些服务的端口都是不一样的,例如你有两台内网WEB服务器,80端口已经用掉了,第二台便来能映射到80上了,但可以映射到其它没有使用过的端口上,例如81端口。

例如可以将内网192.168.1.4:

80映射到外网218.87.96.xxx:

81端口上。

这样就能在同一个外网IP访问两台内网WEB服务器了。

3、IP显示和回流问题解决

4.  经过第二步的基本端口映射设置后,外部可以访问内网了,但存在一些不完善的地方,例如所有的外网访客的地址都是路由器的内网网关,本例为192.168.1.1,如图3所示。

这样就无法统计访客的来源,还有许多的不便,例如WEB中的论坛就无法屏蔽一些会员的IP了,因为大家都是192.168.1.1。

原因是这样造成的:

为了使整个内网的所有机子共享上网,在设置ROS时,我们都要设置一条srcnat规则,Action设置为“Amasquerade”,Amasquerade是snat的一个特例,主要用在无固定ip网关的情况下,比如adsl拨号等,masquerade比nat效率低的原因是nat直接指出需要伪装的源地址,而masquerade需要伪装的源地址必须到默网关中寻找,masquerade永远以默认网关地址为ip伪装的源地址,所以首先效率慢了点,其次只能用在外网ip只有一个的情况,如果有多个wan接口就不能用masquerade,而只能用nat,因为nat可以手工指定多个需要伪装的源ip地址,而masquerade却只能找到一个地址,就是默认网关的地址。

由于NAT方设置较Amasquerade复杂,加上现在大量的ROS教程都是以Amasquerade方式共享上网,所以目前在用的ROS大多数采用Amasquerade设置共享。

通过上面分析,我们可以看出为什么在端口映射后,外网访问的IP都成了内网网关,解决的方法有两种,一是改用nat方式,这种方式有局限性,只能用于固定IP的外网,若是ADSL则不能用;另一个方法是通过调整masquerade的设置来完成显示外网IP,具体操作如下,进入winbox,点击IP→Firewall→Nat打开防火墙设置界面,双击原来建立的srcnat规则Amasquerade(用于共享上网),在“General”选项卡的“Out.Interface”选中“LAN”即内网网卡,单击将前面的小框,在框中出现“!

”,单击“OK”完成此设置。

 这样设置完成后,我们可以发现外网访客可以正常访问,而且IP显示也是正确的,但同时导致别一个问题,就是内网用户不能用外部ip访问映射的内部服务器,要按下面方法解决:

再增加一条对内网的规则,Action设置为“Amasquerade”,在“General”选项卡中,设置Chain为“srcnat”,Src.Address为“192.168.0.0/21”由于本例中的内网有192.168.0、192.168.1、192.168.7等几个C类网段,所以在此将子网设置为21,也就是255.255.248.0,设置好后如图5所示。

一般的情况,只有一个网段时,例如192.168.1,可以设置子网掩码为24,即255.255.255.0,此处可以填写:

192.168.1.0/24,可以根据自己内网情况作相对应的修改。

  此到,内外网都能正常访问了且外网访客IP是正确的,此时内网用外网IP访问WEB时,显示的IP是内网网关地址,用这种方法可以实现内外网用户都用网关外部ip访问映射的内部服务,并解决了外部用户显示的ip不正确问题,当然这种方法内网用户显示的ip还是不正确的,要解决内网显示ip问题,可以在routeros中设dns服务器,用域名来访问,内网访问内网ip,外网访问外网ip就能完美解决。

我想我们主要是要知道外网的IP,内网的IP并不重要。

所以至此设置就可以算是完毕了。

 下面说一回流的问题,其实所回流,就是将内网源地址为网段的所有机器对所有目标地址的需求全都进行源地址转换为外网IP,然后转发出去。

所有从外网回来的数据通过外网IP再回传到内网的机器,这样就保证了内网上网正常,但这样的效率下降到原来的50%,显然是不合算的。

对于Amasquerade来共享上网时,外网访问的IP显示还是内网网关,所以回流是不可取的。

虽不可取,我们也把方法写出来,供大家参考,添加一条srcnat规则,src.address写上内网的网络地址,请注意,不是主机地址,指提是网段,若内网IP是192.168.0.X网段并且子网掩码是255.255.255.0,那么就填写192.168.0.0/24,dst.address填写的是内网提供服务的主机IPprotocol协议和port端口请参看本文前面的内容,Action选项卡还是选择src-natto.address则填写映射的外网IP,port端口。

网桥的功能

•桥接基于OSI参考模型的第二层-数据链路层,工作类似于交换机,通过维护局域网中MAC地址列表,学习、存储和转发数据。

•能透传三层IP数据包,透明连接两个IP网络。

•常被用Wlan无线桥接、桥接流量控制、二层数据过滤和各种VPN隧道桥接。

启用设置ROS的网桥功能

•进入bridge中添加一个bridge接口,然后在bridge port中添加相应的网络接口到bridge中:

•通过桥接后,将Ethernet中的ether4和ether5设置为桥接模式;

•我们可以通过添加或者删除管理桥接接口。

•我们可以通过bridgehost查看被桥接两个网络的MAC地址列表

Bridge实现二层端口隔离

RouterOS具有Bridge的桥接功能,在配置多网口的情况下可以实现二层数据的转发,即可以实现交换机功能,加上RouterOS支持birdgefilter的过滤,同样也支持对二层数据的管理,通过配置Bridge的防火墙规则实现多网口的端口隔离。

在这里我们通过RB150的操作为实例,配置二层端口隔离。

首先我们在Bridge中添加一个网桥bridge1:

在RouterOS同样支持STP(SpringTreeProtocol)生成树协议,防止二层的回环出现,同样也是支持二层的冗余功能,在这里我们将STP打上勾:

在添加完桥接功能后,需要将对应的网卡添加入bridge1中,进入Port中设置,我们将五个网卡一个一个添加到bridge1中:

添加完每个端口后,现在RB150的5个以太网口,就完成了桥接的设置,这样5个口就实现了二层的交换功能。

现在我们需要让ether1为上联口,即ether1能与ether2、ether3、ether4和ether5进行通信,但ether2、ether3、ether4和ether5之间是被隔离。

我们进入filter中设置防火墙过滤规则,我们首先配置ether2与ether3的数据隔离我们在interface选项中设置In-interface和Out-interface(In-interface为数据进入的网口,Out-interface为数据出去的网口):

设置好对应的端口后,丢弃他们之间的数据:

因为数据是双向的,上面这条规则是隔离的从ether2到ether3的数据,但无法封闭ether3到ether2的数据,所以我们还要做一条反方向的规则,即两个口之间需要做两条规则:

整个端口控制组合如下:

Ether2–Ether3

Ether3-Ether2

Ether2–Ether4

Ether4–Ether2

Ether2–Ether5

Ether5–Ether2

Ether3–Ether4

Ether4–Ether3

Ether3–Ether5

Ether5–Ether3

Ether4–Ether5

Ether5–Ether4

这样的配置就实现了让ether1为上联口,即ether1能与ether2、ether3、ether4和ether5进行通信,但ether2、ether3、ether4和ether5之间是被隔离。

通过Bridgefilter的配置,可以实现对各种二层数据链路层的相应数据和协议做控制。

在启用bridge后,Queue和ipfirewallfilter的规则仍然能启作用,能实现三层数据的过滤和流控,这样RouterOS在设置为Bridge后可以做到三层路由器的功能,只要加以设置和组合。

注:

在3.0版本后RouterOS在bridge中增加一个设置选项useipfirewall,该规则是询问数据控制是否经过ipfirewall,如果不打勾数据将不再进入ipfirewall处理,这样可以加快数据的转发,减少处理过程。

增加了系统的灵活性。

路由器技术基础知识

(一)

路由器技术

路由器技术中最核心的技术是软件技术。

路由软件是最复杂的软件之一。

有些路由软件运行在UNIX或Linux操作系统上,有些路由软件运行在嵌入式操作系统上,甚至有些软件为提高效率,本身就是操作系统。

全球最大的路由器生产厂家Cisco公司曾一度宣称是一个软件公司,可见路由器软件在路由器技术中所占的重要地位。

路由器软件一般实现路由协议功能、查表转发功能和管理维护等其他功能。

由于互联网规模庞大,运行在互联网上路由器中的路由表非常巨大,可能包含几十万条路由。

查表转发工作可想而知非常繁重。

在路由器研制过程中,可以通过购买商用源码等形式迅速实现路由器。

但是通常认为路由器软件需要一年甚至两年的时间来稳定。

MikroTikRouterOS在行业的发展已经有7年之久,所以在稳定性和功能上都是非常完善的。

什么是路由器

路由器是工作在OSI参考模型第三层——网络层的数据包转发设备。

路由器通过转发数据包来实现网络互连。

虽然路由器可以支持多种协议(例如TCP/IP、IPX/SPX、AppleTalk等协议),但是在我国绝大多数路由器运行TCP/IP协议。

路由器通常连接两个或多个由IP子网或点到点协议标识的逻辑端口,至少拥有1个物理端口。

路由器根据收到数据包中的网络层地址以及路由器内部维护的路由表决定输出端口以及下一跳地址,并且重写链路层数据包头实现转发数据包。

路由器通常动态维护路由表来反映当前的网络拓扑。

路由器通过与网络上其他路由器交换路由和链路信息来维护路由表。

路由器是连接IP网的核心设备。

最简单的网络可以想象成单线的总线,各个计算机可以通过向总线发送分组以互相通信。

但随着网络中的计算机数目增长,这就很不可行了,会产生许多问题:

1.带宽资源耗尽。

2.每台计算机都浪费许多时间处理无关的广播数据。

3.网络变得无法管理,任何错误都可能导致整个网络瘫痪。

4.每台计算机都可以监听到其他计算机的通信。

把网络分段可以解决这些问题,但同时你必须提供一种机制使不同网段的计算机可以互相通信,这通常涉及到在一些ISO网络协议层选择性地在网段间传送数据,我们来看一下网络协议层和路由器的位置。

我们可以看到,路由器位于网络层。

本文假定网络层协议为IPv4,因为这是最流行的协议,其中涉及的概念与其他网络层协议是类似的。

路由与网桥

路由相对于二层的桥接/交换是高层的概念,不涉及网络的物理细节,工作在二层的设备如交换机、无线AP等。

在可路由的网络中,每台主机都有同样的网络层地址格式(如IP地址),而无论它是运行在以太网、令牌环、FDDI还是广域网。

网络层地址通常由两部分构成:

网络地址和主机地址。

网桥只能连接数据链路层相同(或类似)的网络,路由器则不同,它可以连接任意两种网络,只要主机使用的是相同的网络层协议。

网络层与数据链路层

网络层下面是数据链路层,为了它们可以互通,需要“粘合”协议。

ARP(地址解析协议)用于把网络层(3层)地址映射到数据链路层(2层)地址,RARP(反向地址解析协议)则反之。

虽然ARP的定义与网络层协议无关,但它通常用于解析IP地址;最常见的数据链路层是以太网。

因此下面的ARP和RARP的例子基于IP和以太网,但要注意这些概念对其他协议也是一样的。

1、地址解析协议

网络层地址是由网络管理员定义的抽象映射,它不去关心下层是哪种数据链路层协议。

然而,网络接口只能根据2层地址来互相通信,2层地址通过ARP从3层地址得到。

并不是发送每个数据包都需要进行ARP请求,回应被缓存在本地的ARP表中,这样就减少了网络中的ARP包。

ARP的维护比较容易,是一个比较简单的协议。

2、简介

如果接口A想给接口B发送数据,并且A只知道B的IP地址,它必须首先查找B的物理地址,它发送一个含有B的IP地址的ARP广播请求B的物理地址,接口B收到该广播后,向A回应其物理地址。

注意,虽然所有接口都收到了信息,但只有B回应该请求,这保证了回应的正确且避免了过期的信息。

要注意的是,当A和B不在同一网段时,A只向下一跳的路由器发送ARP请求,而不是直接向B发送。

下图为接收到ARP分组后的处理,注意发送者的对被存到接收ARP请求的主机的本地ARP表中,一般A想与B通信时,B可能也需要与A通信。

路由器技术基础知识

(二)

IP地址

是用来标识Internet网上主机的,共32位。

这个地址在整个网中是唯一的,为了便于记忆,可将这32位数分成4个组,每组8位,然后将每一组都用相应的十进制数表示,例如202.102.14.141,IP地址分为两部分,第一部分是网络号码,用来标识Internet上某个特定的网络,第二部分是主机号,用来标识某个特定网络上的主机号.IP地址是人们在Internet上为了区分数以亿计的主机而给每台主机分配的一个专门的地址,通过IP地址就可以访问到每一台主机。

IP地址分类

IP地址分为固定IP地址和动态IP地址。

固定IP地址,也可称为静态IP地址,是长期固定分配给一台计算机使用的IP地址,一般是特殊的服务器才拥有固定IP地址。

动态IP地址是因为IP地址资源非常短缺,通过电话拨号上网或普通宽带上网用户一般不具备固定IP地址,而是由ISP动态分配给暂时的一个IP地址。

普通人一般不需要去了解动态IP地址,这些都是计算机系统自动分配完成的。

IP地址分为公有IP地址和私有IP地址。

公有地址(Publicaddress,也可称为公网地址)由InternetNIC(InternetNetworkInformationCenter因特网信息中心)负责。

这些IP地址分配给注册并向InternetNIC提出申请的组织机构。

通过它直接访问因特网,它是广域网范畴内的。

私有地址(Privateaddress,也可称为专网地址)属于非注册地址,专门为组织机构内部使用,它是局域网范畴内的,出了所在局域网是无法访问因特网的。

留用的内部私有地址目前主要有以下几类:

*A类:

10.0.0.0--10.255.255.255

*B类:

172.16.0.0--172.31.255.255

*C类:

192.168.0.0--192.168.255.255

在可路由的网络层协议中,协议地址必须含有两部分信息:

网络地址和主机地址。

存贮这种信息最明显的方法是用两个分离的域,这样我们必须考虑到两个域的最大长度,有些协议(如IPX)就是这样的,它在小型和中型的网络里可以工作的很好。

另一种方案是减少主机地址域的长度,如24位网络地址、8位主机地址,这样就有了较多的网段,但每个网段内的主机数目很少。

这样一来,对于多于256个主机的网络,就必须分配多个网段,其问题是很多的网络给路由器造成了难以忍受的负担。

IP把网络地址和主机地址一起包装在一个32位的域里,有时主机地址部分很短,有时很长,这样可以有效利用地址空间,减少IP地址的长度,并且网络数目不算多。

有两种将主机地址分离出来的方法:

基于类的地址和无类别的地址。

1、主机和网关

主机和网关的区别常产生混淆,这是由于主机意义的转变。

在RFC中(1122/3和1009)中定义为:

主机是连接到一个或多个网络的设备,它可以向任何一个网络发送和从其接收数据,但它从不把数据从一个网络传向另一个。

网关是连接到多于一个网络的设备,它选择性的把数据从一个网络转发到其它网络。

路由器是专用的网关,其硬件经过特殊的设计使其能以极小的延迟转发大量的数据。

然而,网关也可以是有多个网卡的标准的计算机,其操作系统的网络层有能力转发数据。

由于专用的路由硬件较便宜,计算机用作网关已经很少见了,在只有一个拨号连接的小站点里,还可能使用计算机作为非专用的网关。

2、基于类的地址

最初设计IP时,地址根据第一个字节被分成几类:

0:

保留

1-126:

A类(网络地址:

1字节,主机地址:

3字节)

127:

保留

128-191:

B类(网络地址:

2字节,主机地址:

2字节)

192-223:

C类(网络地址:

3字节,主机地址:

1字节)

224-255:

保留

3、子网划分

虽然基于类的地址系统对因特网服务提供商来说工作得很好,但它不能在一个网络内部做任何路由,其目的是使用第二层(桥接/交换)来导引网络中的数据。

在大型的A类网络中,这就成了个特殊的问题,因为在大型网络中仅使用桥接/交换使其非常难以管理。

在逻辑上其解决办法是把大网络分割成若干小的网络,但在基于类的地址系统中这是不可能的。

为了解决这个问题,出现了一个新的域:

子网掩码。

子网掩码指出地址中哪些部分是网络地址,哪些是主机地址。

在子网掩码中,二进制1表示网络地址位,二进制0表示主机地址位。

传统的各类地址的子网掩码为:

A类:

255.0.0.0

B类:

255.255.0.0

C类:

255.255.255.0

如果想把一个B类网络的地址用作C类大小的地址,可以使用掩码255.255.255.0。

用较长的子网掩码把一个网络分成多个网络就叫做划分子网。

要注意的是,一些旧软件不支持子网,因为它们不理解子网掩码。

例如UNIX的routed路由守护进程通常使用的路由协议是版本1的RIP,它是在子网掩码出现前设计的。

上面只介绍了三种子网掩码:

255.0.0.0、255.255.0.0和255.255.255.0,它们是字节对齐的子网掩码。

但是也可以在字节中间对其进行划分,这里不进行详细讲解,请参照相关的TCP/IP书籍。

子网使我们可以拥有新的规模的网络,包括很小的用于点到点连接的网络(如掩码255.255.255.252,30位的网络地址,2位的主机地址:

两个主机的子网),或中型网络(如掩码255.255.240.0,20位网络地址,12位主机地址:

4094个主机的子网)。

4、可变长子网掩码(VLSM)

如果你想把你的网络分成多个不同大小的子网,可以使用可变长子网掩码,每个子网可以使用不同长度的子网掩码。

例如:

如果你按部门划分网络,一些网络的掩码可以为255.255.255.0(多数部门),其它的可为255.255.252.0(较大的部门)。

路由器技术基础知识(三)

路由

1、路由表

如果一个主机有多个网络接口,当向一个特定的IP地址发送分组时,它怎样决定使用哪个接口呢?

答案就在路由表中。

来看下面的例子:

目的

子网掩码

网关

标志

接口

201.66.37.0

255.255.255.0

201.66.37.74

A

eth0

201.66.39.0

255.255.255.0

201.66.39.21

A

eth1

主机将所有目的地为网络201.66.37.0内主机(201.66.37.1-201.66.37.254)的数据通过接口eth0(IP地址为201.66.37.74)发送,所有目的地为网络201.66.39.0内主机的数据通过接口eth1(IP地址为201.66.39.21)发送。

标志A表示该路由状态为“active”(即激活状态)。

对于直接连接的网络,一些软件并不象上例中一样给出接口的IP地址,而只列出接口。

此例只涉及了直接连接的主机,那么目的主机在远程网络中如何呢?

如果你通过IP地址为201.66.37.254的网关连接到网络73.0.0.0,那么你可以在路由表中增加这样一项:

目的

掩码

网关

标志

接口

73.0.0.0

255.0.0.0

201.66.37.254

AG

eth0

此项告诉主机所有目的地为网络73.0.0.0内主机的分组通过201.66.37.254路由过去。

标志S(static)表示此项通过静态指定把分组导向外部网关。

类似的,也可以定义通过网关到达特定主机的路由,也标志为S:

目的

掩码

网关

标志

接口

91.32.74.21

255.255.255.255

201.66.37.254

AS

eth0

下面是路由表的基础,除了特殊表项之外:

目的

掩码

网关

标志

接口

127.0.0.1

255.255.255.255

127.0.0.1

AS

lo0

default

0.0.0.0

201.66.37.254

AS

eth1

第一项是loopback接口,用于主机给自己发送数据,通常用于测试和运行于IP之上但需要本地通信的应用。

这是到特定地址127.0.0.1的主机路由(接口lo0是IP协议栈内部的“假”网卡,在RouterOS中)。

第二项十分有意思,为了防止在主机上定义到因特网上每一个可能到达网络的路由,可以定义一个缺省路由,如果在路由表中没有与目的地址相匹配的项,该分组就被送到缺省网关。

多数主机简单地通过一个网卡连接到网络,因此只有通过一个路由器到其它网络,这样在路由表中只有三项:

loopback项、本地子网项和缺省项(指向路由器)。

2、重叠路由

假设在路由表中有下列重叠项:

目的

掩码

网关

标志

接口

1.2.3.4

255.255.255.255

201.66.37.253

AS

eth0

1.2.3.0

255.255.255.0

201.66.37.254

AS

eth0

1.2.0.0

255.255.0.0

201.66.37.253

AS

eth1

default

0.0.0.0

201.66.39.254

AS

eth1

之所以说这些路由重叠是因为这四个路由都含有地址1.2.3.4,如果向1.2.3.4发送数据,会选择哪条路由呢?

在这种情况下,会选择第一条路由,通过网关201.66.37.253。

原则是选择具有最长(最精确)的子网

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 解决方案 > 学习计划

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1