Я хочу использовать подсеть, которая охватывает

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 ответ1

5

Это общедоступные 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 с, затем все 0 с).


Когда компьютер пытается определить, может ли он напрямую обращаться к удаленному хосту, он использует маску сети. Ниже мы делаем побитовую операцию И, а затем сравниваем их.

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

Локальные и удаленные сети не совпадают, доступ через роутер.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .