LINUX.ORG.RU
решено ФорумAdmin

Реализация маршрутизации 2 независимых сетей.

 , ,


0

1

Здравствуйте! Прошу помощи у сведущих людей =).

Имеется Linux-машина (Gentoo), на которой 2 сетевых интерфейса: enp4s0 — 192.168.17.1, настроен DHCP, должен смотреть сугубо в локальную сеть. еnp5s0 – 171.214.17.111, получает адрес от роутера, смотрит во вторую локалку и ходит в инет.

Имеется Windows7-машина, на которой также 2 сетевухи: netcard_1 – 192.168.17.10 получает свой адрес от линуховой машины netcard_2 — 171.214.17.101, получает адрес от роутера, смотрит во вторую локалку и ходит в инет.

Сетевые карты enp4s0 и netcard_1 соединены витой парой (гигабитный интерфейс, роутер стоит дорого).

Требуется: что бы обе машины общались друг с другом только по гигибитному интерфейсу, т. е. enp4s0 и netcard_1 и могли ходить в инет только через свои еnp5s0 и netcard_2 независимо друг от дурга.

Размышлял, читал, курил... Пришел к выводу: для реализации задуманного на linux необходимо через интерфейс enp5s1 разрешить любой трафик, а через enp4s0 разрешить только трафик относящийся к сети 192.168.17.0/24. По аналогии также и для windows.

На Linux: /etc/sysctrl.conf net.ipv4.ip_forward = 1

echo '255 internet
256 localnet' >> /etc/iproute2/rt_tables
ip route del default		#Удаляю маршруты из главной таблицы маршрутизации
ip route add default via 171.214.17.17 dev enp5s1 table internet
ip rule add from 171.214.17.111 table internet
ip route add 192.168.17.0/24 via 192.168.17.1 dev enp4s0 table localnet
ip rule add from 192.168.17.1 table localnet

На Windows машине прописал два постоянных маршрута:

route -p add 192.168.17.0 mask 255.255.255.0 192.168.17.1 metric 20
route -p add 0.0.0.0 mask 0.0.0.0 171.214.17.17 metric 10

В результате: Linux через еnp5s0 ходит в инет, но не ходит в локалку 171.214.17.0/24 (ну, впринципе это приемлемо), через enp4s0 вообще никуда ходить не хочет, но сам себя пингует (ping 192.168.17.1).

Windows также, ходит в инет, но получить ip адрес от Linux не может. Ни файерволов, ни антирвирусников. iptables есть, но не настроен.

ПС: до этого с маршрутизацией дел не имел вообще. Собственно, на данной задаче предполагаю разобраться с вопросом маршрутизации в целом.

Курилось: http://habrahabr.ru/post/108690/ , http://www.samag.ru/archive/article/121 и остальное по мелочи.

ПС2: По ходу дела подумалось, а есть ли разница настраивать маршруты через iproute2 или через route???



Последнее исправление: avarex (всего исправлений: 2)

route -p add 0.0.0.0 mask 255.255.255.0 171.214.17.17 metric 10

Ну для начала подучите немного матчасть. Маска 255.255.255.0 - это когда первые три числа адреса постоянные (то есть, вы направили все адреса с 0.0.0.0 по 0.0.0.255 через 171.214.17.17). И кстати да, я сомневаюсь, что адрес должен заканчиваться на 17.

Далее. ip route del default в вашей ситуации лучше не делать - лучше пропишите в конфигах устройств дополнительные команды на роутинг.

l0stparadise ★★★★★
()
Последнее исправление: l0stparadise (всего исправлений: 1)
Ответ на: комментарий от l0stparadise

Благодарю за ответ. Вы правы так делать нельзя, но это опечатка при создании поста, уже исправил. Адрес шлюза как раз заканчивается на 17, вот такая сеть =).

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

avarex
() автор топика

А вообще идея нелогичная - у вас два компьютера находятся в двух одних и тех же локалках. Поэтому вам можно просто прописать статично хостнеймы в hosts с их адресами адресами 192.168.17.* - и они будут ломиться друг на друга через эту сеть.

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

если я не ошибаюсь, то в hosts просто таблица соответствия IP и имени хоста. Какая разница если я их пропишу?

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

/usr/share/doc/openrc-*/net.example.bz2 - тут лежит дока по файлику /etc/conf.d/net, в котором овер9000 примеров конфигов сети на все случаи жизни.

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

А очень простая

Два компьютера могут обращаться друг к другу, в вашем случае, или по ip, или по хостнейму. По ip тут все ясно - какой укажут, так траффик и пойдет. А хостнейм может приклеиться как к одному адресу, так и к другому. Но если вы статически пропишите в хостах, что у вас машины имеют адреса 192.168.*.*, то по хостнеймам они тоже будут ломиться друг на друга через эти адреса.

l0stparadise ★★★★★
()

Кабель целый?

На сетевых картах автоопределение работает?

Если обеим машинам дать статику, например, те же 192.168.17.1 и 192.168.17.10, то они друг друга видят/пингуют?

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

«/usr/share/doc/openrc-*/net.example.bz2 - тут лежит дока по файлику» - никак не привыкну, что в самой ОС может быть документация =).

«Два компьютера могут обращаться друг к другу, в вашем случае, или по ip, или по хостнейму.» в этом то и проблема, ни даже при задании айпи не ходят друг к другу. Ошибка где то в перенаправлении пакетов.

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

«Кабель целый?» целый;

«На сетевых картах автоопределение работает?» - как проверить?

«Если обеим машинам дать статику, например, те же 192.168.17.1 и 192.168.17.10, то они друг друга видят/пингуют?» если на обеих машинах оставить включенными только сетевухи принадлежащие 192.168.17.0, то тарфик бегает аж ветер свистит! при включении второго интерфейса все затыкается.

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

«овер9000 примеров конфигов сети на все случаи жизни» - сЕти у меня настроены, и по отдельности фунКциклируют как надо, но вместе работать не хотят =(

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

«На сетевых картах автоопределение работает?» - как проверить?

в gentoo

ethtool enp4s0 
в windows ищите в свойствах сетевого адаптера, для win7&8: Панель управления->Сеть и Интернет->Центр управления сетями и общим доступом->Ethernet->свойства->Подключение через... Настроить->вкладка «Дополнительно»

Но раз у вас

если на обеих машинах оставить включенными только сетевухи принадлежащие 192.168.17.0, то тарфик бегает аж ветер свистит!

то они друг с другом смогли договориться.

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

Как выглядят таблицы маршрутов до и после включения вторых интерфейсов на обеих машинах?

Как проверяете доступность?

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

как страшно жить

Расслабься и получай удовольствие.

У меня на шлюзе адрес 10.20.30.0, как думаешь, лостпарадайз сомневается, что это правильно? =)

frob ★★★★★
()

Если я правильно понял суть то у вас по сути есть две сети второго уровня OSI (ethernet)
1) сеть роутера; 2) сеть между двумя компами.
Мне кажется логичным использовать для них разные IP подсети. Например для сети роутера 192.168.17.0/24 (192.168.17.0 255.255.255.0), для второй сети 192.168.18.0/24.

Всем сетевухам смотрящим в первую сеть присваиваются адреса из подсети 192.168.17.0/24 (на сколько я понимаю это уже делает DHCP сервер на роутере), сетевухам смотрящим во вторую сеть вручную присваиваются адреса из 192.168.18.0/24 (например 192.168.18.1 и 192.168.18.2).

На всех компах должны существовать три маршрута:
0.0.0.0/0 через {IP роутера}
192.168.17.0/24 через интерфейс смотрящий в сеть роутера
192.168.18.0/24 через интерфейс смотрящий во вторую сеть
Первый маршрут придёт по DHCP от сервера, остальные два появятся просто по факту назначения соответствующих IP на интерфейсы.

Таким образом оба компа будут отправлять трафик для адресов в подсети 192.168.18.0/24 во вторую сеть, трафик для подсети 192.168.17.0/24 в сеть роутера, весь остальной трафик будет отправляться роутеру.
Следовательно например ping 192.168.18.1 пойдёт через гигабитную сеть, а ping 192.168.17.1 через сеть роутера.
Используя для общения между этими двумя компами только адреса из подсети 192.168.18.0/24 вы невозбранно достигнете желаемого.

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

Благодарю всех за участие в проблеме =)!

Проблема решена путем удаления маршрута:

defaults via 192.168.17.1 dev enp4s0 metric 2

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

defaults via 171.214.17.17 dev enp5s1 metric 203

Остальные пакеты побежали по своим маршрутам, т.е. для сетей 192.168.17.0 через шлюз 192.168.17.1, а для 171.214.17.0 через 171.214.17.17.

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

Да и главное! после внесения изменений в таблицу маршрутизации нужно делать:

ip route flush cache

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