172 похожих чатов

Есть 2 интерфейса на хосте, на них должны быть 2

одинаковые подсети
я добавляю подсеть на интерфейс eth1
ip addr add 10.42.0.2/24 dev eth1
хост пингуется.
теперь добавляю на eth0 адрес
ip addr add 10.42.0.1/24 dev eth0
хост перестаёт пинговаться, в чем может быть проблема?

23 ответов

10 просмотров

потому что нужно задвать дополнительные правила маршрутизации.

»есть 2 интерфейса на хосте, на них должны быть 2 одинаковые подсети вот в этом и проблема

Sergey- Автор вопроса
Sergey
какие? зачем?

а для этого читайте LARTC. если на этих интерфейсах есть ещё и нат, то нужно ещё почитать про conntrack zones и connmark навскидку ip route add 10.42.0.0/24 dev eth0 table 10 ip route add 10.42.0.0/24 dev eth1 table 11 ip rule add from 10.42.0.0/24 oif eth0 table 10 pref 1000 ip rule add from 10.42.0.0/24 oif eth1 table 11 pref 1001

когда ты добавляешь адрес на второй интерфейс, то маршрут до подсети 10.42.0.0/24 в таблице main переписывается и начинает указывать на второй интерфейс.

Sergey
да, и как её решить не меняя мою задачу?

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

Sergey- Автор вопроса
Anton Danilov
а для этого читайте LARTC. если на этих интерфейс...

вот человек кажется предложил решение

Sergey- Автор вопроса
Anton Danilov
а для этого читайте LARTC. если на этих интерфейс...

хост все равно перестаёт пинговаться

Sergey
хост все равно перестаёт пинговаться

перезапусти после этого ping, и потом запусти его с указанием интерфейса, куда слать пинги.

Sergey- Автор вопроса
Anton Danilov
перезапусти после этого ping, и потом запусти его ...

IPTABLES=/sbin/iptables function enable () { # enable ip forwarding in the kernel echo 'Enabling Kernel IP forwarding...' /bin/echo 1 > /proc/sys/net/ipv4/ip_forward # flush rules and delete chains echo 'Flushing rules and deleting existing chains...' $IPTABLES -F $IPTABLES -X # enable masquerading to allow LAN internet access echo 'Enabling IP Masquerading and other rules...' $IPTABLES -t nat -A POSTROUTING -o $LANIF -j MASQUERADE $IPTABLES -A FORWARD -i $LANIF -o $WANIF -m state --state RELATED,ESTABLISHED -j ACCEPT $IPTABLES -A FORWARD -i $WANIF -o $LANIF -j ACCEPT ip route add default via 10.42.0.2 table $NAMETABLE ip rule add iif $LANIF table $NAMETABLE echo 'Done.' } NAMETABLE='eth0_to_eth1' WANIF='eth1' LANIF='eth0' enable вот так работает

Sergey- Автор вопроса
Alexey
namespace гораздо проще

и как в нём nat сделать?

Sergey- Автор вопроса
Alexey
namespace гораздо проще

и как мне это организовать?

Sergey
и как мне это организовать?

создаешь неймспейс, добавляешь туда интерфейс, далее через ip netns exec прописываешь дефолт, и настраиваешь nat в iptables

Sergey- Автор вопроса
Sergey
2 неймспейса для двух интерфейсов?

либо так, либо оставляешь один как есть, а другой уносишь в неймспейс

Sergey- Автор вопроса
Volodymyr Komendant
создаешь неймспейс, добавляешь туда интерфейс, дал...

все сделал кроме ната, как его настаривать?

Sergey- Автор вопроса
Sergey
IPTABLES=/sbin/iptables function enable () { ...

точно также как здесь?

Sergey- Автор вопроса
Alexander Biryukov
поместить eth в разные netns

а дальше как соединить 2 этих netns?

Проблема в том, что в таблице маршрутизации два маршрута на одну сеть

Похожие вопросы

Обсуждают сегодня

Господа, а что сейчас вообще с рынком труда на делфи происходит? Какова ситуация?
Rꙮman Yankꙮvsky
29
А вообще, что может смущать в самой Julia - бы сказал, что нет единого стандартного подхода по многим моментам, поэтому многое выглядит как "хаки" и произвол. Короче говоря, с...
Viktor G.
2
30500 за редактор? )
Владимир
47
а через ESC-код ?
Alexey Kulakov
29
Чёт не понял, я ж правильной функцией воспользовался чтобы вывести отладочную информацию? но что-то она не ловится
notme
18
У меня есть функция где происходит это: write_bit(buffer, 1); write_bit(buffer, 0); write_bit(buffer, 1); write_bit(buffer, 1); write_bit(buffer, 1); w...
~
14
Добрый день! Скажите пожалуйста, а какие программы вы бы рекомендовали написать для того, чтобы научиться управлять памятью? Можно написать динамический массив, можно связный ...
Филипп
7
Недавно Google Project Zero нашёл багу в SQLite с помощью LLM, о чём достаточно было шумно в определённых интернетах, которые сопровождались рассказами, что скоро всех "ибешни...
Alex Sherbakov
5
Ребят в СИ можно реализовать ООП?
Николай
33
https://github.com/erlang/otp/blob/OTP-27.1/lib/kernel/src/logger_h_common.erl#L174 https://github.com/erlang/otp/blob/OTP-27.1/lib/kernel/src/logger_olp.erl#L76 15 лет назад...
Maksim Lapshin
20
Карта сайта