LINUX.ORG.RU

freebsd и static_route


0

0

всем привет.
имеется freebsd-7.2 и сеть вида:
http://img411.imageshack.us/img411/4162/wishes.png
часть rc.conf:
ifconfig_fxp0="inet 192.168.0.70 netmask 255.255.255.192"
ifconfig_fxp0_alias0="inet 192.168.0.102 netmask 255.255.255.255"
ifconfig_vr0="inet 192.168.0.3 netmask 255.255.255.192"
defaultrouter="YES"
defaultrouter="192.168.0.101"

static_routes="net1 net2"
route_net1="-net 192.168.0.70 192.168.0.101 -netmask 255.225.255.192"
route_net2="-host 192.168.0.69 -netmask 255.255.255.192 192.168.0.2 -netmask 255.255.255.192"

gateway_enable="YES"
router_flags="-q"
router="/sbin/routed"
router_enable="YES"

опция net.inet.ip.forwarding: 1

итак: для меня defaultroute 192.168.0.101,
для других либо 192.168.0.101(без моего участия), либо меняют у себя шлюз на 192.168.0.102
и идут в "быстрый интернет" через меня,
но в результате все идут через мой defaultroute и static_routes игнорируется, если defaultrouter убираю то инета нет и у меня

жизнеспособна ли вообще такая схема? иль я чего напутал?

★★★★★

p.s. со 192.168.0.69 vr0(192.168.0.3 через мой же 192.168.0.102) пингуется а вот 192.168.0.2 уже нет

S_Paul ★★★★★
() автор топика

netstat -rnW бы повтыкать
обычно пере направление трафика на другой шлюз решается через fwd в фаерволе

hizel ★★★★★
()
Ответ на: комментарий от hizel

а так как у вас 7.2, то можно воспользоваться multiple routing table
каждый со своим default route

hizel ★★★★★
()
Ответ на: комментарий от hizel

netstat -rnW
Routing tables

Internet:
Destination             Gateway            Flags    Refs      Use    Mtu    Netif Expire
default                 192.168.0.101      UGS         0    34993   1500     fxp0
127.0.0.1               127.0.0.1          UH          0     6590  16384      lo0
192.160.0.64&0xffe1ffc0 192.168.0.101      UGS         0        0   1500     fxp0
192.168.0.0/26          link#1             UC          0        0   1500      vr0
192.168.0.2             00:04:35:01:0a:47  UHLW        1        2   1500      vr0    892
192.168.0.64/26         link#2             UC          0        0   1500     fxp0
192.168.0.70            00:16:e6:81:47:6a  UHLW        1     1669  16384      lo0
192.168.0.101           00:1c:f0:2a:57:f7  UHLW        3        0   1500     fxp0   1155
192.168.0.102           192.168.0.102      UGH         0        0   1500     fxp0 =>
192.168.0.102/32        link#2             UC          0        0   1500     fxp0

Internet6:
Destination                       Gateway                       Flags    Refs      Use    Mtu    Netif Expire
::1                               ::1                           UHL         1        0  16384      lo0
fe80::%lo0/64                     fe80::1%lo0                   U           0        0  16384      lo0
fe80::1%lo0                       link#4                        UHL         1        0  16384      lo0
ff01:4::/32                       fe80::1%lo0                   UC          0        0  16384      lo0
ff02::%lo0/32                     fe80::1%lo0                   UC          0        0  16384      lo0

S_Paul ★★★★★
() автор топика
Ответ на: комментарий от S_Paul

перечитал, посмотрел на схему:
не нужны в этой схеме дополнительные алиасы и роуты
0.69/26 ставит шлюзом ваш роутер 0.70/26
и летит до 0.2 согласно default gateway 0.70
если 0.2 не знает где подсеть 0.64/26 то:
или написать на 0.2 маршрут в сторону вашего сервера
или поднять nat в сторону 0.2 на 0.70

hizel ★★★★★
()
Ответ на: комментарий от hizel

192.168.0.2/26 это тарелка
192.168.0.101/26 наземный канал(adsl модем).
мне нужно , чтобы я ходил через 192.168.0.101/26(мой IP 192.168.0.70/26), а те, кто ставит шлюзом мою машину(алиас), идут через через 192.168.0.2/26(второй интерфейс 192.168.0.2/26).
мой defaultroute(192.168.0.101) должен быть только для меня!
может я не тот инструментарий выбрал для этой цели?

S_Paul ★★★★★
() автор топика
Ответ на: комментарий от S_Paul

ок, fwd правило в ipfw или вторую табличку маршрутизации и тоже фаером завернуть

ipfw fwd 192.168.0.2 ip from not 192.168.0.70 to not 192.168.0.64/26 out via fxp0
и может быть nat в сторону 192.168.0.2
то есть пакеты 192.168.0.64/26 входят к вам в 0.70 и пытаются выйти от туда же, так как дефолт у вас в туже сетевую, а мы их плюем в строну 192.168.0.2

hizel ★★★★★
()
Ответ на: комментарий от hizel

или default route в 192.168.0.2
но для себя родимого fwd в 192.168.0.101

hizel ★★★★★
()
Ответ на: комментарий от hizel

в дефолтном нету стало быть?
a просто ipfw add xxx allow ip from 192.168.x.x to 192.168.0.2 не работает...
что _лучше_ почитать на счёт ipfw ?

S_Paul ★★★★★
() автор топика
Ответ на: комментарий от S_Paul

на сколько я знаю это опция ipfw и она по умолчанию не собирается в модуле :-\
options IPFIREWALL_FORWARD #packet destination changes

hizel ★★★★★
()
Ответ на: комментарий от S_Paul

>что _лучше_ почитать на счёт ipfw ?

man ipfw - там все отчетливо и распарсить примеры из хэндбука

может вам будет красивее вместо fwd использовать setfib
просто для части пакетов другую маршрутизацию
но опять же надо пересобирать ядро на предмет кол-ва этих самых fib

hizel ★★★★★
()
Ответ на: комментарий от S_Paul

хелп, пересобрал ядро, совсемчемнадо, по умолчанию фаерволл открыт,
на клиентской машине (192,168,0,69/26) defaultroute ставлю 192,168,0,70(я)
по умолчанию клиент идет через мой defaultroute, а если вбиваю:
${ipfw} add 2000 fwd 192.168.0.2 ip from 192.168.0.69 to any
${ipfw} add 2001 fwd 192.168.0.2 ip from any to 192.168.0.69
пинг вроде стучится на второй модем(192,168,0,2) но как будто тот не отвечает,
от меня пингуется... уже не знаю что делать, подскажите а?

S_Paul ★★★★★
() автор топика
Ответ на: комментарий от S_Paul

достаточно одного правила, если ваш шлюз 192.168.0.2 в курсе где находится 192.168.0.64/26
${ipfw} add 2000 fwd 192.168.0.2 ip from 192.168.0.69 to any out via $int

где $int интерфес который смотрит в строну _вашего default_ маршрута

hizel ★★★★★
()
Ответ на: комментарий от hizel

нашёл рабочее решение:
natd -a 192.168.0.70 -p 7777
natd -a 192.168.0.3 -p 8888
${ipfw} add divert 7777 ip from 192.168.0.70 to any.
${ipfw} add divert 7777 ip from any to 192.168.0.70 via fxp0
${ipfw} add divert 8888 ip from 192.168.0.69 to any
${ipfw} add divert 8888 ip from any to 192.168.0.3 #via vr0
${ipfw} add fwd 192.168.0.101 ip from 192.168.0.70 to any.
${ipfw} add fwd 192.168.0.2 ip from 192.168.0.3 to any
правда длинновато...

S_Paul ★★★★★
() автор топика
Ответ на: комментарий от S_Paul

у вас же 7.2
если вы в ядро внедрили
options IPFIREWALL_NAT
options LIBALIAS

ipfw enable one_pass
ipfw nat 777 config ip 192.168.0.70 
ipfw nat 888 config ip 192.168.0.3

ipfw add 100 nat 777 ip from any to 192.168.0.70 in via fxp0
ipfw add 200 nat 888 ip from any to 192.168.0.3 in via vr0

ipfw add 300 skipto 1000 ip from 192.168.0.101 to any out

ipfw add 400 nat 777 ip from any to any out via fxp0
ipfw add 500 allow ip from any to any

ipfw add 1000 nat 888 ip from any to any out 
ipfw add 1010 fwd 192.168.0.2 ip from any to any out

// морща лоп пытаюсь сообразить зачем нат в сторону 192.168.0.64/26

hizel ★★★★★
()
Ответ на: комментарий от hizel

но так тож работает:), рад неимоверно, новая работа и наконец то связана с компами непосредственно.
дома линукс, freebsd вижу три недели(собственно сколько и работаю)... всё равно не могу толком въехать в правила ipfw и nat, нужно время чтоб переварилось в подсознании :) а маны роботы пишут какие-то..
извини(те) что напрягаю, а сквид _не_прозрачный_ прикрутить при моей конфигурации возможно? вернее он есть, меня пускает/считает -в браузере прокси указан, а тот трафик что через другой ифейс уходит -нет. понимаю что нужно както ввернуть его в правила ipfw но логика хромает.
спасибо

S_Paul ★★★★★
() автор топика
Ответ на: комментарий от S_Paul

squid хрумкает http трафиком и работает через default шлюз , естественно он не в курсе , что там в другой шлюз пуляется :D

ээ сделать так чтобы сквид лупил определенных юзеров на ip из 192.168.0.3 а всех остальных 192.168.0.70

hizel ★★★★★
()
Ответ на: комментарий от hizel

в том то и дело что:
http_port 192.168.0.70:3128
http_port 192.168.0.102:3128
.
.
.
acl me src 192.168.0.70
acl other src 192.168.0.69
tcp_outgoing_address 192.168.0.70 me
tcp_outgoing_address 192.168.0.3 other

S_Paul ★★★★★
() автор топика
Ответ на: комментарий от S_Paul

я бы посоветовал в начале списка правил разрешить трафик входящий и исходящий на 3128 порт, чтобы divert-ы его не кушали

hizel ★★★★★
()
Ответ на: комментарий от hizel

>эм а случаем в статистике по трафику 192.168.0.3 не фигурирует? :-\
я б заметил, 1)срезались бы баннеры 2)lightsquid говорит "нифига"

S_Paul ★★★★★
() автор топика
Ответ на: комментарий от hizel

не хотелось бы, что бы у пользователей надо было указывать прокси:порт, как то вставить в цепочку вход-ipfw-nat-выход или не так мыслю?

S_Paul ★★★★★
() автор топика
Ответ на: комментарий от hizel

блин , просто нет возможности ещё одну машину поставить.

S_Paul ★★★★★
() автор топика
Ответ на: комментарий от S_Paul

squid не мой конёк
вообще если трафик идет через squid то он должен считатся
если трафик не считается, значит клиент не использует прокси или считалку сглючивает, тут по идее ipfw какбэ роли особой не играет

hizel ★★★★★
()
Ответ на: комментарий от hizel

>вообще если трафик идет через squid то он должен считатся
вот я и говорю, он только меня пускает, но у меня прокси:порт прописан, остальные мимо проходят если без прокси и не проходят если _с_

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