01.28
Долго искал информацию по настройке NAT в windows , раньше приходилось ставить комерческие реализации NAT'а под винду ... наконецто на хабРе вычитал статейку небольшую такую танюсенькую про настройку NAT стандартными средствами Windows XP
Итак. У нас есть компьютер, на котором имеется интернет (не через прокси разумеется). Мы хотим с этого компа инет раздать по WiFi, BlueTooth или просто в сеть, подключенную ко второй сетевой карте.
Что нужно сделать в первую очередь:
1) проверяем что запущен ли сервис "Маршрутизация и удалённый доступ" ("Routing and Remote Access"), и его режим запуска - "Авто".
2) идём в (regedit) реестр и ставим в еденичку ключ "IPEnableRouter" из ветки "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters"
3) перезагружаем компьютер
4) открываем консоль ( cmd )
5) netsh routing ip nat install
6) netsh routing ip nat show global
если в ответ видим сообщение "NAT должен быть установлен первым" - ребутимся, если молчит то идём пунктам дальше.
7) netsh routing ip nat add interface "Internet connection" full
где "Internet connection" - название сетевого соединения от которого получаем интернет(внешний интерфес). Его можно посмотреть и скопировать в сетевых подключениях.
netsh routing ip nat add interface "Local Area Connection" private
где "Local Area Connection" - название сетевого соединения на которое раздаём интернет(внутренний интерфейс). Его так же можно посмотреть и скопировать в сетевых подключениях.
Настройка NAT завершена. Теперь несколько слов о настройке сети.
Важно чтобы ip-адерса внешнего и внутреннего интерфейса были в разных подсетях. Т.е. если внешний идёт например к ADSL роутеру и имеет адрес и маску 192.168.1.2/255.255.255.0 и адрес шлюза например 192.168.1.1, то внутренний интерфейс можно сделать таким: 192.168.3.1/255.255.255.0 но адрес шлюза не указываем.
Компьютеры а вернее интерфейсы в подсети, подключённой к внутреннему интерфейсу нашего компьютера настраиваем так:
192.168.3.2/255.255.255.0
192.168.3.3/255.255.255.0
192.168.3.4/255.255.255.0 и так далее.
Для них всех шлюз - 192.168.3.1, в качестве DNS указываем адрес днс, прописанный (либо назначенный провайдером) для внешнего интерфейса. Посмотреть можно так - "Сетевый подключения" - пр. кн. на внешнем сетевом интерфейсе - "Состояние" -"Поддержка" - "Подробности". Либо выполнив в консоли комманду ipconfig /all
Далее коммент автора:
"Вот как-то так. У меня по этой схеме работает "Интернет -> ADSL-Router -(Ethernet)> Настольный комп с настроенным NAT -(BlueTooth PAN)> КПК"
Многие в недоумении что такая фича всегда была под рукой...
И даже батник нашелся для автомата :
---------------------------------------------------------------------
@echo off REM В кавычках укажите имя внутреннего интерфейса, с учетом регистра REM Лучше переименуйте интерфейсы по-английски set int="int" REM здесь укажите имя внешнего интерфейса set ext="ext" sc stop RemoteAccess > NUL sc stop SharedAccess > NUL sc config SharedAccess start= disabled > NUL sc config TapiSrv start= demand > NUL sc config RasAuto start= demand > NUL sc config RasMan start= demand > NUL echo Enable routing ... echo Windows Registry Editor Version 5.00 > re.reg echo [HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters] >> re.reg echo "IPEnableRouter"=dword:00000001 >> re.reg regedit /s re.reg del /q re.reg echo OK. REM Раскомментируйте в случае если ошибка "нет записей" netsh routing ip add interface name=%int% state=enable > NUL netsh routing ip add interface name=%ext% state=enable > NUL echo Setting up NAT... netsh routing ip nat uninstall > NUL netsh routing ip nat install echo Enable NAT on internal interface... netsh routing ip nat add interface name=%int% Private echo Enable NAT on external interface... netsh routing ip nat add interface name=%ext% Full echo Now enable Routing and Remote Access... sc config RemoteAccess start= auto > NUL net start RemoteAccess netsh routing ip nat show interface echo Setting up DNS for NAT... netsh routing ip dnproxy uninstall > NUL netsh routing ip dnsproxy install netsh routing ip dnsproxy set interface %ext% mode=disable > NUL netsh routing ip dnsproxy set interface %int% mode=enable > NUL netsh routing ip dnsproxy show interface %int% echo Setting up DHCP... netsh routing ip autodhcp uninstall > NUL netsh routing ip autodhcp install netsh routing ip autodhcp set interface %ext% mode=disable > NUL netsh routing ip autodhcp set interface %int% mode=enable > NUL netsh routing ip autodhcp set global 192.168.6.0 255.255.255.0 netsh routing ip autodhcp add exclusion 192.168.6.0 for /l %%i in (1,1,32) do netsh routing ip autodhcp add exclusion 192.168.6.%%i netsh routing ip autodhcp add exclusion 192.168.6.255 netsh routing ip autodhcp show interface %int% echo Done. pause
И так же удаляем его если вдруг надоел:
@echo off sc stop RemoteAccess > NUL sc stop SharedAccess > NUL sc config SharedAccess start= disabled > NUL sc config TapiSrv start= demand > NUL sc config RasAuto start= demand > NUL sc config RasMan start= demand > NUL echo Disable routing ... echo Windows Registry Editor Version 5.00 > re.reg echo [HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters] >> re.reg echo "IPEnableRouter"=dword:00000000 >> re.reg regedit /s re.reg del /q re.reg echo OK. echo Stopping NAT... netsh routing ip nat uninstall > NUL echo Now disable Routing and Remote Access... sc config RemoteAccess start= disabled > NUL echo Stopping DNS for NAT... netsh routing ip dnproxy uninstall > NUL echo Stopping DHCP... netsh routing ip autodhcp uninstall > NUL echo Done. pause
