Хорошо, сначала у меня есть система двойной загрузки. Linux Mint 18 (Сара) Корица и Windows 7 SP1. Хорошо, что я сделал это, потому что я новичок в Linux.

Когда я впервые установил Windows и Linux, я настроил LAN1 как 192.168.1.1/255.255.255.0. У меня не было проблем с доступом к LAN1 или Интернету из любой ОС.

Недавно я решил подсеть. Я изменил LAN1 на 192.168.64.80/255.255.255.240. Это дало мне xxx80 в качестве шлюза, 14 используемых IP-адресов как xxx81-xxx94, что достаточно, и xxx95 как широковещательную рассылку. Затем я перезагрузил маршрутизатор, и новые IP-адреса были переданы через DHCP. Сеть Windows получила данные DHCP, и я без проблем смог получить доступ к LAN1 и Интернету. Пробовал то же самое с Linux и не может получить доступ к чему-либо по LAN1 или Интернету. Обращаясь к сетевому апплету на рабочем столе и к настройке ifconfig через терминал, стало ясно, что Linux знает о новых данных DHCP. Так что я не понимаю, почему я ничего не могу получить!

Кто-нибудь знает особенности сетей Linux, так что я могу починить то, что явно требует ремонта?

Заранее спасибо.

3 ответа3

4

Я думаю, что ваша проблема в том, что вы пытаетесь использовать сетевой адрес в качестве адреса шлюза, но вы не можете этого сделать. Шлюз - это хост в сети, и он должен иметь адрес хоста. Шлюз - это хост, на который все другие хосты отправляют трафик, предназначенный для другой сети, но он по-прежнему является хостом в сети, и он должен использовать адрес хоста. Сетевой адрес непригоден для использования, и он не должен появляться в качестве адреса источника или назначения в каких-либо пакетах IPv4.

Для вашего примера, 192.168.64.80/28:

Network    = 192.168.64.80
First host = 192.168.64.81
Last host  = 192.168.64.94
Broadcast  = 192.168.64.95

Вы должны выбрать свой адрес шлюза из одного из адресов хоста. Некоторые люди используют первый адрес хоста в качестве стандартного адреса шлюза, а некоторые используют последний адрес хоста. Некоторые люди просто выбирают любой адрес хоста. На самом деле это не имеет значения, поскольку шлюз является хостом в сети.

0

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

Но в то же время, подумав об этом, я задался вопросом: для чего используется сетевой адрес? Я знаю, почему у нас есть широковещательная рассылка, и это имеет смысл для меня (например, DHCP использует ее), но я понял, что просто принял правило, что мы не используем сетевой адрес для хоста, не зная, почему.

Немного покопавшись, он вернулся к вопросу SU, который хорошо объясняет это: почему сетевой адрес не может быть действительным адресом хоста?

Прочитав немного, я понял, что за этим стоят исторические причины. На мой взгляд, в современных современных сетях CIDR нет практической причины, по которой сетевой адрес не должен использоваться в качестве адреса хоста, за исключением того, что из-за истории IPv4 все еще существуют некоторые инструменты и старые устройства, которые рассматривают сетевой адрес как широковещательный для сеть. Возможно, именно поэтому Windows, кажется, работает нормально с сетевым адресом, определяемым как хост в сети.

Я также попытался пропинговать сетевой адрес на моем macOS, и это работало как широковещательная рассылка. Может быть, это строгое соответствие RFC сетевых стеков на определенных ОС (а ваш роутер не основан на Linux? Может быть?). В RFC, кроме подсети /32 (которая имеет только 2 адреса и делает ее идеальной для сетей «точка-точка», следовательно, не требуется широковещательная рассылка и т.д.), Первый адрес, по-видимому, зарезервирован для представления «сети».

Как я уже упоминал ранее, я предлагаю рассмотреть ваши настройки. Онлайн калькулятор сети должен помочь. (После быстрого поиска в Google это выглядело как наиболее подходящее для настройки сети: https://www.tunnelsup.com/subnet-calculator/)

0

Маршрутизаторы Cisco имеют команду глобальной конфигурации ip subnet-zero, которая разрешает использование сетевого адреса в качестве хоста. Однако не все реализации IP поддерживают это по умолчанию, как здесь.

Однако в более поздних версиях IOS, по-видимому, по умолчанию включен ip subnet-zero , поэтому ваш маршрутизатор, вероятно, не в своем уме, позволяя настроить его как таковой.

Однако ваш linux-бокс может быть не настроен на использование нулевой подсети. Может быть настройка sysctl ; могут быть некоторые дополнительные флаги ifconfig или route для установки на использование нулевой подсети. Тем не менее, я не использую Linux, и поэтому я не могу проверить, действительно ли какой-либо из методов googled для использования нулевой подсети действительно работает так, как задумано.

С сайта cisco по настройке подсети-ноль ..

Подсеть с адресом подсети 0 недопустима и категорически не рекомендуется (как указано в RFC 791) из-за путаницы, которая может возникнуть между сетью и подсетью, имеющей одинаковые адреса. Например, если сеть 131.108.0.0 находится в подсети как 255.255.255.0, подсеть 0 будет записана как 131.108.0.0, которая идентична сетевому адресу.

Вы можете использовать подсети all 0s и all 1s (131.108.255.0), даже если это не рекомендуется. Конфигурирование интерфейсов для подсети all 1s явно разрешено. Однако, если вам нужно все пространство подсети для ваших IP-адресов ... (используйте команду, выделенную жирным курсивом выше)

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