Шлюз на Ubuntu и пул внешних IP адресов

Dmitry Glazov dyug.od на gmail.com
Чт Апр 8 12:44:30 BST 2010


Илья пишет:
> 
> 07.04.10, 22:47, "Sergey Al" <veo на nixteam.spb.ru>:
> 
>> Друзья, есть шлюз на убунту x64 9.04
>>  
>>  Перед шлюзом соответственно провайдер. За шлюзом небольшая сетка. Но в 
>>  этой сети есть 5 человек, которые хотят себе внешние IP. Мне выделили 
>>  пул IP. Но как пробросить и закрепить эти IP к компам в локальной сети?
>>  
>>  Подскажите куда рыть? ПЛЗ
>>  
>>  Заранее благодарю)
> 
> Во первых, я думаю необходимо на шлюзе  необходимо установить сетевую карту с возможностью настройки 
> нескольких ip адресов на один физический канал (в данном случае 6),

я так надеюсь, что Вы нам расскажете, какие "сетевые карты с 
возможностью настройки нескольких ip адресов на физический канал" 
существуют, и какие НЕ поддерживают данную функцию... :-)


>  возможно это делается программными методами (бридж). Ну а далее iptables.

Это делается программными средствами без каких либо возможно.

вот как у меня например :-)

------------------------
#!/bin/bash
#
IFACE="eth3:0"
LOCAL_IP="192.168.44.10"
NEW_IP="192.168.203.17"
NAME="1srv"
## NE Menyat!!!!
IFACE1="eth3"
NM="255.255.254.0"
BC="192.168.203.255"
GW="192.168.202.252"
#table="inet_ut"
case "$1" in
         'start')
/sbin/ifconfig $IFACE $NEW_IP netmask $NM broadcast $BC
/sbin/route add $NEW_IP gw $GW netmask 0.0.0.0 metric 1 dev $IFACE
/usr/sbin/iptables -t nat -A PREROUTING -p all -d $NEW_IP -j DNAT 
--to-destination $LOCAL_IP
/usr/sbin/iptables -A FORWARD -i eth3 -d $LOCAL_IP -j ACCEPT
/usr/sbin/iptables -t nat -A POSTROUTING -s $LOCAL_IP -o $IFACE1 -j SNAT 
--to-source $NEW_IP
     ;;
         'stop')
/usr/sbin/iptables -t nat -D POSTROUTING -s $LOCAL_IP -o $IFACE1 -j SNAT 
--to-source $NEW_IP
/usr/sbin/iptables -D FORWARD -i eth3 -d $LOCAL_IP -j ACCEPT
/usr/sbin/iptables -t nat -D PREROUTING -p all -d $NEW_IP -j DNAT 
--to-destination $LOCAL_IP
/sbin/route del $NEW_IP gw $GW netmask 0.0.0.0 metric 1 dev $IFACE:0
/sbin/ifconfig $IFACE down
     ;;
         'restart')
     $0 stop && $0 start
     ;;
         *)
echo "usage $0 start|stop|restart"
     ;;
esac
--------------------------
Это полный старт-стоп для слаквари примерно 9.. :-)
оно стоит внутри, и роутит между моей сетью и сетью наших друзей


Краткое описание упомянутых переменных
IFACE="eth3:0"            Имя интерфейса Это алиас интерфейса
LOCAL_IP="192.168.44.10"  Внутренний интерфейс внутри моей сети
NEW_IP="192.168.203.17"   Внешний Ип для друзей
NAME="1srv"               имя цепочки для иптаблес
IFACE1="eth3"		  Имя опорного (физического) интерфейса
NM="255.255.254.0"	  Нетмаск внешнй сети
BC="192.168.203.255"      вбродкаст внешней сети
GW="192.168.202.252"	  дефаулт гетвей для внешней сети


Вроде все...
Скопировал с рабочей системы.

старт стоп мне нужен для борьбы с нашими пользователями.




Подробная информация о списке рассылки ubuntu-ru