1
birdvdsk 4 天前 via Android
理论上即使是 nat ,也能在路由追踪里看见。而且 http 408 是服务器返回的状态码。综合来看难道移动不只是整了 nat ,而是部署了一个反向代理来转发请求?
|
2
mytsing520 OP PRO |
3
birdvdsk 4 天前 via Android
虽然把流量路由到其他地方很常见,但是在上层套 nat 倒是第一次见。
|
4
birdvdsk 4 天前 via Android
使用外部 nat 终结点外联,降低了服务质量。已经影响了业务进行(频繁超时,无法连接),违法了合同(专线固定公网 ip ),应要求运营商限期改正
|
5
mytsing520 OP PRO @birdvdsk 只能说,用和不用 NAT ,目前互联互通都有问题;只能是两害相权取其轻。
|
6
birdvdsk 4 天前 via Android
@mytsing520 好奇是什么专线,pon 还是 ptn 等方式接入
|
7
mytsing520 OP PRO @birdvdsk 这里指的专线是指宽带产品类型
|
8
flynaj 4 天前 via Android
@birdvdsk 理论上是这样,实际上我们这点全部禁路由追踪,
traceroute www.baidu.com -4 traceroute to www.baidu.com (183.2.172.177), 30 hops max, 46 byte packets 1 100.81.0.1 (100.81.0.1) 7.333 ms 6.409 ms 5.508 ms 2 * * * 3 * * * 4 * * * 5 * * * 6 * * * 7 * * * 8 * * * 9 * * * |
9
julyclyde 3 天前
NAT 在 traceroute 里本来就看不到啊,为啥还要插一句嘴?
|
10
MindMindMax 2 天前
@birdvdsk NAT 不响应 ICMP 超时消息,traceroute 咋能看到呢
|
11
birdvdsk 2 天前 via Android
@MindMindMax 我自己试了一下,openwrt ,routeros 还有华为。只要不 block icmp ,都能通过 nat 转发传递 traceroute 消息。不知 nat 不响应 icmp 消息是在哪里的说法
|
13
MindMindMax 2 天前
@birdvdsk 😷 运营商的 CGNAT 跟你 homelab 配置的拓扑能一样吗。traceroute 不会告诉你源地址在某一跳被转换了。它只显示路径节点的 IP ,而且 CGNAT 、运营商骨干设备上,很多时候会禁止 ICMP 响应,显示的是星号。但是星号又不意味着这是 CGNAT 。
|
14
birdvdsk 2 天前 via Android
@MindMindMax 感谢你的回复。我去找了个 cgnat 宽带试了一下,确实骨干网里会有几跳没 icmp 路由回复。不过我还有一点疑问。既然 nat 的 traceroute 只显示路径节点的 IP ,那么这个 IP 具体是什么?是 nat 设备的出口 IP 吗?有没有相关 rfc 或者相关设备的文档描述具体行为
|
15
MindMindMax 2 天前
@birdvdsk RFC 5508: "NAT Behavioral Requirements for ICMP"
—— 不过看了也没用,因为即使 CGNAT 设备支持 RFC 5508 ,也不能保证沿途所有路由器都返回 ICMP 消息。人为开启 ICMP 抑制策略。 运营商的理由:屏蔽探测(减少暴露安全隐患)、设备性能限制(骨干 CGNAT 要同时维护居多用户的会话表,响应跟踪请求的话,那要保持与维护大量 ICMP 的 Identifier 字段、状态了) |
16
birdvdsk 2 天前 via Android
@MindMindMax 感谢你的回复。我在 14 楼还提问了 nat 设备在处理 traceroute 时是返回内部接口 IP 还是外部接口 IP 的问题。我看见 rfc5508 提到:“当 NAT/NAPT 在路径上并且必须处理/转发 ICMP 错误/响应时,应该正确处理(并在必要时翻译) ICMP 中的字段以保持映射一致性。”可是具体会发生什么?
|
17
birdvdsk 2 天前 via Android
@MindMindMax 返回外部接口 IP 还是内部接口 IP
|
18
MindMindMax 2 天前
@birdvdsk 外部接口 IP 。 你看不到 NAT 内部的跳数的。
emmm... 姑且歪个楼,如果你 traceroute 看到了保留地址: 这是运营商在自己的骨干和接入网络里,用 RFC1918 的私有地址来给设备和链路编号。对你的终端来说,这些地址不可达,但在 traceroute 里可能会暴露出来,仅仅是看起来像“跳到了一些奇怪的保留地址”。 |
19
birdvdsk 2 天前 via Android
@MindMindMax 感谢你的回复!
|