Перейти к содержанию

Рекомендуемые сообщения

Опубликовано

Есть сервер на Линуксе (Gentoo) #1, с двумя сетевыми интерфейсами: eth0, eth1. Первый смотрит в сторону сети, а второй на один комп (ну их может быть и больше) вот схема:

___сеть__________________(#1) PC Linux iptables NAT_________(#2) PC Windows

{сеть 10.72.0.0/24}---[ <--eth1 -- 10.72.0.119/192.168.111.2 -- eth0--> ]---[192.168.111.3]

Нужно на #1 настроить маскард через iptables, впринцыпе ситуация довольно распрострённая.

Делая выводы из мегабайтов прочитанный манов пишу правила. Вот их варианты, ни одно не работает:

#iptables -t nat -A POSTROUTING -s 192.168.111.2 --out-interface eth1 -j SNAT --to-source 10.72.0.119

или вот

#iptables -t nat -A POSTROUTING -o 192.168.111.2 -j SNAT --to-source 10.72.0.119

Пинги с #2 не проходят до сети, настроено там всё правильно, т.е. в качестве шлюза установлен 192.168.111.3 .

В чём причина и как должны выглядить правила? действительно нужно использовать POSTROUTING?

Ну должно же оно работать!!! Mad

Помогите чем можете

Опубликовано

Не должно Smile

У Вас написано:

Цитата:

#iptables -t nat -A POSTROUTING -s 192.168.111.2 --out-interface eth1 -j SNAT --to-source 10.72.0.119

Что означает - подменять адрес отправителя на 10.72.0.119, если адрес отправителя == 192.168.111.2 и пакет будет отослан через интерфейс eth1. Это вообще не имеет никакого смысла. Пакет с src == 192.168.111.2 явялется локально сгенерированным и в нормальных условиях никогда не пойдет через eth1.

Чтобы настроить нат между подсетями, Вам нужны правила вроде:

iptables -t nat -A POSTROUTING -s 192.168.111.0/24 -d 10.0.0.0/8 -j SNAT --to-source 10.72.0.119

iptables -t nat -A POSTROUTING -d 192.168.111.0/24 -s 10.0.0.0/8 -j SNAT --to-source 192.168.111.2

Опубликовано

Dimnet писал(а) чт, 02 февраля 2006 14:55

Есть сервер на Линуксе (Gentoo) #1, с двумя сетевыми интерфейсами: eth0, eth1. Первый смотрит в сторону сети, а второй на один комп (ну их может быть и больше) вот схема:

/* skip */

Пинги с #2 не проходят до сети, настроено там всё правильно, т.е. в качестве шлюза установлен 192.168.111.3 .

В чём причина и как должны выглядить правила? действительно нужно использовать POSTROUTING?

Ну должно же оно работать!!! Mad

Помогите чем можете

Адрес шлюза не правильный. Должен быть 111.2

Опубликовано

Вот что делал:

#iptables -t nat -A POSTROUTING -s 192.168.111.0/24 -d 10.0.0.0/8 -j SNAT --to-source 10.72.0.119

#iptables -t nat -A POSTROUTING -d 192.168.111.0/24 -s 10.0.0.0/8 -j SNAT --to-source 192.168.111.2

#iptables -A FORWARD -i eth0 -j ACCEPT

#iptables -A FORWARD -i eth1 -j ACCEPT

#iptables -A FORWARD -m state --state ESTABLISHED,RELATED -j ACCEPT

#echo "1" > /proc/sys/net/ipv4/ip_forward

Но не работает, с #2 пинги не проходят дальше #1 ессно. Sad

Что не так делал? Какие предложения?

Опубликовано

Зачем? В сети 10.72.0.0 комп №1 НЕ установлен в качестве шлюза, ессно что tcpdump ничего не словит. Шлюзом он должен работать для компа №2 или с его подсетью.

Может кто уже настравил такое и покажет свои правила??? Embarassed

Опубликовано

Dimnet писал(а) чт, 02 февраля 2006 19:54

Зачем? В сети 10.72.0.0 комп №1 НЕ установлен в качестве шлюза, ессно что tcpdump ничего не словит. Шлюзом он должен работать для компа №2 или с его подсетью.

Может кто уже настравил такое и покажет свои правила??? Embarassed

Я плакалъ. Значит, о том, чтобы пакеты дошли, Вы заботитесь, а как будут идти ответы и будут ли вообще - Вам все равно? Я такого еще не видел Laughing

Опубликовано

EvilShadow писал(а) пт, 03 февраля 2006 03:16

Запустите на №1 такое

tcpdump -i any src 192.168.111.3 or dst 192.168.111.3

Пропингуйте виндозную машину из подсети 10.72.0.0

ping 192.168.111.3 -c 1

И дайте вывод tcpdump'а

Если я правильно понял что Вы хотели, то нужно пинговать не с сети 10.72.0.0 а с компа №2 192.168.111.3 в сеть 10.72.0.0 что-то типа:

#ping 10.72.0.1

И ловить не пакеты с 192.168.111.3 (на №1) а транслированные тоесть 10.72.0.119

#tcpdump -i eth1 net 10.72.0.119

Опубликовано

#tcpdump -i eth0 net 192.168.111.3

Ессно ловит ТОЛЬКО исходяший icmp

#tcpdump -i eth1 net 10.72.0.119

#tcpdump -i eth1 192.168.111.3

ничего не ловят

Значит пакет теряется между eth1 и eth0 а точнее либо он не уходит дальше чем iptables либо чем eth0. Вероятней всего в iptables, от сюда следует что не правильно написаны правила.

Что ещё нужно паказать?

Опубликовано

Dimnet писал(а) чт, 02 февраля 2006 20:20

EvilShadow писал(а) пт, 03 февраля 2006 03:16

Запустите на №1 такое

tcpdump -i any src 192.168.111.3 or dst 192.168.111.3

Пропингуйте виндозную машину из подсети 10.72.0.0

ping 192.168.111.3 -c 1

И дайте вывод tcpdump'а

Если я правильно понял что Вы хотели, то нужно пинговать не с сети 10.72.0.0 а с компа №2 192.168.111.3 в сеть 10.72.0.0 что-то типа:

#ping 10.72.0.1

И ловить не пакеты с 192.168.111.3 (на №1) а транслированные тоесть 10.72.0.119

#tcpdump -i eth1 net 10.72.0.119

Я хотел сказать именно то, что сказал, а если Вы считаете, что я неправ - значит, Вы меня не поняли.

1. Кого откуда пинговать - абсолютно не принципиально. Результат будет одинаковый - пинг будет ходить и так и так.

2. Зачем было указывать спецификатор net и указывать тут же адрес _хоста_? Что это вообще должно означать? Confused

Опубликовано

Dimnet писал(а) чт, 02 февраля 2006 20:37

#tcpdump -i eth0 net 192.168.111.3

Ессно ловит ТОЛЬКО исходяший icmp

#tcpdump -i eth1 net 10.72.0.119

#tcpdump -i eth1 192.168.111.3

ничего не ловят

Значит пакет теряется между eth1 и eth0 а точнее либо он не уходит дальше чем iptables либо чем eth0. Вероятней всего в iptables, от сюда следует что не правильно написаны правила.

Что ещё нужно паказать?

Как Вы думаете, почему я в примере написал

tcpdump -i any?

Сообщения об ошибках надо не пересказывать, а цитировать (с) (добавлю от себя - это касается не только сообщений об ошибках)

Опубликовано

Для сети 192.168.111.0/24 Поставь шлюзом 192.168.111.2

#echo "1" > /proc/sys/net/ipv4/ip_forward

#iptables -F

#iptables -t nat -A POSTROUTING -o eth1 -s 192.168.111.0/24 -d 10.0.0.0/8 -j SNAT --to-source 10.72.0.119

#iptables -P FORWARD ACCEPT

Пинги будут идти тока из сети 192.168.111.0/24 в сеть 10.0.0.0/8

Что бы шли из 10.0.0.0/8 Нужно в это сети для сети 192.168.111.0/24

поставить шлюзом машину 10.72.0.119 и воткнуть правило:

#iptables -t nat -A POSTROUTING -o eth0 -d 192.168.111.0/24 -d 10.0.0.0/8 -j SNAT --to-source 192.168.111.2

Присоединяйтесь к обсуждению

Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.

Гость
Ответить в этой теме...

×   Вставлено с форматированием.   Вставить как обычный текст

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

Загрузка...
×
×
  • Создать...