Титла: Рутиране на 2ро реално ip Публикувано от: zax в 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 ударете едно рамо ![]() ![]() ![]() Титла: Рутиране на 2ро реално ip Публикувано от: bonbon в Mar 25, 2006, 09:15 С това правило :
iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE оказваш,че всички IP-та ще излизат през рутера ти, с реалното ти IP. Поясни какво по-точно искаш да направиш. Титла: Рутиране на 2ро реално ip Публикувано от: n_antonov в Mar 25, 2006, 09:18 Някои ще ми обясни ли какво е това реално IP и ако това е реално, кое е нереално?
Титла: Рутиране на 2ро реално ip Публикувано от: bonbon в Mar 25, 2006, 09:31
Имах впредвид под реално - публично. Титла: Рутиране на 2ро реално ip Публикувано от: в 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 без нищо друго Титла: Рутиране на 2ро реално ip Публикувано от: vesselinkolev в Mar 25, 2006, 10:52
Мдамс... 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 не си пипал приоритетите им ![]() # 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 Мисля, че бях изчерпателен. Но това ще оцениш ти. |