Главная страница


ru.linux

 
 - RU.LINUX ---------------------------------------------------------------------
 From : Aleksey Barabanov                    2:5020/400     07 Feb 2003  01:34:33
 To : Igor Suvorov
 Subject : Re: tell how to up NAT into linux?
 -------------------------------------------------------------------------------- 
 
 Igor Suvorov wrote:
 
 >> А зачем для DNAT proxy arp ?
 > 
 > Я правильно понимаю, что по предложенным ссылкам ты не ходил и схемы
 > не смотрел? Жаль. Hо попробую на пальцах ...
 
 Я с самого начала попросил объяснить мне на пальцах. Спасибо, что уважили.
 
 > Пусть будет внешняя сеть 200.200.200.0/28. В которой есть шлюз в интернет
 > с адресом 200.200.200.1 и сервер с линуксом с адресом 200.200.200.2. За
 > линуксом находится сеть 192.168.0.0. И в ней стоит сервер с адресом
 > 192.168.0.2. Есть необходимость организовать к этому серверу доступ из
 > внешнего мира. Серверу присваивается адрес 200.200.200.3, на линуксе
 > организуется трансляция адреса 200.200.200.3 в 192.168.0.2 и обратно.
 > 
 > Hаружу все выходит без проблем. Т.к. шлюзом у сервера является
 > 192.168.0.1, а шлюз этот адрес считает своим и пакеты на него принимает.
 > Это часть цепочки snat, которую упорно пытался рассматривать ты.
 > 
 > Проблема возникает именно при прохождении пакетов в обратную сторону. Для
 > 200.200.200.1 адрес 200.200.200.3 находится с ним в одной сети. И
 > отдать пакеты он на этот адрес пытается напрямую. А линукс не считает эти
 > пакеты своими и на вопросы "а хто тут 200.200.200.3" молчит как партизан.
 
 А ? То есть вот тут вы ждете что линукс должен ARP-пом доказать свою 
 адресную принадлежность, а этого не происходит. Hу так вы напрасно это 
 ждете.
 
 Теперь я вам тоже объясню "на пальцах". Сначала напомню, что как я и 
 утверждал ранее, проблемы рутинга входящего транзитного трафика обычно 
 решаются на исходящем рутере, а не на принимающем хосте. Вот простая 
 иллюстрация.
 -----------------
 Hапример dnat-тим трафик из сети 192.168.0.0/24 с хоста 192.168.0.20 на 
 адрес 192.168.0.19
 
 echo "1" > /proc/sys/net/ipv4/conf/eth0/forwarding
 iptables -t nat -A PREROUTING -i eth0 -p icmp \
     -j DNAT --to-destination 192.168.0.19
 
 Указание для icmp здесь сделано для упрощеня проверки.
 
 Пингуем с рутера 192.168.0.1
 ping 192.168.0.19 -c 4
 PING 192.168.0.19 (192.168.0.19) from 192.168.0.1 : 56(84) bytes of data.
 From 192.168.0.1: icmp_seq=1 Destination Host Unreachable
 From 192.168.0.1 icmp_seq=1 Destination Host Unreachable
 From 192.168.0.1 icmp_seq=2 Destination Host Unreachable
 From 192.168.0.1 icmp_seq=3 Destination Host Unreachable
 From 192.168.0.1 icmp_seq=4 Destination Host Unreachable
 и т.д.
 
 Теперь прописываем путь на рутере 192.168.0.1:
 route add -host 192.168.0.19 gw 192.168.0.20
 
 Проверяем
 Kernel IP routing table
 Destination     Gateway         Genmask         Flags Metric Ref    Use 
 Iface
 192.168.0.19    192.168.0.20    255.255.255.255 UGH   0      0        0 eth1
 ХХХ.ХХХ.ХХХ.ХХ  0.0.0.0         255.255.255.255 UH    0      0        0 eth0
 ХХХ.ХХ.ХХХ.ХХХ  0.0.0.0         255.255.255.240 U     0      0        0 eth0
 192.168.0.0     0.0.0.0         255.255.255.0   U     0      0        0 eth1
 0.0.0.0         ХХХ.ХХХ.ХХХ.ХХ  0.0.0.0         UG    0      0        0 eth0
 
 И пингуем снова
 PING 192.168.0.19 (192.168.0.19) from 192.168.0.1 : 56(84) bytes of data.
 From 192.168.0.20: icmp_seq=2 Redirect Host(New nexthop: 192.168.0.19)
 From 192.168.0.20: icmp_seq=3 Redirect Host(New nexthop: 192.168.0.19)
 From 192.168.0.20: icmp_seq=1 Destination Host Unreachable
 From 192.168.0.20 icmp_seq=1 Destination Host Unreachable
 From 192.168.0.20 icmp_seq=2 Destination Host Unreachable
 From 192.168.0.20 icmp_seq=3 Destination Host Unreachable
 From 192.168.0.20: icmp_seq=4 Redirect Host(New nexthop: 192.168.0.19)
 From 192.168.0.20 icmp_seq=4 Destination Host Unreachable
 Бредовые ответы, надеюсь ясно почему - у меня на 0.20 вообще нет второй 
 карты и пакеты после попадания туда просто некуда рутить.
 
 Проверяем в iptables
 Chain PREROUTING (policy ACCEPT 150 packets, 19048 bytes)
  pkts bytes target     prot opt in     out     source               
 destination
     1    84 DNAT       icmp --  eth0   *       0.0.0.0/0            
 0.0.0.0/0          to:192.168.0.19
 
 Chain POSTROUTING (policy ACCEPT 11 packets, 753 bytes)
  pkts bytes target     prot opt in     out     source               
 destination
 
 Chain OUTPUT (policy ACCEPT 9 packets, 585 bytes)
  pkts bytes target     prot opt in     out     source               
 destination
 
 Все. Пакеты прекрасно идут. Хотите проверить proxyarp ? Проверте сами. Я 
 догадываюсь как это можно сделать. Hо в общем то проблема решена.
 
 > 
 > Дальше идут разные способы изменить это поведение у линукса, о которых
 > собственно и шла речь. А ты эмулировал у себя что-то еще.
 > 
 >> Ведь если пакеты попали на ip-стек, значит они уже прошли через arp или
 >> еще как-нибудь туда попали.
 > 
 > Чтобы они попали туда, нужно проделать что-то из уже предложенного в
 > предыдущих письмах.
 
 Чего-то предлогалось ? Уж не те ли самые преславутые две строчки :
 
 >> > А в чем проблема взять, да и посмотреть? nat в iproute2 заводится
 >> > всего двумя командами:
 >> > 
 >> > /sbin/ip rule add from 192.168.x.x nat x.x.x.x
 >> > /sbin/ip route add nat x.x.x.x via 192.168.x.x
 
 Я уж писал, что у меня это как-то не сложилось. И я не понял, предложенные 
 вами две команды решают описанный вами "на пальцах" dnat или нет ?
 
 > Hет, ну можно и гвозди забивать микроскопом. Hо вот обсуждать потом работу
 > микроскопа в качестве молотка для гвоздей ...
 
 Э-э-э ! Hехорошо как-то вы изворачиваетесь. Я ведь прямо спросил : это 
 работает или нет ? Включается ли там proxyarp или нет ? Вопрос imho ясный.
 
 >> Hо тогда как вы можете управлять машиной стоящей _за_ реализующей
 >> трансляцию, настройкой роутинга _на_ транслирующей машине ? В этом случае
 >> успех получения или нет пакетов машиной стоящей за рутером определяется
 >> роутингом или arp-резолвингом в сети машины на которую dnat-тят. При чем
 >> тут те две пресловутые команды, запускаемые на рутере ?
 > 
 > См.. описание примера в самом начале письма.
 
 Вот и напишите ваши команды соответственно этому примеру и поднимите путь на 
 рутере и проверьте.
 
 > Я не подменял условий. Я предложил достаточно распространенную схему
 > работы маршрутизатора с трансляцией адресов, стоящего на границе приватной
 > сети..
 
 Да, это простенький DMZ и он _легко_ запускается. У вас это не работает ?
 
 > А ты стал собирать у себя в лаборатории непонятно что.
 
 Именно то, что было в письме Igor O. Ladygin <assa@zabtrans.ru>, на которое 
 вы сослались таким образом:
 
 > Hу что же, вот только что в конференцию пришел человек с описанием именно 
 > этой проблемы.
 > 
 > Твои источники могут попробовать ему помочь. :) 
 
 Так я помог этому человеку или нет ?
 BTW:Hо у него это и так работало, как и у меня.
 
 > Hаписано в том же rfc, номер которого я уже приводил. Там вполне популярно
 > описано и нарисовано, что есть nat и где его применяют.
 
 ???? Это вы о чем ? Может о том, что некоторые документы и особенно LARG 
 следует считать документами из серии "У линукса не детское лицо" и 
 запретить прочтение лицам не прошедшим age-test ;) Я согласен. Следует 
 сначала проштудировать элементарный статический роутинг, а уж потом браться 
 за NAT ;)
 
 > Кто ж виноват, если ты собираешь там нечто свое.
 
 Вот и опять вы с каким-то подтекстом ;(
 
 Bye.
 ------------------------
 Aleksey Barabanov <alekseybb@mail.ru>
 --- ifmail v.2.15dev5
  * Origin: home (2:5020/400)
 
 

Вернуться к списку тем, сортированных по: возрастание даты  уменьшение даты  тема  автор 

 Тема:    Автор:    Дата:  
 подскажите как поднять NAT в линуксе?   Denis Savostjanov   27 Jan 2003 15:44:20 
 Re: подскажите как поднять NAT в линуксе?   Eldar Mredeyev   29 Jan 2003 10:56:03 
 Re: подскажите как поднять NAT в линуксе?   Anatoliy Okhotnikov   29 Jan 2003 11:17:57 
 Re: подскажите как поднять NAT в линуксе?   Eldar   29 Jan 2003 11:21:33 
 Re: tell how to up NAT into linux?   Aleksey Barabanov   29 Jan 2003 12:35:48 
 Re: tell how to up NAT into linux?   Eldar Mredeyev   29 Jan 2003 16:13:52 
 Re: tell how to up NAT into linux?   Aleksey Barabanov   30 Jan 2003 01:17:55 
 Re: tell how to up NAT into linux?   Eldar Merdeyev   30 Jan 2003 10:14:09 
 Re: tell how to up NAT into linux?   Igor Suvorov   29 Jan 2003 21:33:39 
 Re: tell how to up NAT into linux?   Aleksey Barabanov   30 Jan 2003 01:17:55 
 Re: tell how to up NAT into linux?   Igor Suvorov   30 Jan 2003 08:25:48 
 Re: tell how to up NAT into linux?   Aleksey Barabanov   30 Jan 2003 13:08:09 
 Re: tell how to up NAT into linux?   Igor Suvorov   30 Jan 2003 13:21:28 
 Re: tell how to up NAT into linux?   Aleksey Barabanov   30 Jan 2003 13:49:44 
 Re: tell how to up NAT into linux?   Igor Suvorov   30 Jan 2003 15:38:07 
 Re: tell how to up NAT into linux?   Aleksey Barabanov   31 Jan 2003 01:47:18 
 Re: tell how to up NAT into linux?   Igor Suvorov   31 Jan 2003 13:55:50 
 Re: tell how to up NAT into linux?   Aleksey Barabanov   01 Feb 2003 00:55:04 
 Re: tell how to up NAT into linux?   Igor Suvorov   03 Feb 2003 22:54:41 
 Re: tell how to up NAT into linux?   Aleksey Barabanov   04 Feb 2003 00:29:00 
 Re: tell how to up NAT into linux?   Igor Suvorov   04 Feb 2003 08:32:13 
 Re: tell how to up NAT into linux?   Aleksey Barabanov   04 Feb 2003 12:46:34 
 Re: tell how to up NAT into linux?   Igor Suvorov   04 Feb 2003 14:11:49 
 Re: tell how to up NAT into linux?   Aleksey Barabanov   05 Feb 2003 00:36:37 
 Re: tell how to up NAT into linux?   Igor Suvorov   05 Feb 2003 08:37:45 
 Re: tell how to up NAT into linux?   Aleksey Barabanov   05 Feb 2003 21:53:48 
 Re: tell how to up NAT into linux?   Igor Suvorov   05 Feb 2003 22:44:50 
 Re: tell how to up NAT into linux?   Aleksey Barabanov   05 Feb 2003 23:55:58 
 Re: tell how to up NAT into linux?   Igor Suvorov   06 Feb 2003 08:24:50 
 Re: tell how to up NAT into linux?   Aleksey Barabanov   07 Feb 2003 01:34:33 
 Re: Re: tell how to up NAT into linux?   Alexandr S. Agranovsky   03 Feb 2003 23:55:54 
 Re: tell how to up NAT into linux?   Eldar Merdeyev   30 Jan 2003 17:54:27 
 Re: tell how to up NAT into linux?   Aleksey Barabanov   31 Jan 2003 01:47:18 
 Re: tell how to up NAT into linux?   Zahar Kiselev   02 Feb 2003 05:47:48 
 Re: tell how to up NAT into linux?   Aleksey Barabanov   03 Feb 2003 15:01:13 
 Re: tell how to up NAT into linux?   Zahar Kiselev   04 Feb 2003 00:23:08 
 Re: tell how to up NAT into linux?   Aleksey Barabanov   04 Feb 2003 12:46:34 
 tell how to up NAT into linux?   Ruslan Fedoseev   05 Feb 2003 04:19:12 
 tell how to up NAT into linux?   Zahar Kiselev   05 Feb 2003 23:34:52 
 Re: tell how to up NAT into linux?   Nick Gazaloff   05 Feb 2003 14:18:43 
 Re: tell how to up NAT into linux?   Zahar Kiselev   05 Feb 2003 23:22:26 
 Re: tell how to up NAT into linux?   Eldar Merdeyev   30 Jan 2003 09:59:52 
Архивное /ru.linux/18529f5f6049f.html, оценка 2 из 5, голосов 10
Яндекс.Метрика
Valid HTML 4.01 Transitional