LINUX.ORG.RU
ФорумAdmin

Настройка маршрутизации


0

0

Есть два компа и одно соединение с интернетом через ADSL. У роутера только один порт RJ-45. У первого компа в наличии две сетевые карты. Надо организовать раздачу интернета с первого компа на второй. Собственно, помогите настроить компы для выполнения задачи. Самостоятельное ковыряние ни к чему не привело. То ли я что-то сделал неправильно, то ли чего-то не сделал.

Понимаю, вопрос абсолютно нубский, но я в сетях полный ноль. Ну то есть совсем ноль. Никогда раньше не проделывал подобного. Так что постарайтесь проявить терпение. :)


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

>Отлично. Для второй карты на втором компе так и должно быть. Ведь туда ничего не воткнуто?

Там вообще только одна карта. Это я видать чего-то натворил. eth1 можно удалить оттуда?

>Тогда приступим собственно к настройке. На обоих компах Debian или ubuntu? Или еще какой-нибудь дистрибутив?

На первом компе Fedora 11, на втором - Ubuntu 9.04.

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

Ах да, на втором компе еще wi-fi есть.

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

Там вообще только одна карта. Это я видать чего-то натворил. eth1 можно удалить оттуда?

Фигасе. Не знаю :)

Честно говоря, не в курсе последних изменений в Федоре. Вроде бы там сеть должна традиционным редхатовским методом настраиваться — через /etc/sysconfig/network-scripts/ifcfg-*

Тогда в ifcfg-eth1 пишешь

DEVICE=eth1
BOOTPROTO=static
IPADDR=192.168.0.1
NETMASK=255.255.255.0
NETWORK=192.168.0.0
BROADCAST=192.168.0.255
ONBOOT=yes
TYPE=Ethernet

На втором компе в /etc/network/interfaces

allow-hotplug eth0
auto eth0
iface eth0 inet static
   address 192.168.0.2
   netmask 255.255.255.0
   network 192.168.0.0
   broadcast 192.168.0.255
   gateway 192.168.0.1

Делаешь на первом компе

service network restart
на втором
invoke-rc.d networking restart
После этого компы должны увидеть друг друга.

Скопируй с первого на второй комп файл /etc/resolv.conf (проще всего это делать через scp, если хотя бы на одном из компов работает sshd). Но в принципе достаточно прописать такие же адреса в полях nameserver.

После этого на первом компе вписываешь в /etc/sysctl.conf

net.ipv4.ip_forward=1
и делаешь
sysctl -p
iptables -t nat -I POSTROUTING -o eth0 -j MASQUERADE
iptables-save > /etc/sysconfig/iptables

Вроде все. После этого на втором комп должен появиться инет.

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

Первый комп не хочет коннектиться со вторым. Сейчас буду всё перепроверять. Может где-то ошибся или что-то пропустил.

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

>Там случайно NO-CARRIER опять не появился?

В этом плане ничего не изменилось.

Я вот что подумал: вписать-то я всё это вписал (вроде как, еще перепроверяю), но может надо что-то ещё и удалить из этих конфигов?

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

Из ifcfg-eth1 надо удалить (или закомментировать символом #) все, что там было раньше.

В interfaces — только секцию, касающуюся eth1 (если она там была раньше).

Если сомневаешься — высылай файлы, посмотрю.

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

Закомментировал всё лишнее - никаких изменений к лучшему.

На первом компе eth1 коннектится, а на втором всё глухо. :(

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

>На первом компе eth1 коннектится, а на втором всё глухо. :(

В смысле? Что значит «коннектится» и «глухо»?

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

>В смысле? Что значит «коннектится» и «глухо»?

Ну это гуевые утилиты так "говорят".

На первом компе NetworkManager показывает, что eth1 подключился.

На втором компе NetworkManager говорит "Wired Network -> device not managed" и не показывает ни одного активного подключения.

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

Дело в том, что в линухе есть два варианта настройки:
1. Через гуй. хз как объяснять, хз как работает.
2. Нормальный метод. Через редактирование файлов и ввод команд.

Как ты уже понял, я тебе объясняю нормальный метод. Про сетевухи, настроенные по нормальному методу, NetworkManager говорит, что device not managed.

Видимо, на первом компе настройки второй сетевухи не подхватились. Ну ладно, настраивай через гуй. Адрес 192.168.0.1, маска 255.255.255.0.

Для проверки соединения между компами попробуй запустить со второго ping 192.168.0.1. Если работает — попробуй ping ya.ru.

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

Блин, это ж%па какая-то! Первый комп:

Если в ifcfg-eth1 закомментировать строчки c "HWADDR", "PREFIX" и "UUID", то NetworkManager создаёт какое-то левое подключение, совпадающее по имени с eth1, только относящееся к первой сетевухе и подключающееся по дефолту вместо eth0, интернета на первом компе при этом нет. Если настраивать через NetworkManager, в ifcfg-eth1 прописываются "PREFIX", "NAME" и "UUID". Толку от гуевой настройки нет.

Второй комп:

Гуевая настройка через NetworkManager тоже ничего не дала.

>попробуй запустить со второго ping 192.168.0.1.

Это работает.

>Если работает — попробуй ping ya.ru.

А это не работает.

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

>Если в ifcfg-eth1 закомментировать строчки c "HWADDR", "PREFIX" и "UUID", то NetworkManager создаёт какое-то левое подключение, совпадающее по имени с eth1, только относящееся к первой сетевухе и подключающееся по дефолту вместо eth0, интернета на первом компе при этом нет. Если настраивать через NetworkManager, в ifcfg-eth1 прописываются "PREFIX", "NAME" и "UUID". Толку от гуевой настройки нет.

Аа. Тогда закомментируй эти строки и забей на манагера. Все нормально.

>А это не работает.


Тогда покажи с первого компа
ip ro sh
iptables -t nat -vnL POSTROUTING
sysctl net.ipv4.ip_forward

ping 213.180.204.8 со второго компа тоже не работает?

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

>Аа. Тогда закомментируй эти строки и забей на манагера. Все нормально.

Ладно. Хотя он же, гад, не подключает мне тогда по дефолту eth0. Впрочем, ладно, переживу.

>ip ro sh


Отправил на мыло. :)

>iptables -t nat -vnL POSTROUTING


Chain POSTROUTING (policy ACCEPT 21 packets, 1440 bytes)
pkts bytes target prot opt in out source destination
281 17397 MASQUERADE all -- * eth0 0.0.0.0/0 0.0.0.0/0
0 0 MASQUERADE all -- * eth0 0.0.0.0/0 0.0.0.0/0
0 0 MASQUERADE all -- * eth0 0.0.0.0/0 0.0.0.0/0
0 0 MASQUERADE all -- * eth0 0.0.0.0/0 0.0.0.0/0
0 0 MASQUERADE all -- * eth0 0.0.0.0/0 0.0.0.0/0
0 0 MASQUERADE all -- * eth0 0.0.0.0/0 0.0.0.0/0
0 0 MASQUERADE all -- * eth0 0.0.0.0/0 0.0.0.0/0
0 0 MASQUERADE all -- * eth0 0.0.0.0/0 0.0.0.0/0
0 0 MASQUERADE all -- * eth0 0.0.0.0/0 0.0.0.0/0

>sysctl net.ipv4.ip_forward


net.ipv4.ip_forward = 1

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

>ping 213.180.204.8 со второго компа тоже не работает?

Destination Host Prohibited

Извини, я тут ещё попутно ужинаю. :)

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

>Ладно. Хотя он же, гад, не подключает мне тогда по дефолту eth0. Впрочем, ладно, переживу.

/etc/sysconfing/network-scripts/ifcfg-eth0:

DEVICE=eth0
TYPE=Ethernet
BOOTPROTO=dhcp
ONBOOT=yes

В принципе этого должно быть достаточно, чтобы eth0 взлетало автоматом при загрузке.

Все остальное вроде правильно.

>Destination Host Prohibited


Попробуй iptables -F FORWARD на первом компе и iptables -F на втором. Должно помочь.

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

>etc/sysconfing/network-scripts/ifcfg-eth0:

>DEVICE=eth0

>TYPE=Ethernet

>BOOTPROTO=dhcp

>ONBOOT=yes


А остальное надо было закомментировать? Я закомментировал, но eth0 всё равно не грузится по дефолту. И в NetworkManager помимо "клона eth1" для первой карты, появился ещё клон eth0 для второй.

>Попробуй iptables -F FORWARD на первом компе и iptables -F на втором. Должно помочь.


Заработало.

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

>Заработало.

В смысле ping проходит.

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

>Я закомментировал, но eth0 всё равно не грузится по дефолту

Хм. Странно. Все должно работать. Покажи-ка весь файл ifcfg-eth0 и pgrep dhclient | xarg ps -Fp

>Заработало.


А инет есть?

Да, и давай посмотрим твой /etc/sysconfig/iptables.

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

>Покажи-ка весь файл ifcfg-eth0

# Networking Interface
DEVICE=eth0
ONBOOT=yes
TYPE=Ethernet
BOOTPROTO=dhcp
# NAME="eth0"
# UUID=5fb06bd0-0bb0-7ffb-45f1-d6edd65f3e03
# PEERDNS=yes
# PEERROUTES=yes
PEERDNS=yes
PEERROUTES=yes
NAME="System eth0"
UUID=5fb06bd0-0bb0-7ffb-45f1-d6edd65f3e03

Блин, автоматически прописываются "PEERDNS", "PEERROUTES", "NAME", "UUID". :(

>pgrep dhclient


2108

>xarg ps -Fp


bash: xarg: command not found

>А инет есть?


Ой, слушай, заработало! Ура! А вот NetworkManager продожает говорить, что соединения нет.

Уфф. Спасибо тебе огромное за помощь! И низкий поклон за то, что терпел меня, чайника.

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

>Да, и давай посмотрим твой /etc/sysconfig/iptables.

bash: /etc/sysconfig/iptables: Permission denied. Это из под рута.

Хотя теперь это уже не важно.

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

>bash: /etc/sysconfig/iptables: Permission denied. Это из под рута.

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

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

>Уфф. Спасибо тебе огромное за помощь! И низкий поклон за то, что терпел меня, чайника.

Не за что. Сам когда-то таким был :)

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

>Ну его не исполнять надо, а просто почитать и, возможно, поредактировать.

Тьфу. Торможу.

>Собсно, смысл дальнейших действий — сделать так, чтобы инет на обоих компах автоматом взлетал после включения. Или тебе это не нужно?


Нужно. Если можно. :)

>/etc/sysconfig/iptables


*nat
:PREROUTING ACCEPT [133:16787]
:POSTROUTING ACCEPT [27:2156]
:OUTPUT ACCEPT [217:14566]
-A POSTROUTING -o eth0 -j MASQUERADE
-A POSTROUTING -o eth0 -j MASQUERADE
-A POSTROUTING -o eth0 -j MASQUERADE
-A POSTROUTING -o eth0 -j MASQUERADE
-A POSTROUTING -o eth0 -j MASQUERADE
-A POSTROUTING -o eth0 -j MASQUERADE
-A POSTROUTING -o eth0 -j MASQUERADE
-A POSTROUTING -o eth0 -j MASQUERADE
COMMIT
*filter
:INPUT ACCEPT [0:0]
:FORWARD ACCEPT [0:0]
:OUTPUT ACCEPT [1309:271881]
-A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT
-A INPUT -p icmp -j ACCEPT
-A INPUT -i lo -j ACCEPT
-A INPUT -p tcp -m state --state NEW -m tcp --dport 22 -j ACCEPT
-A INPUT -j REJECT --reject-with icmp-host-prohibited
-A FORWARD -j REJECT --reject-with icmp-host-prohibited
COMMIT

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

1. Можешь погрохать лишние строчки с MASQUERADE — достаточно только одной.
2. Перед строчкой
-A FORWARD -j REJECT --reject-with icmp-host-prohibited
добавь
-A FORWARD -m state --state RELATED,ESTABLISHED -j ACCEPT
-A FORWARD -i eth1 -s 192.168.0.0/24 -j ACCEPT

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

>2. Перед строчкой
>-A FORWARD -j REJECT --reject-with icmp-host-prohibited

>добавь

>-A FORWARD -m state --state RELATED,ESTABLISHED -j ACCEPT

>-A FORWARD -i eth1 -s 192.168.0.0/24 -j ACCEPT


Не помогло. Но ладно, я и так тебя уже замучил.

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

>Не помогло

В смысле не помогло?
Это защищает от destination prohibited при следующей загрузке.

А спать я собираюсь не раньше, чем через час, если что :)

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

>В смысле не помогло? >Это защищает от destination prohibited при следующей загрузке.

А, вот оно что. Тогда всё в порядке.

>А спать я собираюсь не раньше, чем через час, если что :)

Да всё равно уже неудобно дальше отрывать.

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

>Если будут еще проблемы — пиши на мыло или здесь на форуме.

Ну, обычно хватает прогулки по Гуглу, но вот в этот раз я крепко застрял.

Ещё раз спасибо!



Вопрос исчерпан.

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

н-да, меня уже давно на такие консультации не хватает. респект ж)

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