Название: Два шлюза в Internet Отправлено: tramX от 28 Июля 2009, 23:40:12 Скажите например я настроил на freebsd шлюз в интернет, прописал тарифы добавил пользователей. Через время взял второй канал интернет. Можно настроить второй шлюз на freebsd или mikrotik чтобы использовалась общая база? Возможно на одном сервере с freebsd и nodeny раздавать два канала и выдавать белые ip адреса?
Название: Re: Два шлюза в Internet Отправлено: Efendy от 29 Июля 2009, 00:11:29 все это можно
Название: Re: Два шлюза в Internet Отправлено: tramX от 29 Июля 2009, 13:21:49 Есть описание как с помощью nodeny поделить два канал? Нать лучше pfnat ?
Название: Re: Два шлюза в Internet Отправлено: Unix от 29 Июля 2009, 13:36:48 /etc/pf.conf
# Внешний интерфейс и шлюз для канала A (WAN_1).# ext_if_a = "em0" ext_gw_a = "x.x.x.x" # Внешний интерфейс и шлюз для канала B (WAN_2).# ext_if_b = "em2" ext_gw_b = "x.x.x.x" # Внешний интерфейс и шлюз для канала C (WAN_3).# ext_if_c = "fxp0" ext_gw_c = "x.x.x.x" # Внутренний интерфейс (LAN).# int_if = "em1" # Обслуживаемые TCP и UDP сервисы. tcp_svc = "22 25 21 35000:35100" # TCP сервисы, обслуживаемые сервером из внутренней сети, и адрес сервера. # 3389 tcp_svc_lan_terminal = "3389" tcp_rdr_lan_terminal = "192.168.1.3" # Не фильтровать трафик на lo интерфейсах.# set skip on lo0 # Нормализовать весь входящий трафик.# scrub in # Включить трансляцию адресов на внешних интерфейсах.# nat on $ext_if_a inet from !(self) -> $ext_if_a:0 nat on $ext_if_b inet from !(self) -> $ext_if_b:0 nat on $ext_if_c inet from !(self) -> $ext_if_c:0 # Переадресовать TCP сессии для сервисов, обслуживаемых локальным сервером. # Правила rdr здесь НЕ должны содержать слова pass. rdr on $ext_if_a inet proto tcp to $ext_if_a:0 port { $tcp_svc_lan_terminal\ } tag EXT_IF_A -> $tcp_rdr_lan_terminal rdr on $ext_if_b inet proto tcp to $ext_if_b:0 port { $tcp_svc_lan_terminal\ } tag EXT_IF_B -> $tcp_rdr_lan_terminal rdr on $ext_if_c inet proto tcp to $ext_if_c:0 port { $tcp_svc_lan_terminal\ } tag EXT_IF_C -> $tcp_rdr_lan_terminal # Разрешить подключение к переадресованным сервисам из локальной сети по # внешним адресам. rdr pass on $int_if inet proto tcp to { $ext_if_a:0 $ext_if_b:0 $ext_if_c:0\ } port { $tcp_svc_lan_terminal } tag INT_IF_RDR -> $tcp_rdr_lan_terminal nat on $int_if tagged INT_IF_RDR -> $int_if:0 # По умолчанию блокировать весь трафик на всех интерфейсах. Для входящих TCP # соединений возвращать RST. block on { $ext_if_a $ext_if_b $ext_if_c $int_if} block return on { $ext_if_a $ext_if_b $ext_if_c $int_if} inet proto tcp #Разрешить доступ через лок интерфейс к терминал серверу pass out quick on $int_if inet proto tcp from any to $tcp_rdr_lan_terminal\ port $tcp_svc_lan_terminal keep state # Пропускаем входящие пакеты для переадресованых сервисов. Устанавливаем # для них симметричную маршрутизацию (если пакет пришел # из канала A, ответ пойдет через канал A независимо от default route). pass in quick reply-to ($ext_if_a $ext_gw_a) tagged EXT_IF_A keep state pass in quick reply-to ($ext_if_b $ext_gw_b) tagged EXT_IF_B keep state pass in quick reply-to ($ext_if_c $ext_gw_c) tagged EXT_IF_C keep state # Выпускать исходящие пакеты. Установить маршрутизацию в зависимости от # адреса источника. Пакеты с адресом интерфейса A уходят в канал A, # с адресом интерфейса B - в канал B. pass out route-to ( $ext_if_a $ext_gw_a ) inet from $ext_if_a:0 keep state pass out route-to ( $ext_if_b $ext_gw_b ) inet from $ext_if_b:0 keep state pass out route-to ( $ext_if_c $ext_gw_c ) inet from $ext_if_c:0 keep state # Разрешить входящие ICMP PING пакеты.# pass in on $ext_if_a reply-to ($ext_if_a $ext_gw_a) inet proto icmp\ to $ext_if_a:0 icmp-type echoreq code 0 keep state pass in on $ext_if_b reply-to ($ext_if_b $ext_gw_b) inet proto icmp\ to $ext_if_b:0 icmp-type echoreq code 0 keep state pass in on $ext_if_c reply-to ($ext_if_c $ext_gw_c) inet proto icmp\ to $ext_if_c:0 icmp-type echoreq code 0 keep state # Разрешить входящие TCP сессии для обслуживаемых сервисов.# pass in on $ext_if_a reply-to ($ext_if_a $ext_gw_a) inet proto tcp\ to $ext_if_a:0 port { $tcp_svc } flags S/SA keep state pass in on $ext_if_b reply-to ($ext_if_b $ext_gw_b) inet proto tcp\ to $ext_if_b:0 port { $tcp_svc } flags S/SA keep state pass in on $ext_if_c reply-to ($ext_if_c $ext_gw_c) inet proto tcp\ to $ext_if_c:0 port { $tcp_svc} flags S/SA keep state #Разрешим туннели на интерфейсе WAN_2 и WAN3 pass in on $ext_if_b reply-to ($ext_if_b $ext_gw_b) inet proto tcp\ from x.x.x.x to $ext_if_b:0 port 5000 flags S/SA keep state pass in on $ext_if_c reply-to ($ext_if_c $ext_gw_c) inet proto tcp\ from x.x.x.x to $ext_if_c:0 port 5000 flags S/SA keep state pass quick on tun0 all pass quick on tun1 all #Разрешить в локалку пакеты от внутреннего интерфейса, из локальных сетей # туннелей pass out on $int_if inet from { $int_if:0, 192.168.3.0/24,\ 192.168.4.0/24 } to $int_if:network:0 keep state #Разрешить из локалки пакеты на внутренний интерфейс, в локальные сети # туннелей pass in on $int_if inet from $int_if:network:0 to { $int_if:0,\ 192.168.3.0/24, 192.168.4.0/24 } keep state #Разрешить из локалки пинг pass in on $int_if inet proto icmp from $int_if:network:0 to any\ icmp-type echoreq code 0 keep state #Разрешить из локалки 110, 3389, 53 pass in on $int_if inet proto tcp from $int_if:network:0 to any port\ { 110, 3389 } flags S/SA keep state pass in on $int_if inet proto udp from $int_if:network:0 to any port\ 53 keep state Название: Re: Два шлюза в Internet Отправлено: tramX от 06 Августа 2009, 01:07:55 Пытаюсь установить NODENY на одну машину а сервер mysql находится на другой. Вот такая ошибка после того как ввожу пароль root
BI connect('database=mysql;host=192.168.5.1;mysql_connect_timeout=3;','root',...) failed: Can't connect to MySQL server on '192.168.5.1' (4) at install.pl line 200 Название: Re: Два шлюза в Internet Отправлено: Efendy от 06 Августа 2009, 01:46:07 ну а если с консоли:
mysql -p -u root -h 192.168.5.1 Название: Re: Два шлюза в Internet Отправлено: tramX от 06 Августа 2009, 14:56:50 Если так то подключается.
Название: Re: Два шлюза в Internet Отправлено: tramX от 06 Августа 2009, 22:51:26 Сервер MYSQL был за wi-fi линком. Перенес его на кабель NODENY установил. Почему в админке показывает авторизированных пользователе? На сервере NODENY 192.168.5.1 показывает 5 авторизированных а на вновь установленном 3 хотя к нему никто не подключен.
Название: Re: Два шлюза в Internet Отправлено: Efendy от 07 Августа 2009, 10:02:53 Убирает авторизацию ядро. Если оно не запущено либо не может соединиться с БД - будет такой результат
Название: Re: Два шлюза в Internet Отправлено: tramX от 11 Августа 2009, 20:27:22 Два канала в инет. Ниже пример пока сложноват для меня. У меня
1.re0 - 192.168.1.2 на нем поднимается pppoe tun0 ip получает внешний динамический. 2.rl0 - 192.168.4.1 смотрит в локалку. и на нем PPPoE сервер выдает адреса 172.16.1.0/24 3.rl1 - 192.168.6.2 смотрит на шлюз 192.168.6.1 Нужно чтоб 192.168.4.1 ходили в инет через pppoe соединение которое поднимается на re0, а 172.16.1.0/24 через rl1. правила для nat nat on tun0 from 192.168.4.0/24 to any -> (tun0) nat on rl1 from 172.16.1.0/24 to any -> (rl1) Правильно я нат настроил или нужно еще что то? Название: Re: Два шлюза в Internet Отправлено: elite от 11 Августа 2009, 21:04:33 Два канала в инет. Ниже пример пока сложноват для меня. У меня нат ты правильно сделал, но надо еще форвардить пакеты в соответствующий интерфейс, ну или использовать альтернативные таблицы маршрутизации1.re0 - 192.168.1.2 на нем поднимается pppoe tun0 ip получает внешний динамический. 2.rl0 - 192.168.4.1 смотрит в локалку. и на нем PPPoE сервер выдает адреса 172.16.1.0/24 3.rl1 - 192.168.6.2 смотрит на шлюз 192.168.6.1 Нужно чтоб 192.168.4.1 ходили в инет через pppoe соединение которое поднимается на re0, а 172.16.1.0/24 через rl1. правила для nat nat on tun0 from 192.168.4.0/24 to any -> (tun0) nat on rl1 from 172.16.1.0/24 to any -> (rl1) Правильно я нат настроил или нужно еще что то? искать в гугле по PBR, ipfw fwd, setfib Название: Re: Два шлюза в Internet Отправлено: tramX от 11 Августа 2009, 21:36:17 А NODENY сам не добавит нужные правила IPFW?
Название: Re: Два шлюза в Internet Отправлено: elite от 11 Августа 2009, 21:48:27 А NODENY сам не добавит нужные правила IPFW? нетНазвание: Re: Два шлюза в Internet Отправлено: Efendy от 12 Августа 2009, 22:43:34 А NODENY сам не добавит нужные правила IPFW? NoDeny управляет доступом, а не роутингом. Название: Re: Два шлюза в Internet Отправлено: tramX от 18 Августа 2009, 01:59:45 Возможно чтобы было два сервера MySQL, на них одинакавая база. С целью если один сервер не доступен то сателиты подключаются ко второму. А между серверами MySQL происходил обмен данными о последних изменениях?
Как быть с настройкой PF для двух каналов если один соединяется по pppoe и IP адрес и шлюз постоянно меняются? Название: Re: Два шлюза в Internet Отправлено: Efendy от 18 Августа 2009, 09:37:59 В mysql есть стандартные средства для этого. Читай о репликации
Название: Re: Два шлюза в Internet Отправлено: blackjack от 18 Августа 2009, 10:04:53 при постоянно меняющемся адресе интерфейса в пф надо взять интерфейс в скобки типа (tun0)
Название: Re: Два шлюза в Internet Отправлено: tramX от 18 Августа 2009, 11:50:19 С интерфейсом понятно, я так и сделал
nat on tun0 from 192.168.4.0/24 to any -> (tun0) В этом топике выше пример # Внешний интерфейс и шлюз для канала A (WAN_1).# ext_if_a = "em0" ext_gw_a = "x.x.x.x" # Внешний интерфейс и шлюз для канала B (WAN_2).# ext_if_b = "em2" ext_gw_b = "x.x.x.x" # Внешний интерфейс и шлюз для канала C (WAN_3).# ext_if_c = "fxp0" ext_gw_c = "x.x.x.x" Что мне в ext_gw_a = "x.x.x.x" прописать если IP меняется? Название: Re: Два шлюза в Internet Отправлено: tramX от 21 Августа 2009, 14:13:10 Нет решений если ip шлюза меняется? Может можно вместо IP шлюза указать имя интерфейса?
Название: Re: Два шлюза в Internet Отправлено: imn от 05 Сентября 2009, 16:02:44 Код: cat /etc/pf.conf проверяем sudo pfctl -t Out1 -T add 192.168.0.2 на внешнем интерфейсе молчек, но если sudo ipfw disable firewall тогда внутренний интерфейс Код: tcpdump -npi re0 host 192.168.0.2 внешний интерфейс Код: tcpdump -npi vr1 sudo ipfw table all list Код: sudo ipfw table all list sudo ipfw list Код: 00050 allow tcp from any to me dst-port 22 почему ipfw режет пакеты? Название: Re: Два шлюза в Internet Отправлено: smallcms от 23 Октября 2009, 16:13:48 Может у кого-то есть готовое решение для двух шлюзов в round-robin в конфигурации биллинга "всё в одном"? Поделитесь, пожалуйста... Спрашиваю, т.г. гугл не помог, а в pf и ipfw не силён. ???
P.S.: Дело не с pf.conf, здесь я разобрался. Правило вида: Код: [root@gateway /etc]# cat pf.conf Абсолютно не понятно как прикрутить к ipfw. :( P.P.S.: И всё же вроде нашёл ход: в /etc/rc.firewall добавил (омечено плюсом): Код: ifOut='vr0' Да, может и смешно реализовано, но оно же работает. Вроде как... ;D Название: Re: Два шлюза в Internet Отправлено: Cell от 24 Октября 2009, 11:50:30 нормально реализованно
Название: Re: Два шлюза в Internet Отправлено: olegotek от 25 Января 2010, 02:19:04 Я делаю жосткие правила такой-то подсети на 1 канал, такой-то на 2-ой. Подскажите, пожалуйста, как решается вопрос с ДНС. Просто дописать еще один сервер в rezolv.conf? Или можно так же конкретно прописать кому какой давать ДНС?
Название: Re: Два шлюза в Internet Отправлено: Cell от 25 Января 2010, 02:56:54 Я делаю жосткие правила такой-то подсети на 1 канал, такой-то на 2-ой. Подскажите, пожалуйста, как решается вопрос с ДНС. Просто дописать еще один сервер в rezolv.conf? Или можно так же конкретно прописать кому какой давать ДНС? сделай локальный ДНС и будет счастье, нафиг использовать ДНС провайдеров? |