Страница 1 из 1

IP внешнего интерфейса в ipfw и squip если они присв DHCP

Добавлено: 2009-03-23 22:36:55
slbond86
Здравствуйте. Обыскал ни один форум, искал уже вроде везде. Но немогу найти ответ на такой вопрос:

У меня домашний компьютер с FreeBSD 7.1 который хочу настроить как шлюз в инет. Есть два сетевых интерфейса rl0-внешний и rl1 -внутренний. rl0 подключен к локальной городской сети провайдера а инет подключаю через mpd. Причем оба внешних интерфейса rl0 b ng0(полученный при подключении mpd) получают IP адреса от DHCP серверов провайдера.

Настроил ipfw, squip как указанно в статье на этом сайте. Вроде все работает если каждый раз прописываю IP внешних интерфейсов в ручную.
При перезагрузке Free надо снова прописывать все заново т.к. адреса меняются. ивручную перезапускать службы с новыми настройками.

Может быть можно както записать параьетры IpOut в ipfw.rules и tcp_outgoing_address в squip чтоб IP сами обнавлялись. Например как в rc.conf ifconfig rl0="DHCP"

Re: IP внешнего интерфейса в ipfw и squip если они присв DHCP

Добавлено: 2009-03-23 23:34:27
schizoid
в фаере мне кажется можно рулить через интерфейс, просто по имени интерфейса, а не по ИПу.
в сквиде не знаю, не юзаю.

Re: IP внешнего интерфейса в ipfw и squip если они присв DHCP

Добавлено: 2009-03-24 0:36:19
fox
я не вкурил вопроса что тебе не нраветса в денамическом IP?

Re: IP внешнего интерфейса в ipfw и squip если они присв DHCP

Добавлено: 2009-03-24 9:25:09
zingel
скриптом

Re: IP внешнего интерфейса в ipfw и squip если они присв DHCP

Добавлено: 2009-03-24 11:30:03
FenX
для ipfw можно получать IP из вывода ifconfig`а
просто в скрипт правил добавь

Код: Выделить всё

ipaddr=`ifconfig rl0 | grep inet | awk '{print($2)}'`
rl0 замени на имя твоего интерфейса.

как в сквиде - хрен знает :)
давно сквид не юзал :)

да и вопрос:
если юзаешь для домашней сети, нахрена тебе сквид вообще?
просто заверни трафик натом и всё.

Re: IP внешнего интерфейса в ipfw и squip если они присв DHCP

Добавлено: 2009-03-24 13:02:46
skeletor
А какая проблема в squid'e?
У меня в конфиге squid'a прописано так

Код: Выделить всё

http_port 127.0.0.1:3128 transparent
В файерволе

Код: Выделить всё

00710 allow ip from 10.10.10.0/24 to me dst-port 3128
00720 fwd 127.0.0.1,3128 ip from 10.10.10.0/24 to any dst-port 80

Re: IP внешнего интерфейса в ipfw и squip если они присв DHCP

Добавлено: 2009-03-24 13:24:53
FenX
блин)) я уж и забыл, что сквид не вяжеЦо к определённому ипу)
значит после установки "динамической" переменной в правила фаера, вместо статики,
проблемы должны отпасть.

Re: IP внешнего интерфейса в ipfw и squip если они присв DHCP

Добавлено: 2009-03-24 14:04:51
skeletor
Ну да.

Re: IP внешнего интерфейса в ipfw и squip если они присв DHCP

Добавлено: 2009-03-24 20:36:54
iZEN
В PF для динамических IP имя интерфейса заключают в круглые скобки:
($ext_if)

Re: IP внешнего интерфейса в ipfw и squip если они присв DHCP

Добавлено: 2009-03-24 22:31:40
slbond86
FenX писал(а):для ipfw можно получать IP из вывода ifconfig`а
просто в скрипт правил добавь

Код: Выделить всё

ipaddr=`ifconfig rl0 | grep inet | awk '{print($2)}'`
rl0 замени на имя твоего интерфейса.
Большое спасибо. После прочтения статьи http://www.lissyara.su/?id=1707 я вчера и сам дошел до того что надо в ipwf.rules заместо статического IP вписать строчку:

Код: Выделить всё

IpOut=`ifconfig rl0 | grep "inet" | cut -d " " -f 2`
где rl0 - сетевуха смотрящая в сторону провайдера
правда написать что разабрался не смог нехватило сил так как было 4 часа а к 6 мне вставать на работу.
После приведенных изменений локалка заработала на ура на всех компах домашней сети

Re: IP внешнего интерфейса в ipfw и squip если они присв DHCP

Добавлено: 2009-05-10 10:24:17
denmariupol
Добрый день,подобная схема не работает,когда ip меняется раз в сутки,как быть в такой ситуации?По времени дергать тоже не выход,т.к.возможны ситуации,когда обрыв сессии может быть не запланирован.Можно ли в Ipfw nat назначить на интерфейс?

Re: IP внешнего интерфейса в ipfw и squip если они присв DHCP

Добавлено: 2009-05-10 11:51:03
FenX
natd и так привязывается к интерфейсу.

а что касается динамики: какой тип соединения? vpn?

Re: IP внешнего интерфейса в ipfw и squip если они присв DHCP

Добавлено: 2009-05-10 17:22:42
denmariupol
Нат ядерный,его,я так понял нельзя привязать к интерейсу,поправьте если ошибаюсь.Тип соединения pppoe.

Re: IP внешнего интерфейса в ipfw и squip если они присв DHCP

Добавлено: 2009-05-10 18:55:47
FenX
почему нельзя?

Код: Выделить всё

$fw nat 1 config if $eif
$fw add nat 1 ip from $local to any out via $eif
$fw add nat 1 ip from any to me in via $eif

Код: Выделить всё

$fw="/sbin/ipfw"
$local="10.0.0.0/29"
$eif="rl0"
по идеи должно работать.
а так, можно сделать ещё проще:

Код: Выделить всё

$fw add nat 1 ip from any to "table(1)" in via $eif
и уже при установке соединения, или обновлении сессии,
запускать скрипт, обновляющий инфу в таблице.
тогда вообще не придётся правила трогать в последствии.

Re: IP внешнего интерфейса в ipfw и squip если они присв DHCP

Добавлено: 2009-05-10 20:21:27
denmariupol
Дико благодарю,нат работает.
Еще вопрос.Подключение с помощью mpd5 пинги ходят,некоторые сайты открываются,но большинство нет,в чем может быть причина.
mpd.conf.

Код: Выделить всё

startup:
default:

    load pppoe_client

pppoe_client:

    create bundle static B1
    set iface route default
    set ipcp ranges 0.0.0.0/0 0.0.0.0/0
    create link static L1 pppoe
    set link action bundle B1
    set iface enable tcpmssfix
    set pppoe disable windowing
    set auth authname **********
    set auth password *********
    set link max-redial 0
    set link keep-alive 10 60
    set pppoe iface rl0
    set pppoe service ""
    open

Re: IP внешнего интерфейса в ipfw и squip если они присв DHCP

Добавлено: 2009-05-10 21:14:44
iZEN
denmariupol писал(а):Дико благодарю,нат работает.
Еще вопрос.Подключение с помощью mpd5 пинги ходят,некоторые сайты открываются,но большинство нет,в чем может быть причина.
Проблема в большом MTU. Нужно сделать MTU=1452.

Re: IP внешнего интерфейса в ipfw и squip если они присв DHCP

Добавлено: 2009-05-10 21:24:14
paradox
tcpmssfix нужно ставить
и чить документацию хотя бы поверхностно