Короткий ответ
«Есть 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, DNS10.0.10.2или чужой;- браузер крутит, приложения «нет сети»;
- часть ресурсов по IP открывается, имена — нет, или наоборот.
Отличия:
| Наблюдение | Вероятный слой | Статья |
|---|---|---|
Адрес 169.254.x.x | DHCP не ответил | 169.254 |
| Ping IP сайта есть, имя нет | DNS | Пинг идет, сайт не открывается |
| Ping шлюза есть, дальше нет | NAT/маршрут/ACL | этот материал и NAT не для всех |
| Только одна подсеть не ходит | маршрут/VRF/ACL | Нет маршрута |
Маска /16 вместо /24 | неверный prefix | Ошибочная маска |
«Жёлтый треугольник» Windows не равен мёртвому шлюзу: ОС проверяет NCSI (www.msftconnecttest.com и зонд). Политика DNS/прокси ломает индикатор при живом интернете.
Возможные причины
- Нет ARP до шлюза: неверный VLAN, порт isolated, шлюз выключен.
- Default route отсутствует или указывает не на
10.0.10.1(DHCP option 3). - Маска режет/расширяет «прямо подключённую» сеть — трафик на «интернет» уходит как local L2.
- Шлюз жив, NAT/masquerade не покрывает этот источник.
- DNS мёртв или отдаёт мусор, браузер не открывает имена.
- Клиентский файрвол/VPN split-tunnel глотает
0.0.0.0/0. - Провайдерский линк на WAN мёртв — все узлы LAN одинаково «без интернета».
- Прокси-политика 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 /allip -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.8ip 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-NetConnectionTCP, не объявляйте шлюз мёртвым. - Первый хоп traceroute —
* * *, со второго появляются адреса — ICMP TTL на шлюзе режется, путь может быть жив.
Как читать таблицу: как читать таблицу маршрутизации.
3. IP за шлюзом, минуя DNS
Возьмите известный IP, который должен быть за NAT (не внутренний):
Test-NetConnection 1.1.1.1 -Port 443
Test-NetConnection 10.0.10.2 -Port 53nc -vz 1.1.1.1 443
ping -c 4 1.1.1.1TCP/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.2resolvectl 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.1ping -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.