日本电子维修技术 网络分享下双重NAT下UPnP端口映射的问题解决



闲扯下背景和自己遇到的坑:
当前租住的房子和房东合住,屋子里面没有布网线,房东只提供一个WIFI密码给我,而且不幸的是Modem所在的位置离我所在的卧室最远。
日常使用的时候,信号很不稳定,一天断个两三次是很正常的,但我的工作是远程支持,必须要维持稳定的网络。
其次,现在的客厅很小,根本没地方直接摆放Gen8,所以只能放在卧室里面,难道需要买个无线网卡才能使用?

最开始用闲置的WRT310N放到客厅最靠近Modem的地方来扩展信号,这东西太老了,只支持2.4G的无线,而且时不时网络就会出现短暂的停顿。
京东搞活动的时候入了R8500,买的时候想着桥接模式下面一个5G信号扩展Modem信号,另一个5G提供DHCP给自己的设备使用,结果到手后发现启用桥接模式后别说DHCP,连无线客户端都不能用了,当时真是相当失望(后面发现可能DD-WRT固件可以实现我的要求,不过我一般很少使用DD-WRT固件),没办法WRT310N继续和Modem相连,R8500和WRT310N相连,然后R8500提供DHCP和无线给我其他的设备使用。
这时候我发现一个很奇怪的问题,就是笔记本虽然5G信号显示四五百兆的连接速度,但是不够稳定,偶尔降低到几十兆去了,这不影响工作,但是客厅的小米盒子看个1080P能卡的让人怀疑人生。
调整AC7260的设置参数,用处不大,感觉是不是需要再搞个路由器放到卧室,这样笔记本和Gen8直接用有线连接,然后副路由器桥接到主路由器。
等到京东又搞活动,领到了打折券,然后八百多又入了一个R8500,顺便拉低了第一个路由器的购买价格,到手后直接启用桥接模式,用5G2和客厅的主路由器5G2桥接,桥接后速度基本在1G左右,然后在客厅实测大文件传输,笔记本和Gen8都能达到70-80M左右,从此看片不再卡顿了。
由于WRT310N只支持2.4G的网络,虽然房东的网络是100/20M的,然而到了我这边只有50/20了,于是299买了个官翻EX6200。这玩意也是坑货,号称可以扩展2.4G和5G信号,但是这种情况下非常不稳定,我折腾了好几天最后发现启用FastLane功能后稳定了,可是FastLane相当于只扩展一个信号了,于是EX6200连接Modem的5G信号,主R8500连接EX6200,从EX6200可以观察到5G的连接速度稳定在450M以上,实测网速在100/20M了。

说回正题的UPnP问题解决。
Modem那里已经包含了一层NAT,经过我的主R8500路由器的时候,又加了一层NAT,所以是常见的双重NAT,这种情况下我发现虽然uTorrent右下角时不时变成绿色,但是Transmission的端口测试从来都是失败的,我用网页从外部测试端口,也都是失败的,可以肯定外部是访问不了UT和TR的端口的。
然后Modem的UPnP功能是启用了的,如果我直接连接到Modem,端口测试没有问题。
R8500的UPnP也是启用了的,我可以观察到自动产生的端口映射。
所以结论是UPnP只在一个子网(一个广播域?)内有效,R8500不会把自己映射的端口规则重新发送到上一层网络。
听说其他固件提供了类似把UPnP向上层网络转发的功能?

一开始遇到这个问题的时候,折腾了很久,无解。
前几天想到UPnP肯定也是遵守一定的规则来设定端口映射的,查了两三天,终于解决。
具体原理不提(细节我也还没弄得非常明白),这里使用程序MiniUPnPc解决。
修改的时候在Windows和Linux交叉进行了操作,实际上下载一个平台的文件就行。

具体的步骤可以说是很简单:
1. 直接连接到Modem,查看UPnP设备描述符
E:\Downloads\upnpc-exe-win32-20150918>upnpc-static.exe  -l
upnpc : miniupnpc library test client, version 1.9.
(c) 2005-2014 Thomas Bernard.
Go to http://miniupnp.free.fr/ or http://miniupnp.tuxfamily.org/
for more information.
List of UPNP devices found on the network :
desc: http://192.168.1.254:37215/upnpdev.xml
st: urn:schemas-upnp-org:device:InternetGatewayDevice:1

desc: http://192.168.1.250:5000/Public_UPNP_gatedesc.xml
st: urn:schemas-upnp-org:device:InternetGatewayDevice:1

Found valid IGD : http://192.168.1.254:37215/ctrlu/WANPPPConnection_1
Local LAN ip address : 192.168.1.71
Connection Type : IP_Routed
Status : Connected, uptime=843929s, LastConnectionError : ERROR_NONE

这里主要注意两行:
Found valid IGD这一行,这里表明了Modem的IP地址
根据IP地址,找到上面的UPnP设备描述URL: http://192.168.1.254:37215/upnpdev.xml
这个URL是我们需要的,端口映射是通过访问这个网址实现的。
因为这个网址在第二层NAT之后,仍然可以访问,所以我们可以进行设定。
2. 正常连接网络,获取主R8500的外部IP地址
E:\Downloads\upnpc-exe-win32-20150918>upnpc-static.exe  -l
upnpc : miniupnpc library test client, version 1.9.
(c) 2005-2014 Thomas Bernard.
Go to http://miniupnp.free.fr/ or http://miniupnp.tuxfamily.org/
for more information.
List of UPNP devices found on the network :
desc: http://192.168.13.250:5000/Public_UPNP_gatedesc.xml
st: urn:schemas-upnp-org:device:InternetGatewayDevice:1

Found valid IGD : http://192.168.13.250:5000/Public_UPNP_C3
Local LAN ip address : 192.168.13.21
Connection Type : IP_Routed
Status : Connected, uptime=1284666s, LastConnectionError : ERROR_NONE
  Time started : Sat Feb 10 19:08:14 2018
MaxBitRateDown : 100000000 bps (100.0 Mbps)   MaxBitRateUp 100000000 bps (100.0 Mbps)
ExternalIPAddress = 192.168.1.128
i protocol exPort->inAddr:inPort description remoteHost leaseTime
0 UDP 51331->192.168.13.21:51331 'Teredo 192.168.13.21:51331->51331 UDP' '' 0
1 TCP 52255->192.168.13.252:52255 'Transmission at 52255' '' 0
2 UDP 52255->192.168.13.252:52255 'Transmission at 52255' '' 0
GetGenericPortMappingEntry() returned 713 (SpecifiedArrayIndexInvalid)
这里只需要关注一行: ExternalIPAddress = 192.168.1.128
这个地址从路由器的状态界面也可以获取,但是通过命令的方式获取意味着后面可以自动化这些设置。
3. miniupnpc支持-u选项来指定UPnP设备的URL,从而直接操作指定的设备
[email protected]:/home/neilzh/miniupnpc-2.0# upnpc -u "http://192.168.1.254:37215/upnpdev.xml" -a 192.168.1.128 51155 51155 UDP
upnpc : miniupnpc library test client, version 2.0.
(c) 2005-2016 Thomas Bernard.
Go to http://miniupnp.free.fr/ or http://miniupnp.tuxfamily.org/
for more information.
Found valid IGD : http://192.168.1.254:37215/ctrlu/WANPPPConnection_1
Local LAN ip address : 192.168.13.40
ExternalIPAddress = 125.2XX.52.1XX
InternalIP:Port = 192.168.1.128:51155
external 125.2XX.52.1XX:51155 UDP is redirected to internal 192.168.1.128:51155 (duration=0)
4. 删除的时候需要指定端口和协议
E:\Downloads\upnpc-exe-win32-20150918>upnpc-static.exe  -d 52255 TCP  (这是当时连接Modem时进行的测试,如果正常网络连接下,需要指定-u选项)
upnpc : miniupnpc library test client, version 1.9.
(c) 2005-2014 Thomas Bernard.
Go to http://miniupnp.free.fr/ or http://miniupnp.tuxfamily.org/
for more information.
List of UPNP devices found on the network :
desc: http://192.168.1.250:5000/Public_UPNP_gatedesc.xml
st: urn:schemas-upnp-org:device:InternetGatewayDevice:1

desc: http://192.168.1.254:37215/upnpdev.xml
st: urn:schemas-upnp-org:device:InternetGatewayDevice:1

Found valid IGD : http://192.168.1.254:37215/ctrlu/WANPPPConnection_1
Local LAN ip address : 192.168.1.71
UPNP_DeletePortMapping() returned : 0
5. 再次测试端口

Transmission Remote GUI v5.14.png (31.68 KB, 下载次数: 0)

2018-2-27 20:39 上传



这个问题困扰很长时间,至此初步解决,通过上面的命令输出,可以写成脚本来检测当分配的IP变化时,自动删除和添加新的映射关系。
写出来给也许有类似困扰的朋友参考下。



评论
我觉得楼主可以把你牛逼路由借给房东做主路由

评论
虽然看不懂,收藏了

评论
为啥不用UBNT 或直接电力猫

评论
用电力猫稳定多了

评论
我就想问,折腾了这么久为什么不自己拉条网线?  直接不走房间,让电信的给你走窗户进也行呀。。。

评论
那么多廉价k2、k2p很好用。。。

评论
太复杂了没看懂

评论
多层NAT必须用静态映射,每一层都要手工配置

哪里有路由器还能代你子网里客户机去上层映射的

评论

多层NAT确实没很好的办法,除非固件有类似的功能

评论
回LS几位朋友:
有一次我问房东房间内能不能钉个钉子,答曰最好不要,所以不想改动房间的任何东西,而且我自己也不想走网线嫌走线麻烦。
Microserver Gen8有三个网口,其中两个还要实现负载均衡,电力猫好像做不到,而且我有朋友用过,感觉不是太满意。 电路 电子 维修 我现在把定影部分拆出来了。想换下滚,因为卡纸。但是我发现灯管挡住了。拆不了。不会拆。论坛里的高手拆解过吗? 评论 认真看,认真瞧。果然有收 电路 电子 维修 求创维42c08RD电路图 评论 电视的图纸很少见 评论 电视的图纸很少见 评论 创维的图纸你要说 版号,不然无能为力 评论 板号5800-p42ALM-0050 168P-P42CLM-01
 ·日本中文新闻 唐田绘里香为新剧《极恶女王》剃光头 展现演员决心
·日本中文新闻 真子小室夫妇新居引发隐私担忧
·日本中文新闻 前AKB48成员柏木由纪与搞笑艺人交往曝光
·日本学校 {日本国际学校}梅田インターナショナルスクール
·日本学校 LINE:sm287 陳雨菲、20歳、台湾からの留学生、東京に来たばかり
·日本留学生活 出售平成22年走行48000km 代步小车
·日本华人网络交流 円相場 一時1ドル=140円台まで上昇?
·日本华人网络交流 问日本华人一个问题
·日本旅游代购 富山接机
 ·生活百科 英国转澳大利亚转换插头
·汽车 【求助】修车遇到困难怎么办?

维修经验

CPUcpu-z 1.77版低调发布

日本维修技术更新: New benchmark “submit and compare” feature New clocks dialog reporting all system’s clock speeds in real-time Preliminary support for Intel Kaby Lake AMD Bristol Ridge processors 主要是增加了支持I、A两个新架构的 ...

维修经验

CPU这几天经常开机黑屏,热重启后又正常

日本维修技术这几天经常开机黑屏,热重启后又正常,今天热重启也不管用了。折腾半天总算点亮,显示超频失败,以前出这个画面我是不理它的,直接重启就能正常进系统了,今天不敢托大,因为 ...

维修经验

CPU超频求助!关于华擎H170和6700K

日本维修技术问题见楼主的show贴 https://www.chiphell.com/thread-1634895-1-1.html 这次华擎的H170 Hyper最大的特色应该是自带时钟发生器可以自由超外频 可是楼主好久没有折腾超频了。。。 两图中除了CPU外频 以 ...

维修经验

CPU液态金属会侵蚀cpu核心吗?

日本维修技术前阵子看到有人说,液态金属时间长了会侵蚀cpu铜盖,那么问题来了,这货会不会侵蚀核心呢? 评论 这玩意儿好像只对铝起反应 评论 不是说,cpu的盖子是铜的吗。。。 评论 不会,核 ...

维修经验

CPUm6i究竟支不支持e3 1231v3

日本维修技术官网上看支持列表没写有e3 1231v3,装机帖又有人晒,百度也没个明确答案,那究竟能不能点亮?有在用的chher说一下么 评论 升级最新bios肯定可以支持 评论 我的p67evo官网上也没说支持12 ...

维修经验

CPU华擎 HYPER 妖板 正确玩法

日本维修技术600元的 B150,10相供电,释放洪荒之力 注意必须官网 Beta 区的 BIOS 有 AVX 的 CPU 可能会掉缓存 启动时按 X 键激活 SKY OC,重启后进入 BIOS 160924164727.jpg (95.63 KB, 下载次数: 1) 2016-9-24 17:47 上传 ...

维修经验

CPUE5 2686 V3和i7 6800K如何选择

日本维修技术默认用,不超频,两者功耗是一模一样的 E5 2686 V3:2.0主频,3.5睿频, 18核心36线程 ,45M L3 咸鱼大约2500~3000元 i7 6800K : 3.5主频,3.8睿频 ,6核心12线程 ,盒装3000元 评论 性能应该是26 ...

维修经验

CPUHD530硬解4K能力还是有点弱呀!

日本维修技术播放器用PotPlay 64bit,各种优化后,跑4K @120Hz视频只能到70帧左右的速度,勉强能用! 显示器用的4K的优派VP2780 未标题-1.jpg (211.97 KB, 下载次数: 0) 2016-9-26 21:29 上传 评论 这个估计你没优化 ...

维修经验

CPU6900k 1.25V到4.2体质怎么样

日本维修技术如图,体质怎么样,ring是35,没敢试了,都说ring高了毁硬件 评论 不错的U,但不算雕,上4.4就大雕了,这电压上4.5的目前没见有人发图 评论 谢谢前辈告知 评论 我这个用1.2V超的4.2,R ...

维修经验

CPUI3 6100 华擎B150M pro4超4.5g测试。

日本维修技术看看论坛没多少i3 6100的帖子,就转下自己发的show贴里面的数据,给大家参考下。家里还有当年的神U i3 540 oc 4.5G在给老妈用。 不知道数据上正常吗?有6100的朋友可以告诉下,另外是不有 ...

维修经验

CPU7系u会兼容100系主板吗?

日本维修技术RT,听说要推200系板,100系还能用吗以后。。 评论 兼容的 评论 感谢!以后换u就行了,目前消息200系板会有新的特性吗? 评论 24条PCI-E 3.0通道、支持Intel Optane混合存储技术、十个USB 3 ...

维修经验

CPU有心入5820k了,求教下温度问题

日本维修技术一直徘徊在6700k和5820k之间,6700k现在这德行直接把我推向了5820k啊,从2600k升级上来,三大件都要换,现在唯一疑惑的是IB-E ex这种顶级风冷能不能压住4.5g的5820呢?毕竟刚刚买一个多月。 ...

维修经验

CPU6600&6600K才100的差价

日本维修技术太少了吧。。。 6600.JPG (106.91 KB, 下载次数: 0) 2016-10-1 10:30 上传 评论 毕竟只是i5而已…… 评论 上z170 6600也能超,等于没区别,差价能有100已经不错了 评论 然后又见不超频人士推荐超频 ...