1
Siril 2016-06-30 19:38:31 +08:00
这 8 个地址,第一个地址是网络地址, 最后一个是广播地址吧。
然而这 8 个地址没上联网关?没上联网关咋用? 难道是把路由指给你了? 上网的那个段是只给了 1 个地址吗? 你从外部( vps 之类的) traceroute 一下看看是不是给路由到了上网的地址。 若确实如此, 则很好配置啊 |
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 来。 -------------------- 以上纯属猜测。 |
3
Siril 2016-06-30 20:02:26 +08:00
补充:
路由器(或防火墙?)的此接口不要开 nat 至于路由器, 基本上是这样: 用命令行登上去配置的,基本都支持。。。 思科 华为 之类的厂商,企业级的。。。 tplink 之类的你看着办。 |
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 服务器] |
5
wuyanteng2016 OP @raysonx 分析的真对,请问最后 B 的 1-6 是怎么联通 A 的?他们的技术只说让我从其中 1-6 选一个 IP 作为网关
|
6
wuyanteng2016 OP @Siril 看懂了,就是这意思。但是,我们需要从路由器上对服务器的 IP 做 NAT 端口映射,而不是直接把服务器的 IP 改成公网 IP
|
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 网卡的地址,再修改所有服务器上的默认网关地址与之匹配即可。 |
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 端口。 之后,所有访问那个外网端口的包,都会被重写目的地址到内网。 |
9
raysonx 2016-07-01 02:17:26 +08:00 via iPad
@raysonx 更正 PRERPUTING 为 PREROUTING 。
在这种配置下, B 网段的 8 个地址都是可用的,因为你没把它作为子网使用。另外,对 eth0 上的那个网段 A 上的端口进行映射也是可以的,这样你实际有 9 个 IP 可用, |
10
wuyanteng2016 OP @raysonx 不是,我觉得你想复杂了,昨天我突然想通了,联通的这种两个地址段方式,需要在我们公司现有拓扑之上新增加一个路由器转换一下,然后我们原拓扑的路由器把 8 个地址中可用的一个拿出来作为网关 [ 这个网关是我们原拓扑中路由器的 WAN 口地址 ] 这样就 OK 了,内网服务器端口映射就可以在我们原来路由器上使用了
|
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 你不用也无所谓。 |
12
wuyanteng2016 OP @Siril 是这样,哈哈。感谢!不过我尽量让运营商处做出改变。直接给我们 8 个公网 IP(包括上网的),这样的话一切都妥了
|
13
Siril 2016-07-01 10:16:03 +08:00
@wuyanteng2016
其实我就一直很想要自己控制个网关, 然后内部可以用多个公网 ip 的。。。 因为可以实现统一控制的按优先级的 QoS 。。。 简直是看别人一种身在福中不知福的感觉。。。 话说联通给你们多大带宽,是以何种技术限速的呢? 还是说线路带宽 100Mbps , 给 100M 带宽呢 |
14
wuyanteng2016 OP |
15
snsd 2016-07-03 12:44:54 +08:00 via iPhone
@wuyanteng2016 为啥不直接凑个整上 100 ?
|
16
wuyanteng2016 OP @snsd 经费紧张😂 问题已经解决了。
原因如下: 运营商开通有两种方式:路由模式和网关模式 路由模式:运营商给你分配两个网段。 *第一个网段:对你来说只有一个可用 IP ,运营商提供网关和掩码,掩码长度 30 。但是内网服务器不能使用其他 IP 做公网映射 *第二个网段:只有 8 个公网 IP ,没网关没掩码,经过掩码计算会得出掩码是 29 位,即 255.255.255.248 。而网关需要你从中间 6 个 IP 中选择一个作为网关(去掉前后两个广播地址)。 路由模式 就是我一开始说的这种情况,需要自己在原拓扑的路由器之上,再增加一个路由用于地址转换,自己选择一个 IP 做网关才行。坏处是:公司接入成本增加,好处对我来说没有。 网关方式:运营商直接给你 8 个 IP 地址,去掉前后两个网络地址,直接在自己拓扑路由器上配置即可。当然,上网也是直接选一个 IP 配置上就 OK 。 以上两种方式建议同行在开通时,提前跟销售书面或口头说明,以免造成不便 |
17
gzslw 2018-02-28 14:51:38 +08:00
无耻地挖一下坟。。。。这样的话直接给的这几个地址会涉及到分配 IP 的问题吗
|