联通专线-端口映射问题

2016-06-30 18:36:29 +08:00
 wuyanteng2016
公司今天接入联通专线,他们技术给了两个地址范围 [ 两个完全不一样的网段 ] 。

上网的这个段都有 IP 地址,掩码和网关 ;

另一个是 8 个地址的地址范围 [ 没掩码没上联网关 ] ,技术说,前后两个地址不能用。把中间的地址拿出来一个做网关,如果要给服务器做端口映射,请问中间 6 个地址怎么配置?
5899 次点击
所在节点    宽带症候群
17 条回复
Siril
2016-06-30 19:38:31 +08:00
这 8 个地址,第一个地址是网络地址, 最后一个是广播地址吧。
然而这 8 个地址没上联网关?没上联网关咋用? 难道是把路由指给你了?
上网的那个段是只给了 1 个地址吗?
你从外部( vps 之类的) traceroute 一下看看是不是给路由到了上网的地址。


若确实如此, 则很好配置啊
Siril
2016-06-30 19:46:41 +08:00
举例。。。

ISP 给你 1 个 1.2.3.4/30 , 这个段只有俩 ip , 1.2.3.6 给你用, 1.2.3.5 是网关。
又给你了 1 个 2.3.4.0/29 , 其中 2.3.4.0 是网络地址, 2.3.4.7 是广播地址 , 这俩不能用。

从外部 traceroute 2.3.4.5 ,发现最后一跳是给你的 1.2.3.6

如果这样。。。
路由器需要加个接口(或者 vlan 子接口),配 2.3.4.1-6 中随便 1 个,
此接口接个 vlan ,用来接其他用 2.3.4.x 地址的服务器。

此时你可以在此路由器(或防火墙)上加访问控制限制啦 CBAC 啦 自反 ACL 啦 之类的,就很方便,
服务器虽然使用了公网 ip ,却无须在服务器上配置软件防火墙,
外部不能主动访问服务器上任意端口,按防火墙上的 acl 来。

--------------------
以上纯属猜测。
Siril
2016-06-30 20:02:26 +08:00
补充:
路由器(或防火墙?)的此接口不要开 nat

至于路由器, 基本上是这样:
用命令行登上去配置的,基本都支持。。。 思科 华为 之类的厂商,企业级的。。。

tplink 之类的你看着办。
raysonx
2016-06-30 21:07:25 +08:00
下面我把你说的“上网的这个段”称为网段 A ,“ 8 个地址的地址范围”称为网段 B 。
联通的路由器必须把网段 B 路由到网段 A 中的某一个 IP ,这样外网用户访问网段 B 时,数据包才能经由那个 IP 到达你的机房。
从你的描述中无法得知这个“网段 A 中的某个一 IP ”是多少,但我猜测联通只给了你一个网段 A 的可用 IP ,否则就没法继续了。因此我猜测网段 A 是个 /30 (即掩码 255.255.255.252 )的网段。

下面假设联通给你的信息是:
网段 A : 198.51.100.0/30 ,网关 198.51.100.1/30
网段 B : 203.0.113.0/29

则网段 A 中你可用的地址只有 198.51.100.2 ,因为 198.51.100.0/30 和 198.51.100.3/30 分别是网络地址和广播地址,不能使用。
网段 B 中, 203.0.113.0/29 和 203.0.113.7/29 是网络地址和广播地址,也不能使用。可用地址范围: 203.0.113.1-6/29 。你需要从中随便挑一个作为网段 B 的网关,假设它是 203.0.113.1 。

则最管单的网络拓扑如下:

[ 联通的路由器 198.51.100.1/30 ] ------- [198.51.100.2/30 你的路由器 203.0.113.1/29] --- [ 交换机] ----- [203.0.113.2-6/29 服务器]
wuyanteng2016
2016-06-30 23:22:09 +08:00
@raysonx 分析的真对,请问最后 B 的 1-6 是怎么联通 A 的?他们的技术只说让我从其中 1-6 选一个 IP 作为网关
wuyanteng2016
2016-06-30 23:26:00 +08:00
@Siril 看懂了,就是这意思。但是,我们需要从路由器上对服务器的 IP 做 NAT 端口映射,而不是直接把服务器的 IP 改成公网 IP
raysonx
2016-07-01 01:41:43 +08:00
@wuyanteng2016 需要正确配置路由表。
假设你的路由器有两个网卡, eth0 和 eth1 , eth0 连外网, eth1 连交换机。

路由器需要有两条路由(以 Linux 软路由为例,用 ip route -n 命令查看路由表):
0.0.0.0/0 via 198.51.100.1 dev eth0
203.0.113.0/29 dev eth1
第二条路由表示,发往网段 b 的数据包应该直接丢到 eth1 网卡。
第一条路由是默认路由( 0.0.0.0/0 ),表示发往其他地址的包应该经由 eth0 网卡转发给下一跳路由器 198.51.100.1 (即联通的网关)。网关是默认路由的同义词。

所有连接到交换机的服务器需要配置默认路由到 203.0.113.1 ,假设网卡名是 eth3:
0.0.0.0/0 via 203.0.113.1 dev eth3
203.0.113.0/29 dev eth3
也就是,对于网段 B 的包,直接丢给 eth3 这张网卡。对于其他地址,经由 eth3 转发给下一跳路由器 203.0.113.1 。

如果你选择 1-6 中的其他地址作为网段 B 的网关,只要修改 eth1 网卡的地址,再修改所有服务器上的默认网关地址与之匹配即可。
raysonx
2016-07-01 02:11:58 +08:00
@wuyanteng2016 至于做端口映射,最简单的方案如下:
更改上面的示例,把网段 B 换成内网地址段 C (假设是 192.168.0.0/24 ),配置方法是一样的。
此时路由器同时连接外网和内网,不能互通,需要开启路由器上的 NAT 。
NAT (这里只讨论其中最常见的 NAPT )分为 SNAT 和 DNAT 两种, SNAT 就是家用路由器默认开启的那种,让内网地址的机器可以发起连接访问外网。 DNAT 就是你说的端口映射,将一个外网地址的某个端口映射给内网 IP 的某个端口。
假设 web 服务器的内网 IP 是 192.168.0.100 ,端口号 80/tcp ,你希望外网能通过 203.0.113.5:80/tcp 访问,则需要配置路由器上的 DNAT 规则(以 Linux 软路由的 netfilter 防火墙为例):
iptables -t nat -A PRERPUTING -i eth0 -d 203.0.113.5 -p tcp --dport 80 -j DNAT --to 192.168.0.100:80
这条规则在路由之前执行,表示对从 eth0 进来的,发往 203.0.113.5 的 80/tcp 的包,重定向到 192.168.0.100 的 80/tcp 端口。
之后,所有访问那个外网端口的包,都会被重写目的地址到内网。
raysonx
2016-07-01 02:17:26 +08:00
@raysonx 更正 PRERPUTING 为 PREROUTING 。
在这种配置下, B 网段的 8 个地址都是可用的,因为你没把它作为子网使用。另外,对 eth0 上的那个网段 A 上的端口进行映射也是可以的,这样你实际有 9 个 IP 可用,
wuyanteng2016
2016-07-01 06:34:07 +08:00
@raysonx 不是,我觉得你想复杂了,昨天我突然想通了,联通的这种两个地址段方式,需要在我们公司现有拓扑之上新增加一个路由器转换一下,然后我们原拓扑的路由器把 8 个地址中可用的一个拿出来作为网关 [ 这个网关是我们原拓扑中路由器的 WAN 口地址 ] 这样就 OK 了,内网服务器端口映射就可以在我们原来路由器上使用了
Siril
2016-07-01 08:06:37 +08:00
@wuyanteng2016

不错,加路由器是正途,这样最简单:
外层的(说的是靠近公网的那个)纯路由不做 nat ,内层的(若干)路由器照常配置。
------------------------------

不过, 服务器要经过两个路由器才能联网,坏任意一个都会断网;
接上面我写的例子,
路由器 1 接口 a 2.3.4.1 ,接口口 b 192.168.1.1 ,接口 c 2.3.4.1 。

b->a 做 nat ,
需要从公网访问的可以在 a 上 nat inside ,
必须单独占公网 ip 的服务器接到 c 所连接的 vlan 上。

--------------------------------------------------
就是说 2.3.4.2-6 你不用也无所谓。
wuyanteng2016
2016-07-01 08:38:31 +08:00
@Siril 是这样,哈哈。感谢!不过我尽量让运营商处做出改变。直接给我们 8 个公网 IP(包括上网的),这样的话一切都妥了
Siril
2016-07-01 10:16:03 +08:00
@wuyanteng2016
其实我就一直很想要自己控制个网关, 然后内部可以用多个公网 ip 的。。。
因为可以实现统一控制的按优先级的 QoS 。。。

简直是看别人一种身在福中不知福的感觉。。。

话说联通给你们多大带宽,是以何种技术限速的呢?
还是说线路带宽 100Mbps , 给 100M 带宽呢
wuyanteng2016
2016-07-01 13:49:41 +08:00
@Siril 联通 80M 专线。

关键是再增加个路由,完全在预算之外,时间也不允许,来不及了
snsd
2016-07-03 12:44:54 +08:00
@wuyanteng2016 为啥不直接凑个整上 100 ?
wuyanteng2016
2016-07-03 20:14:21 +08:00
@snsd 经费紧张😂 问题已经解决了。

原因如下:

运营商开通有两种方式:路由模式和网关模式

路由模式:运营商给你分配两个网段。

*第一个网段:对你来说只有一个可用 IP ,运营商提供网关和掩码,掩码长度 30 。但是内网服务器不能使用其他 IP 做公网映射
*第二个网段:只有 8 个公网 IP ,没网关没掩码,经过掩码计算会得出掩码是 29 位,即 255.255.255.248 。而网关需要你从中间 6 个 IP 中选择一个作为网关(去掉前后两个广播地址)。



路由模式 就是我一开始说的这种情况,需要自己在原拓扑的路由器之上,再增加一个路由用于地址转换,自己选择一个 IP 做网关才行。坏处是:公司接入成本增加,好处对我来说没有。

网关方式:运营商直接给你 8 个 IP 地址,去掉前后两个网络地址,直接在自己拓扑路由器上配置即可。当然,上网也是直接选一个 IP 配置上就 OK 。


以上两种方式建议同行在开通时,提前跟销售书面或口头说明,以免造成不便
gzslw
2018-02-28 14:51:38 +08:00
无耻地挖一下坟。。。。这样的话直接给的这几个地址会涉及到分配 IP 的问题吗

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/289429

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX