为了正常的体验网站,请在浏览器设置里面开启Javascript功能!

ros做端口映射

2017-09-19 29页 doc 891KB 20阅读

用户头像

is_153723

暂无简介

举报
ros做端口映射ros做端口映射 2010年05月12日 星期三 11:53 ROS 2.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”...
ros做端口映射
ros做端口映射 2010年05月12日 星期三 11:53 ROS 2.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填写的是内网提供服务的主机IP protocol协议和port 端口请参看本文前面的内容,Action选项卡还是选择src-nat to.address则填写映射的外网IP,port 端口。 网桥的功能 • 桥接基于OSI参考模型的第二层-数据链路层,工作类似于交换机,通过维护局域网中MAC地址列表,学习、存储和转发数据。 • 能透传三层IP数据包,透明连接两个IP网络。 • 常被用Wlan无线桥接、桥接流量控制、二层数据过滤和各种VPN隧道桥接。 启用设置ROS的网桥功能 • 进入bridge中添加一个bridge接口,然后在bridge port中添加相应的网络接口到bridge中: • 通过桥接后,将Ethernet 中的ether4和ether5设置为桥接模式; • 我们可以通过添加或者删除管理桥接接口。 • 我们可以通过bridge host查看被桥接两个网络的MAC地址列表 Bridge实现二层端口隔离 RouterOS具有Bridge的桥接功能,在配置多网口的情况下可以实现二层数据的转发,即可以实现交换机功能,加上RouterOS支持birdge filter的过滤,同样也支持对二层数据的管理,通过配置Bridge的防火墙规则实现多网口的端口隔离。 在这里我们通过RB150的操作为实例,配置二层端口隔离。 首先我们在Bridge中添加一个网桥bridge1: 在RouterOS同样支持STP(Spring Tree Protocol)生成树协议,防止二层的回环出现,同样也是支持二层的冗余功能,在这里我们将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之间是被隔离。 通过Bridge filter的配置,可以实现对各种二层数据链路层的相应数据和协议做控制。 在启用bridge后,Queue和ip firewall filter的规则仍然能启作用,能实现三层数据的过滤和流控,这样RouterOS在设置为Bridge后可以做到三层路由器的功能,只要加以设置和组合。 注:在3.0版本后RouterOS在bridge中增加一个设置选项use ip firewall,该规则是询问数据控制是否经过ip firewall,如果不打勾数据将不再进入ip firewall处理,这样可以加快数据的转发,减少处理过程。增加了系统的灵活性。 路由器技术基础知识(一) 路由器技术 路由器技术中最核心的技术是软件技术。路由软件是最复杂的软件之一。有些路由软件运行在UNIX或Linux操作系统上,有些路由软件运行在嵌入式操作系统上,甚至有些软件为提高效率,本身就是操作系统。全球最大的路由器生产厂家Cisco公司曾一度宣称是一个软件公司,可见路由器软件在路由器技术中所占的重要地位。 路由器软件一般实现路由协议功能、查表转发功能和管理维护等其他功能。由于互联网规模庞大,运行在互联网上路由器中的路由表非常巨大,可能包含几十万条路由。查表转发工作可想而知非常繁重。 在路由器研制过程中,可以通过购买商用源码等形式迅速实现路由器。但是通常认为路由器软件需要一年甚至两年的时间来稳定。MikroTik RouterOS在行业的发展已经有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地址。 公有地址(Public address,也可称为公网地址)由Internet NIC(Internet Network Information Center因特网信息中心)负责。这些IP地址分配给注册并向Internet NIC提出申请的组织机构。通过它直接访问因特网,它是广域网范畴内的。 私有地址(Private address,也可称为专网地址)属于非注册地址,专门为组织机构内部使用,它是局域网范畴内的,出了所在局域网是无法访问因特网的。 留用的内部私有地址目前主要有以下几类: * 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 A S 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。原则是选择具有最长(最精确)的子网掩码。类似的,发往1.2.3.5的数据选择第二 条路由。 注意:这条原则只适用于间接路由(通过网关)。把两个接口定义在同一子网在很多软件实现上是非法的。例如下面的设置通常 是非法的(不过有些软件将尝试在两个接口进行负载平衡): 接口 IP地址 子网掩码 eth0 201.66.37.1 255.255.255.0 eth1 201.66.37.2 255.255.255.0 对于重叠路由的策略是十分有用的,它允许缺省路由作为目的为0.0.0.0、子网掩码为0.0.0.0的路由进行工作,而不需要作为路由软件的一个特殊情况来实现。 3、静态路由 回头看看我们已建立的路由表,已有了六个表项: 目的 掩码 网关 标志 接口 127.0.0.1 255.255.255.255 127.0.0.1 AS lo0 201.66.37.0 255.255.255.0 201.66.37.74  AS eth0 201.66.39.0 255.255.255.0 201.66.39.21 AS eth1 default 0.0.0.0 201.66.39.254 AS eth1 73.0.0.0 255.0.0.0 201.66.37.254 AS eth0 91.32.74.21 255.255.255.255 201.66.37.254 AS eth0 该网络图示如下  这些表项分别是怎么得到的呢?第一个是当路由表初始化 时由路由软件加入的,第二、三个是当网卡绑定IP地址时自动创建的,其余 三个必须手动加入。 NAT技术 NAT技术主要解决IP地址短缺问题,最初提出的建议是在子网内部使用局部地址,而在子网外部使用 少量的全局地址,通过路由器进行内部和外部地址的转换。局部地址是在子网内部独立编址的,可以与外 部地址重叠。这种想法的基础是假定在任何时候子网中只有少数计算机需要与外部通信,可以让这些计算 机共享少量的全局IP地址。后来根据这种技术又开发出其他一些应用,下面 讲述两种最主要的应用: 第一种应用事动态地址翻译(Dynamic Address Translation)。为此首先引入存根域的概念,所谓存根域(Stub Domain)就是内部网络的抽象,这样的网络只是处理源和目标都在子网内部 的通信。任何时候存根域内只有一部份主机要与外界通信,甚至还有许多主机可能从不与外界通信,所有 整个存根域只需要共享少量的全局IP地址。存根域有一个边界路由器,由它 来处理域内与外部的通信。这种NAT地址使用如下特点: 只要缓冲区中存在 尚未使用的C类地址,任何从内向外的连接请求都可以得到响应,并且在边界路由器的动态NAT表中为之建立一个映像 表项; 如果内部主机的映 像存在,就可以利用它建立连接; 从外部访问内部主 机是有条件的,即动态NAT表必须存在该主机的映像。 动态地址翻译的好处是节约了全局适用的IP地址,而且不需要改变子网内部的任何配置,只需要在边界路由器中设置一个动 态地址变换表就可以工作了。 另一种特殊的NAT应用是 m:1翻译,这种技术也叫做伪装(Masquerading),因为用一个路由器的IP地址可以把子网中的所有主机的IP地址都隐藏起来。如果子 网中有多个主机要同时通信,那么还要对端口号进行翻译,所以这种技术更经常称为网络地址和端口翻译 (Network Address Port Translation NAPT)。在很多NAPT实现中专门保留一部分端口给伪装使用,叫做伪装端口号。这种方法有以下特点: 出口分组的源地址 被路由器的外部IP地址所代替,出口分组的源端口号被一个未使用的伪装端口号所代替; 如果进来的分组的 目标地址是本地路由器的IP地址,而目标端口号是路由器的伪装端口号,则NAT路由器就检查该分组 是否为当前的一个伪装会话,并试图通过它的伪装表对IP地址和端口进行翻译。 伪装技术可以作为一种安全手段使用,借以限制对外部内 部主机的访问。另外还可以用这种技术实现虚拟主机和虚拟路由,以便达到负载均衡和提高可靠的目的。 Nth在端口映射的应用 通过Nth的原理可以实现一些特定的应用,比如应用于FTP服务的端口映射,当我们有大量信息需要向互联网共享时,可能我们一台FTP服务器无法承担所有的数据流量,我们可以通过建立多台服务器来分担流量,在不必修改FTP端口的情况下,通过Nth均衡分流数据到3台ftp服务器上,如下图内网的3个FTP服务器: 我们通过建立3条nat规则,区别3个不同的服务器连接,在nat中没有同时做Passthrough的选项,而且在nat规则中采用的是先进先出算法,所以我们只能采用先标记1/3,在标记1/2,最后标记剩下的数据的方法处理3条线路的均衡操作。 我们的网络环境如下 Wan:ip 地址为 10.200.15.158/24 网关为 10.200.15.1 Lan:ip 地址为 192.168.10.1/24 内网的3个FTP服务器的IP地址分别是192.168.10.2,192.168.10.3,192.168.10.4。在配置完IP地址后,我们进入ip firewall nat配置nat规则, 首先我们需要配置基本的nat伪装规则,将内网的私有IP地址转换为公网IP。 /ip firewall nat add action=masquerade chain=srcnat disabled=no out-interface=wan 接着,设置端口映射,FTP使用的是TCP,20-21端口,我们配置3条nat的Nth端口映射的规则,分别指向192.168.10.2、192.168.10.3和192.168.10.4三个服务器的IP地址: 通过命令行配置如下: 标记前 1/3 的端口映射 add action=dst-nat chain=dstnat dst-address=10.200.15.158 dst-port=20-21 in-interface=wan nth=3,1 protocol=tcp to-addresses=192.168.10.2 to-ports=20-21 标记剩下1/2 的端口映射 add action=dst-nat chain=dstnat dst-address=10.200.15.158 dst-port=20-21 in-interface=wan nth=2,1 protocol=tcp to-addresses=192.168.10.3 to-ports=20-21 标记最后1/3 的端口映射 add action=dst-nat chain=dstnat dst-address=10.200.15.158 dst-port=20-21 in-interface=wan protocol=tcp to-addresses=192.168.10.4 to-ports=20-21 这样通过Nth分流的端口映射配置完成,这样的Nth操作仅适合于一次性提交和访问的数据连接。如果是带登陆验证的访问,不建议使用这种方式,会出现连接后在不同服务器上的重复认证。 PCC负载均衡 PCC匹配器允许分离传输流做到平衡流量的功能(能指定这个属性选择src-address, src-port, dst-address,dst-port) PCC原理 PCC从一定范围内分析选择IP数据包头,通过哈西散列算法的帮助下,将选定的区域转换为32bit值。这个值除以指定Denominator(分母),余数将比较一个指定的余数(Remainder),如果相等这时数据包将会被捕获,你可以选择src-address, dst-address, src-port, dst-port等使用此操作。 per-connection-classifier= PerConnectionClassifier ::= [!]ValuesToHash:Denominator/Remainder   Remainder ::= 0..4294967295    (integer number)   Denominator ::= 1..4294967295    (integer number)   ValuesToHash ::= src-address|dst-address|src-port|dst-port[,ValuesToHash*] per-connection-classifier分类器,通过判断源地址、目标地址、源端口和目标端口,对数据进行分类,如 事例: 这个配置将所有连接基于源地址和端口分类的3个组: /ip firewall mangle add chain=prerouting action=mark-connection new-connection-mark=1st_conn per-connection-classifier=both-addresses:3/0 /ip firewall mangle add chain=prerouting action=mark-connection new-connection-mark=2nd_conn per-connection-classifier=both-addresses:3/1 /ip firewall mangle add chain=prerouting action=mark-connection new-connection-mark=3rd_conn per-connection-classifier=both-addresses:3/2 per-connection-classifier=both-addresses:3/0,这条规则的含义为我们对原地址的端口进行分类,3/0为一共有3条出口,定义第一条,3/1则是第二条,以此类推。 注意: PCC从RouterOS v3.24开始支持,这个功能解决了多网关的负载均衡问题。 PCC的负载均衡事例 一、 双向地址负载均衡 通分组源地址和源端口实现负载平衡,这里我们建立2个WAN出口分别是wan1和wan2,网络环境如下: ∙ ISP1地址10.200.15.99/24,网关:10.200.15.1; ∙ ISP2地址10.200.100.99/24,网关:10.200.100.2; ∙ 内网IP地址192.168.100.1/24; ∙ 启用DNS缓存功能,用192.168.100.1作内网DNS解析; 基本配置 首先进入ip address配置IP地址: 在ip dns setting中配置好DNS缓存,DNS为:61.139.2.69 Mangle标记配置 接下来我们进入ip firewall mangle标记连接和路由,我们使用per-connection-classifier双向地址进行分类做连接分类标记。 首先我们需要将进入路由的的链接进行标记 如下图,我们进入一条mangle规则,中的advanced标签内容可以看到per-connection-classifier分类器,选择both-addresses的分类: 然后选择dst-address-type=!local,即除了目标地址是本地以前的地址: 注:2条线的分类代码定义是第一条线为2/0,第二条为2/1 同样选择一下地址类型: 下面命令是提取走第一条线路的连接标记取名位1st_conn,并从连接里提取路由标记名位1st_route,设置:per-connection-classifier=both-addresses:2/0, 设置in-interface=lan /ip firewall mangle add action=mark-connection chain=prerouting comment="" disabled=no \     in-interface=lan new-connection-mark=1st_conn passthrough=yes \     per-connection-classifier=both-addresses:2/0 add action=mark-routing chain=prerouting comment="" connection-mark=1st_conn \     disabled=no in-interface=lan new-routing-mark=1st_route passthrough=yes 提取走第二条线路的连接标记取名位2nd_conn,并从连接里提取路由标记名位2nd_route,设置:per-connection-classifier=both-addresses:2/1,设置in-interface=lan: /ip firewall mangle add action=mark-connection chain=prerouting comment="" disabled=no \     in-interface=lan new-connection-mark=2nd_conn passthrough=yes \     per-connection-classifier=both-addresses:2/1 add action=mark-routing chain=prerouting comment="" connection-mark=2nd_conn \     disabled=no in-interface=lan new-routing-mark=2nd_route passthrough=yes 在winbox在mangle中设置完成后如下: 回程路由设置 我们需要将从那个口进入就从相应的口回去,即保证每个外网口的数据能得到正确的路由 /ip firewall mangle add chain=input in-interface=wan1 action=mark-connection new-connection-mark=1st_conn add chain=input in-interface=wan2 action=mark-connection new-connection-mark=2nd_conn winbox设置 标记完进入接口的链接后,将这些链接指定到相应的路由标记上: add chain=output connection-mark=1st_conn action=mark-routing new-routing-mark=1st_route add chain=output connection-mark=2nd_conn action=mark-routing new-routing-mark=2nd_route winbox设置 路由配置 配置完标记后路由后,我们进入ip route配置路由,首先设置负载均衡的标记路由,首先设置第一条线路的路由标记,设置routing-mark=1st_route: 设置第二条线路的路由标记,设置routing-mark=2nd_route: 配置默认网关和备份网关,默认网关的distance设置为1,并设置check-gateway=ping,通过ping监测网关状态: 备份网关的distance设置为2,并设置check-gateway=ping,通过ping监测网关状态: 配置完成后的路由标如下图: 配置nat 最后配置nat转换规则,进入ip firewall nat中配置action=masquerade,分别对2条线路做伪装: /ip firewall nat add action=masquerade chain=srcnat out-interface=wan1 add action=masquerade chain=srcnat out-interface=wan2 RouterOS端口策略路由 MikroTik RouterOS可以支持多种策略路由,如我们常见的源地址、目标地址,同样支持端口的策略路由,多种规则可以根据用户情况配合使用,在很大部分多线路网络中常需要定义一些端口,如网页的80端口指定到一条ISP线路如下图: 网络情况: 我们有两个ISP接入的线路,一个是ISP1通过光纤接入,另外一个ISP2的PPPoE拨号链接,我们需要通过将访问网页的数据都转移到PPPoE拨号上,其他的的数据默认走ISP1的光纤。 实际配置: 现在我们定义访问网页的端口,访问网页的端口是TCP 80端口,我们进入/ip firewall mangle中做数据标记,从标记中提取路由标记,命名为“web”,因为我们在前面的连接标记中做过了passthrough的设置,在这里就不用在重复设置。 然后我们进入/ip route,配置路由我们让标记好的80端口通过pppoe-out1出去: 在这里,如果在ip route rule里有其他的策略规则出现,我们最好是在/ip route rule里再次定义80端口的规则: 在ip route rules定义的web标记在web路由表中去查找路由。 源地址策略路由奇偶标记 在双线策略路由器情况下,早期的策略路由是通过标记一段地址走一条线路,如我们标记192.168.10.2-192.168.10.127走线路A,剩下的IP地址则走线路B,这样的策略路由在一定的情况下出现效率不高的问题,如当用户IP地址是顺序增加,但没有到127的时候。线路B就不会起到流量分配的作用。 为了解决这样的问题,我们通过RouterOS的address-list建立一个地址列表,分别将奇数和偶数的IP地址分开,即奇数的IP地址走线路A,而偶数的IP地址走线路B,这样的策略路由便提高了双线的使用效率。 操作步骤如下: 1、配置好网络的IP地址和路由; 2、在ip firewall address-list列表中建立奇数或者偶数地址列表; 3、进入ip firewall mangle通过src-address-list标记数据包; 4、在ip route中调用标记好的地址策略,配置路由。 步骤1:我们首先进入路由器配置IP地址,假设我们有两条线路,分别是A和B,A的IP地址是172.16.0.2,网关是172.16.0.1;B的IP地址是:10.200.15.20,网关是10.200.15.1。 在ip route中配置以线路A的网关172.16.0.1为默认路由: 步骤2:配置好IP地址和路由后,接下在ip firewall address-list中添加奇数的地址列表,因为是双线路由,我们只需要配置一条奇数的列表,而偶数的列表可以不用配置,因为奇数被标记后,剩下的就为偶数地址。 我们将奇数列表地址取名为odd,并向地址列表里面添加你网络内所有的奇数的IP地址: 步骤3:当奇数IP地址添加完成后,我们进入ip firewall mangle标记路由规则,我们选择chain=prerouting: [admin@CDNAT] /ip firewall mangle> add chain=prerouting action=mark-routing new -routing-mark=odd src-address-list=odd [admin@CDNAT] /ip firewall mangle> print Flags: X - disabled, I - invalid, D - dynamic 0  chain=prerouting action=mark-routing new-routing-mark=odd passthrough=yes     src-address-list=odd 因为只标记了奇数的ip地址,剩下的便是偶数的,所以不用再做配置。 步骤4:配置完标记后,我们进入ip route配置路由,我们只需要将奇数的IP地址标记到线路B的网关即可,操作如下配置地址如下: 配置只需要添加gateway=10.200.15.1和routing-mark=odd,点确认: 奇数的IP地址便从B线路的10.200.15.1的网关出去,剩下的偶数IP地址从默认的线路A的172.16.0.1的网关出去
/
本文档为【ros做端口映射】,请使用软件OFFICE或WPS软件打开。作品中的文字与图均可以修改和编辑, 图片更改请在作品中右键图片并更换,文字修改请直接点击文字进行修改,也可以新增和删除文档中的内容。
[版权声明] 本站所有资料为用户分享产生,若发现您的权利被侵害,请联系客服邮件isharekefu@iask.cn,我们尽快处理。 本作品所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用。 网站提供的党政主题相关内容(国旗、国徽、党徽..)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。

历史搜索

    清空历史搜索