Настройка сетевых служб, маршрутизации, фаерволлов. Проблемы с сетевым оборудованием.
Правила форума
Убедительная просьба юзать теги [code] при оформлении листингов.
Сообщения не оформленные должным образом имеют все шансы быть незамеченными.
-
Yanis
- рядовой
- Сообщения: 23
- Зарегистрирован: 2008-08-15 16:53:36
Непрочитанное сообщение
Yanis » 2008-09-14 19:25:38
Вступление.
Имеется 2 провайдера.
Хочется, чтобы пользователи локалки имели НАТ через vr0,
а для некоторых адресов - через rl0.
Локалка - sk0
/etc/rc.conf
Код: Выделить всё
ifconfig_sk0="inet 192.168.5.1 netmask 255.255.255.0"
ifconfig_rl0_alias0="inet x.y.z.162 netmask 255.255.255.248"
ifconfig_rl0_alias1="inet x.y.z.163 netmask 255.255.255.248"
ifconfig_rl0_alias2="inet x.y.z.164 netmask 255.255.255.248"
ifconfig_vr0="inet 10.230.204.21 netmask 255.255.255.0"
defaultrouter="10.230.204.1"
#static_routes="one two"
#route_one="-net x1.y1.z1.97/27 x.y.z.161"
#route_two="-net x2.y2.z2.97/29 x.y.z.161"
/etc/pf.conf. Все работает, если разкомментировать статические роуты в rc.conf
С route-to, reply-to я запутался окончательно и удалил все, чтобы не пудрить вам мозги
Код: Выделить всё
#!/bin/sh
table <nursat> {x1.y1.z1.97/27, x2.y2.z2.97/29}
set block-policy drop
set skip on lo0
scrub in all fragment reassemble
int_if="sk0"
ext_nursat="rl0"
ext_xcom="vr0"
rdr on $int_if inet proto tcp from $int_if:network to any port 80 -> 127.0.0.1 port 3128
nat on $ext_nursat from $int_if:network to <nursat> tag NURSAT -> ($ext_nursat)
nat on $ext_xcom from $int_if:network to any -> ($ext_xcom)
pass in on $int_if inet proto tcp from any to 127.0.0.1 port 3128 keep state
pass out on $ext_xcom inet proto tcp from any to any keep state
pass in all
pass out all
Yanis
-
Хостинг HostFood.ru
-
Хостинг HostFood.ru
Тарифы на хостинг в России, от 12 рублей:
https://www.host-food.ru/tariffs/hosting/
Тарифы на виртуальные сервера (VPS/VDS/KVM) в РФ, от 189 руб.:
https://www.host-food.ru/tariffs/virtualny-server-vps/
Выделенные сервера, Россия, Москва, от 2000 рублей (HP Proliant G5, Intel Xeon E5430 (2.66GHz, Quad-Core, 12Mb), 8Gb RAM, 2x300Gb SAS HDD, P400i, 512Mb, BBU):
https://www.host-food.ru/tariffs/vydelennyi-server-ds/
Недорогие домены в популярных зонах:
https://www.host-food.ru/domains/
-
Yanis
- рядовой
- Сообщения: 23
- Зарегистрирован: 2008-08-15 16:53:36
Непрочитанное сообщение
Yanis » 2008-09-14 20:32:53
Пытаюсь распутаться сам. В rc.conf никаких статических роутов нет.
Код: Выделить всё
#!/bin/sh
table <nursat> persist file "/etc/pf.nursat"
set block-policy drop
set skip on lo0
scrub in all fragment reassemble
int_if="sk0"
ext_nursat="rl0"
ext_xcom="vr0"
rdr on $int_if inet proto tcp from $int_if:network to any port 80 -> 127.0.0.1 port 3128
nat on $ext_nursat from $int_if:network to <nursat> tag NURSAT -> ($ext_nursat)
nat on $ext_xcom from $int_if:network to !<nursat> tag XCOM -> ($ext_xcom)
pass in all
pass out all
pass in on $int_if inet proto tcp from any to 127.0.0.1 port 3128 keep state
pass out on $ext_xcom inet proto tcp from any to any tagged XCOM keep state
pass in reply-to ($ext_nursat x.y.z.161) tagged NURSAT keep state
pass out on $ext_nursat route-to ($ext_nursat x.y.z.161) tagged NURSAT keep state
Теперь пинги в сети <nursat> однозначно не проходят.
Запустил tcpdump, и вижу эхо реквесты на карте vr0, т.е. проблема в правиле pass out on $ext_nursat - маршрут не создался
Yanis
-
uderik
- рядовой
- Сообщения: 35
- Зарегистрирован: 2007-10-24 12:15:47
Непрочитанное сообщение
uderik » 2008-09-15 8:46:53
route-to надо ставить на входящем внутреннем интерфейсе, где у тебя приходят пакеты с внутренних адресов, а на внешнем интерфейсе должны быть правила reply-to. И в таблице маршрутизации должен быть дефаулт маршрут иначе пакеты будут отбрасываться no route to host не доходя до файрвола, хотяб route add default 127.0.0.1.
uderik
-
uderik
- рядовой
- Сообщения: 35
- Зарегистрирован: 2007-10-24 12:15:47
Непрочитанное сообщение
uderik » 2008-09-15 8:57:42
Вот так, только что проверил работает
nat on extIF0 inet from 192.168.11.4 to 194.87.0.50 -> xx.xx.89.6
pass in quick on intIF0 route-to (extIF0 xx.xx.89.1) inet from 192.168.11.4 to 194.87.0.50 flags S/SA keep state
uderik
-
Yanis
- рядовой
- Сообщения: 23
- Зарегистрирован: 2008-08-15 16:53:36
Непрочитанное сообщение
Yanis » 2008-09-16 19:55:59
uderik писал(а):pass in quick on intIF0 route-to (extIF0 xx.xx.89.1) inet from 192.168.11.4 to 194.87.0.50 flags S/SA keep state
Действительно работает, хотя логика не очень понятна.
Спасибо, пошел маны перечитывать )
Yanis
-
uderik
- рядовой
- Сообщения: 35
- Зарегистрирован: 2007-10-24 12:15:47
Непрочитанное сообщение
uderik » 2008-09-16 20:39:16
Yanis писал(а):uderik писал(а):pass in quick on intIF0 route-to (extIF0 xx.xx.89.1) inet from 192.168.11.4 to 194.87.0.50 flags S/SA keep state
Действительно работает, хотя логика не очень понятна.
Спасибо, пошел маны перечитывать )
Вполне понятна логика, пакет у вас приходит на внутреннем интерфейсе и согласно таблице маршрутизации уходит на внешний интерфейс. ПФ перехватывает его на входе и отправляет в нужный интерфейс.
uderik
-
Yanis
- рядовой
- Сообщения: 23
- Зарегистрирован: 2008-08-15 16:53:36
Непрочитанное сообщение
Yanis » 2009-01-13 11:40:34
Теперь провайдеров до конца месяца стало 3
2 безлимита и 1 по трафику.
Все работает кроме аськи, то она молча виснет на подключении, то "Превышен лимит подключений". Хотя я ее сети давно завернул на прова "По трафику" как самого надежного
Помогите разобраться, текущий pf.conf такой:
Код: Выделить всё
#!/bin/sh
table <nursat> persist file "/etc/pf.nursat"
table <xcom2> persist file "/etc/pf.xcom"
set block-policy drop
set skip on lo0
scrub in all fragment reassemble
int_if="re0"
ext_nursat="rl0"
ext_megaline="tun0"
ext_xcom="re1"
nat on $ext_nursat from any to any -> ($ext_nursat)
nat on $ext_xcom from any to any -> ($ext_xcom)
nat on $ext_megaline from any to any -> ($ext_megaline)
pass in quick on $int_if route-to ($ext_nursat 213.x.y.233) inet from any to <nursat> keep state
pass in quick on $ext_nursat route-to ($ext_nursat 213.x.y.233) inet from any to <nursat> keep state
pass in quick on $int_if route-to ($ext_xcom 10.230.112.1) inet from any to <xcom> keep state
pass in quick on $ext_xcom route-to ($ext_xcom 10.230.112.1) inet from any to <xcom> keep state
pass in quick on $int_if route-to {($ext_xcom 10.230.112.1), ($ext_megaline 82.200.178.1)} round-robin from $int_if:network to !$int_if:network keep state
pass out quick on $ext_nursat route-to ($ext_nursat 213.x.y.233) inet from 213.x.y.234 to any keep state
pass out quick on $ext_xcom route-to ($ext_xcom 10.230.112.1) from $ext_xcom to any keep state
pass in all
pass out all
Ну и pf.nursat
Код: Выделить всё
...
#icq
64.12.0.0/16
205.188.0.0/16
152.163.0.0/24
...
Шлюз по умолчанию смотрит в экст_мегалайн
Yanis