1

Здравствуйте!

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

Есть сеть 192.168.0.0, в ней компьютеры включены в switch, 1-й, с адресом 19.168.0.132,
получает Интернет от хаба с адресом 192.168.0.1. Для него этот хаб указан как gateway и dns-nameservers.
На нём /proc/sys/net/ipv4/ip_forward=1 и /proc/sys/net/ipv4/conf/all/accept_source_route=1.
А как сделать, чтобы 2-й компьютер с адресом 192.168.1.129 получал Интернет от этого 1-го?
Я попробовал для него указать как gateway и dns-nameservers 1-й, но этого оказалось
недостаточно, со 2-го виден только 1-й, а уже хаб не видится.

Пётр.

Пётр.

2

Сделай на шлюзе что то типо

ip route add 192.168.1.0/24 via 192.168.0.132
MX 23.6 Libretto x86_64
Чем больше я работаю админом, тем больше понимаю, насколько волшебна фраза - "Нет технической возможности!"

3

Благодарю за ответ, но пока не получилось. Именно такая команда

ip route add 192.168.0.1/24 via 192.168.0.132

не проходит с жалобой на неверный аргумент.
Я пробовал такую

route add -net 192.168.0.0 netmask 255.255.255.0 gw 192.168.0.132 dev eth0

и такую

route add -host 192.168.0.1 gw 192.168.0.132 dev eth0

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

Пётр.

Пётр.

4 (28.11.2013 12:16:12 отредактировано XliN)

Подними тунель на свиче или алиас сделай на вторую сеть.
И еще. Ты со второй сети пингуешь первую?

MX 23.6 Libretto x86_64
Чем больше я работаю админом, тем больше понимаю, насколько волшебна фраза - "Нет технической возможности!"

5

XliN пишет:

Подними тунель на свиче или алиас сделай на вторую сеть.
И еще. Ты со второй сети пингуешь первую?

Этот свич - просто коммутатор, у него и адреса своего нет.
Оба компьютера - в одной сети, оба включены в свич.
их адреса - 1-й 192.168.0.132 и 2-й 192.168.0.129.
Хаб 192.168.0.1 тоже включён в этот свич.
Я со 2-го могу пропинговать 1-й, но не могу хаб.

Пётр.

Пётр.

6

М.б., кроме ip_forward, надо на 1-м компьютере ещё что-то разрешить?

Пётр.

Пётр.

7

Наверное, на 1-м компьютере надо включить NAT?

Пётр.

Пётр.

8

Читать невозможно, то в одной сети то в разных  be .
Нарисуйте схему чётко и подробно, тогда можно будет подумать а так как гадание на кофейной гуще.

Ищу дополнительный заработок (удалёнка).
Пьянка без секса – признак алкоголизма.

9

Kettler пишет:

Читать невозможно, то в одной сети то в разных  be .
Нарисуйте схему чётко и подробно, тогда можно будет подумать а так как гадание на кофейной гуще.

Мне кажется, что я в 1-м сообщении всё ясно изложил и потом ещё повторил.
Сеть одна, компьютеры включены в свич, в него же включён кабель, по которому происходит доступ в Интернет.
У 1-го - 192.168.0.132 - gateway и dns-nameserver 192.168.0.1, на 2-м - 192.168.0.129 -
я в качестве gateway и nameserver указал 1-й и пытаюсь добиться, чтобы 2-й
выходил в Интернет через 1-й.

Пётр.

Пётр.

10

Peter пишет:

192.168.0.129

или все же

Peter пишет:

192.168.1.129

?

11

192.168.0.129, а сеть - 192.168.0.0.

Пётр.

Пётр.

12

Peter, Непонятно тогда, зачем весь этот огород. Ладно, указать адрес первого компьютера в качестве дефолтового шлюза можно, он будет работать, если запрещающих фильтров никаких нет. А что касается задания адреса первого компьютера в качестве dns-nameserver'а, то тогда необходимо на первом компьютере поднять хоть какой-то днс-сервер, сами по себе имена и адреса преобразовываться не будут.

13 (28.11.2013 21:38:49 отредактировано Peter)

urfin пишет:

Peter, Непонятно тогда, зачем весь этот огород. Ладно, указать адрес первого компьютера в качестве дефолтового шлюза можно, он будет работать, если запрещающих фильтров никаких нет. А что касается задания адреса первого компьютера в качестве dns-nameserver'а, то тогда необходимо на первом компьютере поднять хоть какой-то днс-сервер, сами по себе имена и адреса преобразовываться не будут.

Действительно, совершенно не подумал, что для разрешения запросов нужен dns-server,
хотя лет 10 назад что-то подобное сделал для эксперимента. Помню, что создавал named.conf.
Это надо на короткое время, а 2-й компьютер сам обратиться к существующему
серверу не может, т.к. на это имеет право только 1-й. Там проверка по MAC-адресам.

Пётр.

Пётр.

14

Peter,  по идее на втором компьютере можно прописать адрес гугловского публичного днс-сервера: 8.8.8.8 или 8.8.4.4

15

urfin пишет:

Peter,  по идее на втором компьютере можно прописать адрес гугловского публичного днс-сервера: 8.8.8.8 или 8.8.4.4

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

Пётр.

Пётр.

16

Peter пишет:
Kettler пишет:

Читать невозможно, то в одной сети то в разных  be .
Нарисуйте схему чётко и подробно, тогда можно будет подумать а так как гадание на кофейной гуще.

Мне кажется, что я в 1-м сообщении всё ясно изложил и потом ещё повторил.
Сеть одна, компьютеры включены в свич, в него же включён кабель, по которому происходит доступ в Интернет.
У 1-го - 192.168.0.132 - gateway и dns-nameserver 192.168.0.1, на 2-м - 192.168.0.129 -
я в качестве gateway и nameserver указал 1-й и пытаюсь добиться, чтобы 2-й
выходил в Интернет через 1-й.

Пётр.

Совсем другое дело. Forward включён? iptables есть какие правила?

Ищу дополнительный заработок (удалёнка).
Пьянка без секса – признак алкоголизма.

17

Да, я говорил, что ip_forward=1.
После загрузки по умолчанию всё разрешено, команда "iptables -S" выводит

-P INPUT ACCEPT
-P FORWARD ACCEPT
-P OUTPUT ACCEPT

Я пробовал, как говорил выше, ввести команду

route add -host 192.168.0.1 gw 192.168.0.132 dev eth0

но это не помогло, наверное, надо запустить dns-server, как мне уже посоветовали.

Пётр.

Пётр.

18

Я поместил в /etc/hosts строку

192.168.0.129 name

в файле /etc/bind/db.local оставил только две записи

.                        3600000  IN  NS    A.ROOT-SERVERS.NET.
A.ROOT-SERVERS.NET.      3600000      A     192.168.0.1

192.168.0.1 - это адрес, с которого 1-й компьютер получает Интернет,
перезагрузился и запустил named,
но это не помогло - 2-й компьютер не видит 192.168.0.1.
Вот строки из /var/log/syslog, вызванные запуском named:

Nov 29 14:58:16 Corsar named[3477]: starting BIND 9.6-ESV-R1 -u bind
Nov 29 14:58:16 Corsar named[3477]: built with '--prefix=/usr' '--build=x86_64-linux-gnu' '--host=x86_64-linux-gnu' '--mandir=/usr/share/man' '--infodir=/usr/share/info' '--sysconfdir=/etc/bind' '--localstatedir=/var/run/bind' '--enable-threads' '--enable-largefile' '--with-libtool' '--enable-shared' '--enable-static' '--with-openssl=/usr' '--with-gssapi=/usr' '--with-gnu-ld' '--with-dlz-postgres=no' '--with-dlz-mysql=no' '--with-dlz-bdb=yes' '--with-dlz-filesystem=yes' '--with-dlz-ldap=yes' '--with-dlz-stub=yes' '--enable-ipv6' 'build_alias=x86_64-linux-gnu' 'host_alias=x86_64-linux-gnu' 'CFLAGS=-fno-strict-aliasing -DDIG_SIGCHASE -DNS_RUN_PID_DIR=0 -O2' 'LDFLAGS=' 'CPPFLAGS=' 'CXXFLAGS=-g -O2' 'FFLAGS=-g -O2'
Nov 29 14:58:16 Corsar named[3477]: adjusted limit on open files from 4096 to 1048576
Nov 29 14:58:16 Corsar named[3477]: found 2 CPUs, using 2 worker threads
Nov 29 14:58:16 Corsar named[3477]: using up to 4096 sockets
Nov 29 14:58:16 Corsar named[3477]: loading configuration from '/etc/bind/named.conf'
Nov 29 14:58:16 Corsar named[3477]: using default UDP/IPv4 port range: [1024, 65535]
Nov 29 14:58:16 Corsar named[3477]: using default UDP/IPv6 port range: [1024, 65535]
Nov 29 14:58:16 Corsar named[3477]: listening on IPv6 interfaces, port 53
Nov 29 14:58:16 Corsar named[3477]: listening on IPv4 interface lo, 127.0.0.1#53
Nov 29 14:58:16 Corsar named[3477]: listening on IPv4 interface eth0, 192.168.0.132#53
Nov 29 14:58:16 Corsar named[3477]: automatic empty zone: 254.169.IN-ADDR.ARPA
Nov 29 14:58:16 Corsar named[3477]: automatic empty zone: 2.0.192.IN-ADDR.ARPA
Nov 29 14:58:16 Corsar named[3477]: automatic empty zone: 255.255.255.255.IN-ADDR.ARPA
Nov 29 14:58:16 Corsar named[3477]: automatic empty zone: 0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.IP6.ARPA
Nov 29 14:58:16 Corsar named[3477]: automatic empty zone: 1.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.IP6.ARPA
Nov 29 14:58:16 Corsar named[3477]: automatic empty zone: D.F.IP6.ARPA
Nov 29 14:58:16 Corsar named[3477]: automatic empty zone: 8.E.F.IP6.ARPA
Nov 29 14:58:16 Corsar named[3477]: automatic empty zone: 9.E.F.IP6.ARPA
Nov 29 14:58:16 Corsar named[3477]: automatic empty zone: A.E.F.IP6.ARPA
Nov 29 14:58:16 Corsar named[3477]: automatic empty zone: B.E.F.IP6.ARPA
Nov 29 14:58:16 Corsar named[3477]: command channel listening on 127.0.0.1#953
Nov 29 14:58:16 Corsar named[3477]: command channel listening on ::1#953
Nov 29 14:58:16 Corsar named[3477]: zone 0.in-addr.arpa/IN: loaded serial 1
Nov 29 14:58:16 Corsar named[3477]: zone 127.in-addr.arpa/IN: loaded serial 1
Nov 29 14:58:16 Corsar named[3477]: zone 255.in-addr.arpa/IN: loaded serial 1
Nov 29 14:58:16 Corsar named[3477]: zone localhost/IN: loaded serial 2
Nov 29 14:58:16 Corsar named[3477]: running
(END) 

Пётр.

Пётр.

19

Вообще возможно ли то, что  мне надо, в одной сети на одном интерфейсе, ведь для этого нужен NAT?
Или обязательно надо выделить подсеть, запросы из которой и будут маршрутизироваться
через 1-й компьютер?

Пётр.

Пётр.

20

ТС сделайте так

Kettler пишет:

Нарисуйте схему чётко и подробно, тогда можно будет подумать а так как гадание на кофейной гуще.

Trouble  in WINDOWS reboot, trouble in UNIX be root.

21

kisil пишет:

ТС сделайте так

Kettler пишет:

Нарисуйте схему чётко и подробно, тогда можно будет подумать а так как гадание на кофейной гуще.

Так я ему уже отвечал. В моём 1-м сообщении есть ошибка. Ещё раз:
сеть 192.168.0.0, хаб 192.168.0.1, 1-й компьютер - 192.168.0.132,
2-й - 192.168.0.129, все три включены в свич. На 1-м один интерфейс - eth0.
Для 1-го хаб указан как gateway и dns-nameserver.
1-й имеет выход в Интернет через хаб.
Требуется дать выход в Интернет 2-му через 1-й.
Можно ли это сделать, когда они в одной сети?
Если надо разбивать сеть на две подсети, то на 1-м надо будет запускать и NAT и named?

В типичном случае, когда на компьютере два сетевых интерфейса, через один
выход в Интернет, на другом - локальная сеть, то достаточно NAT, без named?

Пётр.

Пётр.

22

А что мешает пустить 2-й комп через тот хаб что и 1-й.?

Trouble  in WINDOWS reboot, trouble in UNIX be root.

23

Peter пишет:

1-й имеет выход в Интернет через хаб.

Мне интересно что вы имеете под пониманием слова хаб?
Правильное понимание - сетевой концентратор, коим на замену пришли коммутаторы.

История показывает, что во всем новом обычно кроется какой-то подвох.
Классическая ошибка, которую совершают проектировщики
абсолютно надежных систем, - недооценка изобретательности клинических идиотов.

24

zenon пишет:
Peter пишет:

1-й имеет выход в Интернет через хаб.

Мне интересно что вы имеете под пониманием слова хаб?
Правильное понимание - сетевой концентратор, коим на замену пришли коммутаторы.

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

Пётр.

Пётр.

25

kisil пишет:

А что мешает пустить 2-й комп через тот хаб что и 1-й.?

Я выше говорил - где-то дальше проверка по MAC-адресу, а нужно на короткое время.

Пётр.

Пётр.

26

Я продолжил попытки, но пока безуспешно и надеюсь, что мне здесь помогут.
В другом месте говорят, что на BSD вобще достаточно одной команды ipfw,
чтобы завернуть поток куда надо и даже её привели.
Напомню, что два компьютера включены в свич и в свич также входит кабель от хаба.
Адрес хаба - 192.168.0.1,, 1-й компьютер имеет адрес 192.168.0.132 и выходит в Инернет
через хаб. Надо дать выход в Интернет 2-му компьютеру через 1-й.

Вот /etc/network/interfaces на 2-м:

auto lo loopback

auto eth0
iface eth0 inet static
address 192.168.1.129
network 192.168.1.0
netmask 255.255.255.0
broadcast 192.168.1.255
gateway 192.168.1.132

Вот /etc/network/interfaces на 1-м:

auto lo
iface lo inet loopback

auto eth0
iface eth0 inet static
    address 192.168.0.132
    netmask 255.255.255.0
    network 192.168.0.0
    broadcast 192.168.0.255
    dns-nameservers 192.168.0.1
    gateway 192.168.0.1

auto eth0:0
iface eth0:0 inet static
    address 192.168.1.132
    netmask 255.255.255.0
    network 192.168.1.0
    broadcast 192.168.1.255

Т.е. 1-й имеет также адрес 192.168.1.132, а адрес 2-го - 192.168.1.129.

Вот вывод команды "route -n" на 1-м:

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 eth0
192.168.0.0     0.0.0.0         255.255.255.0   U     0      0        0 eth0
0.0.0.0         192.168.0.1     0.0.0.0         UG    0      0        0 eth0

Вот какие команды я ввожу на 1-м после загрузки:

modprobe iptable_nat
modprobe ip_conntrack
modprobe ip_conntrack_ftp
iptables -t nat -A POSTROUTING -o eth0 -j SNAT --to-source 192.168.0.132

На 2-м пингуется и 1-й и хаб, но Интернета нет.
Я пробовал также, не знаю, имеет ли это смысл, перед iptables вставлять две команды

route del -net 192.168.1.0 netmask 255.255.255.0 gw 0.0.0.0 dev eth0
route add -net 192.168.1.0 netmask 255.255.255.0 gw 192.168.0.132 dev eth0

они выполнились, но это не помогло.

Просьба сказать, что ещё надо сделать для получения желаемого.

Пётр.

Пётр.

27

Поставить вторую сетевуху, и не мучаться с алиасами.

28

Говорят же, что и на одном можно это сделать. Если там было два интрефейса, я бы и не спрашивал.

Пётр.

Пётр.

29

Помню тоже пытался такое извращение сделать, и тоже не получилось. Плюнул.

30

Исходя из той схемы, которую я понял (по смутному описанию):
Есть 2 рабочие станции и 1 шлюз. Настройки рабочих  станций:
WS1:
eth0: 192.168.0.132/24
eth0:0: 192.168.1.132/24
gw: 192.168.0.1

WS2:
eth0: 192.168.1.129/24
gw: 192.168.1.132

Router:
ethX:  192.168.0.1/[24|23|...]

При этом на WS1 доступ к интернету есть (т.е. есть пинг на ya.ru либо 8.8.8.8, к примеру), а на WS2 доступа к интернету нет.
Задача - пропустить WS2 в интернет через WS1

На WS1:

 Консоль:

WS1# # В следующей команде нужно выбрать один из вариантов завершения - либо с  SNAT, либо с MASQURADE. При низких нагрузках и статических адресах разницы нет
WS1# iptables -t nat -A POSTROUTING -s 192.168.1.129 -o eth0 [ -j SNAT --to-source 192.168.0.132 | -j MASQUERADE ]
WS1# echo 1 > /proc/sys/net/ipv4/ip_forwarding

После выполнения команд доступ с WS2 в интернет должен появится (т.е. `ping 8.8.8.8` должен отработать без ошибки). Если при этом узлы интернета не будут доступны по доменным именам, то нужно привести состояние WS2:/etc/resolv.conf в соответствие с содержимым WS1:/etc/resolv.conf

ЗЫ: Не учитывал возможные фильтры на WS1 (iptables -nvL FILTER --line-numbers)

И баба с воза, и волки сыты...