FreeBSD 8.2 + IPFW + Nat
Правила форума
Убедительная просьба юзать теги [code] при оформлении листингов.
Сообщения не оформленные должным образом имеют все шансы быть незамеченными.
Убедительная просьба юзать теги [code] при оформлении листингов.
Сообщения не оформленные должным образом имеют все шансы быть незамеченными.
-
- рядовой
- Сообщения: 21
- Зарегистрирован: 2011-01-20 7:44:33
FreeBSD 8.2 + IPFW + Nat
Всю голову поломал.
Исходные:
FreeBSD 8.2 (ядро собрано с поддержкой IPFW)
Интерфейсы:
re0 - домашняя сеть 192.0.0.0
vr0 - Провайдер 1 (локальный IP не выдается, через него поднимается PPP для интернет )
tun0 - Интернет от Провайдера 1 (поднят через vr0)
vr1 - Провайдер 2 (Локальный IP выдается DHCP (10.0.0.0), интернета нет)
Требуется:
Машинами из домашней сети 192.0.0.0 выходить в инет через Провайдера 1 tun0
Машинами из домашней сети 192.0.0.0 пользоваться локальными ресурсами Провайдера 2 vr1 (10.0.0.0)
Помогите пожалуйста правильно разрулить.
Исходные:
FreeBSD 8.2 (ядро собрано с поддержкой IPFW)
Интерфейсы:
re0 - домашняя сеть 192.0.0.0
vr0 - Провайдер 1 (локальный IP не выдается, через него поднимается PPP для интернет )
tun0 - Интернет от Провайдера 1 (поднят через vr0)
vr1 - Провайдер 2 (Локальный IP выдается DHCP (10.0.0.0), интернета нет)
Требуется:
Машинами из домашней сети 192.0.0.0 выходить в инет через Провайдера 1 tun0
Машинами из домашней сети 192.0.0.0 пользоваться локальными ресурсами Провайдера 2 vr1 (10.0.0.0)
Помогите пожалуйста правильно разрулить.
Последний раз редактировалось f_andrey 2011-04-04 12:53:45, всего редактировалось 1 раз.
Причина: Автору, выбирайте пожалуйста раздел соответствуюший тематике вашего сообщения.
Причина: Автору, выбирайте пожалуйста раздел соответствуюший тематике вашего сообщения.
Услуги хостинговой компании Host-Food.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/
Тарифы на виртуальные сервера (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/
-
- рядовой
- Сообщения: 27
- Зарегистрирован: 2009-08-07 9:20:56
Re: FreeBSD 8.2 + IPFW + Nat
ZAPODLO писал(а):Всю голову поломал.
Исходные:
FreeBSD 8.2 (ядро собрано с поддержкой IPFW)
Интерфейсы:
re0 - домашняя сеть 192.0.0.0
vr0 - Провайдер 1 (локальный IP не выдается, через него поднимается PPP для интернет )
tun0 - Интернет от Провайдера 1 (поднят через vr0)
vr1 - Провайдер 2 (Локальный IP выдается DHCP (10.0.0.0), интернета нет)
Требуется:
Машинами из домашней сети 192.0.0.0 выходить в инет через Провайдера 1 tun0
Машинами из домашней сети 192.0.0.0 пользоваться локальными ресурсами Провайдера 2 vr1 (10.0.0.0)
Помогите пожалуйста правильно разрулить.
Код: Выделить всё
echo "firewall_enable=YES" >>/etc/rc.conf
echo "firewall_script=/etc/ipfw.conf" >>/etc/rc.conf
echo "natd_enable=YES" >>/etc/rc.conf
echo "natd_scripts=/etc/natd.conf" >>/etc/rc.conf
Код: Выделить всё
#!/bin/sh
fw=/sbin/ipfw -q
local="192.0.0.0/8"
prov="10.0.0.0/8"
isp="{ isp1-gateway-ip, isp1-dns1-ip, isp1-dns2-ip, isp2-gateway-ip, isp2-dns1-ip, isp2-dns2-ip }"
ip_ext="my-static-ip-set-by-isp1"
$fw -f flush
$fw add allow all from any to any via lo0
$fw add allow all from any to any via re0
$fw add divert natd all from $local to any via tun0
$fw add divert natd all from any to $ip_ext via tun0
$fw add allow all from any to any
Есть вещи на Земле, о друг Горацио, которых наши пацаны не догоняют. (с)
-
- рядовой
- Сообщения: 21
- Зарегистрирован: 2011-01-20 7:44:33
Re: FreeBSD 8.2 + IPFW + Nat
Код: Выделить всё
zp# netstat -rn
Routing tables
Internet:
Destination Gateway Flags Refs Use Netif Expire
default 213.129.104.4 UGS 0 37920769 tun0
10.0.0.0/24 00:26:5a:06:2e:7d US 0 712 vr1 =>
10.0.0.0/8 10.66.56.1 UGS 0 2608 vr1
10.66.56.0/21 link#3 U 0 360 vr1
10.66.63.* link#3 UHS 0 0 lo0
127.0.0.1 link#5 UH 0 1168 lo0
192.168.0.0/24 link#1 U 2 47302426 re0
192.168.0.1 link#1 UHS 0 0 lo0
194.186.60.0/24 00:26:5a:06:2e:7d US 0 4 vr1
213.129.104.4 link#7 UHS 0 0 tun0
213.129.108.* 127.0.0.1 UH 0 0 lo0
-
- рядовой
- Сообщения: 21
- Зарегистрирован: 2011-01-20 7:44:33
Re: FreeBSD 8.2 + IPFW + Nat
А что делать с DNS? resolv.conf затирается и при поднятии PPP от Провайдер 1 и при запросе DHCP от Провайдер 2.
Отключать в PPP и DHCP запрос DNS и прописывать в resolv.conf вручную DNS обоих провайдеров?
Отключать в PPP и DHCP запрос DNS и прописывать в resolv.conf вручную DNS обоих провайдеров?
-
- рядовой
- Сообщения: 21
- Зарегистрирован: 2011-01-20 7:44:33
Re: FreeBSD 8.2 + IPFW + Nat
Код: Выделить всё
isp="{ isp1-gateway-ip, isp1-dns1-ip, isp1-dns2-ip, isp2-gateway-ip, isp2-dns1-ip, isp2-dns2-ip }"
Код: Выделить всё
ip_ext="my-static-ip-set-by-isp1"
-
- рядовой
- Сообщения: 27
- Зарегистрирован: 2009-08-07 9:20:56
Re: FreeBSD 8.2 + IPFW + Nat
погорячился. Вам нужно смотреть вариант с двумя nat-демонами, имхо. Я такой вариант не реализовывал, помочь не смогу.ZAPODLO писал(а):Еще маленько уточнение. Хотелось бы еще по SSH рулить шлюзом из внешки. + Еще виртуалка там крутится, доступ по VNC. То же хотелось бы юзать.Код: Выделить всё
zp# netstat -rn Routing tables Internet: Destination Gateway Flags Refs Use Netif Expire default 213.129.104.4 UGS 0 37920769 tun0 10.0.0.0/24 00:26:5a:06:2e:7d US 0 712 vr1 => 10.0.0.0/8 10.66.56.1 UGS 0 2608 vr1 10.66.56.0/21 link#3 U 0 360 vr1 10.66.63.* link#3 UHS 0 0 lo0 127.0.0.1 link#5 UH 0 1168 lo0 192.168.0.0/24 link#1 U 2 47302426 re0 192.168.0.1 link#1 UHS 0 0 lo0 194.186.60.0/24 00:26:5a:06:2e:7d US 0 4 vr1 213.129.104.4 link#7 UHS 0 0 tun0 213.129.108.* 127.0.0.1 UH 0 0 lo0
суть такова: нужно запустить два демона NAT, смаршутизировать трафик в 10-ую сеть и обратно. первым должен сработать NAT в 10-ую сеть и только после этого должно сработать общий NAT в Интернет через prov1
а-ля:
$fw add divert natd1 all from $local to 10.0.0.0/8 via vr1
$fw add divert natd1 all from 10.0.0.0/8 to 10.66.63.* via vr1
$fw add divert natd2 all from $local to any via tun0
$fw add divert natd2 all from any to $ext_ip via tun0
только вот я не уверен, что пакеты, попадая в первый NAT и возвращаясь, не будут попадать во второй NAT. Я даже более уверен, что так и произойдет.
Можно попробовать порешать этот вопрос через PF, в котором я не силен.
Если есть время - разгребайте документацию по двум NAT-демонам. если нет - реализовывайте вариант с одним демоном и пытайтесь подключить второго провайдера на тестовой машине.
Больше навскидку мыслей нет.
если динамическое получение адресов по PPP - то хоть диапазоны прописывайте, сузить их до нужного предела всегда успеется. более того скажу, что DNS и GW у провайдера по-любому статика.
Есть вещи на Земле, о друг Горацио, которых наши пацаны не догоняют. (с)
-
- рядовой
- Сообщения: 21
- Зарегистрирован: 2011-01-20 7:44:33
Re: FreeBSD 8.2 + IPFW + Nat
Спасибо за помощь.