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

Это работает теперь.
Я удалил маршрут значения по умолчанию, который набор дал мне и добавил маршрут только к моему openvpn серверу. Это добилось цели, поскольку теперь openvpn мог продвинуть все маршруты мне, включая маршрут по умолчанию :)

0
задан 27 July 2012 в 20:39
3 ответа

попробуйте

#mark packets from 192.168.1.1 to 192.168.1.2
iptables -t mangle -I OUTPUT -s 192.168.1.1 -d 192.168.1.2 -j MARK --set-mark 11
#mark packets from 192.168.1.2 to 192.168.1.1
iptables -t mangle -I OUTPUT -s 192.168.1.2 -d 192.168.1.1 -j MARK --set-mark 12

#add routing table for 192.168.1.1 
ip ru a fwmark 11 table 11
ip r a 192.168.1.2 dev eth0  t 11

#add routing table for 192.168.1.2
ip ru a fwmark 12 table 12
ip r a 192.168.1.1 dev eth1  t 12

man ip, man iptables для получения дополнительной информации

0
ответ дан 4 December 2019 в 11:57

Использовать сетевые пространства имен. Это похоже на запуск виртуальной машины, но это не виртуальная машина, а просто нечто похожее на отдельный IP-стек.

ip netns add otherhost
ip netns exec otherhost /bin/bash

Это откроет оболочку в сетевом пространстве имен otherhost . Если вы изучите конфигурацию сети в нем, вы увидите, что интерфейса нет. Это как если бы вы использовали другой хост.

Теперь переместите интерфейс eth1 в сетевое пространство имен otherhost :

ip link set eth1 netns otherhost

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

Обратите внимание, что если вы закроете всю свою оболочку на otherhost , пространство имен сети исчезнет,

3
ответ дан 4 December 2019 в 11:57

https://www.kernel.org/doc/Documentation/networking/ip-sysctl.txt

accept_local - BOOLEAN Принимать пакеты с локальными адресами источника. В в сочетании с подходящей маршрутизацией, это может использоваться для направления пакетов между двумя локальными интерфейсами по сети и их принятие должным образом. по умолчанию FALSE

Использование sysctl -w net.ipv4.conf.eth0.accept_local = 1

Отправляет пакет по сети.

1
ответ дан 4 December 2019 в 11:57

Теги

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