联通专线-端口映射问题 - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
wuyanteng2016
V2EX    宽带症候群

联通专线-端口映射问题

  •  
  •   wuyanteng2016 2016-06-30 18:36:29 +08:00 6281 次点击
    这是一个创建于 3392 天前的主题,其中的信息可能已经有所发展或是发生改变。
    公司今天接入联通专线,他们技术给了两个地址范围 [ 两个完全不一样的网段 ] 。

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

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


    若确实如此, 则很好配置啊
    Siril
        2
    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
        3
    Siril  
       2016-06-30 20:02:26 +08:00
    补充:
    路由器(或防火墙?)的此接口不要开 nat

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

    tplink 之类的你看着办。
    raysonx
        4
    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
        5
    wuyanteng2016  
    OP
       2016-06-30 23:22:09 +08:00
    @raysonx 分析的真对,请问最后 B 的 1-6 是怎么联通 A 的?他们的技术只说让我从其中 1-6 选一个 IP 作为网关
    wuyanteng2016
        6
    wuyanteng2016  
    OP
       2016-06-30 23:26:00 +08:00
    @Siril 看懂了,就是这意思。但是,我们需要从路由器上对服务器的 IP 做 NAT 端口映射,而不是直接把服务器的 IP 改成公网 IP
    raysonx
        7
    raysonx  
       2016-07-01 01:41:43 +08:00 via iPad
    @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
        8
    raysonx  
       2016-07-01 02:11:58 +08:00 via iPad
    @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
        9
    raysonx  
       2016-07-01 02:17:26 +08:00 via iPad
    @raysonx 更正 PRERPUTING 为 PREROUTING 。
    在这种配置下, B 网段的 8 个地址都是可用的,因为你没把它作为子网使用。另外,对 eth0 上的那个网段 A 上的端口进行映射也是可以的,这样你实际有 9 个 IP 可用,
    wuyanteng2016
        10
    wuyanteng2016  
    OP
       2016-07-01 06:34:07 +08:00
    @raysonx 不是,我觉得你想复杂了,昨天我突然想通了,联通的这种两个地址段方式,需要在我们公司现有拓扑之上新增加一个路由器转换一下,然后我们原拓扑的路由器把 8 个地址中可用的一个拿出来作为网关 [ 这个网关是我们原拓扑中路由器的 WAN 口地址 ] 这样就 OK 了,内网服务器端口映射就可以在我们原来路由器上使用了
    Siril
        11
    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
        12
    wuyanteng2016  
    OP
       2016-07-01 08:38:31 +08:00
    @Siril 是这样,哈哈。感谢!不过我尽量让运营商处做出改变。直接给我们 8 个公网 IP(包括上网的),这样的话一切都妥了
    Siril
        13
    Siril  
       2016-07-01 10:16:03 +08:00
    @wuyanteng2016
    其实我就一直很想要自己控制个网关, 然后内部可以用多个公网 ip 的。。。
    因为可以实现统一控制的按优先级的 QoS 。。。

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

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

    关键是再增加个路由,完全在预算之外,时间也不允许,来不及了
    snsd
        15
    snsd  
       2016-07-03 12:44:54 +08:00 via iPhone
    @wuyanteng2016 为啥不直接凑个整上 100 ?
    wuyanteng2016
        16
    wuyanteng2016  
    OP
       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
        17
    gzslw  
       2018-02-28 14:51:38 +08:00
    无耻地挖一下坟。。。。这样的话直接给的这几个地址会涉及到分配 IP 的问题吗
    关于     帮助文档     自助推广系统     博客     API     FAQ     Solana     946 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 27ms UTC 20:07 PVG 04:07 LAX 13:07 JFK 16:07
    Do have faith in what you're doing.
    ubao snddm index pchome yahoo rakuten mypaper meadowduck bidyahoo youbao zxmzxm asda bnvcg cvbfg dfscv mmhjk xxddc yybgb zznbn ccubao uaitu acv GXCV ET GDG YH FG BCVB FJFH CBRE CBC GDG ET54 WRWR RWER WREW WRWER RWER SDG EW SF DSFSF fbbs ubao fhd dfg ewr dg df ewwr ewwr et ruyut utut dfg fgd gdfgt etg dfgt dfgd ert4 gd fgg wr 235 wer3 we vsdf sdf gdf ert xcv sdf rwer hfd dfg cvb rwf afb dfh jgh bmn lgh rty gfds cxv xcv xcs vdas fdf fgd cv sdf tert sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf shasha9178 shasha9178 shasha9178 shasha9178 shasha9178 liflif2 liflif2 liflif2 liflif2 liflif2 liblib3 liblib3 liblib3 liblib3 liblib3 zhazha444 zhazha444 zhazha444 zhazha444 zhazha444 dende5 dende denden denden2 denden21 fenfen9 fenf619 fen619 fenfe9 fe619 sdf sdf sdf sdf sdf zhazh90 zhazh0 zhaa50 zha90 zh590 zho zhoz zhozh zhozho zhozho2 lislis lls95 lili95 lils5 liss9 sdf0ty987 sdft876 sdft9876 sdf09876 sd0t9876 sdf0ty98 sdf0976 sdf0ty986 sdf0ty96 sdf0t76 sdf0876 df0ty98 sf0t876 sd0ty76 sdy76 sdf76 sdf0t76 sdf0ty9 sdf0ty98 sdf0ty987 sdf0ty98 sdf6676 sdf876 sd876 sd876 sdf6 sdf6 sdf9876 sdf0t sdf06 sdf0ty9776 sdf0ty9776 sdf0ty76 sdf8876 sdf0t sd6 sdf06 s688876 sd688 sdf86