1

Сначала моя конфигурация сети была такой:

$ ip a
2: em1: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP qlen 1000
    link/ether 3c:97:0e:bd:b1:68 brd ff:ff:ff:ff:ff:ff
    inet 10.66.65.2/24 brd 10.66.65.255 scope global em1
       valid_lft forever preferred_lft forever
    inet6 fe80::3e97:eff:febd:b168/64 scope link 
       valid_lft forever preferred_lft forever

$ ip r
default via 10.66.65.254 dev em1  proto static 
10.66.65.0/24 dev em1  proto kernel  scope link  src 10.66.65.2  metric 1

таким образом, маска подсети сети неверна. У меня нет доступа к интернету, но я могу пропинговать шлюз 10.66.65.254.

Затем я сбрасываю таблицу маршрутов и IP-адрес em1 и перезапускаю nic. И у меня есть новая таблица маршрутов и IP:

$ ip a s dev em1
2: em1: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP qlen 1000
    link/ether 3c:97:0e:bd:b1:68 brd ff:ff:ff:ff:ff:ff
    inet 10.66.65.2/23 brd 10.66.65.255 scope global em1
       valid_lft forever preferred_lft forever
    inet6 fe80::3e97:eff:febd:b168/64 scope link 
       valid_lft forever preferred_lft forever
$ ip r
default via 10.66.65.254 dev em1  proto static 
10.66.64.0/23 dev em1  proto kernel  scope link  src 10.66.65.2  metric 1

и теперь я могу получить доступ к Интернету.

То, что, по-моему, произошло до того, как я изменил перезапуск, выглядит следующим образом: пакет в Интернет имеет назначение, скажем, 172.1.1.1 и 10.66.65.2 в качестве источника, поэтому он просматривает таблицу маршрутов и выходит с мыслью em1, затем шлюз получил пакет, но когда пакет возвращается к em1, шлюз не может найти соответствующую запись маршрута для 10.66.65.2/24, поэтому он отбросил пакет, поэтому я не могу получить доступ к Интернету.

Но мне интересно, почему я могу пропинговать шлюз, почему он может отправить мне пакет на этот раз?

Спасибо

2 ответа2

3

Хост 10.66.65.2 с /2 4 означает, что он считает, что 10.66.6 5.0 - 10.66.65.255 находятся в одной подсети, поэтому он, конечно, подумает, что маршрутизатор 10.66.65.254 находится в той же подсети.

Хост 10.66.65.2 с /2 3 означает, что он считает, что 10.66.6 с 4.0 по 10.66.65.255 находятся в одной подсети, поэтому он, конечно, подумает, что маршрутизатор 10.66.65.254 находится в той же подсети.

Если подсеть /23 была правильной, это означало бы, что ваш узел неправильно обрабатывал некоторые широковещательные рассылки, и это означало бы, что вашему хосту пришлось бы полагаться на шлюз для пересылки кадров, которые он должен был адресовать напрямую. на 10,66,6 4.х хостов. Или, более вероятно, шлюз отправил бы уведомления о перенаправлении ICMP вашему хосту, сообщив ему, что он может адресовать эти пакеты напрямую их хостам назначения на канальном уровне.

Неверная конфигурация маски подсети, вероятно, не была причиной вашей неспособности получить подключение к Интернету.

1

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

   inet 10.66.65.2/24

гарантирует , что ваш шлюз и вы принадлежите к той же подсети, а на самом деле ты получить доступ к шлюзу, и получили ответ обратно. Поэтому причину, по которой вы не можете получить доступ к Интернету, нужно искать в другом месте. Две возможности: 1) ваш шлюз был отключен, 2) ваш DNS не был правильно установлен в /etc/resolv.conf.

Тем не менее, обратите внимание также, что после сброса информации о вашей сети подсеть, которую вы автоматически получаете от DHCP, 10.66.65.0/23, шире, чем указано выше. Он полностью содержит 10.66.65.0/24, так что вы смогли подключиться к вашему шлюзу, даже если у вас была меньшая подсеть, но вы упустили возможность подключиться к другим машинам в вашей локальной сети. Поэтому, кроме исправления файла /etc/resolv.conf, вы можете изменить подсеть на более широкую и правильную версию. Вы можете сделать это, вызвав DHCP следующим образом:

ip link set dev em1 down
ip addr flush dev em1
ip link set dev em1 up
dhclient -v em1

Опция -v (= verbose) выводит на стандартный вывод различные этапы согласования с сервером DHCP, но она доступна не во всех версиях dhclient .

Если вместо этого у вас есть сетевой адаптер со статическим IP-адресом, вы можете изменить подсеть следующим образом:

ip link set dev em1 down
ip addr flush dev em1
ip link set dev em1 up
ip addr add 10.66.65.2/23 dev em1

и это все.

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