LINUX.ORG.RU

Две сетевухи на FreeBSD


0

0

В rc.conf указано gateway_enable="YES" С самого компа могу пингануть инет и локалную сетку. А если указываю на любом юзерском компе, что это гейт, то ничего не происходит, и с этого юзерского компа в инет не выйти. Такое впечатление, что на гейте между картами пакеты не бегают. tracert показывает первый хоп до гейта, тут всё правильно, а дальше звёждочки. Замучался я уже искать. Где ковырять? Только не кричите RTFM, т.к. FM довольно бестолковый, и R уже глаза болят. :)

RegardZ, NiC

anonymous

A /sbin/route kto budet nastraivat'? Routit'-to nado paketi, sami oni routit'sa ne budut.

anonymous
()

во первых я не совсем понял:
у тебя эта FreeBSD имеет две сетевухи
одна в инет, вторая в локалку
и ты хочешь с локального адреса пингать инет??
если так то тебе возможно придеться разобраться с ipfw и natd.

или же у тебя две сетевухи смотрят в инет и ты с машины у которой
ИНЕТОВСКИЙ_АДРЕС хочешь иметь гатевеем эту FreeBSD машину тогда:

проверь не возвращается ли тебе host unreachable при твоем пинге.
Если нет то проверь не установлен ли у тебя ipfw/ipf с какими нибудь настройками.
если нет то то еще раз проверь
$ sysctl net.inet.ip.forwarding # должно быть 1
если 1 то проверь
$ sysctl net.inet.ip.ttl # должно быть больше 1 - так как при проходе каждого хопа снимается один ttl
если больше 1 то хз

lg ★★
()

Сорри, путано спросил.
Дано:
fxp0 - смотрит в локал (10.ххх.х.х)
fxp1 - смотрит в инет (62.хх.х.х)
Ядро перекомпилил с опциями IPFIREWALL и IPFIREWALL_FORWARD.
Файрвол в режиме "OPEN".
Задача - сделать из этого гейтуей для локалки с прозрачным прокси.

Башка совсем уже не варит.
Ткните носом, что сделать?

RegardZ.
NiC

anonymous
()

во - другое дело.
для этого есть NAT. nat во FreeBSD может работать в двух режимах.
natd(user level) + ipfw (with IPDIVERT в ядре) или ipf ipnat.
я использую natd + ipfw и проблем нет .. с ipnat тоже не должно быть.
divert это такой специальный сокет из которого можно напрямую иметь доступ
к ip стекам.
ipfw умеент записывать пакеты в эти divert сокеты а natd считывать.
IPFIREWALL_FORWARD который ты прописал это для source routingа.
итого имеем
# ipfw add 10 divert natd ip from any to any via fxp1
# natd -n fxp1

что это даст:
1) пакуты которые к тебе будут приходить на fxp0 в связи с тем что не для нее посланы
будут попадать соответственно на fxp1(ROUTE)
2) попадая на fxp1 пакет имеет слудующий вид(к примеру) 10.x.x.x -> 195.x.x.x
3) проходя через рулеза ipfw он попадает в дивептнутый сокет natd(8668)
4) natd читает его и алиасит в соответствии с интерфейсом fxp1 (-n fxp1)
5) пакет принимает вид 62.x.x.x -> 195.x.x.x и спокойно уходит
6) когда приходит ответ на этот пакет то он проходит опять через fxp1 (уже 'in' направление)
7) natd смотрит по своим таблицам и разалиасивает его в 195.x.x.x -> 10.x.x.x
8) этот пакет (ROUTING) пападает на fxp0 и нормально доходит то отправителя


lg ★★
()

Ха, новая проблема - IPDIVERT отказывается компилится :(

anonymous
()

написал бы как он отказывается компиляться.

lg ★★
()

ФСЁ!!!
Прокомпилил, настроил.
РАБОТАЕТ!
С меня пивасик!

Скоро, очень скоро родится юниксоид!

RegardZ,
NiC

anonymous
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.