LINUX.ORG.RU
ФорумAdmin

Сеть из двух компов.


0

0

Есть две машинки. Одна: вин98 ip 192.168.1.36

Другая --- линукс. На линухе две сетевухи:

0. eth0 ip 192.168.1.33 соединена с adsl модемом, настроенным каk
 роутер. ip модема 192.168.1.32

1. eth1 ip 192.168.1.35 соединена с виндовой сетевухой.

Включаю маскарадинг

iptables -A FORWARD -i eth0 -m state --state NEW,INVALID -j REJECT 
iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE
iptables -P FORWARD ACCEPT

echo "1" >! /proc/sys/net/ipv4/ip_forward 

Подсоединяюсь к сети

ifconfig eth0 down
ifconfig eth1 down
ifconfig eth1 up 192.168.1.35
ifconfig eth0 up
dhcpcd -dnCRYN eth0
route add default gw  192.168.1.32 eth0

В результате на линухе сеть есть. Винда пингует eth0 и eth1, 
но если с винды пинговать внешний ip, то получаю сообщение

Ответ от 192.168.1.35: Заданный порт недоступен. Где глюк?


★★★★★

Лучше развести на роутере сетевухи в разные подсети (192,168,1,хх и 192,168,2,хх). Неплохо посмотреть маршрутиризацию (route -n)

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

~# route -n
Kernel IP routing table
Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
192.168.1.0     0.0.0.0         255.255.255.0   U     0      0        0 eth1
192.168.1.0     0.0.0.0         255.255.255.0   U     0      0        0 eth0
0.0.0.0         192.168.1.32    0.0.0.0         UG    0      0        0 eth0

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

<style sun-ch>
когда в школе читали курс по TCP/IP, ты за последней партой девочкам под юбки лазал?
</style sun-ch>

Почитал бы ты про устройство tcp/ip сетей.

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

~# iptables -A FORWARD -i eth1 -j MASQUERADE
iptables: Invalid argument

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

Попробовал развести интерфейсы по разным подсетям. 
Теперь модем --- 192.168.2.1, а eth0 --- 192.168.2.2

После этого поднимаю сеть так:

# echo "1" >! /proc/sys/net/ipv4/ip_forward
# ifconfig eth0 down
# ifconfig eth1 down
# ifconfig eth1 up 192.168.1.35
# ifconfig eth0 up
# dhcpcd -dnCRYN eth0
# route add default gw 192.168.2.1 eth0

Результат тот же. Тоесть пинг с виндовой машинки на внешний ip выдаёт: ,,Ответ от 192.168.1.35: Заданный порт недоступен".

Если же сказать

# route add -net 192.168.1.0/24 gw 192.168.2.2 eth0

То ничего вообще не пингуется. ;(

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

LOL! маскарад не может использоваться для FORWARD

афтору: сделай разные подсетки, например, 192.168.1.* и 172.16.1.*

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

а, ну в правильным направлении идёте, товарищЪ:)

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

Пробовал. Не получается.

Вот это штука:

# route add -net 192.168.1.0/24 gw 192.168.2.2 eth0 # route add default gw 192.168.2.1 eth0

должна создать такую таблицу маршрутизации:

1. брать инет из 192.168.2.1 (модем), через eth0

2. пакеты из сети 192.168.1.x пересылать в eth0 (после чего они уходят в инет).

Я прав?

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

короче лень разбираться у меня дома так работает:

на моём компе:
insmod /usr/src/dlkfet-4.24/rhinefet.o                                         
ifconfig eth0 theserg                                                          
route add default gw tserver

на серваке (tserver):
modprobe 3c59x                                                                            
rm /etc/dhcpc/dhcpcd-eth0.pid                                                                                                                                             
dhcpcd -t 10 -h THESERG -d eth0                                                     
modprobe 8139too                                                                          
ifconfig eth1 172.16.1.123
iptables -F -t nat
iptables -t nat -A POSTROUTING -o eth0 -s 172.16.0.0/16 -j SNAT --to-source 123.123.123.123

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

Попробовал применить правила iptables -F -t nat iptables -t nat -A POSTROUTING -o eth0 -s 192.168.1.0/24 -j SNAT --to-source 192.168.2.2

Ничего не изменилось.

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

А какой дистрибутив и какие стоят еще правила в iptables?

У меня, к примеру, ничего не получалось пока использовал Федору. Судя по всему мешались дефолтные РедХатовские настройки фаервола.
Как только перешёл на слаку все заработало в 2 строчки.
первая разрешает форвардинг (если не глючу:
echo "1" >/proc/sys/net/ipv4/ip_forward
)
а вторая добавляет правило на НАТ'инг (опять же, если не глючу:
iptables -t nat -A POSTROUTING -o $IF_INET -j SNAT --to-source $IP_INET
)
Ну и естейственно не забыть проверить таблицу маршрутизации на серваке и виндовой машинке (дефолтные роутеры и т.п.)

ustinovi
()
Ответ на: комментарий от theserg

Не совсем так. Внешний IP может быть и фальшивым 192.168.х.х, если пров сам активно юзает SNAT. Есно, этот "внешний" адрес должен не попадать в диапазон "внутренних"
Здесь же - таки да, конкретная ошибка: автор не вкурил, что в --to-source надо указывать именно "внешний" IP.

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

route print на виндовсь чего говорит?

anonymous
()
Ответ на: комментарий от ustinovi

>А какой дистрибути

Сарж.

>и какие стоят еще правила в iptables?

~# iptables -L
Chain INPUT (policy ACCEPT)
target     prot opt source               destination         

Chain FORWARD (policy ACCEPT)
target     prot opt source               destination         
REJECT     all  --  anywhere             anywhere            state INVALID,NEW reject-with icmp-port-unreachable 
REJECT     all  --  anywhere             anywhere            state INVALID,NEW reject-with icmp-port-unreachable 
REJECT     all  --  anywhere             anywhere            state INVALID,NEW reject-with icmp-port-unreachable 
REJECT     all  --  anywhere             anywhere            state INVALID,NEW reject-with icmp-port-unreachable 
REJECT     all  --  anywhere             anywhere            state INVALID,NEW reject-with icmp-port-unreachable 
REJECT     all  --  anywhere             anywhere            state INVALID,NEW reject-with icmp-port-unreachable 
REJECT     all  --  anywhere             anywhere            state INVALID,NEW reject-with icmp-port-unreachable 
REJECT     all  --  anywhere             anywhere            state INVALID,NEW reject-with icmp-port-unreachable 
REJECT     all  --  anywhere             anywhere            reject-with icmp-port-unreachable 
REJECT     all  --  anywhere             anywhere            state INVALID,NEW reject-with icmp-port-unreachable 
REJECT     all  --  anywhere             anywhere            state INVALID reject-with icmp-port-unreachable 

Chain OUTPUT (policy ACCEPT)
target     prot opt source               destination         
~# iptables -t nat -L
Chain PREROUTING (policy ACCEPT)
target     prot opt source               destination         

Chain POSTROUTING (policy ACCEPT)
target     prot opt source               destination         
SNAT       all  --  192.168.1.0/24       anywhere            to:192.168.2.2 
SNAT       all  --  192.168.1.0/24       anywhere            to:192.168.2.1 
SNAT       all  --  192.168.1.0/24       anywhere            to:192.168.2.2 
SNAT       all  --  192.168.1.0/24       anywhere            to:192.168.2.1 
MASQUERADE  all  --  anywhere             anywhere            
MASQUERADE  all  --  anywhere             anywhere            
SNAT       all  --  anywhere             anywhere            to:122.211.23.114 

Chain OUTPUT (policy ACCEPT)
target     prot opt source               destination         

>echo "1" >/proc/sys/net/ipv4/ip_forward

Сделал.

>iptables -t nat -A POSTROUTING -o $IF_INET -j SNAT --to-source $IP_INET


Не понял. $if_inet это eth0 (сетевуха, связанная с модемом). А какой смысл имеет $ip_inet?

>Ну и естейственно не забыть проверить таблицу маршрутизации на серваке и виндовой машинке (дефолтные роутеры и т.п.)

C:\WINDOWS>route print

Активные маршруты:

  Сетевой адрес            Маска    Адрес шлюза            Интерфейс  Метрика
          0.0.0.0          0.0.0.0     192.168.1.35     192.168.1.36       1
          0.0.0.0          0.0.0.0      192.168.2.2     192.168.1.36       1
          0.0.0.0          0.0.0.0      192.168.2.1     192.168.1.36       1
        127.0.0.0        255.0.0.0        127.0.0.1        127.0.0.1       1
      192.168.1.0    255.255.255.0     192.168.1.36     192.168.1.36       1
     192.168.1.36  255.255.255.255        127.0.0.1        127.0.0.1       1
    192.168.1.255  255.255.255.255     192.168.1.36     192.168.1.36       1
        224.0.0.0        224.0.0.0     192.168.1.36     192.168.1.36       1
  255.255.255.255  255.255.255.255     192.168.1.36     192.168.1.36       1

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

Получилось!

Правила для файрвола

~# iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE

~# iptables -P FORWARD ACCEPT     

~# iptables -t nat -L
Chain PREROUTING (policy ACCEPT)
target     prot opt source               destination         

Chain POSTROUTING (policy ACCEPT)
target     prot opt source               destination         
MASQUERADE  all  --  anywhere             anywhere            

Chain OUTPUT (policy ACCEPT)
target     prot opt source               destination         
~# iptables -L       
Chain INPUT (policy ACCEPT)
target     prot opt source               destination         

Chain FORWARD (policy ACCEPT)
target     prot opt source               destination         

Chain OUTPUT (policy ACCEPT)
target     prot opt source               destination         

таблица маршрутизации:
~# route -n
Kernel IP routing table
Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
192.168.2.0     0.0.0.0         255.255.255.0   U     0      0        0 eth0
192.168.1.0     0.0.0.0         255.255.255.0   U     0      0        0 eth1
0.0.0.0         192.168.2.1     0.0.0.0         UG    0      0        0 eth0

ip адреса:

~# ifconfig 
eth0      Link encap:Ethernet  HWaddr 00:05:1C:0F:FF:8D  
          inet addr:192.168.2.2  Bcast:192.168.2.255  Mask:255.255.255.0
          inet6 addr: fe80::205:1cff:fe0f:ff8d/64 Scope:Link
          UP BROADCAST NOTRAILERS RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:2533630 errors:0 dropped:0 overruns:0 frame:0
          TX packets:2576252 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000 
          RX bytes:3662190579 (3.4 GiB)  TX bytes:192238923 (183.3 MiB)
          Interrupt:11 Base address:0xe800 

eth1      Link encap:Ethernet  HWaddr 00:0A:EB:AB:58:C4  
          inet addr:192.168.1.35  Bcast:192.168.1.255  Mask:255.255.255.0
          inet6 addr: fe80::20a:ebff:feab:58c4/64 Scope:Link
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:938 errors:1 dropped:0 overruns:0 frame:0
          TX packets:4084 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000 
          RX bytes:74131 (72.3 KiB)  TX bytes:540161 (527.5 KiB)
          Interrupt:5 Base address:0xec00 

+ виндовая машинка имеет ip 192.168.1.36 и модем --- 192.168.2.1

Подключаюсь к сети так:

~# echo "1" >! /proc/sys/net/ipv4/ip_forward
~# ifconfig eth0 down
~# ifconfig eth1 down
~# ifconfig eth1 up 192.168.1.35
~# ifconfig eth0 up
~# dhcpcd -dnCRYN eth0

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

Должно быть имелся в виду реальный ip модема. А как его посмотреть?

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

Всем спасибо, за помощь в этом нелёгком деле!

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