Автор Тема: Рутиране на 2ро реално ip  (Прочетена 1132 пъти)

zax

  • Напреднали
  • *****
  • Публикации: 79
    • Профил
Рутиране на 2ро реално ip
« -: Mar 24, 2006, 20:39 »
Здравейте на всички.
Проблема ми е следния. Имам едно скрито ип в мрежата и искам да му сложа реално но да минава прес рутера ми, не прес този на доставчика. Почетох и това успях да измисля.

ifconfig eth0 82.146.25.92
ifconfig eth0:0 82.146.25.91
ifconfig eth1 10.0.0.1
iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE
iptables -t nat -A PREROUTING -p tcp -d 82.146.25.92  -j DNAT --to 10.0.0.12
iptables -t nat -A POSTROUTING -d 90.0.0.12 -j SNAT --to 82.146.25.92

 Проблема е текъв че висчки ипта почват да се рутират прес това ип, в смисъл вместо само 10.0.0.12 да излиза с 82.146.25.92 всички ипта от мрежата излизат с това. PLS  ударете едно рамо
 '<img'>  '<img'>  '<img'>
Активен

bonbon

  • Напреднали
  • *****
  • Публикации: 112
  • Distribution: Debian
  • Window Manager: Gnome
    • Профил
    • WWW
Рутиране на 2ро реално ip
« Отговор #1 -: Mar 25, 2006, 09:15 »
С това правило :
iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE
оказваш,че всички IP-та ще излизат през рутера ти, с реалното ти IP.
Поясни какво по-точно искаш да направиш.
Активен

n_antonov

  • Напреднали
  • *****
  • Публикации: 1185
    • Профил
    • WWW
Рутиране на 2ро реално ip
« Отговор #2 -: Mar 25, 2006, 09:18 »
Някои ще ми обясни ли какво е това реално IP и ако това е реално, кое е нереално?
Активен

-------------------------------------------------------------------------
./debian/rules

bonbon

  • Напреднали
  • *****
  • Публикации: 112
  • Distribution: Debian
  • Window Manager: Gnome
    • Профил
    • WWW
Рутиране на 2ро реално ip
« Отговор #3 -: Mar 25, 2006, 09:31 »
Цитат (n_antonov @ Март 25 2006,10:18)
Някои ще ми обясни ли какво е това реално IP и ако това е реално, кое е нереално?

Имах впредвид под реално - публично.
Активен

  • Гост
Рутиране на 2ро реално ip
« Отговор #4 -: Mar 25, 2006, 10:40 »
ifconfig wlan0 212.56.19.15 netmask 255.255.255.128
route add 212.56.19.1 dev wlan0
#ifconfig wlan0:1 212.56.19.238 netmask 255.255.255.224
#route add default gw 212.56.19.225
#route add -host 212.56.19.238 gw 192.168.0.2
#route add -host 212.56.19.238 gw 192.168.0.4

нещо такова съм ползвал ама преди много време
на другата машина си мисля че съм слагал за първо ип
212.56.19.238 а за второ 192.168.0.2 без нищо друго
Активен

vesselinkolev

  • Напреднали
  • *****
  • Публикации: 93
    • Профил
Рутиране на 2ро реално ip
« Отговор #5 -: Mar 25, 2006, 10:52 »
Цитат (zax @ Март 24 2006,21:39)
Здравейте на всички.
Проблема ми е следния. Имам едно скрито ип в мрежата и искам да му сложа реално но да минава прес рутера ми, не прес този на доставчика. Почетох и това успях да измисля.

ifconfig eth0 82.146.25.92
ifconfig eth0:0 82.146.25.91
ifconfig eth1 10.0.0.1
iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE
iptables -t nat -A PREROUTING -p tcp -d 82.146.25.92  -j DNAT --to 10.0.0.12
iptables -t nat -A POSTROUTING -d 90.0.0.12 -j SNAT --to 82.146.25.92

 Проблема е текъв че висчки ипта почват да се рутират прес това ип, в смисъл вместо само 10.0.0.12 да излиза с 82.146.25.92 всички ипта от мрежата излизат с това. PLS  ударете едно рамо
 '<img'>  '<img'>  '<img'>

Мдамс... 90.0.0.12. Този адрес лекичко ме смущава. Той е от локация направена от RIPE за France Telecom. Би ли обяснил (просто ми е любопитно), какво търси този адрес в твоята таблица с NAT правила?

И нека не ползваме понятия от рода на "реален IP адрес". Това понятие беше въведено в обръщение от хора с гноясали мозъци, живяли винаги в условията на мрак и безпросветност. За това и тези хора до ден днешен не са се научили на нищо друго, освен да сковават кочини. Тъжното е, че не си стоят в тях... но това е дълга тема, пропита с много селска мъка.

Иначе решението в твоя случай е да използваш винаги указател за източника на пакет.

За да не конкретизирам и да бъда по-общ... Имаш два публични IP адреса: A1.B1.C1.D1 и A2.B2.C2.D2. Искаш да направиш адресната транслация така, че пакетите от адресите от сегмент K1.L1.M1.N1 да излизат в публичния Интернет с адрес на източника A1.B1.C1.D1, а тези от сегмента K2.L2.M2.N2 с адрес на източника A2.B2.C2.D2. Тогава прилагаш следната последователност от netfilter правила (по принцип има значение кое е първо, второ и т.н):

# iptables -t nat -A POSTROUTING -s K1.L1.M1.N1/MASK -o eth0 -j SNAT --to A1.B1.C1.D1
# iptables -t nat -A POSTROUTING -s K2.L2.M2.N2/MASK -o eth0 -j SNAT --to A2.B2.C2.D2


Сега малко обяснения за това, което си направил ти. Имай предвид, че в IP стека на Linux, във варианта му за IPv4, имаш разделение между първични и вторични адреси на даден интерфейс (при IPv6 има по-различно разделение). Всички псевдоними по подразбиране се обявяват като вторични IP адреси. Конкретно в твоя случай:

82.146.25.92 е първичен (primary)
82.146.25.91 е вторичен (secondary)

Предполагам, че с инструмента ip не си пипал приоритетите им'<img'> Иначе приоритетите им можеш да видиш чрез изпълнение на:

# ip addr show dev eth0

Когато зададеш реда:

# iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE

мрежовата адресна транслация на изходящите пакети през eth0 се извършва на база първичния адрес, т.е. всички пакети ще излизат с изходящ публичен IP адрес 82.146.25.92. Второто правило във веригата POSTROUTING:

# iptables -t nat -A POSTROUTING -d 90.0.0.12 -j SNAT --to 82.146.25.92

според мен (предполагам, че 90.0.0.12 е достъпен през eth0) няма да влезе в сила, защото по-горното

# iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE

го изчерпва (включва го в себе си).

Ако искаш да запазиш тази формулировка на правилата, трябва да смениш реда им, т.е. нещата, които си описал да добият вида:

# iptables -t nat -A POSTROUTING -d 90.0.0.12 -j SNAT --to 82.146.25.92
# iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE
# iptables -t nat -A PREROUTING -p tcp -d 82.146.25.92  -j DNAT --to 10.0.0.12

Мисля, че бях изчерпателен. Но това ще оцениш ти.
Активен