* [devel] postrouting @ 2004-12-28 3:52 Peter V. Saveliev 2004-12-28 10:07 ` Denis Ovsienko 2004-12-28 22:55 ` Peter V. Saveliev 0 siblings, 2 replies; 15+ messages in thread From: Peter V. Saveliev @ 2004-12-28 3:52 UTC (permalink / raw) To: devel ... Столкнулся с прелюбопытнейшей проблемой. Имеем eth0, 192.168.0.2/24, на нём запущен pppoe-server. Криминала в ip-адресе нет, это не запрещено, afair. Сервер pppoe работает нормально, клиент логинится и авторизуется. Но. Этот eth0 -- единственный интерфейс на машине. То есть, он же для приёма пакетов через pppoe, он же и для выхода на гейт. Надо сделать маскарад пакетов, приходящих от клиентов через pppoe наружу. Маршрутизация идёт нормально, все пакеты, приходящие через pppX дружно идут на гейт. Но не маскарадятся. Дальнейшее исследование показало, что пакеты, приходящие через pppX и уходящие через eth0, _вообще_ не проходят таблицу nat. Согласно откопанным схемам http://open-source.arkoon.net/kernel/kernel_net.png http://www.docum.org/docum.org/kptd/ этого не может быть, потому что не может быть никогда. Вопрос: а почему? Ещё раз суть: это не обсуждение функционирования pppoe-сервера на машине с одним интерфейсом и т.п. Это попытка понять, почему пакеты минуют одну из таблиц iptables. -- Peter V. Saveliev ^ permalink raw reply [flat|nested] 15+ messages in thread
* Re: [devel] postrouting 2004-12-28 3:52 [devel] postrouting Peter V. Saveliev @ 2004-12-28 10:07 ` Denis Ovsienko 2004-12-28 11:16 ` alexey lubimov 2004-12-28 14:58 ` Peter V. Saveliev 2004-12-28 22:55 ` Peter V. Saveliev 1 sibling, 2 replies; 15+ messages in thread From: Denis Ovsienko @ 2004-12-28 10:07 UTC (permalink / raw) To: ALT Devel discussion list >Ещё раз суть: это не обсуждение функционирования pppoe-сервера на машине >с одним интерфейсом и т.п. Это попытка понять, почему пакеты минуют одну >из таблиц iptables. Так всё-таки там два интерфейса или один? Не считая lo. -- DO4-UANIC ^ permalink raw reply [flat|nested] 15+ messages in thread
* Re: [devel] postrouting 2004-12-28 10:07 ` Denis Ovsienko @ 2004-12-28 11:16 ` alexey lubimov 2004-12-28 14:59 ` Peter V. Saveliev 2004-12-28 14:58 ` Peter V. Saveliev 1 sibling, 1 reply; 15+ messages in thread From: alexey lubimov @ 2004-12-28 11:16 UTC (permalink / raw) To: ALT Devel discussion list И какой pppoe - ядерный или в userspace? Denis Ovsienko wrote: >>Ещё раз суть: это не обсуждение функционирования pppoe-сервера на машине >>с одним интерфейсом и т.п. Это попытка понять, почему пакеты минуют одну >>из таблиц iptables. >> >> >Так всё-таки там два интерфейса или один? Не считая lo. > > > ^ permalink raw reply [flat|nested] 15+ messages in thread
* Re: [devel] postrouting 2004-12-28 11:16 ` alexey lubimov @ 2004-12-28 14:59 ` Peter V. Saveliev 2004-12-28 15:56 ` alexey lubimov 0 siblings, 1 reply; 15+ messages in thread From: Peter V. Saveliev @ 2004-12-28 14:59 UTC (permalink / raw) To: ALT Devel discussion list On Tuesday 28 December 2004 14:16, alexey lubimov wrote: > И какой pppoe - ядерный или в userspace? <skip /> Судя по всему, userspace. Запуск: # modprobe pppoe # modprobe ppp_async # pppoe-server -I eth0 -- Peter V. Saveliev ^ permalink raw reply [flat|nested] 15+ messages in thread
* Re: [devel] postrouting 2004-12-28 14:59 ` Peter V. Saveliev @ 2004-12-28 15:56 ` alexey lubimov 2004-12-28 18:57 ` Peter V. Saveliev 0 siblings, 1 reply; 15+ messages in thread From: alexey lubimov @ 2004-12-28 15:56 UTC (permalink / raw) To: ALT Devel discussion list Это ядерный. Можно попробовать аналогичный в userspace. Peter V. Saveliev wrote: >On Tuesday 28 December 2004 14:16, alexey lubimov wrote: > > >>И какой pppoe - ядерный или в userspace? >> >> ><skip /> > >Судя по всему, userspace. Запуск: > ># modprobe pppoe ># modprobe ppp_async ># pppoe-server -I eth0 > > > >------------------------------------------------------------------------ > >_______________________________________________ >Devel mailing list >Devel@altlinux.ru >https://lists.altlinux.ru/mailman/listinfo/devel > ^ permalink raw reply [flat|nested] 15+ messages in thread
* Re: [devel] postrouting 2004-12-28 15:56 ` alexey lubimov @ 2004-12-28 18:57 ` Peter V. Saveliev 0 siblings, 0 replies; 15+ messages in thread From: Peter V. Saveliev @ 2004-12-28 18:57 UTC (permalink / raw) To: ALT Devel discussion list On Tuesday 28 December 2004 18:56, alexey lubimov wrote: > Это ядерный. > Можно попробовать аналогичный в userspace. <skip /> Как? -- Peter V. Saveliev ^ permalink raw reply [flat|nested] 15+ messages in thread
* Re: [devel] postrouting 2004-12-28 10:07 ` Denis Ovsienko 2004-12-28 11:16 ` alexey lubimov @ 2004-12-28 14:58 ` Peter V. Saveliev 2004-12-28 15:13 ` Denis Ovsienko 2004-12-28 17:24 ` Антон 1 sibling, 2 replies; 15+ messages in thread From: Peter V. Saveliev @ 2004-12-28 14:58 UTC (permalink / raw) To: ALT Devel discussion list On Tuesday 28 December 2004 13:07, Denis Ovsienko wrote: <skip /> > Так всё-таки там два интерфейса или один? Не считая lo. lo: 127.0.0.1/8 eth0: 192..../24 # pppoe-server -I eth0 После соединения с клиентом добавляется по pppХ на клиента. Всё работает нормально, за одним исключением -- пакеты минуют таблицу nat. -- Peter V. Saveliev ^ permalink raw reply [flat|nested] 15+ messages in thread
* Re: [devel] postrouting 2004-12-28 14:58 ` Peter V. Saveliev @ 2004-12-28 15:13 ` Denis Ovsienko 2004-12-28 17:24 ` Антон 1 sibling, 0 replies; 15+ messages in thread From: Denis Ovsienko @ 2004-12-28 15:13 UTC (permalink / raw) To: ALT Devel discussion list > После соединения с клиентом добавляется по pppХ на клиента. > > Всё работает нормально, за одним исключением -- пакеты минуют таблицу > nat. Если таблица существует, то очень странно. -- DO4-UANIC ^ permalink raw reply [flat|nested] 15+ messages in thread
* Re: [devel] postrouting 2004-12-28 14:58 ` Peter V. Saveliev 2004-12-28 15:13 ` Denis Ovsienko @ 2004-12-28 17:24 ` Антон 2004-12-28 19:12 ` Peter V. Saveliev 1 sibling, 1 reply; 15+ messages in thread From: Антон @ 2004-12-28 17:24 UTC (permalink / raw) To: ALT Devel discussion list В сообщении от Вторник 28 Декабрь 2004 17:58 Peter V. Saveliev написал(a): > On Tuesday 28 December 2004 13:07, Denis Ovsienko wrote: > <skip /> > > > Так всё-таки там два интерфейса или один? Не считая lo. > > lo: 127.0.0.1/8 > eth0: 192..../24 > > # pppoe-server -I eth0 > > После соединения с клиентом добавляется по pppХ на клиента. > > Всё работает нормально, за одним исключением -- пакеты минуют таблицу nat. Такое невозможно. Я думаю ошибка в правилах iptables. Конфиги можно увидеть... Имеется ввиду цепочка POST...? Какой интерфейс указывается в качестве out? -- Антон. AltLinux Team. Etersoft Team. ^ permalink raw reply [flat|nested] 15+ messages in thread
* Re: [devel] postrouting 2004-12-28 17:24 ` Антон @ 2004-12-28 19:12 ` Peter V. Saveliev 2004-12-28 23:01 ` Антон 0 siblings, 1 reply; 15+ messages in thread From: Peter V. Saveliev @ 2004-12-28 19:12 UTC (permalink / raw) To: ALT Devel discussion list On Tuesday 28 December 2004 20:24, Антон wrote: <skip /> > Такое невозможно. Я думаю ошибка в правилах iptables. Дык а я про что!! Невозможно. > Конфиги можно увидеть... Да какие там конфиги, нет там ничего. Просто голяком запущен pppoe-server, остальное см. ниже. > Имеется ввиду цепочка POST...? > Какой интерфейс указывается в качестве out? Правил нет. Нет смысла, пакеты просто _не_светятся_ в таблице nat. Их там нет. Вот всё, что могу показать: ~ # ps | grep ppp 690 root 408 S pppoe-server -I eth0 701 root 980 S pppd pty /usr/sbin/pppoe -n -I eth0 -e \ 1:00:0c:29:16:56:7a -S '' file /etc/ppp/pppo 702 root 452 S sh -c /usr/sbin/pppoe -n -I eth0 -e \ 1:00:0c:29:16:56:7a -S '' 704 root 380 S /usr/sbin/pppoe -n -I eth0 -e 1:00:0c:29:16:56:7a -S ~ # ip addr show 1: lo: <LOOPBACK,UP> mtu 16436 qdisc noqueue link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00 inet 127.0.0.1/32 scope host lo 2: eth0: <BROADCAST,MULTICAST,UP> mtu 1500 qdisc pfifo_fast qlen 1000 link/ether 00:0c:29:32:b3:98 brd ff:ff:ff:ff:ff:ff inet 192.168.0.250/24 scope global eth0 3: ppp0: <POINTOPOINT,MULTICAST,NOARP,UP> mtu 1500 qdisc pfifo_fast qlen 3 link/ppp inet 10.0.0.1 peer 10.67.15.1/32 scope global ppp0 ~ # ip route show 10.67.15.1 dev ppp0 proto kernel scope link src 10.0.0.1 192.168.0.0/24 dev eth0 proto kernel scope link src 192.168.0.250 default via 192.168.0.1 dev eth0 ~ # cat /proc/sys/net/ipv4/ip_forward 1 ~ # date Wed Dec 29 01:03:09 MSK 2004 ~ # iptables -L -n -v -t nat Chain PREROUTING (policy ACCEPT 2 packets, 309 bytes) <skip reason="там нет ничего" /> Chain POSTROUTING (policy ACCEPT 3 packets, 650 bytes) <skip reason="там нет ничего" /> Chain OUTPUT (policy ACCEPT 2 packets, 590 bytes) <skip reason="там нет ничего" /> ~ # date Wed Dec 29 01:03:38 MSK 2004 ~ # iptables -L -n -v -t nat Chain PREROUTING (policy ACCEPT 2 packets, 309 bytes) <skip reason="там нет ничего" /> Chain POSTROUTING (policy ACCEPT 4 packets, 798 bytes) <skip reason="там нет ничего" /> Chain OUTPUT (policy ACCEPT 3 packets, 738 bytes) <skip reason="там нет ничего" /> В этот момент клиент пингует через образованный ppp наружный сервер, и на гейте светится вот что: ~ # tcpdump -nnlpc 4 -i eth0 ip proto \\icmp tcpdump: verbose output suppressed, use -v or -vv for full protocol decode listening on eth0, link-type EN10MB (Ethernet), capture size 96 bytes 01:04:22.204176 IP 10.67.15.1 > 217.170.64.5: icmp 40: echo request seq 21505 01:04:23.711508 IP 10.67.15.1 > 217.170.64.5: icmp 40: echo request seq 21761 01:04:25.188193 IP 10.67.15.1 > 217.170.64.5: icmp 40: echo request seq 22017 01:04:26.714518 IP 10.67.15.1 > 217.170.64.5: icmp 40: echo request seq 22273 4 packets captured 8 packets received by filter 0 packets dropped by kernel То есть, nat просто пустая. 1 пакет, прошедший через POSTROUTING за 30 секунд, явно не из тех пингов, которые раз в секунду идут с клиента, это внутренняя активность сети (см. также таймстампы в tcpdump) Да что я говорю, это легко воспроизводится. Поднять pppoe-server -- дело 5 минут, попробуйте сами. Вешаем его на единственный интерфейс, и получаем именно такую картинку. -- Peter V. Saveliev ^ permalink raw reply [flat|nested] 15+ messages in thread
* Re: [devel] postrouting 2004-12-28 19:12 ` Peter V. Saveliev @ 2004-12-28 23:01 ` Антон 2004-12-28 23:09 ` Peter V. Saveliev 0 siblings, 1 reply; 15+ messages in thread From: Антон @ 2004-12-28 23:01 UTC (permalink / raw) To: ALT Devel discussion list В сообщении от Вторник 28 Декабрь 2004 22:12 Peter V. Saveliev написал(a): > On Tuesday 28 December 2004 20:24, Антон wrote: > Дык а я про что!! Невозможно. <skip> Думаю, что всё понятно. Только первый пакет из потока проходит через цепочки таблицы NAT, трансляция адресов или маскировка применяются ко всем последующим пакетам в потоке автоматически. См. рук-во к iptables. И вообще. Зачем смотреть что туда попадает, если ты всё равно не используешь эту таблицу. Она у тебя пустая. -- Антон Alt Linux Team Eternity Software TEAM http://www.etersoft.ru ^ permalink raw reply [flat|nested] 15+ messages in thread
* Re: [devel] postrouting 2004-12-28 23:01 ` Антон @ 2004-12-28 23:09 ` Peter V. Saveliev 2004-12-29 8:40 ` Антон 0 siblings, 1 reply; 15+ messages in thread From: Peter V. Saveliev @ 2004-12-28 23:09 UTC (permalink / raw) To: ALT Devel discussion list On Wednesday 29 December 2004 02:01, Антон wrote: <skip /> > Думаю, что всё понятно. Ничего не понятно. > > Только первый пакет из потока проходит через цепочки таблицы NAT, > трансляция адресов или маскировка применяются ко всем последующим пакетам в > потоке автоматически. См. рук-во к iptables. > > И вообще. > Зачем смотреть что туда попадает, если ты всё равно не используешь эту > таблицу. Она у тебя пустая. ~ # iptables -L -n -v -t nat Chain PREROUTING (policy ACCEPT 2 packets, 320 bytes) pkts bytes target prot opt in out source destination Chain POSTROUTING (policy ACCEPT 3 packets, 694 bytes) pkts bytes target prot opt in out source destination 0 0 SNAT all -- * * 10.0.0.0/8 0.0.0.0/0 to:192.168.0.250 Chain OUTPUT (policy ACCEPT 2 packets, 634 bytes) pkts bytes target prot opt in out source destination Не работает. ~ # modprobe ipchains Using /lib/modules/2.4.26-std-up-alt8/kernel/net/ipv4/netfilter/ipchains.o ~ # ipchains -A forward -s 10.0.0.0/8 -j MASQ ~ # ipchains -L Chain input (policy ACCEPT): Chain forward (policy ACCEPT): target prot opt source destination ports MASQ all ------ 10.0.0.0/8 anywhere n/a Chain output (policy ACCEPT): Работает. -- Peter V. Saveliev ^ permalink raw reply [flat|nested] 15+ messages in thread
* Re: [devel] postrouting 2004-12-28 23:09 ` Peter V. Saveliev @ 2004-12-29 8:40 ` Антон 2004-12-29 10:16 ` Peter V. Saveliev 0 siblings, 1 reply; 15+ messages in thread From: Антон @ 2004-12-29 8:40 UTC (permalink / raw) To: ALT Devel discussion list В сообщении от Среда 29 Декабрь 2004 02:09 Peter V. Saveliev написал(a): > On Wednesday 29 December 2004 02:01, Антон wrote: > Работает. А если сделать также: трансляция не к статическому адресу, а через маскарадинг и добавить LOG, чтобы посмотреть что же туда попадает: iptables -t nat -A POSTROUTING -j LOG --log-prefix "NAT" iptables -t nat -A POSTROUTING -j MASQUERADE Лучше бы ты дал посмотреть rc.firewall... -- Антон Alt Linux Team Eternity Software TEAM http://www.etersoft.ru ^ permalink raw reply [flat|nested] 15+ messages in thread
* Re: [devel] postrouting 2004-12-29 8:40 ` Антон @ 2004-12-29 10:16 ` Peter V. Saveliev 0 siblings, 0 replies; 15+ messages in thread From: Peter V. Saveliev @ 2004-12-29 10:16 UTC (permalink / raw) To: ALT Devel discussion list On Wednesday 29 December 2004 11:40, Антон wrote: > В сообщении от Среда 29 Декабрь 2004 02:09 Peter V. Saveliev написал(a): > > On Wednesday 29 December 2004 02:01, Антон wrote: > > Работает. > > А если сделать также: трансляция не к статическому адресу, а через > маскарадинг и добавить LOG, чтобы посмотреть что же туда попадает: > > iptables -t nat -A POSTROUTING -j LOG --log-prefix "NAT" > iptables -t nat -A POSTROUTING -j MASQUERADE Ничего не попадает, я с этого и обнаружил проблему. > > Лучше бы ты дал посмотреть rc.firewall... Его нет :) Для чистоты эксперимента взята голая машина, пустая система только с ядром, модулями iptables и подобного, из процессов помимо pppoe и telnetd с sh только ещё ipcad запущен, который вообще ни на что не влияет. Всё. Из правил iptables только единственное, для nat|masquerade, больше ничего нет. Если надо будет, могу выложить изобраз системы, которая воспроизводит эту проблему сразу после загрузки -- загружая всё необходимое. Понадобится только ещё клиентская машина. Реальное решение будет работать на машине с двумя интерфейсами, не подумайте, меня не жаба душит. Просто было интересно протестировать такой случай, и вот натолкнулся. -- Peter V. Saveliev ^ permalink raw reply [flat|nested] 15+ messages in thread
* Re: [devel] postrouting 2004-12-28 3:52 [devel] postrouting Peter V. Saveliev 2004-12-28 10:07 ` Denis Ovsienko @ 2004-12-28 22:55 ` Peter V. Saveliev 1 sibling, 0 replies; 15+ messages in thread From: Peter V. Saveliev @ 2004-12-28 22:55 UTC (permalink / raw) To: ALT Devel discussion list On Tuesday 28 December 2004 06:52, Peter V. Saveliev wrote: <skip /> > Маршрутизация идёт нормально, все пакеты, приходящие через pppX дружно идут > на гейт. Но не маскарадятся. Дальнейшее исследование показало, что пакеты, > приходящие через pppX и уходящие через eth0, _вообще_ не проходят таблицу > nat. <skip /> Многие таблицы -- многая скорбь. А вот ipchains работает, аллилуия. -- Peter V. Saveliev ^ permalink raw reply [flat|nested] 15+ messages in thread
end of thread, other threads:[~2004-12-29 10:16 UTC | newest] Thread overview: 15+ messages (download: mbox.gz / follow: Atom feed) -- links below jump to the message on this page -- 2004-12-28 3:52 [devel] postrouting Peter V. Saveliev 2004-12-28 10:07 ` Denis Ovsienko 2004-12-28 11:16 ` alexey lubimov 2004-12-28 14:59 ` Peter V. Saveliev 2004-12-28 15:56 ` alexey lubimov 2004-12-28 18:57 ` Peter V. Saveliev 2004-12-28 14:58 ` Peter V. Saveliev 2004-12-28 15:13 ` Denis Ovsienko 2004-12-28 17:24 ` Антон 2004-12-28 19:12 ` Peter V. Saveliev 2004-12-28 23:01 ` Антон 2004-12-28 23:09 ` Peter V. Saveliev 2004-12-29 8:40 ` Антон 2004-12-29 10:16 ` Peter V. Saveliev 2004-12-28 22:55 ` Peter V. Saveliev
ALT Linux Team development discussions This inbox may be cloned and mirrored by anyone: git clone --mirror http://lore.altlinux.org/devel/0 devel/git/0.git # If you have public-inbox 1.1+ installed, you may # initialize and index your mirror using the following commands: public-inbox-init -V2 devel devel/ http://lore.altlinux.org/devel \ devel@altlinux.org devel@altlinux.ru devel@lists.altlinux.org devel@lists.altlinux.ru devel@linux.iplabs.ru mandrake-russian@linuxteam.iplabs.ru sisyphus@linuxteam.iplabs.ru public-inbox-index devel Example config snippet for mirrors. Newsgroup available over NNTP: nntp://lore.altlinux.org/org.altlinux.lists.devel AGPL code for this site: git clone https://public-inbox.org/public-inbox.git