Меню Рубрики

Linux два интерфейса в одной подсети

Одновременная работа двух сетевых карт

Всем привет. Дебиан 9. Две сетевые карты

привязываю к ним интерфейсы eth0 и eth1

если в /etc/network/interfaces прописать сразу оба интерфейса, то активен и пингуется только eth0

если прописывать по отдельности, то работает и eth0 и eth1 соответственно.

auto eth0 iface eth0 inet static address 192.168.0.121 gateway 192.168.0.228 netmask 255.255.252.0

auto eth1 iface eth0 inet static address 192.168.0.122 netmask 255.255.252.0

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

Зачем две сетевые карты? Тем более в одной подсети IPv4? Если нужна избыточность, то нужна агрегация LACP, если нужно два айпишника, то можно привязать к одной сетевухе, алиасингом или еще чем-то.

Опечатка же во втором конфиге?

auto eth1 iface eth0 inet static address 192.168.0.122 netmask 255.255.252.0

Русские форумы такие форумы?

Только тут тебе расскажут, почему ты -мудак- не прав?

Раскажи чего ты хочешь этим добиться?

Чтобы понять почему идея гавно, надо чутка почитать как именно линукс роутит пакеты, в реальном мире, для каждого сконфигурированного интерфейса создаётся маршрут x.x.x.x/netmask означающий, что на адреса в этой подсети слать пакеты напрямую получателям, в твоём примере создастся: 192.168.0.0/22 dev eth0 proto kernel scope link src 192.168.0.121
Это значит, что всё исходящее в 192.168.0.0/22 должно уходить с eth0, а всё приходящее на eth0 из 192.168.0.0/22 адресовано нам. Когда ты создаешь второй интерфейс с адресом в той же сети, ещё один маршрут для подсети 192.168.0.0/22 создасться не может, т.к. её уже обслуживает eth0. Все входящие пакеты на 192.168.0.122 будут приходить на eth1, а в соотвествии с таблицей маршрутизации за 192.168.0.0/22 ответственный eth0, такие пакеты по дефолту считаются не парвильными и называются «марсианскими» (martian), если проверишь dmesg то наверняка увидишь там такие записи. Кароче в реальном мире твоя схема кривая и работать не должно, но обойти эти ограничения можно, но это ппц костыли и я бы за такое ими тебя и ***покарал***, например ты можешь включить Promiscuous режим на eth1, тогда ядро будет пропускать марсианские пакеты и твоё поделие начнёт подавать признаки жизни, но исходящий трафик всё равно будет ходить через eth0 по умолчанию.

Re: Русские форумы такие форумы?

На украинских форумах такая же история, на англоязычных ресурсах также песня.

но исходящий трафик всё равно будет ходить через eth0 по умолчанию

А что мешает сделать «ip ro add 192.168.0.32/28 dev eth1 scope link src 192.168.0.122» ? Пусть к .32-.47 ходят через eth1 !

PS любимые грабли нужно знать по именам: rp_filter, arp_accept, arp_announce, arp_filter, arp_ignore

Чёта не понял про грабли))) Я бы в ситуации ТС создал ещё одну таблицу маршрутизации в /etc/iproute2/rt_tables и загнал туда eth1 правилом. Хотя всё равно решение плохое и так делать не надо

Я бы в ситуации ТС создал ещё одну таблицу маршрутизации

Он пока с одной не разобрался.

В такой ситуации ТС может просто реализовать только статическую схему, в которой часть хостов в сети будет адресоваться через eth0, а часть через eth1, просто добавив маршруты. Например, dgw через eth1, а все остальное через eth0, или половину сети через один интерфейс, а остальных через другой.

Но ему нужно пройти грабли которые специально разложены на пути для тех, кто начинает использовать несколько самостоятельных интерфейсов в одной подсети. Это не запрещено, но ты должен доказать системе, что ты понимаешь на что подписался. Это как раз и нужно выразить через sysctl net.ipv4.conf..

Re: Русские форумы такие форумы?

А белорусы с казахами чё ?

Re: Русские форумы такие форумы?

  1. мудаком его никто не называл
  2. неправым тоже
  3. но, о ужас! презренные хелперы-помогаторы дерзнули объяснять, как может (должно) сделать и стали требовать дополнительных пояснений (ну, тупые, ага)
  4. да — «Русские форумы такие форумы» ©

Источник

unixforum.org

Форум для пользователей UNIX-подобных систем

Два сетевых интерфейса в одной подсети (Как разнести?)

Модератор: SLEDopit

Два сетевых интерфейса в одной подсети

Сообщение be9 » 14.12.2008 13:35

Дано: комп с тремя сетевыми интерфейсами, работающий маршрутизатором и файлопомойкой (samba и ftp). Система — убунта 8.10.

Задача: разнести по разным интерфейсам файлопомойку и маршрутизатор.

Сейчас конструкция такая:

Интерфейс ethext смотрит наружу.

И ethint, и ethsrv воткнуты в один свитч.

Хочется, чтобы вся деятельность, связанная с файлопомойкой, проходила _только_ через интерфейс ethsrv и никак не затрагивала интерфейс
ethint.

Однако arp, делаемый с другой машины, показывает, что и 10.0.0.200, и 10.0.0.250 имеют MAC интерфейса ethint — 00:15:58:60:d9:fb. Соответственно, все входит и выходит через ethint (10.0.0.250), а адрес 10.0.0.200 работает просто как его алиас, хотя и будучи включенным в ту же подсеть.

Как сделать, чтобы интерфейс ethint не перехватывал ничего для 10.0.0.200?

Re: Два сетевых интерфейса в одной подсети

Сообщение ford1813 » 14.12.2008 14:18

Контакты для связи:

Re: Два сетевых интерфейса в одной подсети

Сообщение Poor Fred » 14.12.2008 15:52

Re: Два сетевых интерфейса в одной подсети

Сообщение be9 » 14.12.2008 16:31

2 wertik: файлопомоечные сервисы, естественно, биндятся на ethsrv.
2 Poor Fred: дефолтные конфиги я читать умею, а умеете ли вы внимательно читать посты?

Еще раз: есть две сетевые карты, воткнутые в одну подсеть с одинаковой нетмаской. Допустим, кто-то хочет зайти на 10.0.0.200 (адрес ethsrv). Посылается arp-запрос, который приходит на оба интерфейса: на ethint и ethsrv, причем на ethint первым (он на шине PCI первым стоит). И ethint отвечает, что адрес 10.0.0.200 — это его адрес! Видимо смотрит, что в системе есть адрес 10.0.0.200, лежащий в той же подсетке, и откликается. А пакет, зашедший на ethsrv, отбрасывается системой, ибо она его уже обработала.

В итоге потом все пакеты начинают валить через физический интерфейс ethint, попадая на ethsrv через межинтерфейсное взаимодействие внутри ядра.

При этом я могу вообще вынуть патчкорд из ethsrv — оно все равно будет работать. А мне надо, чтобы электроны бежали именно по тому патчкорду и чтобы лампочка моргала у ethsrv, а не ethint

Источник

Два сетевых интерфейса и два IP-адреса в одной подсети в Linux

Недавно я столкнулся с ситуацией, когда мне понадобилось два IP-адреса в одной подсети, назначенной одному хосту Linux, чтобы мы могли запускать два сайта SSL /TLS. Мой первый подход заключался в использовании IP-алиасинга, например. используя eth0: 0, eth0: 1 и т. д., но у наших администраторов сети есть довольно строгие настройки для обеспечения безопасности, которые подавили эту идею:

  1. Они используют отслеживание DHCP и обычно не разрешают статические IP-адреса. Статическая адресация выполняется с использованием статических записей DHCP, поэтому один и тот же MAC-адрес всегда получает одно и то же назначение IP-адреса. Эта функция может быть отключена для каждого коммутатора, если вы спросите, и у вас есть причина для этого (к счастью, у меня хорошие отношения с сетевыми парнями, и это не сложно).
  2. При отключении DHCP-отслеживания в коммутаторе им пришлось ввести правило коммутатора, в котором указанному MAC-адресу X разрешен IP-адрес Y. К сожалению, это имело побочный эффект, также заявляя, что MAC-адрес X является ТОЛЬКО разрешено иметь IP-адрес Y. Инициализация IP-адресов требовала, чтобы MAC-адрес X был назначен два IP-адреса, поэтому это не сработало.

Возможно, возникла проблема с этими проблемами в конфигурации коммутатора, но, пытаясь сохранить хорошие отношения с сетевыми администраторами, я попытался найти другой способ. Наличие двух сетевых интерфейсов казалось следующим логическим шагом. К счастью, эта система Linux является виртуальной машиной, поэтому я смог легко добавить второй сетевой интерфейс (без перезагрузки, я мог бы добавить — довольно круто). Через несколько нажатий клавиш у меня появилось два сетевых интерфейса, и оба они вытащили IP-адреса из DHCP.

Но тогда возникла проблема: сетевые администраторы могли видеть (на коммутаторе) запись ARP для обоих интерфейсов, но только первый сетевой интерфейс, который я поднял, будет отвечать на пинги или любой вид трафика TCP или UDP.

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

Шаг 1: Включить фильтрацию ARP для всех интерфейсов:

Из файла network /ip-sysctl.txt в документах ядра Linux:

Шаг 2. Внедрение маршрутизации на основе источника

В основном я просто следовал указаниям из http://lartc.org/howto/lartc.rpdb.multiple -links.html , хотя эта страница была написана с другой целью (имея дело с двумя интернет-провайдерами).

Предположим, что подсеть 10.0.0.0/24, шлюз 10.0.0.1, IP-адрес для eth0 — 10.0.0.100, а IP-адрес для eth1 — 10.0.0.101.

Определите две новые таблицы маршрутизации с именем eth0 и eth1 в /etc /iproute2 /rt_tables:

Определите маршруты для этих двух таблиц:

Определите правила использования новых таблиц маршрутизации:

В основной таблице маршрутизации уже позаботился DHCP (и даже не ясно, что в этом случае это строго необходимо), но в основном это соответствует:

И вуаля! Кажется, все работает отлично. Отправка писем на оба IP-адреса работает нормально. Отправка писем из этой системы в другие системы и принудительное использование пинга для использования конкретного интерфейса прекрасно работает ( ping -I eth0 10.0.0.1 , ping -I eth1 10.0.0.1 ). И самое главное, весь трафик TCP и UDP на /с любого из IP-адресов работает как ожидалось.

Итак, опять мой вопрос: есть ли лучший способ сделать это? Это похоже на большую работу для кажущейся простой проблемы.

Обновление: Решение выше оказалось неполным. Все работало нормально, если трафик остался в одной подсети, но связь с другими подсетями, использующими второй интерфейс, не будет работать должным образом. Вместо того, чтобы копать большее отверстие, я закончил разговор с администраторами сети и заставил их разрешить несколько IP-адресов для одного интерфейса и использовать IP-псевдонимы (например, eth0 и eth0: 0).

Источник

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *

  • Wii u эмулятор для mac os
  • Wii u usb helper mac os
  • Wifislax mac os x
  • Wifi сканер для mac os бесплатно
  • Wifi модуль для mac os