Линукс вторую сетевую карту

Извечный вопрос: Как настроить две сетевые карты на Linux?

Не получилось и так.
Далее вернул к прежнему. Ребят, помогите настроить.

Комп, подключенный к eth1 настроен так: ip: 10.0.0.2 маска стандарт 255.255.255.0
Подключился через путти к 10.0.0.1.
Так как я клонировал мак адрес роутера, на который настроен инет — ifconfig выдал верные значения ип, шлюза. (когда использовал стандартный мак — настройки не выдавались). Писал в путти ping -c 4 google.ru ответ на это вроде бы unknown host, что очень странно!

Смотрю инфу: http://blog.aloneunix.ru/2011/11/debian.html то же самое.
Я только не пойму — если ип выдался верный, и я с путти пытался пинговать гугол, не получилось. хммм

«Теперь применим только что отредактированный конфиг:
~$ sudo sysctl -p» эта команда разорвет соединения игроков с сервом?

tabletka99

Участник

Них не понял, понаписал кучу всего, а вопроса так и не задал ;)))

что значит настроить две сетевые карты? просто ипы им дать или там два шлюза еще.

tiger_by

Гл. Админ SourceGames.RU

BMW M6

Участник

1) Добавляем блок в /etc/network/interface

auto eth1 iface eth1 inet static address 192.168.2.1 netmask 255.255.255.0

2. в /etc/sysctl.conf раскомменчиваем строчку (или добавляем если нет): net.ipv4.ip_forward=1

3. в /etc/rc.local перед exit 0:

iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE

4. Узнаём свои dns адреса командой. У меня лежат тут /etc/resolv.conf

5.Настраиваем роутер на статику:
ip 192.168.2.2
маска: 255.255.255.0
шлюз: 192.168.2.1

tabletka99

Участник

ZloyMonah

Dark Guardian

TolikCorp

Участник

tiger_by

Гл. Админ SourceGames.RU

Я полагаю что есть eth0 — это WAN, он же внешний IP.
eth1 — это LAN, оно же локальный интерфейс, раздающий сеть еще неким хостам.
Или не так?

LEII4A

Участник

TolikCorp,
Пажалста я надеюсь, цель сего безобразия я понял правильно:-D
только там нужно морозить rc.local иначе dns слетают при отключении eth1, вот команды в консоль:

$ sudo touch /etc/network/if-up.d charge_dns $ sudo nano /etc/network/if-up.d/charge_dns #! /bin/sh echo "nameserver ip" > /etc/resolv.conf echo "nameserver ip" >> /etc/resolv.conf sudo chmod +x /etc/network/if-up.d/charge_dns

Вместо ip естественно твои dns сервера. На debian 6 все вышеуказанное работало прекрасно, хоть и громоздко все.

TolikCorp

Участник

Я полагаю что есть eth0 — это WAN, он же внешний IP.
eth1 — это LAN, оно же локальный интерфейс, раздающий сеть еще неким хостам.
Или не так?

Добавлено через 3 минуты
Капец какой-то, на етх0 ип выдался верный, вроде даже всё ок. Пишу ping -c 4 google.ru — просто не хочет ответ — unknown host. Подключаю обратно к роутеру — пинг нормально рабит.

tiger_by

Гл. Админ SourceGames.RU

TolikCorp

Участник

tiger_by

Гл. Админ SourceGames.RU

TolikCorp

Участник

tiger_by

Гл. Админ SourceGames.RU

TolikCorp

Участник

хмм, прочитал статью, смотрю «5.3.4. /etc/resolv.conf» и немного недопонял, что в нем быть должно.
Вот сейчас, когда сервер подключен к роутеру содержание данного файла такое

Читайте также:  Linux search commands in history

$ sudo touch /etc/network/if-up.d charge_dns
$ sudo nano /etc/network/if-up.d/charge_dns

#! /bin/sh
echo «nameserver ip» > /etc/resolv.conf
echo «nameserver ip» >> /etc/resolv.conf

sudo chmod +x /etc/network/if-up.d/charge_dns

tabletka99

Участник

сотри все и добавь две строки

nameserver 8.8.8.8
nameserver 8.8.4.4

это днс гугла и попробуй. должно работать все. в сети что ты раздаешь на етх1 так же указывай эти днс.

tiger_by

Гл. Админ SourceGames.RU

TolikCorp

Участник

tabletka99, «в сети что ты раздаешь на етх1 так же указывай эти днс.» это приписать в компе, подключенному к етх1?

TolikCorp

Участник

1) Когда сервер подключен к роутеру, то на етх1 инет есть (в свойствах подключения клиента указал ДНС провайдера).
Пинги:

Last login: Sun Jun 10 07:34:14 2012 from 192.168.5.2
[email protected]:~# ping -c 4 178.49.245.129
PING 178.49.245.129 (178.49.245.129) 56(84) bytes of data.
64 bytes from 178.49.245.129: icmp_req=1 ttl=64 time=1.29 ms
64 bytes from 178.49.245.129: icmp_req=2 ttl=64 time=1.19 ms
64 bytes from 178.49.245.129: icmp_req=3 ttl=64 time=1.20 ms
64 bytes from 178.49.245.129: icmp_req=4 ttl=64 time=1.49 ms

— 178.49.245.129 ping statistics —
4 packets transmitted, 4 received, 0% packet loss, time 3003ms
rtt min/avg/max/mdev = 1.196/1.296/1.492/0.121 ms
[email protected]:~# ping -c 4 hlmod.ru
PING hlmod.ru (94.127.69.212) 56(84) bytes of data.
64 bytes from s094127069212.m.truevds.ru (94.127.69.212): icmp_req=1 ttl=52 time=59.1 ms
64 bytes from s094127069212.m.truevds.ru (94.127.69.212): icmp_req=2 ttl=52 time=52.8 ms
64 bytes from s094127069212.m.truevds.ru (94.127.69.212): icmp_req=3 ttl=52 time=52.5 ms
64 bytes from s094127069212.m.truevds.ru (94.127.69.212): icmp_req=4 ttl=52 time=53.4 ms

— hlmod.ru ping statistics —
4 packets transmitted, 4 received, 0% packet loss, time 3002ms
rtt min/avg/max/mdev = 52.507/54.488/59.194/2.750 ms
[email protected]:~#

Содержание resolv.conf
domain cn.ru
search cn.ru novotelecom.ru
nameserver 192.168.0.1

2) Когда сервер подключен напрямую к инету, то на етх1 инета (в свойствах подключения клиента указал ДНС провайдера)., как и на етх0 нету.
3) Сделал

$ sudo touch /etc/network/if-up.d charge_dns
$ sudo nano /etc/network/if-up.d/charge_dns

#! /bin/sh
echo «nameserver ip» > /etc/resolv.conf
echo «nameserver ip» >> /etc/resolv.conf

sudo chmod +x /etc/network/if-up.d/charge_dns

— 178.49.245.129 ping statistics —
4 packets transmitted, 4 received, 0% packet loss, time 3003ms
rtt min/avg/max/mdev = 1.196/1.296/1.492/0.121 ms

Когда это перепробовал, изменил charge_dns:
#! /bin/sh
echo «domain cn.ru» >> /etc/resolv.conf
echo «search cn.ru novotelecom.ru» >> /etc/resolv.conf
echo «nameserver 178.49.132.66» >> /etc/resolv.conf
echo «nameserver 178.49.132.67» >> /etc/resolv.conf

До гугла с его ДНСами и провайдера не смог достучаться во всех случаях, кроме первого, где сервер подключен к роутеру.

Добавлено через 49 минут
Все же интересно, почему даже шлюз не пингуется.

Источник

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

если прописывать по отдельности, то работает и 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

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

Читайте также:  Linux tar to ftp

Зачем две сетевые карты? Тем более в одной подсети 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 по умолчанию.

sparks ★★★ ( 06.11.19 15:52:18 MSK )
Последнее исправление: sparks 06.11.19 15:54:01 MSK (всего исправлений: 1)

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 правилом. Хотя всё равно решение плохое и так делать не надо

sparks ★★★ ( 06.11.19 20:43:33 MSK )
Последнее исправление: sparks 06.11.19 20:50:30 MSK (всего исправлений: 1)

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

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

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

Читайте также:  Синхронизация файлов на линукс

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

Источник

Объединение сетевых интерфейсов в linux

Так уже получилось что писал статью для howtoforge. И естественно тут же все это оказалось в русском варианте на других сайтах. Только вот незадача: в статье были допущены неточности, и публицисты с других «сайтов» вставили as-is.
Хочу попробовать исправить это оплошность.
Для чего это надо?
Объясню на примере: был у меня фтп с 2мя сетевыми картами, но использовалась одна. Со временем весь 1Гб/с начал забиваться по вечерам — и людям плохо, и у меня iowait растет. Но есть вторая сетевая карта. Так вот такое объединение позволит использовать 2 (3, 4, 5. ) как одну с 2Гб/с.
Но это не «потолок», вот полный список режимов:
mode=0 (balance-rr)
Последовательно кидает пакеты, с первого по последний интерфейс.
mode=1 (active-backup)
Один из интерфейсов активен. Если активный интерфейс выходит из строя (link down и т.д.), другой интерфейс заменяет активный. Не требует дополнительной настройки коммутатора
mode=2 (balance-xor)
Передачи распределяются между интерфейсами на основе формулы ((MAC-адрес источника) XOR (MAC-адрес получателя)) % число интерфейсов. Один и тот же интерфейс работает с определённым получателем. Режим даёт балансировку нагрузки и отказоустойчивость.
mode=3 (broadcast)
Все пакеты на все интерфейсы
mode=4 (802.3ad)
Link Agregation — IEEE 802.3ad, требует от коммутатора настройки.
mode=5 (balance-tlb)
Входящие пакеты принимаются только активным сетевым интерфейсом, исходящий распределяется в зависимости от текущей загрузки каждого интерфейса. Не требует настройки коммутатора.
mode=6 (balance-alb)
Тоже самое что 5, только входящий трафик тоже распределяется между интерфейсами. Не требует настройки коммутатора, но интерфейсы должны уметь изменять MAC.
Настройка
Очень простая. Вы выбираете режим, втыкаете в коммутатор второй кабель.
Дальше в зависимости от системы, я делал это на Debian Lenny
#apt-get install ifenslave-2.6
Дальше есть 2 варианта:
Вариант №1 Подправить /etc/network/interfaces к примеру так.
iface bond0 inet static
address 10.0.1.5
netmask 255.255.255.0
network 10.0.1.0
gateway 10.0.1.254
up /sbin/ifenslave bond0 eth0 eth1
down /sbin/ifenslave -d bond0 eth0 eth1
и подправить /etc/modprobe.d/arch/i386 примерно так
alias bond0 bonding
options bonding mode=5 miimon=100 downdelay=200 updelay=200
Естественно указать свой режим и настройки сети.
# update-modules
# ifdown eth0 eth1
# ifup bond0
# /etc/init.d/networking restart
Вариант №2 Все настройки через /etc/network/interfaces
iface bond0 inet static
address 10.0.1.5
netmask 255.255.255.0
network 10.0.1.0
gateway 10.0.1.254
bond_mode balance-tlb
bond_miimon 100
bond_downdelay 200
bond_updelay 200
slaves eth0 eth1
Сохраняем и пишем:
update-modules
# ifdown eth0 eth1
# ifup bond0
# /etc/init.d/networking restart
После этого должен появится один интерфейс bond0. Далее можно плодить интерфейсы bon0:0 и т.д.
UPD: Перенес из своего блога в нужный
UPD 2: Спасибо infotim, за правки.

Источник

Оцените статью
Adblock
detector