Короткий ответ

«Есть IP, нет интернета» — это минимум три разные поломки. Разведите их: (1) L3 до шлюза 10.0.10.1, (2) трансляция/маршрут за шлюзом, (3) DNS 10.0.10.2. Пока вы пингуете ya.ru и по результату «чините DNS», вы смешиваете ICMP, имя и HTTP.

С клиента сначала ping 10.0.10.1, затем ping 10.0.10.2, затем nslookup на IP-сервер, затем Test-NetConnection на 443 к известному IP. Только после этого трогайте NAT на маршрутизаторе.

Симптомы и как отличить

Типичная картина:

  • ipconfig /all / ip addr — адрес 10.0.10.10/24, шлюз 10.0.10.1, DNS 10.0.10.2 или чужой;
  • браузер крутит, приложения «нет сети»;
  • часть ресурсов по IP открывается, имена — нет, или наоборот.

Отличия:

НаблюдениеВероятный слойСтатья
Адрес 169.254.x.xDHCP не ответил169.254
Ping IP сайта есть, имя нетDNSПинг идет, сайт не открывается
Ping шлюза есть, дальше нетNAT/маршрут/ACLэтот материал и NAT не для всех
Только одна подсеть не ходитмаршрут/VRF/ACLНет маршрута
Маска /16 вместо /24неверный prefixОшибочная маска

«Жёлтый треугольник» Windows не равен мёртвому шлюзу: ОС проверяет NCSI (www.msftconnecttest.com и зонд). Политика DNS/прокси ломает индикатор при живом интернете.

Возможные причины

  1. Нет ARP до шлюза: неверный VLAN, порт isolated, шлюз выключен.
  2. Default route отсутствует или указывает не на 10.0.10.1 (DHCP option 3).
  3. Маска режет/расширяет «прямо подключённую» сеть — трафик на «интернет» уходит как local L2.
  4. Шлюз жив, NAT/masquerade не покрывает этот источник.
  5. DNS мёртв или отдаёт мусор, браузер не открывает имена.
  6. Клиентский файрвол/VPN split-tunnel глотает 0.0.0.0/0.
  7. Провайдерский линк на WAN мёртв — все узлы LAN одинаково «без интернета».
  8. Прокси-политика WPAD: IP-пинг жив, HTTP идёт в чёрную дыру.

Диагностика

Работайте с одного проблемного узла и с заведомо рабочего в той же 10.0.10.0/24. Разница между ними важнее «теории».

1. Адрес, маска, маршрут, DNS — одним снимком

Get-NetIPConfiguration | Format-List InterfaceAlias, IPv4Address, IPv4DefaultGateway, DnsServer
Get-NetRoute -AddressFamily IPv4 | Where-Object { $_.DestinationPrefix -eq '0.0.0.0/0' -or $_.DestinationPrefix -like '10.0.10.*' }
ipconfig /all
ip -br addr
ip route
resolvectl status

Ожидание: 10.0.10.10/24, default via 10.0.10.1, DNS 10.0.10.2. Если default через 192.168.0.1 — вы в чужой аренде, не в «сломанном NAT компании».

2. Только шлюз, без имён

arp -a 10.0.10.1
Get-NetNeighbor -IPAddress 10.0.10.1
Test-NetConnection 10.0.10.1
ping -n 4 10.0.10.1
tracert -d -h 8 8.8.8.8
ip neigh show 10.0.10.1
ping -c 4 10.0.10.1
traceroute -n 8.8.8.8
  • Нет ARP (incomplete / unreachable) — L2 до шлюза нет. VLAN, кабель, port-security, шлюз в другом сегменте.
  • ARP есть, ping timeout — ICMP фильтруют (часто на хосте-шлюзе). Переходите на Test-NetConnection TCP, не объявляйте шлюз мёртвым.
  • Первый хоп traceroute — * * *, со второго появляются адреса — ICMP TTL на шлюзе режется, путь может быть жив.

Как читать таблицу: как читать таблицу маршрутизации.

3. IP за шлюзом, минуя DNS

Возьмите известный IP, который должен быть за NAT (не внутренний):

Test-NetConnection 1.1.1.1 -Port 443
Test-NetConnection 10.0.10.2 -Port 53
nc -vz 1.1.1.1 443
ping -c 4 1.1.1.1

TCP/443 до публичного IP = NAT и WAN скорее живы. Нет ни ICMP, ни TCP — смотрите NAT, default на роутере, WAN. Есть TCP, нет имён — DNS.

4. DNS отдельно

nslookup contoso.example 10.0.10.2
nslookup example.com 10.0.10.2
Resolve-DnsName example.com -Server 10.0.10.2
resolvectl query example.com
nslookup example.com 10.0.10.2

Таймаут к 10.0.10.2 — резолвер/фильтр 53. Ответ с другого сервера, чем в NIC — NRPT, DoH, «безопасный DNS» в браузере. Не путайте с нестабильным DNS.

5. Сравнить с рабочим узлом

Одинаковый VLAN? Одинаковый шлюз в ARP (MAC 10.0.10.1 совпадает)? Если у рабочего MAC шлюза другой — в сегменте два претендента на 10.0.10.1 (конфликт IP, ARP-кеш).

Решение

Сценарий A. Нет ARP до 10.0.10.1

Верните порт в VLAN сети 10.0.10.0/24, проверьте SVI/интерфейс шлюза. На Ubuntu-шлюзе:

ip -br addr show
sudo nft list ruleset

Не меняйте MAC шлюза «для проверки» в рабочее время.

Сценарий B. Шлюз пингуется, публичный IP недоступен

На маршрутизаторе: default WAN, NAT для 10.0.10.0/24, счётчики drop. Типичный Linux masquerade:

ip route
sudo nft list chain inet filter forward
sudo nft list chain inet nat postrouting

Если NAT покрывает только 10.0.20.0/24, узлы 10.0.10.0/24 получат ровно вашу жалобу. Не открывайте forward «allow all» навсегда — добавьте явный masquerade для нужной сети и stateful allow established.

Сценарий C. NAT жив, DNS нет

Почините 10.0.10.2:53 или временно укажите рабочий внутренний резолвер. Не ставьте на клиенте домена только публичный DNS — сломаете SRV. Для рабочей группы допустим форвардер на самом 10.0.10.2.

Сценарий D. VPN украл default

Get-NetRoute -DestinationPrefix '0.0.0.0/0' | Format-Table ifIndex, NextHop, RouteMetric, InterfaceAlias

Отключите VPN на тесте. Если без VPN интернет есть — split-tunnel/метрика, не NAT офиса.

Сценарий E. NCSI красный, сайты открываются

Это индикатор, не канал. Проверьте доступ к probe Microsoft или отключите ложную тревогу политикой после доказательства, что TCP/443 наружу жив. Не отключайте брандмауэр, чтобы «позеленел значок».

Как проверить, что проблема устранена

С того же клиента:

ping -n 4 10.0.10.1
Test-NetConnection 1.1.1.1 -Port 443
nslookup example.com 10.0.10.2
tracert -d -h 5 1.1.1.1
ping -c 4 10.0.10.1
traceroute -n -m 5 1.1.1.1
resolvectl query example.com

Чек-лист: default через 10.0.10.1, ARP шлюза стабилен, TCP/443 к внешнему IP, имя резолвится через 10.0.10.2, браузер открывает HTTP и HTTPS. Повторите с второго ПК в VLAN — иначе вы починили один кэш.

Если не помогло

  • ICMP до 8.8.8.8 есть, TCP/443 нет: фильтр провайдера/прокси, не «нет интернета».
  • Работает только по IP, имена нет — DNS-кеш, split-horizon.
  • Только один сайт — MTU/PMTUD (неверный MTU) или фильтрация SNI.
  • Другая подсеть с тем же NAT работает — источник не в masquerade, policy routing, или асимметрия.
  • После смены DNS в NIC ничего не меняется — кэш ОС/браузера/DoH.

Профилактика

  • Мониторинг ping/TCP до шлюза, WAN next-hop и резолвера 10.0.10.2.
  • Один default в LAN, option 3 только 10.0.10.1.
  • Документ: какая сеть в каком NAT.
  • NCSI не использовать как единственный SLA.
  • Не смешивать guest VLAN и corp в одном пуле DHCP.

FAQ

Почему ping шлюза есть, а «Интернет» в Windows красный?

NCSI ходит на HTTP-зонд и DNS. ICMP до 10.0.10.1 не входит в эту проверку.

Стоит ли сразу менять DNS на 8.8.8.8?

Только как диагностический шаг на не-доменном ПК. На доменном клиенте вы сломаете поиск DC. Возвращайте 10.0.10.2.

Ping 8.8.8.8 запрещён политикой. Как проверить NAT?

Test-NetConnection на TCP/443 к любому разрешённому внешнему IP. ICMP не обязателен для «интернета».

У всех в кабинете нет интернета, у серверов есть. Что это?

Часто NAT/ACL по источнику или отдельный VLAN Wi‑Fi без masquerade. Сравните source IP на WAN.

Можно ли сбросить маршруты командой route -f?