[HOWTO] Раздача интернета

Модераторы: _e2L, Злой Засранец

[HOWTO] Раздача интернета

Сообщение _e2L » 29 июн 2010 11:58

Доброго всем времени суток.
Недавно появилась довольно несложная задача: есть 1 компьютер, подключенный к фридому, и недавно собрался 2-ой из старого хлама еще один, который хотелось бы образовать в сеть с первым компьютером и дать ему выход в интернет. Собственно, о там как я это сделал сейчас здесь и расскажу. Сразу оговорюсь, что данное руководство написано для тех кто совсем недавно в линукс, плохо в них разбирается или просто для ленивых пользователей.
Что имеется:
1-ый компьютер: домашний компьютер, в котором пришлось сделать 2 сетевые карты, так как не планировалось использовать роутер. Так как я планировал его использовать только в качестве сервера, на нем доисторическая видеокарта (которая в принципе вообще можно было не вставлять, т.к к монитору не подключен). Так же не подключенны колонки, мышь и тп. Есть только 2 витых кабеля. и шнур для питания. Клавиатура подключалась только на время установки и настройки ОС. Собственно, в качестве ос был выбран надежный Debian Lenny 5.01 без графического окружения - то что надо.
2-ой компьютер: обычный домашний компьютер, за которым работаю постоянно (да и не только я), выполняю повседневные задачи. На нем уже давно нашел себе место и уютно расположился ArchLinux.
Что нужно: 2 компьютера (причем у одного из них 2 сетевых карты обязательно), свитч, желание "чтобы все работало" и суметь прочесть и повторить что все будет написано ниже.
Описывать установку линукса я не буду, так как это и так несложно, думаю многие линукс хоть раз в жизни да ставили. Перейдем сразу к настройкам.
В первую сетевую карту на первом компьютере втыкаем кабель от фридома. Настраиваем интернет на ней как вам удобно. Я предлагаю свой способ, как универсальный для любого линукс дистрибутива (см чуть ниже). Далее во вторую сетевую карту втыкает обжатую кросом витую пару и другим концом втыкаем в свитч, берем еще одну витуху так же обжатую и втыкаем ее в свитч в другой порт и другим концом на сетевуху второго компьютера.

Код: Выделить всё
ifconfig eth0 down
ifconfig eth0 <ваш_ip> netmask 255.255.255.192 up
route add -net 10.0.0.0 gw <ваш_gw> netmask 255.0.0.0
route add -host 192.168.149.1 gw 10.3.48.1
route add -host 195.98.64.65 gw 10.3.48.1
route add -host 195.98.64.66 gw 10.3.48.1
echo "lock" > /etc/ppp/options
echo "noauth" >> /etc/ppp/options
echo "nobsdcomp" >> /etc/ppp/options
echo "nodeflate" >> /etc/ppp/options
pptp 192.168.149.1 defaultroute user <логин фридом> password <пароль фридом>
echo "nameserver 195.98.64.65" >> /etc/resolv.conf
echo "nameserver 195.98.64.66" >> /etc/resolv.conf

Все, интернет теперь работает.
Теперь нам надо сделать так, чтобы трафик перенаправляется на другие сетевые карты. Для этого существует nat forwarding.
Код: Выделить всё
echo "1" > /proc/sys/net/ipv4/ip_forward

Всего лишь один файл подправлен и все работает ;)
Ну или можно постаринке сделать, для надежности.
Код: Выделить всё
sysctl -w net.ipv4.ip_forward="1"
netstat -l | grep domain

Как вы будете делать у себя - выбирайте сами. Теперь трафик вас идет на сетевую 2ую карту. Осталось натсроить это правило в iptables. Это в принципе тоже можно сделать всего одной командой:
Код: Выделить всё
iptables -t nat -A POSTROUTING -s 192.168.0.0/24 -j MASQUERADE

И остались копейки - настроить вторую сетевую карту как шлюз для второго компьютера и сетевую карту на втором компьютере.
На первом компьютер сделайте:
Код: Выделить всё
ifconfig eth1 down
ifconfig eth1 192.168.0.2 netmask 255.255.255.0 up

А сидя (или стоя, не важно :) )за вторым компьютером
Код: Выделить всё
ifconfig eth0 down
ifconfig eth0 192.168.0.3 netmask 255.255.255.0 up
route add default gw 192.168.0.2

Все, теперь все работает, если это правильно подключено.
И на последок, предлагаю сделать так, чтобы не приходилось все это вбивать каждый раз при старте системы.
Создадим файл lan с таким содержимым.
Код: Выделить всё
nano lan
ifconfig eth0 <ip фридом> netmask 255.255.255.192 up
ifconfig eth1 192.168.0.2 netmask 255.255.255.0 up
route add -net 10.0.0.0 gw <шлюз фридом> netmask 255.0.0.0
route add -host 192.168.149.1 gw <шлюз фридом>
route add -host 195.98.64.65 gw <шлюз фридом>
route add -host 195.98.64.66 gw <шлюз фридом>
pptp 192.168.149.1 defaultroute user <логин> password <пароль>
sysctl -w net.ipv4.ip_forward="1"
netstat -l | grep domain
sleep 3
iptables -t nat -A POSTROUTING -s 192.168.0.0/24 -j MASQUERADE

Теперь жмем Ctrl+X и сохраняем все это дело. Далее делаем так, чтобы этот скрипт запускался каждый раз при загрузке системы.
Код: Выделить всё
echo "sh /root/lan" >> /etc/rc.local

Примечания.
1). Возможно, что ваш свитч будет настраиваемым и иметь свой собственный адрес, поэтому он по умолчанию присваивает себе адрес 192.168.0.1. Во избежании неразберихи, это адрес я не использовал и оставил ему.
2). Если ваш свитч можно настроить, проверьте его сетевые настройки. Должно стоять
IP: 192.168.0.1
Netmask: 255.255.255.0
Шлюз: 192.168.0.2. (самое главное)
3) Все вышеописанные команды выполнять из под ROOT'а. Чтобы потом не спрашивать а почему у меня пишет что не хватает прав, зайдите сейчас в систему сразу как root.
4) Возможно что-то вам покажется кривым и вы бы сделали это по-другому, проще. Если так - пишите мне, я подправлю. Тоже пишите, если нашли какие-нибудь ошибки.
5) Копирайт 8-) :-D
Why so serious, Son?
vaSt
Аватара пользователя
_e2L
Штурман
Штурман
 
Сообщения: 807
Зарегистрирован:
14 авг 2009 19:46
Откуда: fROm m00N

Re: [HOWTO] Раздача интернета

Сообщение Lucky SB » 29 июн 2010 20:42

Сколько пафоса....
Проще надо быть.

По тексту совершенно непонятно зачем тебе 1ый комп ;) Наверное торренты качать ?

ну и матчасть получше изучить.
_e2L писал(а):Далее во вторую сетевую карту втыкает обжатую кросом витую пару и другим концом втыкаем в свитч, берем еще одну витуху так же обжатую и втыкаем ее в свитч в другой порт и другим концом на сетевуху второго компьютера.

Вопиющая безграмотность.
Работать то оно скорее всего будет, но за это надо сказать спасибо разработчикам чипов для свитчей, и это совсем не повод путать такие вещи.

_e2L писал(а):netstat -l | grep domain

это такое линуксячье шаманство ? ;) а если просто netstat -l сделать ? а если не делать ?
_e2L писал(а):route add -net 10.0.0.0 gw <ваш_gw> netmask 255.0.0.0

_e2L писал(а):route add -net 10.0.0.0 <шлюз фридом> netmask 255.0.0.0

ы ?

_e2L писал(а):4) Возможно что-то вам покажется кривым и вы бы сделали это по-другому, проще. Если так - пишите мне, я подправлю. Тоже пишите, если нашли какие-нибудь ошибки.

Прежде чем нажимать "Отправить" стоит перечитать свой пост разика три-четыре.
BS3023-RIPE
Телепат-любитель
Аватара пользователя
Lucky SB
Командир корабля
Командир корабля
 
Сообщения: 2978
Зарегистрирован:
06 дек 2007 20:30

Re: [HOWTO] Раздача интернета

Сообщение _e2L » 29 июн 2010 21:00

Lucky SB
По тексту совершенно непонятно зачем тебе 1ый комп Наверное торренты качать ?

Там по ходу будет видно. Для начала научиться азы делать и, как вы говорите, "выучить матчасть." Ну и как вы думаете, сгодится ли компа с жестким на 20Гб как качалка торрентов?
с gw накосячил, исправил.

это такое линуксячье шаманство ? а если просто netstat -l сделать ? а если не делать ?


ну, да. Не заводилось что-то, погуглил - нашел эту команду, заработало. Если просто netstat -l - понятия не имею, не пробовал.
Why so serious, Son?
vaSt
Аватара пользователя
_e2L
Штурман
Штурман
 
Сообщения: 807
Зарегистрирован:
14 авг 2009 19:46
Откуда: fROm m00N

Re: [HOWTO] Раздача интернета

Сообщение pavel28 » 29 июн 2010 22:20

У меня тоже вопрос есть: зачем было изобретать велосипед? Это вкратце. Маршрутизаторы перестали выпускать? :-D
Ну ладно, захотелось через второй комп, но ведь можно было и проксю настроить. Небось полкомнаты в проводах, жужжит, гремит и страшно греется, но работает и после половины дня убитого времени наступило удовлетворение? :D
Спасибо, буду иметь ввиду :)
Зевни, зевни, зевни, зевни, зевни, зевни, зевни, зевни, зевни, зевни, зевни, зевни, зевни, зевни, зевни, зевни, зевни, зевни, зевни, зевни, зевни, зевни, зевни, зевни, зевни, зевни, зевни, зевни, зевни, зевни, зевни, зевни, зевни, зевни, зевни, зевни
Аватара пользователя
pavel28
Штурман
Штурман
 
Сообщения: 735
Зарегистрирован:
02 авг 2008 22:36
Откуда: Оттудова

Re: [HOWTO] Раздача интернета

Сообщение _e2L » 29 июн 2010 22:42

pavel28
зрия иронизируйте :) ничего не жужит особо, проводов тоже нет, потому что всему дал ума, свитч воткнул между шкафом и столом компьютерным, провода под ковром - ничего не мешает.
У меня нет маршрутизитора, но был свитч - поэтому так и сделал.
И на последок - поднимать проксю для выхода в интернета - это извращение, потому что есть nat forwarding ;)
Why so serious, Son?
vaSt
Аватара пользователя
_e2L
Штурман
Штурман
 
Сообщения: 807
Зарегистрирован:
14 авг 2009 19:46
Откуда: fROm m00N

Re: [HOWTO] Раздача интернета

Сообщение pavel28 » 29 июн 2010 23:18

Это добрая ирония
Я рад что все так удобно у тебя получилось.
Как вариант - на работе сижу через терминал. Удобная вещь. Правда на хрюшке
Зевни, зевни, зевни, зевни, зевни, зевни, зевни, зевни, зевни, зевни, зевни, зевни, зевни, зевни, зевни, зевни, зевни, зевни, зевни, зевни, зевни, зевни, зевни, зевни, зевни, зевни, зевни, зевни, зевни, зевни, зевни, зевни, зевни, зевни, зевни, зевни
Аватара пользователя
pavel28
Штурман
Штурман
 
Сообщения: 735
Зарегистрирован:
02 авг 2008 22:36
Откуда: Оттудова

Re: [HOWTO] Раздача интернета

Сообщение Lucky SB » 30 июн 2010 07:11

_e2L писал(а):Для начала научиться азы делать

Т.е. сервер учебный ? ;)
И поднят не ради дела, а ради учебы ?


Если бы ты поднимал бы таким образом сервер на FreeBSD тебя надо было бы поколотить подсвечниками ;)
Использовать rc.local, когда тоже самое можно сделать стандартными средствами - плохой тон и неуважение к тому, кто будет обслуживать сервера после тебя.

На линухах, насколько я знаю, каждый дистр выеживается по своему, поэтому может быть такой подход имеет право на существование.

ЗЫЖ Для соединения двух компов свитч не нужен ;)
BS3023-RIPE
Телепат-любитель
Аватара пользователя
Lucky SB
Командир корабля
Командир корабля
 
Сообщения: 2978
Зарегистрирован:
06 дек 2007 20:30

Re: [HOWTO] Раздача интернета

Сообщение _e2L » 30 июн 2010 07:27

Ды я в курсе что для двух свитч не нужен. С одной стороны это их сейчас 2, потом скорее всего будет больше. Так что свитч тут не лишний. Для обучения, да, чтобы можно было на практике изучать интересные вещи. На счет неуважения - я все аккуратно положил в отдельный файл, так что в рс.конф всего одна строчка. Следующим админом легко удаляется. Кстати, а причем тут фряха? За что подсвечником? ;)
Why so serious, Son?
vaSt
Аватара пользователя
_e2L
Штурман
Штурман
 
Сообщения: 807
Зарегистрирован:
14 авг 2009 19:46
Откуда: fROm m00N

Re: [HOWTO] Раздача интернета

Сообщение Lucky SB » 30 июн 2010 21:20

_e2L писал(а):На счет неуважения - я все аккуратно положил в отдельный файл, так что в рс.конф всего одна строчка. Следующим админом легко удаляется.


Хех.
Ну представь себя на месте этого следующего админа - надо поменять роутинг/адрес/пароль для пптп
1. Полез в rc.conf - нема.
2. Почитал маны по данному дистру линукса - полез куда-нить в /etc/system/config/interface/eth0/ip_config/default - немае
3. Начал копать всю кучу скриптов, вызываемых при запуске - немае
4. О! есть еще rc.local - там какой-то лан запускается
5. полез в лан - вот оно.

Плюс исчо такой нюанс есть ;)
_e2L писал(а):Кстати, а причем тут фряха?

Я не знаю как это сделано в куче различных дистров линухов, а во фре rc.local запускается самым последним и как себя поведут различные демоны, которые прибиваются к интерфейсам/адресам когда этого адреса нет еще ....
bind например надо перестартовать после смены ip адресов...
Вообщем твой мануал получился из серии - не надо так делать!
BS3023-RIPE
Телепат-любитель
Аватара пользователя
Lucky SB
Командир корабля
Командир корабля
 
Сообщения: 2978
Зарегистрирован:
06 дек 2007 20:30

Re: [HOWTO] Раздача интернета

Сообщение anbear » 01 июл 2010 01:07

Lucky SB писал(а):Вообщем твой мануал получился из серии - не надо так делать!

И опыт - сын ошибок трудных…
http://linuxforum.ru/viewtopic.php?pid=66140

З.Ы. "Еще я не понимаю, может, это хорошо, что я всего этого не понимаю?!" ©
(вырвано из контекста http://drink.dax.ru/avtor/zadornov/zador_09.shtml )
anbear
Пассажир
Пассажир
 
Сообщения: 453
Зарегистрирован:
24 фев 2008 12:10

Re: [HOWTO] Раздача интернета

Сообщение _e2L » 01 июл 2010 09:01

И? что вы этой ссылкой сказать хотели? ;)
Скажу по секрету, если кто еще не знает, kOvr1K - это я :)
Я пробовал все это подключать самостоятельно но были проблемы. Думал что что-то не так с настройками. Вот и просил там помощи. Оказался свитч неисправный :)
Why so serious, Son?
vaSt
Аватара пользователя
_e2L
Штурман
Штурман
 
Сообщения: 807
Зарегистрирован:
14 авг 2009 19:46
Откуда: fROm m00N

Re: [HOWTO] Раздача интернета

Сообщение anbear » 01 июл 2010 15:46

Ничего не хотел, просто заинтересовало время и место использования netstat , а так как у тебя
_e2L писал(а):понятия не имею, не пробовал.

решил посмотреть для чего тебе рекомендовали netstat .
В общем, обычное любопытство, не более того.
А ты чего подумал?

З.Ы.
_e2L писал(а):Я предлагаю свой способ, как универсальный для любого линукс дистрибутива

как-то пафосно, не?
anbear
Пассажир
Пассажир
 
Сообщения: 453
Зарегистрирован:
24 фев 2008 12:10

Re: [HOWTO] Раздача интернета

Сообщение _e2L » 10 июл 2010 08:07

anbear
Ни чуть. Можешь любой дистр попробовать, работать будет. Могу даже больше сказать - на локальном компьютере может стоять вообще что угодно, любой Юникс или даже Виндовс. Настройки одни и те же - ай пи, маска, шлюз и днс фридома.
Why so serious, Son?
vaSt
Аватара пользователя
_e2L
Штурман
Штурман
 
Сообщения: 807
Зарегистрирован:
14 авг 2009 19:46
Откуда: fROm m00N


Вернуться в Linux семейство

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 5

cron