AlKov Опубликовано 27 ноября, 2016 · Жалоба Возникла непонятка с NAT на машине с lISG. Всё запущено на CentOS 6.8, 2.6.32-642.3.1.el6.x86_64. "Обычный" NAT работает iptables -t nat -I POSTROUTING -o vlan61 -s 10.20.0.0/16 -j SNAT --to-source AAA.BBB.18.131 где AAA.BBB.18.131 - публичный IP на vlan61. Решил сделать NAT "в диапазон IP" (persistent) iptables -t nat -I POSTROUTING -o vlan61 -s 10.20.0.0/16 -j SNAT --to-source AAA.BBB.18.161-AAA.BBB.18.190 --persistent И вот тут не поехало.. На vlan61 tcpdump-ом от клиентов трафик с IP выделенного диапазона вижу, к клиентам - нет. Соотв. у клиента трассировка затыкается на роутере (коммутатор DGS-3120 с IP AAA.BBB.18.130). AAA.BBB.18.130 является шлюзом машины lISG Публичная подсеть (AAA.BBB.18.128/25), выделенная аплинком, порезана на три: AAA.BBB.18.128/27, AAA.BBB.18.160/27, AAA.BBB.18.192/26. В первой находятся роутер и машина с lISG, во второй планировал реализовать тот самый NAT persistent. На роутере в NAT подсеть прописан маршрут AAA.BBB.18.160/27 AAA.BBB.18.131. На машине с lISG эту подсеть завернул в блэкхол (ip route add blackhole AAA.BBB.18.160/27), пробовал и убирать из блэкхол. Результат тот же... В iptables FORWARD (после правил LISG) добавил: FORWARD -s AAA.BBB.18.160/27 -j ACCEPT и FORWARD -d AAA.BBB.18.160/27 -j ACCEPT. Ничего не изменилось.. Изначально погрешил на кривую маршрутизацию у провайдера аплинка, но оказалось, что он тут ни при чём. Попробовал назначить IP AAA.BBB.18.189/27 alias-ом на vlan61 - трассировка с этим source IP пошла, из "внешки" на него тоже.. Что я сделал не так?? Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
[anp/hsw] Опубликовано 29 ноября, 2016 · Жалоба Варианты решения проблемы: 1. Эту сеть надо повешать алиасами на lo: 2. echo 1 > /proc/sys/net/ipv4/ip_nonlocal_bind Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
AlKov Опубликовано 29 ноября, 2016 · Жалоба ' timestamp='1480402955' post='1347476']Варианты решения проблемы: 1. Эту сеть надо повешать алиасами на lo: 2. echo 1 > /proc/sys/net/ipv4/ip_nonlocal_bind Т.е. 1-й вариант такой: ifconfig lo:0 AAA.BBB.18.160/32 ifconfig lo:0 AAA.BBB.18.161/32 ifconfig lo:1 AAA.BBB.18.162/32 .... ifconfig lo:30 AAA.BBB.18.191/32 Так? По 2-му варианту тоже есть вопрос. Прочёл в интернетах следующее: 3.1.7. ip_nonlocal_bind Установка этой переменной позволяет отдельным локальным процессам выступать от имени внешнего (чужого) IP адреса. Это может оказаться полезным в некоторых случаях, когда необходимо "прослушивать" внешние (чужие) IP адреса, например -- сниффинг чужого траффика. Однако, эта опция может оказывать отрицательное влияние на работоспособность отдельных приложений. Эта переменная может иметь два значения -- 0 или 1. Если установлено значение 0, то опция отключена, 1 -- включена. Значение по-умолчанию -- 0. По выделенному в цитате что-нибудь можете добавить? В плане каких таких "других приложений", и что с ними может приключиться? Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
vop Опубликовано 29 ноября, 2016 · Жалоба Т.е. 1-й вариант такой: ifconfig lo:0 AAA.BBB.18.160/32 ifconfig lo:0 AAA.BBB.18.161/32 ifconfig lo:1 AAA.BBB.18.162/32 .... ifconfig lo:30 AAA.BBB.18.191/32 Так? Как-то логичней было бы ip addr add AAA.BBB.18.161/32 dev lo ... Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
boco Опубликовано 29 ноября, 2016 · Жалоба никогда диапазоны не вешал на лупбек и прочих извращений не делал, только в блекхол заворачивал и все работало, именно с таким правилом как у вас. впечатление, что ваш роутер не знает мака, куда роутить ваш диапазон (судя по тому, что вы не видите в дампе входящих пакетов). и кстати совсем незачем терять два ипа - .160 и .191. оно вполне корректно работает с "--to-source AAA.BBB.18.160-AAA.BBB.18.191" ps. еще есть подозрение, что ваша AAA.BBB.18.160/27 (или более толстая) висит на вашем роутере и когда вы повесили алиас на влану, роутер записал в свой арпкеш (или спросил через арп) соответствие мака вашей вланы и AAA.BBB.18.189, поэтому у вас трафик пошел в обратную сторону. в общем я бы ковырял не iptables, а роутер. Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
[anp/hsw] Опубликовано 30 ноября, 2016 · Жалоба Так? Не обязательно /32, можно и побольше побить, хоть /24. В плане каких таких "других приложений", и что с ними может приключиться? Ниразу таких "других приложений" не видел. Возможно имееются ввиду те, которые будут слушать rawsocket, и не ожидают там увидеть чужие адреса. никогда диапазоны не вешал на лупбек и прочих извращений не делал, только в блекхол заворачивал и все работало, именно с таким правилом как у вас. впечатление, что ваш роутер не знает мака, куда роутить ваш диапазон (судя по тому, что вы не видите в дампе входящих пакетов) Входящие пакеты не появятся, если нет маршрута. А маршрут будет либо при arp-ответе, если сеть одна и та же, либо при анонсе по ротоколу маршрутизации, если сети разные. Возможно на той стороне криво сделано именно через arp (т.е. у вышестоящего что-то вроде ip route add x.x.x.x/y dev eth0 вместо via z.z.z.z) Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
AlKov Опубликовано 30 ноября, 2016 · Жалоба ' timestamp='1480501165' post='1347811']Не обязательно /32, можно и побольше побить, хоть /24. Не совсем понял.. NAT подсеть у меня /27. Я так понимаю, Вы считаете, чтобы в данном случае NAT заработал, будет достаточно назначить алиасом на lo всего ОДИН IP с маской /27? ' timestamp='1480501165' post='1347811'] В плане каких таких "других приложений", и что с ними может приключиться? Ниразу таких "других приложений" не видел. Возможно имееются ввиду те, которые будут слушать rawsocket, и не ожидают там увидеть чужие адреса. Не уверен, но вроде dhcpd юзает rawsocket? А он на машине есть. Правда, dhcp запросы приходят на него через релей. Не будет здесь проблем? ' timestamp='1480501165' post='1347811']Входящие пакеты не появятся, если нет маршрута. А маршрут будет либо при arp-ответе, если сеть одна и та же, либо при анонсе по ротоколу маршрутизации, если сети разные. Возможно на той стороне криво сделано именно через arp (т.е. у вышестоящего что-то вроде ip route add x.x.x.x/y dev eth0 вместо via z.z.z.z) Я правильно понимаю, если у вышестоящего прова сделано именно так, как Вы описали, то все любые другие "правильные" манипуляции с маршрутизацией с моей стороны не помогут? Или всё же у меня есть возможность решить всё общепринятым путём? Ну например, на "вышестоящем роутере" (DGS-3120) что-то поправить? Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
nshut Опубликовано 1 декабря, 2016 (изменено) · Жалоба Я правильно понимаю, если у вышестоящего прова сделано именно так, как Вы описали, то все любые другие "правильные" манипуляции с маршрутизацией с моей стороны не помогут? честно перечитал все 3 раза. если у вас действительно длинк маршрутизатор, то все дело в нем, увы на л3 я его не пользовал. но 1. ничего не надо в лупбэки прописывать. и какие то no_bind тоже в жизни не делал. в общем даже нат сеть не назначайте пока. идите на 3120 и sh ipr, может для теста вы там эту подсеть подымали и забыли удалить. пинг с инета и дамп на сетевой. Если он действительно л3, значит собака там зарыта, прошивку в конце концов обновить ибо и покруче у длинков моделей есть баги в не стандартой маской маршрута. они видимо все на 24 тестят Изменено 1 декабря, 2016 пользователем nshut Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
[anp/hsw] Опубликовано 1 декабря, 2016 · Жалоба Я так понимаю, Вы считаете, чтобы в данном случае NAT заработал, будет достаточно назначить алиасом на lo всего ОДИН IP с маской /27? Да, это именно так и работает. На lo вешается не один ip, а вся подсеть сразу. Не будет здесь проблем? Не знаю, проще проверить. Я правильно понимаю, если у вышестоящего прова сделано именно так, как Вы описали, то все любые другие "правильные" манипуляции с маршрутизацией с моей стороны не помогут? Именно так. Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
AlKov Опубликовано 1 декабря, 2016 · Жалоба ' timestamp='1480604995' post='1348344'] Я так понимаю, Вы считаете, чтобы в данном случае NAT заработал, будет достаточно назначить алиасом на lo всего ОДИН IP с маской /27? Да, это именно так и работает. На lo вешается не один ip, а вся подсеть сразу. Т.е. вот так - ifconfig lo:0 AAA.BBB.18.160/27 ? И правило NAT в таком случае будет выглядеть так - iptables -t nat -I POSTROUTING -o vlan61 -s 10.20.0.0/16 -j SNAT --to-source AAA.BBB.18.161-AAA.BBB.18.190 --persistent ? Т.е. БЕЗ "адреса сети" - AAA.BBB.18.160 Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
[anp/hsw] Опубликовано 2 декабря, 2016 · Жалоба Т.е. вот так - ifconfig lo:0 AAA.BBB.18.160/27 ? Синтаксис у ifconfig вроде другой, но идея верная. ? Т.е. БЕЗ "адреса сети" - AAA.BBB.18.160 Адрес сети убирать нужно только в том случае, если аплинк его по каким-то причинам не маршрутизирует. Узнаете экспирементально, нет смысла один адрес просто так терять. Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
AlKov Опубликовано 2 декабря, 2016 · Жалоба ' timestamp='1480658431' post='1348477'] Т.е. вот так - ifconfig lo:0 AAA.BBB.18.160/27 ? Синтаксис у ifconfig вроде другой, но идея верная. Он самый ifconfig lo:0 AAA.BBB.18.160/27 up lo:0 Link encap:Local Loopback inet addr:AAA.BBB.18.160 Mask:255.255.255.224 UP LOOPBACK RUNNING MTU:65536 Metric:1 Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...