[mdk-re] Устройство домашней минисети
Вячеслав Диконов
=?iso-8859-1?q?sdiconov_=CE=C1_mail=2Eru?=
Пт Дек 28 23:57:01 MSK 2001
от стало у меня 2 компа с сеткой, на каждом по модему.
Схема:
Inet (модем) Inet (модем)
| |
----- -----
| |______________| |
| | LAN 100Mbps | |
----- -----
192.168.1.1 (линукс) 192.168.1.2 (вындос)
Хочется сделать так, чтобы при соединении любого из модемов обе машины
автоматически могли лазить по интернету (www, ftp, realaudio). Причем
хочется сделать всё грамотно.
Решение нашли такое: На каждой машине ставим по NATу и прописываем
другую машину шлюзом с метрикой 1. Под виндами NAT сделан через
winroute, маршруты прописались. Схема работает, хотя и ненадёжно из-за
приколов winroute с определением модемного IP. Надо реализовать то же
под линуксом.
Маршруты я сделал:
Kernel IP routing table
Destination Gateway Genmask Flags Metric Ref Use Iface
192.168.1.2 0.0.0.0 255.255.255.255 UH 0 0 0 eth0
192.168.1.0 0.0.0.0 255.255.255.0 U 0 0 0 eth0
127.0.0.0 0.0.0.0 255.0.0.0 U 0 0 0 lo
0.0.0.0 192.168.1.2 0.0.0.0 UG 1 0 0 eth0
Всё работает, когда соединён модем с машины 192.168.1.2 (брата).
Для обратного случая нужен NAT под линуксом. И тут меня заколдобило.
Если верить NAT-howto, надо сделать так:
-------------------------------------------------------------------
# Load the NAT module (this pulls in all the others).
modprobe iptable_nat
# In the NAT table (-t nat), Append a rule (-A) after routing
# (POSTROUTING) for all packets going out ppp0 (-o ppp0) which says to
# MASQUERADE the connection (-j MASQUERADE).
iptables -t nat -A POSTROUTING -s 192.168.1.2 -o ppp0 -j MASQUERADE
# Turn on IP forwarding
echo 1 > /proc/sys/net/ipv4/ip_forward
---------------------------------------------------------------------
Не фурычит! ifconfig показывает, что пакеты в интернет с виндов
(192.168.1.2) ко мне приходят, но насколько я понял,
через созданный NAT у меня прошло 0 пакетов. У меня интернет, у
брата хрен с маслом. Пробовал и iptables и ipchains - всё едино. Никак не
пойму чего мне не хватает. Не помогли и графические генераторы правил
вроде fwbuilder.
Еще, при соединении с инетом винда сама добавляет еще один маршрут в
0.0.0.0 с метрикой 0 => пакеты валят туда. В линуксе же, маршрут в
0.0.0.0 через ppp0 с открытием интерфейса сам не появляется если есть
0.0.0.0 через eth0. В /etc/ppp/options ЕСТЬ запись "defaultroute", но
эффекта не видно. Это можно исправить?
И последнее, если у нас прописаны маршруты в инет друг через друга, не
получается ли, что пакеты начинают по 255 раз отзеркаливаться внутри
нашей локалки при отсутствии модемных соединений?
В сетевых делах я еще чайник, а тут сведущие люди есть.
Подробная информация о списке рассылки community