[ linux ] Выделение реального IP адреса пользователю

Slux

Турист
Регистрация
8 Дек 2005
Сообщения
15
Реакции
2
Credits
18
Не нашел раздела для новичков, пост лью сюда....
Есть шлюз на Slackware
За ним есть подсетка 10.230.0.240/30
Хочу допустим машине с Ип 10.230.0.247 дать выход с реал Ип... Как это реализовать?

Пробую:
iptables -t nat -A POSTROUTING -s ! 10.230.0.247 -o eth0 -j SNAT --to-source х.х.х.х
iptables -t nat -A PREROUTING -i eth0 -d _реал. Ип_ -j DNAT --to-destination 10.230.0.247
iptables -t nat -A POSTROUTING -o eth0 -s 10.230.0.247 -j SNAT --to-source _реал. Ип_

Ничего не получается.....:(
 

Vah

Местный
Регистрация
8 Май 2005
Сообщения
141
Реакции
5
Credits
0
эммм.... что-то я понять не могу..... у тебя на интерфейсе eth0 и 10-я подсеть и реал ИП висит??

скинь ка дамп ifconfig
 

Slux

Турист
Регистрация
8 Дек 2005
Сообщения
15
Реакции
2
Credits
18
ДА висит!
А что тебя так удивило? Или я что-то не так понял...
ifconfig eth0:1 _реал. Ип_ _netmask_ up
И на eth0 теперь и реал. Ип. и 10.*


eth0 Link encap:Ethernet HWaddr 00:0A:84:84:84:84
inet addr:10.230.0.250 Bcast:10.255.255.255 Mask:255.255.255.240
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:339873 errors:0 dropped:0 overruns:1 frame:0
TX packets:505368 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:28125517 (26.8 Mb) TX bytes:673105913 (641.9 Mb)
Interrupt:5 Base address:0xc000

eth0:1 Link encap:Ethernet HWaddr 00:0A:84:84:84:84
inet addr:_реал. ип_ Bcast:х.х.х.х Mask:255.255.255.248
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
Interrupt:5 Base address:0xc000
 

Vah

Местный
Регистрация
8 Май 2005
Сообщения
141
Реакции
5
Credits
0
Описываю примерную схему выделения реального ИП.

Интернет<---->[193.10.11.10/24]Маршрутизатор(GW1) [10.10.10.10/24]<----> [10.10.10.11/24] Пользователь(USR_NET)

Делаем во внутреннюю сеть реал_ип из подсети, например 193.10.10.1/24
и получаем что на eth1 будит ИП 10.10.11.10/24 и на eth1:1 - 193.10.10.1/24
и на eth0 - 193.10.10.10/24

делаем конкретному юзеру ИП 193.10.10.100/24 и указываем шлюз 193.10.10.1/24. Клиент видит маршрутизатор.
На маршрутизаторе со стороны 193.10.11.10/24 указываем что трафик для 193.10.10.100/24 - роутить на 193.10.10.1/24 (SNAT). Таким образом интернет у нас увидит клиента с реал_ИП. И траффик с адреса 193.10.10.100/24 роутить на 193.10.11.10/24 (SNAT).... таким образом клиент увидит интернет.
 

enyuri

Местный
Регистрация
30 Июн 2005
Сообщения
162
Реакции
41
Credits
0
Slux написал(а):
Пробую:
iptables -t nat -A POSTROUTING -s ! 10.230.0.247 -o eth0 -j SNAT --to-source х.х.х.х
iptables -t nat -A PREROUTING -i eth0 -d _реал. Ип_ -j DNAT --to-destination 10.230.0.247
iptables -t nat -A POSTROUTING -o eth0 -s 10.230.0.247 -j SNAT --to-source _реал. Ип_

Ничего не получается.....:(

У тебя все правильно. НО! _real.ip_ ДОЛЖЕН висеть альясом на интерфейсе.
повесь его на интерфейс:
ifconfig eth0:7 inet _real.ip_ netmask _real.mask_ broadcast _real.bcast_ up
 
A

Andrey Zentavr

Slux написал(а):
Пробую:
iptables -t nat -A POSTROUTING -s ! 10.230.0.247 -o eth0 -j SNAT --to-source х.х.х.х
iptables -t nat -A PREROUTING -i eth0 -d _реал. Ип_ -j DNAT --to-destination 10.230.0.247
iptables -t nat -A POSTROUTING -o eth0 -s 10.230.0.247 -j SNAT --to-source _реал. Ип_
ИМХО так:

# От Юзера в тырнет
iptables -t filter -I FORWARD -s юзер -o eth1 -j ACCEPT
iptables -t nat -I POSTROUTING -s юзер -o eth1 -j SNAT -to-source реал_ИП
# Из тырнета к юзеру
iptables -t nat -I PREROUTING -i eth1 -d реал_ИП -j DNAT --to-destination юзер
iptables -t filter -I FORWARD -d юзер -i eth1 -j ACCEPT
# Для всех остальных
iptables -t nat -A POSTROUTING -o eth1 -j SNAT x.x.x.x
где eth1 у тебя смотрит в инет, eth0 смотрит в локалку