Обсуждение:Выявление NAT

Материал из Мир Jabber
Перейти к: навигация, поиск

Локальный ли ?

Три специальных диапазона IP адресов зарезервированы для локальных сетей и в интернете не используются:

10.   0.  0.  0 - 10. 255.255.255
172. 16.  0.  0 - 172. 31.255.255
192.168.  0.  0 - 192.168.255.255

Если IP адрес вашего компьютера находится в одном из этих диапазонов, то есть начинается с 10. или с 192.168. или с 172.nn. (где nn - от 16 до 31), то это локальный (внутренний) адрес, и вы точно находитесь за NAT.

[1]

Вроде как это и было описано в конце статьи... Нет? --rain 01:38, 24 января 2009 (UTC)

Перенес текущий вариант сюда. На всякий случай... H31 19:19, 9 марта 2009 (UTC)

Перенес в архив. --Rain 14:28, 10 июля 2009 (UTC)

...И снова появилось это прописывание собственного адреса в клиенте :). Ну зачем? Его ж нигде не приходилось использовать. --Rain 14:33, 10 июля 2009 (UTC)

Провел небольшой следственный эксперимент по этому поводу: запустил передачу файла. Рассмотрим кусок переданных данных:
<iq type="set" to="h31mail@ya.ru/qutIM" id="aac7a" >
<query xmlns="http://jabber.org/protocol/bytestreams" mode="tcp" sid="s5b_0c2a115a3f03a137" >
<streamhost port="54444" host="10.21.23.135" jid="h31mail@ya.ru/Psi+" />
<streamhost port="54444" host="127.0.0.1" jid="h31mail@ya.ru/Psi+" />
<fast xmlns="http://affinix.com/jabber/stream"/>
</query>
</iq>
Как видно, Psi сообщает о 2 IP-адресах. Ни внешний адрес, ни адрес прокси не прописан. Естественно, QutIM не сможет подключиться к обоим адресам по понятным причинам. А теперь пропишем IP-адрес в клиенте и повторим эксперимент:
<iq type="set" to="h31mail@ya.ru/qutIM" id="aac5a" >
<query xmlns="http://jabber.org/protocol/bytestreams" mode="tcp" sid="s5b_59e1d7ac8c826337" >
<streamhost port="54444" host="10.21.23.135" jid="h31mail@ya.ru/Psi+" />
<streamhost port="54444" host="127.0.0.1" jid="h31mail@ya.ru/Psi+" />
<streamhost port="54444" host="94.232.12.231" jid="h31mail@ya.ru/Psi+" />
<fast xmlns="http://affinix.com/jabber/stream"/>
</query>
</iq>
Появился третий, настоящий IP-адрес. К нему-то как раз и сможет подключиться QutIM. H31 15:00, 10 июля 2009 (UTC)
А что за адрес "10.21.23.135" и как вообще выглядит подключение к интернету? --Rain 15:17, 10 июля 2009 (UTC)
Адрес 10.21.23.135 - внутренний у провайдера. Смотри самый верх обсуждения. Этот IP действителен только в локальной сети моего провайдера - для взаимодействия с Интернетом используется 94.232.12.231. Psi взял скорее всего 10.21.23.135 из ifconfig. Узнать 94.232.12.231 он просто так не сможет - только через STUN или подобный сервер, ну или банально в настройках прописать. H31 15:50, 10 июля 2009 (UTC)
Что-то вроде VPN'a? Есть сегмент локальной сети, в нем обычно по DHCP раздается локальный адрес (тот, что выше), ДНС, в ней же идет дозвон до VPN-сервера и создается другой интерфейс, ppp0, уже с внешним адресом - так? Но тогда это бага в Psi, он должен определять и отправлять адрес правильно. В любом случае, для пользователя в таком случае поможет прокси. В принципе, описание про динамический адрес / его прописывание / использование DynDNS на странице определения НАТа можно оставить, может чуть перефразировать, чтоб сильно не путать людей. --Rain 17:08, 10 июля 2009 (UTC)
STUN - это такая штуковина, которая говорит приложению его внешний адрес и тип NAT, если он есть
Нет, у меня не PPP. Так что никаких ppp0, просто eth0, и через него и локальная сеть, и Интернет. Чтобы не путать людей, я специально написал, что следующая информация нужна только если хотят Out-Of-Bound без прокси. H31 17:39, 10 июля 2009 (UTC)
"через него и локальная сеть, и Интернет" - т.е., на одном интерфейсе 2 адреса - 10.21.23.135 и 94.232.12.231 - так, получается? --Rain 09:55, 11 июля 2009 (UTC)
[aaa@myhost ~]$ ifconfig
eth0      Link encap:Ethernet  HWaddr 00:1E:8C:D6:14:B1  
          inet addr:10.21.23.135  Bcast:10.21.23.255  Mask:255.255.255.128
          inet6 addr: fe80::21e:8cff:fed6:14b1/64 Scope:Link
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:450222 errors:0 dropped:0 overruns:0 frame:0
          TX packets:624208 errors:0 dropped:0 overruns:0 carrier:1
          collisions:0 txqueuelen:1000 
          RX bytes:92279443 (88.0 Mb)  TX bytes:461139399 (439.7 Mb)
lo        Link encap:Local Loopback  
          inet addr:127.0.0.1  Mask:255.0.0.0
          inet6 addr: ::1/128 Scope:Host
          UP LOOPBACK RUNNING  MTU:16436  Metric:1
          RX packets:10200 errors:0 dropped:0 overruns:0 frame:0
          TX packets:10200 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:0 
          RX bytes:1419719 (1.3 Mb)  TX bytes:1419719 (1.3 Mb)
[aaa@myhost ~]$
Тут этот способ очень популярен, ибо монтажники лишь подключают кабель и ничего не настраивают, всё сразу работает. Через этот интерфейс работает и локальная сеть, и Интернет. H31 10:50, 13 июля 2009 (UTC)
Но в данном случае машина и приложения на ней не знают про внешний адрес... А как при обращении на внешний адрес делается обращение на такую машину? --Rain 11:21, 13 июля 2009 (UTC)
Скорее всего все преобразования делаются на стороне провайдера. А ОС тупо отсылает все пакеты на шлюз и всё. Когда у меня не было внешнего IP, то всё было абсолютно так же. :-) H31
Изврат :) Пробрасывать реальный IP через блок локальных адресов "лишь бы ничего не настраивать"... В общем, примерно понял. --Rain 14:30, 13 июля 2009 (UTC)