LINUX.ORG.RU
ФорумAdmin

Роутер на Linux Debian


0

2

День, добрый, вопрос конечно ламерский, но ни как не могу понять, что же я делаю не так. есть комп на нем стоит Debian Lenny, он является роутером/шлюзом - выпускает юзверей в интернет. и теперь я хочу связать еще пару сетей. что я делаю:
есть два интерфейса eth0 и ppp0,
eth0:192.168.10.254
ppp0: внешний IP
создаю еще три виртуальных интерфейса eth0:nec, eth0:nec1, eth0:nec2 присваиваю им IP адреса соответственно 172.16.0.15/24, 172.16.1.15/24, 172.16.2.15/24. Автоматически появляются роуты в эти сети.
Пересылка пакетов разрешена (

~# cat /proc/sys/net/ipv4/ip_forward
1

В iptables ни каких запретов нет - все политики в accept
hostname:~# iptables -L -n
Chain INPUT (policy ACCEPT)
target     prot opt source               destination
ACCEPT     tcp  --  0.0.0.0/0            X.X.X.X        tcp dpts:40000:65535
ACCEPT     tcp  --  0.0.0.0/0            X.X.X.X        tcp dpts:20:21
ACCEPT     udp  --  0.0.0.0/0            X.X.X.X        udp dpt:27015
ACCEPT     udp  --  0.0.0.0/0            X.X.X.X        udp dpt:2000
ACCEPT     icmp --  0.0.0.0/0            0.0.0.0/0           icmp type 255
ACCEPT     all  --  0.0.0.0/0            0.0.0.0/0           ctstate RELATED,ESTABLISHED
ACCEPT     tcp  --  X.X.X.X       0.0.0.0/0           tcp dpt:8008
ACCEPT     tcp  --  X.X.X.X       0.0.0.0/0           tcp dpt:22
DROP       all  --  0.0.0.0/0            0.0.0.0/0

Chain FORWARD (policy ACCEPT)
target     prot opt source               destination

Chain OUTPUT (policy ACCEPT)
target     prot opt source               destination

смотрел tcpdump'ом пакеты до шлюза идут, а дальше почему-то нет... Сам шлюз свободно общается через эти виртуальные интерфейсами с машинами разных сетей.


Ответ на: комментарий от Roman91_ru

В данном случае NAT нам не нужен ибо нат действует в одну сторону, сделать конечно можно, но такая каша получится и ни к чему это, когда у меня все ip белые.

hostname:~# route -n
Kernel IP routing table
Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
192.168.15.2    0.0.0.0         255.255.255.255 UH    0      0        0 tun0
X.X.X.X     0.0.0.0         255.255.255.255 UH    0      0        0 ppp0
172.16.2.0      0.0.0.0         255.255.255.0   U     0      0        0 eth0
172.16.0.0      0.0.0.0         255.255.255.0   U     0      0        0 eth0
172.16.1.0      0.0.0.0         255.255.255.0   U     0      0        0 eth0
192.168.15.0    192.168.15.2    255.255.255.0   UG    0      0        0 tun0
192.168.10.0    0.0.0.0         255.255.255.0   U     0      0        0 eth0
0.0.0.0         0.0.0.0         0.0.0.0         U     0      0        0 ppp0


Для тех кто заинтересуется зачем мне это, поясняю:
Есть у нас АТС новомодные, и вот одна из них постоянно вываливается из сети, хотя пинги до нее идут, вот хотим собрать дамп и смотреть что же там происходит. Управляемых свичей нет, так что порт зазеркалить не можем.

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

а топик читал?
Схема на самом деле простая. Есть три точки, грубо говорят соединены они через шлюз(получается что-то типа знака радиации) и вот шлюз не хочет передавать пакеты из одной сети в другую, хотя казалось бы настроен верно.
чего мы пытаемся добиться: чтобы пакеты из сети 172.16.0.0/24 ходили в сеть 172.16.1.0/24 и сеть 172.16.2.0/24 и так для каждой сети. Что я сделал для этого написано выше, для чего тоже.

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

и что нам это даст? что путь по умолчанию будет пролегать через ppp0?
Вы по моему не читали моего поста:

создаю еще три виртуальных интерфейса eth0:nec, eth0:nec1, eth0:nec2 присваиваю им IP адреса соответственно 172.16.0.15/24, 172.16.1.15/24, 172.16.2.15/24. Автоматически появляются роуты в эти сети.

так что маршруты у нас в эти сети есть и default нам как бы и не нужен вовсе.

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

Тогда примерно так: route add -net 172.16.1.0 netmask 255.255.255.192 gw 172.16.1.15
route add -net 172.16.2.0 netmask 255.255.255.192 gw 172.16.2.15
route add -net 172.16.3.0 netmask 255.255.255.192 gw 172.16.3.15
При условии, что 172.16.*.15 - это адреса eth:nec*

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

мне мои пакеты натить не надо, что мне надо натить у меня без проблем натится. я хочу сотворить роутер, со шлюзом у меня вопросов нет.


 iptables -t nat -L -n
Chain PREROUTING (policy ACCEPT)
target     prot opt source               destination
DNAT       tcp  --  X.X.X.X       0.0.0.0/0           tcp dpt:XXXX to:192.168.10.225:3389
REDIRECT   tcp  --  0.0.0.0/0           !192.168.10.254      tcp dpt:80 redir ports 8080

Chain POSTROUTING (policy ACCEPT)
target     prot opt source               destination
SNAT       all  --  192.168.10.0/24      0.0.0.0/0           to:X.X.X.X

Chain OUTPUT (policy ACCEPT)
target     prot opt source               destination

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

да вы, батенька, извращенец!
iptables -t nat -A POSTROUTING -s 172.16.0.15/24 -j MASQUERADE
iptables -t nat -A POSTROUTING -s 172.16.1.15/24 -j MASQUERADE
iptables -t nat -A POSTROUTING -s 172.16.2.15/24 -j MASQUERADE

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

Почему ты выбрал маску подсети 192, если я говорил о сети класса С? А если посмотреть на таблицу маршрутизации, то там видно что нужные роуты есть. например, из строки

172.16.2.0      0.0.0.0         255.255.255.0   U     0      0        0 eth
Понятно, что все пакеты адресованные сети 172.16.2.0/24 он будет отправлять через интерфейс eth0.
еще раз повторюсь, шлюз свободно общается со всеми сетями, другие компы находящиеся в разных сетях не могут общаться друг с другом через этот шлюз.

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

Всё вижу, прошу прощения, ступил.
А по теме, на компах ваш сервак шлюзом то прописан?
Попробуйте traceroute до хоста из другой подсети.

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

не, ребята, не верю, что тут NAT нужен, я еще покапаюсь. Если же окажется что без NAT не обойтись, значит я что-то не понимаю в сетях, а это не есть гуд. Буду курить маны по сетям дальше.

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

Преобразование адресов методом NAT может производиться почти любым маршрутизирующим устройством — маршрутизатором, сервером доступа, межсетевым экраном. Наиболее популярным является SNAT, суть механизма которого состоит в замене адреса источника (англ. source) при прохождении пакета в одну сторону и обратной замене адреса назначения (англ. destination) в ответном пакете. Наряду с адресами источник/назначение могут также заменяться номера портов источника и назначения.

Принимая пакет от локального компьютера, роутер смотрит на IP-адрес назначения. Если это локальный адрес, то пакет пересылается другому локальному компьютеру. Если нет, то пакет надо переслать наружу в интернет. Но ведь обратным адресом в пакете указан локальный адрес компьютера, который из интернета будет недоступен. Поэтому роутер “на лету” производит трансляцию IP-адреса и порта и запоминает эту трансляцию у себя во временной таблице. Через некоторое время после того, как клиент и сервер закончат обмениваться пакетами, роутер сотрет у себя в таблице запись о n-ом порте за сроком давности.

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

и что? чем отличается от интернета другая подсеть на уровне роутера?
и как тогда называется пересылка пакета из одной сети в другую?

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

> чем отличается от интернета другая подсеть на уровне роутера?

Тем, что роутеру не надо маскировать исходный адрес.

пересылка пакета из одной сети в другую?


Внезапно: форвардинг. К.О.

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

что такое NAT(и его разновидности SNAT и DNAT) и как он работает я прекрасно знаю. Только вот я считаю что вы бродя по просторам интернета не натитесь 1001 раз =) иначе не нужен был бы ipv6. А вот захочешь ты обратиться к своему компу который имеет БЕЛЫЙ ip, да еще и за натом, звони админу на кипр... я бы не хотел чтобы мне звонили. Уверен есть другое - более правильное решение. У меня же по сути есть три белых IP, которые надо завязать между собой. Мне кажется, что тут должна работать пересылка пакетов из одной сети в другую...

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

Единственное, что меня как бы напрягает, так это маска подсети 24, так получается что в каждой сети хостов может быть не больше 254, что в свою очередь не дает ему глянуть на хост из другой подсети, натом было бы просто решить эту проблему(наверно), но не правильно, если я все верно понимаю.

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

Чтоб совсем уж закрыть тему НАТа - сэмулировал сеть ТСа:

Шлюз: http://paste.org/pastebin/view/36487

Хост в серой сети 1: http://paste.org/pastebin/view/36488

Хост в серой сети 2: http://paste.org/pastebin/view/36489

Роутинг: http://paste.org/pastebin/view/36490

rain@acnote:~$ ping 172.16.2.6 2>/dev/null
PING 172.16.2.6 (172.16.2.6) 56(84) bytes of data.
64 bytes from 172.16.2.6: icmp_req=1 ttl=64 time=0.161 ms
64 bytes from 172.16.2.6: icmp_req=2 ttl=64 time=0.136 ms
64 bytes from 172.16.2.6: icmp_req=3 ttl=64 time=0.146 ms
64 bytes from 172.16.2.6: icmp_req=4 ttl=64 time=0.152 ms
64 bytes from 172.16.2.6: icmp_req=5 ttl=64 time=0.161 ms
64 bytes from 172.16.2.6: icmp_req=6 ttl=64 time=0.154 ms
^C
--- 172.16.2.6 ping statistics ---
6 packets transmitted, 6 received, 0% packet loss, time 5001ms
rtt min/avg/max/mdev = 0.136/0.151/0.161/0.016 ms

При «0» в ip_forward пинги прекращаются.

root@mws64:~# iptables -S 
-P INPUT ACCEPT
-P FORWARD ACCEPT
-P OUTPUT ACCEPT
-N fail2ban-ssh
-A INPUT -p tcp -m multiport --dports 22 -j fail2ban-ssh 
-A fail2ban-ssh -j RETURN 
root@mws64:~# iptables -S -t nat
-P PREROUTING ACCEPT
-P INPUT ACCEPT
-P OUTPUT ACCEPT
-P POSTROUTING ACCEPT
YAR ★★★★★
()
Ответ на: комментарий от anton_jugatsu

настройки на клиентах:

ip 172.16.0.10
mask 255.255.255.0
gateway 172.16.0.15

ip 172.16.1.11
mask 255.255.255.0
gateway 172.16.1.15
ip 172.16.2.10
mask 255.255.255.0
gateway 172.16.2.15

при создании интерфейсов шлюз без проблем пингует любую из них. а вот они друг друга не видят. Так же пробовал пинговать любую из них из подсети 192.168.10.0/24, данный шлюз к ней подключен интерфейсом eth0, eth1 - ppp0, больше ни для чего не используется.


hostname:~# ifconfig
eth0      Link encap:Ethernet  HWaddr 00:24:8c:d8:e2:e3
          inet addr:192.168.10.254  Bcast:192.168.10.255  Mask:255.255.255.0
          inet6 addr: fe80::224:8cff:fed8:e2e3/64 Scope:Link
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:97127 errors:1 dropped:0 overruns:0 frame:1
          TX packets:123745 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000
          RX bytes:13895473 (13.2 MiB)  TX bytes:114063179 (108.7 MiB)
          Interrupt:27 Base address:0xa000

eth1      Link encap:Ethernet  HWaddr 00:21:91:92:b4:53
          inet6 addr: fe80::221:91ff:fe92:b453/64 Scope:Link
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:138101 errors:0 dropped:0 overruns:0 frame:0
          TX packets:89738 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000
          RX bytes:114826714 (109.5 MiB)  TX bytes:14042182 (13.3 MiB)
          Interrupt:19 Base address:0xe800

eth0:nec  Link encap:Ethernet  HWaddr 00:24:8c:d8:e2:e3
          inet addr:172.16.0.15  Bcast:172.16.0.255  Mask:255.255.255.0
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          Interrupt:27 Base address:0xa000

eth0:nec1 Link encap:Ethernet  HWaddr 00:24:8c:d8:e2:e3
          inet addr:172.16.1.15  Bcast:172.16.1.255  Mask:255.255.255.0
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          Interrupt:27 Base address:0xa000

eth0:nec2 Link encap:Ethernet  HWaddr 00:24:8c:d8:e2:e3
          inet addr:172.16.2.15  Bcast:172.16.2.255  Mask:255.255.255.0
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          Interrupt:27 Base address:0xa000

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

предварительное заключение

И так, копался я копался... и таки решил добавить правило:
iptables -A FORWARD -i eth0 -j ACCEPT
и благословенные пинги пошли..., но проверял только из подсети 192.168.10.0/24, но причин почему они не должны идти из других подсетей не вижу. Как проверю полностью отпишусь. Кстати, для тех, кто уже приготовился назвать меня мудаком, идиотом или еще как, скажу что политика стояла ACCEPT. отсюда вывод, если вы хотите быть уверенным, что это работает задавайте явно свои правила.

l4h
() автор топика
Ответ на: предварительное заключение от l4h

в общем вывод ошибочный, в чем проблема не знаю. Если полностью очистить правила, а потом загрузить их заново, то какое-то время все работает,а потом успешно отваливается. Вне зависимости от того есть разрешающее правило(политика ACCEPT) или нет, работать перестает без видимых на то причин. Закономерности не вижу.

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

для начала отключил бы всё, что имеет отношение к IPv6, в том числе ip6tables...Потом tracert с клиентов, потом ещё интересны маршруты на клиентах.
А если уж совсем будет туго, разоритесь на 280 рублей и купите ещё одну сетевую карточку. Проблема запросто, именно _запросто_ может быть в драйвере карты, который почему-то не любят когда на эту карточку навешивают по 3 алиаса и ещё форвардить их между собой пытаются.

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

К счастью вечером я добился того, чтобы все работало, пока не знаю как это работает, завтра проверим. А фишка в том,что с реального физ интерфейса пакеты не кидаются, а с вирт на реальный без проблем. т.е. если мы имеет один интерфейс и на нем 4 ip(1 реальный, 3 алиаса) то если компам назначить любую сеть из алиасов, то они видят и реальную, а если компам назначить сеть такую же как реальная, то они не видят ничего кроме IP роутера.

комп1(eth0-192.168.1.2) - >(eth0 - 192.168.1.1) роутер(eth0:nec - 172.16.0.15) - > (eth0 - 172.16.0.10) комп 2
- так пакет не пойдет, а вот в обратную сторону легко, хотя в форварде ничего не запрещено и дополнительных настроек с какого интерфейся на какой тоже не делал. Но обязательно попробую его заставить форвардить и это )

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