статический маршрут: зачем адресу назначения нужна маска подсети [закрыто]

Когда я определяю статический маршрут, почему я должен определять маску подсети для сети назначения? Что произойдет, если у меня более одного шлюза и маски подсети всех целевых сетей будут 0.0.0.0?

2
задан 29 September 2012 в 10:53
2 ответа

Поскольку сетевой адрес назначения сам по себе не дает диапазона сетевых адресов, однако в сочетании с сетевой маской определяется полный объем удаленной сети.

Например, скажем, вы использовали хост в сети 10.34.1.0/24 и ваш маршрут был определен следующим образом

route add 10.34.2.0 mask 255.255.255.0 10.34.1.1

Вышеупомянутое правило сообщает вашему компьютеру, что любой хост в сети 10.34.2.0/24 (10.34.2.1 - 10.34.2.254 ) доступен через маршрутизатор 10.34.1.1

Указание пункта назначения без маски подсети не имеет смысла, даже в случае одного хоста, который может быть определен как

route add 10.34.3.4 mask 255.255.255.255 10.34.1.2

Если у вас есть конфликтующие маршруты с использованием маски сети 0.0.0.0, то маршрут с наименьшим значением метрики обычно будет иметь приоритет, например

route add 0.0.0.0 mask 0.0.0.0 10.34.1.3 metric 10
route add 0.0.0.0 mask 0.0.0.0 10.34.1.4 metric 5

10.34.1.4 будет предпочтительным маршрутом,при условии, что не существует других подходящих маршрутов с более низкой метрикой

5
ответ дан 3 December 2019 в 09:19

маска подсети указывает вашему маршрутизатору / ОС, какова сетевая часть вашего адреса.

Допустим, у вас 10.1.2.0, если у вас не будет сетевой маски (это называется классовая маршрутизация), если предполагается, что это сеть 10.0.0.0, поскольку она принадлежит к классу A (некоторые устройства / ОС предоставляют ей подсеть, определенную в их интерфейсе). См. Здесь о классовой и бесклассовой маршрутизации

Это классы:

Class A
1.  0.  0.  1 = 00000000.00000000.00000000.00000000
127.255.255.254 = 01111111.11111111.11111111.11111111
                  0nnnnnnn.HHHHHHHH.HHHHHHHH.HHHHHHHH

Class B
128.  1.  0.  1= 10000000.00000000.00000000.00000000
191.255.255.255 = 10111111.11111111.11111111.11111111
                  10nnnnnn.nnnnnnnn.HHHHHHHH.HHHHHHHH

Class C
192.  0.  1.  1 = 11000000.00000000.00000000.00000000
223.255.255.254 = 11011111.11111111.11111111.11111111
                  110nnnnn.nnnnnnnn.nnnnnnnn.HHHHHHHH

Class D
224.  0.  0.  0 = 11100000.00000000.00000000.00000000
239.255.255.254 = 11101111.11111111.11111111.11111111
                  1110XXXX.XXXXXXXX.XXXXXXXX.XXXXXXXX

Class E
240.  0.  0.  0 = 11110000.00000000.00000000.00000000
255.255.255.254 = 11111111.11111111.11111111.11111111
                  1111XXXX.XXXXXXXX.XXXXXXXX.XXXXXXXX

Но если вы установите маску подсети, вы можете разделить эту сеть 10.0.0.0 на несколько сетей, например 10.1.0.0 или 10.1.1.0.

Маска подсети требуется, потому что когда вы определяете статический адрес (скажем, в Windows, он не использует точную маршрутизацию, а бесклассовую маршрутизацию, которая должна иметь маску подсети).

Если вы установите маску подсети 255.0.0 . 0, это означает, что только первая часть адреса является сетевым адресом, поэтому ваша сеть - x.0.0.0, если вы поместите 255.255.0.0, тогда она займет первые две части адреса, например xx0.0, и т. Д. . Таким образом, когда вы вводите маску подсети 0.0.0.0, это означает любой адрес от 0.0.0.0 до 255.255.255.255.

Если у вас есть более одного маршрута для одного и того же пункта назначения, победит маршрут с более низкой метрикой.

О маске подсети из ваших пунктов назначения, установленного на 0.0.0.0 на большинстве устройств / ОС, я не думаю, что можно установить маску подсети 0.0.0.0, если адрес не 0.0.0.0. То есть они не позволяют помещать 1-битное значение в адрес назначения статического маршрута, если соответствующее значение в маске подсети равно 0.

Windows, например, не позволит вам сделать это

route add 10.10.10.0 mask 255.0.0.0 192.168.1.1

, потому что вы указали маску подсети 255.0.0.0 в двоичной форме 11111111.00000000. 00000000.00000000 и адрес назначения 10.10.10.0 в двоичной форме 00001010.00001010.00001010.00000000. Он имеет 1 в том месте, где маска подсети имеет 0 (вторая и третья часть адреса)

1
ответ дан 3 December 2019 в 09:19

Теги

Похожие вопросы