Шлюз из локалки в инет

Проблемы установки, настройки и работы Правильной Операционной Системы

Модератор: terminus

Правила форума
Убедительная просьба юзать теги [cоde] при оформлении листингов.
Сообщения не оформленные должным образом имеют все шансы быть незамеченными.
Аватара пользователя
OSBoy
сержант
Сообщения: 228
Зарегистрирован: 2007-04-09 12:17:50
Откуда: Из капусты

Шлюз из локалки в инет

Непрочитанное сообщение OSBoy » 2007-04-09 12:29:25

Есть локальная сеть 192.168.0.0/16 есть шлюз, с поднятым натом, пользователи из моей подсети (192.168.1.0) прописывают меня шлюзом, плюс роут в инет через меня (считаем, что клиенты все под виндой), всё нормально, а как настроить клиента в другой подсети? (скажем, 192.168.2.0) Чтобы он мог ходить в инет через мой шлюз? Маска подсети у всех прописана 255.255.255.0, шлюзы во всех подсетях вида 192.168.Х.254, и у всех прописан маршрут 192.168.0.0 mask 255.255.0.0 192.168.X.254.
НАТом можно обойтись или проксю поднимать придётся?

Хостинговая компания Host-Food.ru
Хостинг HostFood.ru
 

Услуги хостинговой компании Host-Food.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/

reLax
лейтенант
Сообщения: 638
Зарегистрирован: 2007-04-08 5:50:16

Непрочитанное сообщение reLax » 2007-04-09 12:34:03

Ты и тут появился, пользователь провайдера Домолинк :-D

Аватара пользователя
dikens3
подполковник
Сообщения: 4856
Зарегистрирован: 2006-09-06 16:24:08
Откуда: Нижний Новгород
Контактная информация:

Непрочитанное сообщение dikens3 » 2007-04-09 12:39:10

rc.conf на шлюзе

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

ifconfig_xl0="inet 192.168.1.1  netmask 255.255.255.0"
ifconfig_xl0_alias0="inet 192.168.2.1  netmask 255.255.255.0"
У сети 192.168.1.0/24 ставишь шлюзом 192.168.1.1
У сети 192.168.2.0/24 ставишь шлюзом 192.168.2.1

В зависимости от правил фаера, пользователи могут ходить к друг другу.
например так:

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

allow ip from any to any via lo0
allow ip from any to any via xl0
Лучше установить FreeBSD, чем потратить 30 лет на Linux'ы и выяснить какой из них хуже.

Аватара пользователя
OSBoy
сержант
Сообщения: 228
Зарегистрирован: 2007-04-09 12:17:50
Откуда: Из капусты

Непрочитанное сообщение OSBoy » 2007-04-09 16:41:21

Да нет, видимо я не совсем чётко сформулировал задачу:

Есть городская локалка, которая выглядит примерно таким образом (мохет не совсем так, но смысл думаю ясен):
http://img133.imageshack.us/my.php?image=shemauo9.jpg
Допустим, буквой Ш отмечен мой шлюз (freebsd, nat, ipfw), к другому интерфейсу которого подцеплен интернет (ADSL-модем/роутер).
Мне требуется пустить через свой шлюз в инет несколько компов из локалки, в частности из других подсетей. Вопрос - КАК?

Аватара пользователя
dikens3
подполковник
Сообщения: 4856
Зарегистрирован: 2006-09-06 16:24:08
Откуда: Нижний Новгород
Контактная информация:

Непрочитанное сообщение dikens3 » 2007-04-09 18:09:26

Тогда для сети 192.168.2.0 шлюзом прописываешь 192.168.1.5 (Адрес шлюза)
+ добавить статический маршрут у компов в сети 192.168.2.0, чтобы они могли попасть в сеть 192.168.1.0

В синтаксисе не уверен, но мысль будет ясна.

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

route add 192.168.1.0 mask 255.255.255.0 192.168.2.254 ..
Т.е. сказать, что для достижения IP-Адресов 192.168.1.0 идти на шлюз 192.168.2.254(там должен быть настроен routing)

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

route add 192.168.2.0 mask 255.255.255.0 192.168.1.254 ..
Нужно прописать на шлюзе 192.168.1.5 чтобы он понял, что для того, чтобы попасть в сеть 192.168.2.0 нужно идти через шлюз 192.168.1.254
Последний раз редактировалось dikens3 2007-04-10 12:13:33, всего редактировалось 2 раза.
Лучше установить FreeBSD, чем потратить 30 лет на Linux'ы и выяснить какой из них хуже.

Ramzess77
проходил мимо
Сообщения: 3
Зарегистрирован: 2007-04-06 7:33:27
Контактная информация:

Непрочитанное сообщение Ramzess77 » 2007-04-10 11:48:25

Еще можно на нужных компах прописать второй ip из подсетки 192.168.1.0 и gw твой указать.
Нет ничего более постоянного, чем временное.

Аватара пользователя
OSBoy
сержант
Сообщения: 228
Зарегистрирован: 2007-04-09 12:17:50
Откуда: Из капусты

Непрочитанное сообщение OSBoy » 2007-04-22 11:29:30

В общем так:
Поставил третью сетевуху для своего рабочего компа, более-менее настроил ipfw. В принципе всё работает. Но остались некоторые непонятки:
Во-первых, у клиента интернет периодически подвисает! Но хотя я сам сижу в инете с рабочего компа через тот же НАТ, что и клиент, но у меня всё работает без проблем. Могу предположить что проблема в pipe, через который сидит клиент, или хз... Может быть нужно добавить какие-нибудь очереди, задержки и т.п., или просто divert переставить в другое место?
Вот мой конфиг на данный момент, и заодно подскажите, что тут можно ещё подправить:
###Variables
ipfw="/sbin/ipfw -q"
iif="rl0" #In interface
oif="rl1" #Out interface
mif="rl2" #Home network interface
iip="192.168.1.5" #In IP
oip="10.0.0.3" #Out IP
mip="10.0.1.1" #Home network IP
ournet="192.168.0.0/16" #Our local network
mynet="10.0.1.0/24" #My host network
myhost="10.0.1.2" #My host
loopback="lo0" #Local interface
uprefix="192.168" #Users prefix
###-------------------------------------------------
###Clear rules
${ipfw} -f flush
${ipfw} -f pipe flush
${ipfw} -f queue flush
###-------------------------------------------------
###Clients
${ipfw} -f table 1 flush
${ipfw} table 1 add ${uprefix}.1.1
${ipfw} table 1 add ${uprefix}.2.2
###-------------------------------------------------
${ipfw} add 100 check-state
###-------------------------------------------------
###Далее идут все reject и deny:
###Block netbios via out interface
###Antiscanner/antihacker и т.п. .....
###.............................................
###-------------------------------------------------
###Server rules
${ipfw} add 500 allow ip from any to any via ${loopback}
${ipfw} add 510 deny log ip from any to 127.0.0.0/8
${ipfw} add 520 deny log ip from 127.0.0.0/8 to any
${ipfw} add 530 allow tcp from any to me 21,22,80,65530-65535
${ipfw} add 540 allow tcp from me to any 21,80,65530-65535 keep-state
${ipfw} add 550 allow udp from me to any domain keep-state
###-------------------------------------------------
###Dummynet:
${ipfw} pipe 1 config bw 64Kbit/s
${ipfw} add 600 pipe 1 ip from ${uprefix}.1.1 to any out via ${oif}
${ipfw} add 610 pipe 1 ip from any to ${uprefix}.1.1 out recv ${oif} xmit ${iif}
${ipfw} add 600 pipe 1 ip from ${uprefix}.2.2 to any out via ${oif}
${ipfw} add 610 pipe 1 ip from any to ${uprefix}.2.2 out recv ${oif} xmit ${iif}
###-------------------------------------------------
###NAT
${ipfw} add 700 deny log ip from any to not ${oip} in via ${oif}
${ipfw} add 710 divert 8668 ip from ${myhost} to any out via ${oif}
${ipfw} add 710 divert 8668 ip from table\(1\) to any out via ${oif}
${ipfw} add 720 divert 8668 ip from any to ${oip} in via ${oif}
#Out for my host:
${ipfw} add 730 allow ip from ${myhost} to any in via ${mif}
${ipfw} add 740 allow ip from ${oip} to any out via ${oif}
${ipfw} add 750 allow ip from any to ${myhost} in via ${oif}
${ipfw} add 760 allow ip from any to ${myhost} out via ${mif}
#Out for clients:
${ipfw} add 730 allow ip from table\(1\) to any in via ${iif}
#From oip to internet - allowed by rule 740 in line 63
${ipfw} add 750 allow ip from any to table\(1\) in via ${oif}
${ipfw} add 760 allow ip from any to table\(1\) out via ${iif}
#In for my host:
${ipfw} add 700 deny log ip from any to ${mynet} in via ${iif}
${ipfw} add 710 divert 8778 ip from ${myhost} to any out via ${iif}
${ipfw} add 720 divert 8778 ip from ${ournet} to ${iip} in via ${iif}
#From my host to our net via mif - allowed (to all) by rule 730 in line
${ipfw} add 740 allow ip from ${iip} to ${ournet} out via ${iif}
${ipfw} add 750 allow ip from ${ournet} to ${myhost} in via ${iif}
#ip from our net to my host out via mif - allowed by rule 760 in line 66
###-------------------------------------------------
###ICMP
${ipfw} add 800 allow icmp from any to me
#ICMP from me to any - allowed by rules 740 in lines 64,77
###-------------------------------------------------
${ipfw} add 65534 deny log ip from any to any
Да, и во-вторых, всё ещё в силе вопрос, как выпустить в инет клиента из другой подсети? (в конфиге он обозначен 192.168.2.2)
Изначально у ВСЕХ пользователей локалки такие настройки:
IP 192.168.Х.У маска 255.255.255.0 шлюз 192.168.Х.254,
и прописан статич. маршрут в остальные подсети:
192.168.0.0 mask 255.255.0.0 192.168.Х.254 (где Х-номер подсети)
При этом юзер из другой подсети не может прописать маршрут в инет через мой шлюз, т.к. винда начинает ругаться, что мол шлюз находится вне его подсети....
Мы же пробовали с клиентом настраивать его так:
IP 192.168.2.2 маска 255.255.0.0 шлюз 192.168.1.5 (мой шлюз),
и кроме статич. маршрута в остальные подсети:
192.168.0.0 mask 255.255.0.0 192.168.2.254
дописали ещё один:
0.0.0.0 mask 0.0.0.0 192.168.1.5 (в интернет через мой шлюз)
При этом вся локалка у клиента работает замечательно, мой шлюз пингуется, но ipfw show даже не показывает его активности, например правило 600 (см. конфиг выше) - молчит....
Так в чём же может быть проблема?