Перейти из форума на сайт.

НовостиФайловые архивы
ПоискАктивные темыТоп лист
ПравилаКто в on-line?
Вход Забыли пароль? Первый раз на этом сайте? Регистрация
Компьютерный форум Ru.Board » Операционные системы » Microsoft Windows » FreeBSD+NAT

Модерирует : KLASS, IFkO

articlebot (10-10-2005 03:45): Перемещено в форум "UNIX"  Версия для печати • ПодписатьсяДобавить в закладки

   

misha24

Newbie
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Доброе время суток.
Имеется следующая проблема:
 
Есть внешняя сеть с 5-ю реальными IP и прямым выходом в интернет.
Задача настроить NAT на FreeBSD5.3 таким образом, чтобы все 5 внешних IP были прописаны на внешнем сетевом адапторе (на том, на котором включен  NAT ), а весть трафик из внутренней сети был разбит на 5 групп (по IP адресам) и каждая группа выходила через свой внешний IP.
 
x.x.x.1 ---|--------||------||  192.168.1.0/24
x.x.x.2 ---|--fxp0-||------||  192.168.2.0/24
x.x.x.3 ---|--------||------|| 192.168.3.0/24
x.x.x.4 ---|--------||------|| 192.168.4.0/24
x.x.x.5 ---|--------||------||  192.168.5.0/24
 
В rc.conf с помощью функции alias я присвоил внешнему сетевому адаптеру все 5 IP.
Были созданы фиктивные сетевые адаптеры с именами fxp0_alias0, fxp0_alias1 и т.д.
 
Каким образом я могу перенаправить трафик от каждой из групп на соответствующий внешний IP?

Всего записей: 5 | Зарегистр. 19-06-2005 | Отправлено: 15:49 19-06-2005
Ambal



Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
повесить пять натов с разными конфигами на разных портах,
и файрвольными рулезами каждую внутреннию сетку отправить на определенный нат.

Всего записей: 229 | Зарегистр. 01-06-2004 | Отправлено: 16:26 20-06-2005
guess



Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
В принципе, если адреса будут использоваться только под нат
можно не прописывать алиасы. Использовать только один ИП на интерфейсе.

Всего записей: 73 | Зарегистр. 07-12-2003 | Отправлено: 00:57 21-06-2005
misha24

Newbie
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Ambal:  Как это сделать практически? Создать несколько файлов rc.conf? Или как?
 
guess: В том-то и состоит задача,  чтобы каждая группа уходила в интернет через свой IP, но через один сетевой адаптер.
 
С помощью команды redirect_address в natd.conf мне удалось перенаправить один IP из внутренней сети на один из фиктивных IP ната. Но, с помощью этой команды можно перенаправлять только 1 IP внутренней сети на 1 IP ната. Для группы внутренних IP мне это сделать не удалось.

Всего записей: 5 | Зарегистр. 19-06-2005 | Отправлено: 09:22 21-06-2005
Ambal



Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
в /etc/rc.local например пропиши
/sbin/natd -f /etc/natd1.conf
/sbin/natd -f /etc/natd2.conf
....
/sbin/natd -f /etc/natd5.conf
 
 
а в конфигах :
alias_addres x.x.x.1
port 32001
 
и т.д.
 
в ipfw
 
/sbin/ipfw add divert 32001 all from 192.168.1.0/24 to any via fxp0
/sbin/ipfw add divert 32002 all from 192.168.2.0/24 to any via fxp0
/sbin/ipfw add divert 32003 all from 192.168.3.0/24 to any via fxp0
...

Всего записей: 229 | Зарегистр. 01-06-2004 | Отправлено: 17:32 21-06-2005
misha24

Newbie
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Ambal:Попробовал, но не срабатывает. Очевидно, я что-то делаю не так. Помоги разобраться плииз.
нат у меня изначально был включен в rc.conf, который подгружается при перегрузке системы. Было написано так:
natd_enable="YES"
natd_interface="fxp0"
natd_flags="-f /etc/natd.conf"
 
В /etc/natd.conf написал
alias_addres x.x.x.1  
port 32001  
 
В /etc/firewall.conf написал
ipfw add divert 32001 all from 192.168.1.0/24 to any via fxp0  
 
На самой внешней сетевой карте прописан IP x.x.x.50
 
При такой конфигурации при перезагрузка система зависает и пишет о том, что не может создать alias так как он уже существует.
Что и где я делаю не так?

Всего записей: 5 | Зарегистр. 19-06-2005 | Отправлено: 08:54 22-06-2005
Ambal



Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
alias_addres x.x.x.1  
тут должен быть внешний адрес с которого будут уходить пакеты наружу.  
 
пиши не иксы а нормальные адреса, тогда путаницы меньше будет.

Всего записей: 229 | Зарегистр. 01-06-2004 | Отправлено: 09:38 22-06-2005
misha24

Newbie
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Нормальные адреса:
62.218.75.1
62.218.75.2
62.218.75.3
62.218.75.4
62.218.75.5
 
Непонятно как и где прописывается файл rc.local для того, чтобы он запустился при загрузке?
И что при этом надо записывать в rc.conf?
 
Почему та конфигурация, что приведена ниже не срабатывает?

Всего записей: 5 | Зарегистр. 19-06-2005 | Отправлено: 13:53 22-06-2005
Ambal



Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
создать его нужно /etc/rc.local и все, при загрузке он обработается.
из rc.conf про наты убрать все можно.
 
в конифиге ната так и пиши
alias_addres 62.218.75.1    
port 32001  
 
в следующем
alias_addres 62.218.75.2
port 32002

Всего записей: 229 | Зарегистр. 01-06-2004 | Отправлено: 17:17 22-06-2005
Drron

Advanced Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
В rc.conf :
ipnat_enable="YES"
ipnat_rules=/etc/ipnat.rules
 
В ipnat.rules :
map fxp0 192.168.0.0/24 -> 62.218.75.1/32 portmap tcp/udp 40000:60000
map fxp0 192.168.0.0/24 -> 62.218.75.1/32
 
map fxp0 192.168.1.0/24 -> 62.218.75.2/32 portmap tcp/udp 40000:60000
map fxp0 192.168.1.0/24 -> 62.218.75.2/32
...
и тд.
 
В ядре необходимы опции:
options         IPFILTER
options         IPFILTER_LOG
device          pf
 
 
Добавлено:
Да еще измерял загрузку процессора совместно с ipnat и natd при перекачке одного и тогоже файла. С использованием natd загрузка выше, скорости перекачки ниже, а для меня это было критично поэтому от natd отказался.
Поэтому для http использую squid, для nat ipnat, а для ограничения скорости ipfw.
 
 
Добавлено:
Для примера смотри /usr/share/examples/ipfilter/BASIC.NAT

Всего записей: 826 | Зарегистр. 20-11-2003 | Отправлено: 17:47 23-06-2005 | Исправлено: Drron, 17:48 23-06-2005
guess



Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
cоздать  5 конфигов natd с разными строчками  alias_address
запустить на разных портах (как писал Ambal )  
 
потом примерно так (место в конфиге важно!)
 
# заворачиваем пакеты в диверт
add divert 32001 all from 192.168.1.0/24 to any out via fxp0
add divert 32002 all from 192.168.2.0/24 to any out via fxp0
add divert 32003 all from 192.168.3.0/24 to any out via fxp0  
...
 
#выпускаем переписанные пакеты
add pass ip from  62.218.75.0/30 to any out via fxp0
 
# заворачивем входящие пакеты в нужный диверт  
add divert 32001 all from any to  62.218.75.1  in via fxp0
add divert 32002 all from any to  62.218.75.2  in via fxp0
add divert 32003 all from any to  62.218.75.3  in via fxp0
...
 
#впускаем пакеты в машину ( транзитные)
add pass ip from any  to 192.168.0.0/16  in via  fxp0
 
# Анализируем пакеты которые предназначены для машины
 
add deny all from any to any via fxp0
 
# Тут правила для других интерфейсов ( можно вначале поставить skipto)
 
------------------
  Все же рекомендую не создавать 4 alias на интерфейсах. Во всяком случае в этом нет никакой необходимости, судя по постановке задачи,  а мусора валиться будет меньше.
 
-----------------
 
Drron
 ipnat действительно быстрее работает, так как он в ядре реализован.
 
К сожелению ipf забросили, а использовать 2 пакетных фильтра накладно.
 Вот сильно смотрю на pf.
 
 
 

Всего записей: 73 | Зарегистр. 07-12-2003 | Отправлено: 01:35 24-06-2005 | Исправлено: guess, 01:38 24-06-2005
misha24

Newbie
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Всем спасибо за ответы. Буду пробовать.

Всего записей: 5 | Зарегистр. 19-06-2005 | Отправлено: 14:47 27-06-2005
   

Компьютерный форум Ru.Board » Операционные системы » Microsoft Windows » FreeBSD+NAT
articlebot (10-10-2005 03:45): Перемещено в форум "UNIX"


Реклама на форуме Ru.Board.

Powered by Ikonboard "v2.1.7b" © 2000 Ikonboard.com
Modified by Ru.B0ard
© Ru.B0ard 2000-2024

BitCoin: 1NGG1chHtUvrtEqjeerQCKDMUi6S6CG4iC

Рейтинг.ru