我想使用覆盖的子网
62.0.0.0 和 51.0.0.0 但不是 10.1.1.0/24。
问题是我的网关是 62.14.33.222,而 IP 是 51.33.11.11。
现在我需要选择涵盖两者的子网。有什么想法吗
我想要像/1,/2这样的东西
答案1
这些是公共 IP 地址,因此您不应该使用它们。退一步思考,想想您想要实现什么,然后用更多细节更新您的问题。
除了这些是公共 IP 之外,使用相距如此远的地址意味着您应该在它们之间进行路由,而不是调整网络掩码......无论您做什么,都可能行不通。
直截了当地回答你的问题(并希望能让你对子网有所了解):
IP 以十进制表示,但网络掩码是“必须匹配的位数',因此您需要熟悉将十进制转换为二进制。
62 . 14 . 33 . 222
0011 1110 0000 1110 0010 0001 1101 1110
51 . 33 . 11 . 11
0011 0011 0010 0001 0000 1011 0000 1011
我们现在可以获取两个二进制地址,并查找第一位是否不同:
0011 1110 0000 1110 0010 0001 1101 1110
0011 0011 0010 0001 0000 1011 0000 1011
^
由于第 5 位是第一个不同的位,因此您的网络掩码需要为:
1111 0000 0000 0000 0000 0000 0000 0000
240 . 0 . 0 . 0
通常表示为x.x.x.x/4
(四个前导1
s,后面跟着所有0
s)。
当计算机尝试确定是否可以直接访问远程主机时,它会使用网络掩码。下面我们进行按位与运算,然后进行比较。
if ((local_addr AND netmask) == (remote_addr AND netmask)) {
/* access directly */
} else {
/* access via router */
}
场景 #1 (网络掩码/4
):
local address: 0011 1110 0000 1110 0010 0001 1101 1110
network mask: 1111 0000 0000 0000 0000 0000 0000 0000
-----------------------------------------------
local network: 0011 0000 0000 0000 0000 0000 0000 0000
remote address: 0011 0011 0010 0001 0000 1011 0000 1011
network mask: 1111 0000 0000 0000 0000 0000 0000 0000
-----------------------------------------------
remote network: 0011 0000 0000 0000 0000 0000 0000 0000
本地和远程网络匹配,直接访问。
场景 #2 (网络掩码/5
):
local address: 0011 1110 0000 1110 0010 0001 1101 1110
network mask: 1111 1000 0000 0000 0000 0000 0000 0000
-----------------------------------------------
local network: 0011 1000 0000 0000 0000 0000 0000 0000
remote address: 0011 0011 0010 0001 0000 1011 0000 1011
network mask: 1111 1000 0000 0000 0000 0000 0000 0000
-----------------------------------------------
remote network: 0011 0000 0000 0000 0000 0000 0000 0000
本地和远程网络不要匹配,通过路由器访问。