Организация подключения к инету машины работающей под Windows через Linux!

Автор dalvis, 27 Апреля 2008, 18:51

« предыдущая тема - следующая тема »

0 Пользователей и 1 Гость просматривают эту тему.

dalvis

Всем здравствуйте! Срочный SOS!!!  :-X Проблема в следующем, у меня две машины на одной Win ][P sp2, а на другой Linux Mandriva 2008. Linux подключен через ADSL модем P-600 к инету через порт inthernet и имеет две сетевые карты. Каким образом можно организовать подключение к инету второй машины работающей под Windows т.е чтобы машина работающая под Linux-ом выполняла функции шлюза? Нужно ли настраивать SUMBA для взаимодействия машин или не обязательно. Во время настраивания и запуска второй сетевой карты, почему то отключилась вторая которая подключена к модему. Буду крайне признателен за ссылку на какую нибудь статью по данной теме! Заранее благодарю за помощь..:)))

Script

p600 - этож Lan-модем, правильно?
я так делала, пробил у знакомого админа свич (хаб) и два кабеля около 2 метров

                                            комп с виндой
модем  =>  свич (хаб) =>
                                            комп с Linux
"Ubuntu" is an ancient African word, meaning "I can't configure Gentoo" © Davidov                   -----     фриЛСДшник

Vicpo

во первых не sumba а samba :)
во вторых когда машина как шлюз то samba не нужна
в третьих для организации шлюза нужно настраивать iptables
в четвертых Настройка iptables

dalvis

Я в курсе про возможность использования switch-а, проблема в его наличии!!!

Gothon

А если просто попробовать настроить PPPoE на Линухе?
Или же можно сцепить модем с виндой, запустить интернет, а в Линухе прописать адрес виндовой машины как Прокси!!!

Vicpo

Gothon это у тебя задом наперед получиться не винда через линукс а линукс через винду, то есть прямая противоположность поставленной задаче :)

Script

Пусть тогда настроит PPPoE на линухе    а в венде поставить комп с линухом как прокси  :)
"Ubuntu" is an ancient African word, meaning "I can't configure Gentoo" © Davidov                   -----     фриЛСДшник

dalvis

Буду разбираться с настройками iptables, похоже на реальную тему, спасибо всем!  :D О результатах сообщу дополнительно!

Iskander

dalvis, iptables это конечно хорошо, но можно обойтись и без них, простым роутингом.
Если кому нибудь понадобится, пишите, расскажу как настроить маршрутизацию.
Любовь и массовые расстрелы спасут мир.

Iskander

dalvis на вашу просьбу отвечу здесь. Может еще кому пригодится.

Итак, для начала поставим задачу. У нас есть машина под линуксом. Она имеет два сетевых интерфейса - eth0 и eth1. Пусть eth0 имеет адрес 192.168.0.1/24 (это будет внутренняя подсеть)  eth1 cоотвественно 192.168.1.1/24 (подсеть провайдера) Мы хотим сделать так, чтобы наша машина служила шлюзом между нулевой и первой подсеткой.

для этого выполняем команды:
#route add -net 192.168.0.0/24
#route add -net 192.168.1.0/24

Можно указать интерфейс непосредственно, но ядро может определить подходящий интерфейс самомтоятельно без всяких проблем.
На этом настройка таблицы маршрутизации завершена. Можно конечно долго играться с метриками и прочим, но этого достасточно.
команда route должна показать таблицу маршрутов. будет вот такое:
Kernel IP routing table
Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
192.168.1.0     *               255.255.255.0   U     0      0        0 eth1
192.168.0.0     *               255.255.255.0   U     0      0        0 eth0
169.254.0.0     *               255.255.0.0     U     0      0        0 eth1
Последняя строка - это тот диапазон адресов, из которого получает ip машина сразу после того как включилась, но еще не нашла DNS. К DNS идет обращение именно по этим адресам.

На виндовой машине (которая в нулевой подсетке)открываем командную строку и также настраиваем маршрутизацию.
c:> route -p add [имя сети] mask [маска] [шлюз]
То есть в нашем случае это будет
route -p add 192.168.1.0 mask 255.255.255.0 192.168.0.1

С настройкой маршрутизации закончено. Однако, как мы можем заметить у нас пакеты шлюз не пропускает. Это связано с тем, что в параметрах ядра не стоит обычно по умолчанию разрешение пропускать пакеты. убедимся в этом:

# cat /proc/sys/net/ipv4/ip_forward
0

То есть запрет как мы видим стоит.
выполняем
# echo 1 > /proc/sys/net/ipv4/ip_forward

И для того чтобы после перезагрузки снова значение не сбросилось, в файле /etc/sysctl.conf
добавляем строку
net.ipv4.ip_forward = 1

Вот и все...
Для более сложной конфигурации в принципе разницы большой нету. Если возникнут вопросы - постараюсь ответить...
Любовь и массовые расстрелы спасут мир.

dalvis

Здравствуйте iskander! Что то у меня не получается, с командой route.  :( Попробовал несколько раз, говорит что нет такого устройства. Пришлось в ручную настроить два сетевых адаптера, интернет работает, Windows машину Linux видет по ЛВС и посети заходит на нее, а вот в инет винду через себя не пропускает. Попробовал ради эксперимента использовать в качестве шлюза Win машину, все сработало на ура. Подскажите что не так делаю, может какую службу надо задействовать, почему не срабатывает команда и по какой причине. ???

Команда выполняемые в консоли после настройки в ручную сет.адаптеров:

[dalvis@dal1 ~]$ sudo su
[root@dal1 dalvis]# route add -net 192.168.1.0/24
SIOCADDRT: Нет такого устройства
[root@dal1 dalvis]# route add -net 192.168.0.0/24
SIOCADDRT: Нет такого устройства
[root@dal1 dalvis]# route
Kernel IP routing table
Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
192.168.1.0     *               255.255.255.0   U     5      0        0 eth0
192.168.0.0     *               255.255.255.0   U     10     0        0 eth1
169.254.0.0     *               255.255.0.0     U     5      0        0 eth0
169.254.0.0     *               255.255.0.0     U     10     0        0 eth1
default         192.168.1.1     0.0.0.0         UG    5      0        0 eth0
[root@dal1 dalvis]#

Дополнительная информация:
В моем случаи у меня Eth0 - смотрит на внешнюю сторону ip 192.168.1.33 присвоенный службой DHCP работающей на модеме, а Eth1 - внутренний 192.168.0.1. На винде ip-192.168.0.2

Iskander

Таблица роутинга у вас вроде нормальная. Адрес получает? Вы файл /proc/sys/net/ipv4/ip_forward проверили?
Любовь и массовые расстрелы спасут мир.

dalvis

проверил!!! В параметрах окромя одного нуля - "0" ничего нет.

Vicpo

dalvis
Читаем внимательно Iskander для Вас писал
Цитировать# cat /proc/sys/net/ipv4/ip_forward
0

То есть запрет как мы видим стоит.
выполняем
# echo 1 > /proc/sys/net/ipv4/ip_forward

И для того чтобы после перезагрузки снова значение не сбросилось, в файле /etc/sysctl.conf
добавляем строку
net.ipv4.ip_forward = 1

dalvis

Все сделал, в файле /etc/sysctl.conf добавляем строку net.ipv4.ip_forward = 1 проверил после перезагрузке параметр "1" не сбрасывается, но при выполнении следующих команд результат тот же "НЕТ ТАКОГО УСТРОЙСТВА":

[root@dal1 dalvis]# route add -net 192.168.1.0/24
SIOCADDRT: Нет такого устройства
[root@dal1 dalvis]# route add -net 192.168.0.0/24
SIOCADDRT: Нет такого устройства

Vicpo

Цитировать[root@dal1 dalvis]# route add -net 192.168.1.0/24
SIOCADDRT: Нет такого устройства
[root@dal1 dalvis]# route add -net 192.168.0.0/24
SIOCADDRT: Нет такого устройства
их не надо выполнять
так как
ЦитироватьЦитата
Таблица роутинга у вас вроде нормальная.
а вообще правильно команды будут такими
route add -net 192.168.1.0 netmask 255.255.255.0 eth0
route add -net 192.168.0.0 netmask 255.255.255.0 eth1

Iskander

у меня и так работало :) Да, скорее всего это потому, что уже эти маршруты есть в таблице роутинга.
Любовь и массовые расстрелы спасут мир.

dalvis

Команды vicpo сработали, ip_forward проверил =1, с винды все ip-адреса eth0 и eth1 пингуются, на винде адаптер настроен следующим образом: ip - 192.168.0.2, mask - 255.255.255.0, основной шлюз -  192.168.0.1, предпочтительный DNS - 212.19.149.53, альтернативный DNS - 192.168.1.33. Если использовать винду в качестве шлюза все работает, но с Linux-сом бесполезняк, НЕ ПРОПУСКАЕТ ЧЕРЕЗ СЕБЯ ИНЕТ ХОТЬ ТЫ ЛОПНИ. Что только не пробовал, единственное может быть в linux где нибудь, тоже как и в винде нужно дать разрешение на выход в инет через eth0....?????????????

Vicpo

Выводы команд сюда с линуксовой машины
ifconfig
route -n
cat /proc/sys/net/ipv4/ip_forward
с Windows машины
tracert 212.19.149.53
ping 192.168.0.1
ping 192.168.1.33
ping 192.168.1.1

Iskander

что такое 192.168.1.33? Это модем? Или что? Кроме того возможно у вас iptables режет пакеты. Дайте вывод iptables -L
Любовь и массовые расстрелы спасут мир.