分成两段的设备并不会自动互相看不见,也不会自动通。两段之间的通信要经过一个有地址的中间角色,它同时属于两边,把数据从一段转到另一段。这个角色可能是专门设备,也可能是具备转发能力的主机。代理IP的转发程序在某些部署里就承担了类似的中转职责,位置不同,做的事相通。
中间角色做什么
它维护一张对应关系,知道哪一段在哪个方向;收到数据之后看目标属于哪一段,再从对应方向发出去。这条路径对两端设备是透明的,两端只知道自己那一侧的情况。也正因为透明,中间那一层没配好时,现象往往表现为「完全不通」,看不出是哪一步的问题。
| 环节 | 看什么 | 结果 |
|---|---|---|
| 判断方向 | 目标地址属于哪一段 | 确定从哪个口发出 |
| 更新沿途信息 | 转发跳数 | 跳数减一 |
| 送出 | 下一跳地址 | 进入另一段 |
为什么不能直接通
两段各自独立编号,合起来可能出现完全相同的地址。直接广播过去会分不清目标到底在哪一边。中间角色把两段隔开,编号重复也不会互相干扰;代价是多一个环节,配置时要显式说明哪一段往哪边走。
同一台设备两条线怎么做
设备上可以有两个地址,各属于一段,按规则决定哪类流量走哪一边。这种做法在需要分别走不同通道的场景里常见,配置的关键是把规则写清楚,避免两边都接或者两边都不接。规则重叠的时候,实际走哪一条往往取决于顺序,所以顺序也要一并定下来。代理IP的多线配置同样要把优先级排好,否则同一份流量可能被两条规则同时命中。
排查时先看哪一步
不通的时候先确认目标属于哪一段,再看中间角色的对应关系里有没有这一段的记录。两项都对,问题多半在具体规则或者上一跳;如果对应关系里根本没有这一段,说明配置没有落到这里,需要补上一条。把这个顺序固定下来,跨段不通就不再靠猜。
通与不通的边界在哪
默认情况下两段之间是不通的,需要显式配置才通。这条默认规则出于安全考虑,也解释了为什么新加一段之后,原来能访问的设备忽然访问不到。
跨段之后速度会变吗
会经过多一个环节,但这个环节的开销通常很小。真正影响感受的是规则是否清楚、线路是否通畅,多一跳本身带来的差别一般看不出来。
- 先确认目标归属哪一段
- 再查中间角色的对应记录
- 最后看规则与上一跳
新加一段之后原来的访问失效,多是这条默认规则在起作用。
把归属、记录、规则依次对过,跨段不通就不再玄乎。代理IP的跨段规则照这三步对,定位也快。默认不通,要用就得显式配。
