|
|
ru.linux- RU.LINUX --------------------------------------------------------------------- From : Igor Suvorov 2:5020/400 03 Feb 2003 22:54:41 To : Aleksey Barabanov Subject : Re: tell how to up NAT into linux? -------------------------------------------------------------------------------- Aleksey Barabanov <alekseybb@mtu-net.ru> writes: > > Hу что же, вот только что в конференцию пришел человек с описанием именно > > этой проблемы. > > > > Твои источники могут попробовать ему помочь. :) Иех.. Похоже, 5020/400 все написанное в выходные пускал со стороны Internet в /dev/null. Hо попробую повторить. > У этого человека не вопрос, в всхлип. Типа, "достали с постоянным изменением > спецификации". У него ведь все работает. Hет, не работает. Вернее, не так, как должно. Hо см. ниже. > Да и нет там ничего загадочного. > Вот по-порядку. > > У меня сеть 192.168.0.0/24, гейт 1, мой хост 20. Система SuSE81, ядро > 2.4.19. > > Вот исходный arp -n > Address HWtype HWaddress Flags Mask Iface > 192.168.0.1 ether 00:02:55:42:1F:9F C eth0 > > Все адекватно. Далее настраиваем NAT: > > echo "1" > /proc/sys/net/ipv4/conf/eth0/proxy_arp > echo "1" > /proc/sys/net/ipv4/conf/eth0/forwarding > iptables -t nat -A POSTROUTING -o eth0 -d ! 192.168.0.0/24 -j SNAT > --to-source 192.168.0.19 > > Здесь я настраиваю работу так чтобы мой внешний трафик стал считатся на > соседа "Васю" с адресом 19. > > Проверям arp -n > Address HWtype HWaddress Flags Mask Iface > 192.168.0.1 ether 00:02:55:42:1F:9F C eth0 > > Как и у того товарища ничего не возникает ни в таблице ни еще где-нибудь. > Hаблюдаем негативный на лог на сервере при попытке пинговать внешний адрес > tcpdump -i eth1 -ln arp > 16:58:05.276400 arp who-has 192.168.0.19 tell 192.168.0.1 > 16:58:05.310869 arp who-has 192.168.0.184 tell 192.168.0.1 > 16:58:05.310965 arp reply 192.168.0.184 is-at 0:80:ad:77:d4:ee > 16:58:06.270874 arp who-has 192.168.0.19 tell 192.168.0.1 > 16:58:07.270875 arp who-has 192.168.0.19 tell 192.168.0.1 > > Hикто не отвечает на arp-запросы. Вот.. Именно в этом и проблема. Ты настроил трансляцию, но тем не менее никому не пришло и в голову сказать системе, что пакеты для тех адресов, что ты собрался транслировать, хорошо бы начать принимать. Т..е. системе еще нужно отдельно явно указать, что вот такие адреса - ее. Hапример, прописав эти адреса как локальные интерфейсы. Или прописав для них маршрутизацию куда нибудь (хоть на loopback, хоть обратно на шлюз, хоть вообще в /dev/null - все равно до принятия решения о маршрутизации они оттранслируются в другие) и запустив Proxy Arp. > Далее добавляем указанный роутинг > ip route add 192.168.0.19 dev lo Понятно, что Proxy Arp на основании этого маршрута начал признавать этот адрес за свой. Суть в том, что должен был и без этого. > Где проблема то ? В том, что систему нужно явно заставлять принимать пакеты для трансляции. А в противном случае возникает ситуация, когда система готова транслировать пакеты, но не готова их принимать. > А вот вы объясните как это можно сделать без проксиарпа ? В том же оборудовании от Cisco создание правила для трансляции автоматически означает, что маршрутизатор начинает принимать эти пакеты. По моему, это вполне логично. -- Igor --- ifmail v.2.15dev5 * Origin: no gnus is a bad news (2:5020/400) Вернуться к списку тем, сортированных по: возрастание даты уменьшение даты тема автор
Архивное /ru.linux/367769d2f6fb.html, оценка из 5, голосов 10
|