Два шлюза в одной сети

Моя машина запускает Ubuntu Server 16.04 и имеет два сетевых адаптера eth0 и eth1, как показано на сетевой диаграмме. Первоначально его роль заключалась в маршрутизации трафика из подсети 192.168.50.0/24 в подсеть 192.168.1.0/24, где DSL-маршрутизатор подключается к Интернету. Поэтому моя конфигурация сети:

Выход (eth0) cat /etc/network/interfaces.d/eth0

#auto eth0 #iface eth0 inet dhcp auto eth0 iface eth0 inet static address 192.168.1.7 netmask 255.255.255.0 gateway 192.168.1.1 dns-nameservers 192.168.1.1

Выход (eth1) cat /etc/network/interfaces.d/eth1

#auto eth0 #iface eth0 inet dhcp auto eth1 iface eth1 inet static address 192.168.50.7 netmask 255.255.255.0

Теперь я добавлен еще один сотовый маршрутизатор, который также подключается к Интернету, и он подключен к подсети 192.168.50.0/24. Мне нужно проложить какой-то интернет-трафик через этот сотовый маршрутизатор, но не все (например, ssh-соединения). Любые идеи о том, как этого достичь?

3
задан 24 April 2017 в 20:12

3 ответа

Здесь мы возьмем ssh как службу для маршрутизации. Используйте таблицу mangle iptable для изменения пакетов ssh.

sudo iptables -t mangle -A OUTPUT -p tcp --dport 80 -j MARK --set-mark 0x1

Мы отмечаем все пакеты с портом назначения 22 как 0x1.

Теперь сохраните и перезапустите iptables.

sudo service iptables save sudo service iptables restart

Затем создайте новую таблицу маршрутов IP в /etc/iproute2/rt_tables, просто указав запись

100 sshtable

Запишите правило для пакетов ssh.

ip rule add fwmark 0x1 lookup sshtable

Добавить маршрут в новый таблица sshtable. Весь другой трафик будет проходить через шлюз по умолчанию, который можно увидеть с помощью команды ip route show.

Мы копируем все записи, кроме записи по умолчанию, из основной таблицы.

sudo ip route show table main | grep -Ev ^default | while read ROUTE ; do ip route add table sshtable $ROUTE; done

Добавить запись по умолчанию для ssh пакетов в таблицу sshtable

sudo ip route add default gw 192.168.50.254 table sshtable

Используйте ip route show table sshtable для отображения всех маршрутов в sshtable.

Попробуйте

2
ответ дан 18 July 2018 в 14:21

Здесь мы возьмем ssh как службу для маршрутизации. Используйте таблицу mangle iptable для изменения пакетов ssh.

sudo iptables -t mangle -A OUTPUT -p tcp --dport 80 -j MARK --set-mark 0x1

Мы отмечаем все пакеты с портом назначения 22 как 0x1.

Теперь сохраните и перезапустите iptables.

sudo service iptables save sudo service iptables restart

Затем создайте новую таблицу маршрутов IP в /etc/iproute2/rt_tables, просто указав запись

100 sshtable

Запишите правило для пакетов ssh.

ip rule add fwmark 0x1 lookup sshtable

Добавить маршрут в новый таблица sshtable. Весь другой трафик будет проходить через шлюз по умолчанию, который можно увидеть с помощью команды ip route show.

Мы копируем все записи, кроме записи по умолчанию, из основной таблицы.

sudo ip route show table main | grep -Ev ^default | while read ROUTE ; do ip route add table sshtable $ROUTE; done

Добавить запись по умолчанию для ssh пакетов в таблицу sshtable

sudo ip route add default gw 192.168.50.254 table sshtable

Используйте ip route show table sshtable для отображения всех маршрутов в sshtable.

Попробуйте

2
ответ дан 24 July 2018 в 20:22

Здесь мы возьмем ssh как службу для маршрутизации. Используйте таблицу mangle iptable для изменения пакетов ssh.

sudo iptables -t mangle -A OUTPUT -p tcp --dport 80 -j MARK --set-mark 0x1

Мы отмечаем все пакеты с портом назначения 22 как 0x1.

Теперь сохраните и перезапустите iptables.

sudo service iptables save sudo service iptables restart

Затем создайте новую таблицу маршрутов IP в /etc/iproute2/rt_tables, просто указав запись

100 sshtable

Запишите правило для пакетов ssh.

ip rule add fwmark 0x1 lookup sshtable

Добавить маршрут в новый таблица sshtable. Весь другой трафик будет проходить через шлюз по умолчанию, который можно увидеть с помощью команды ip route show.

Мы копируем все записи, кроме записи по умолчанию, из основной таблицы.

sudo ip route show table main | grep -Ev ^default | while read ROUTE ; do ip route add table sshtable $ROUTE; done

Добавить запись по умолчанию для ssh пакетов в таблицу sshtable

sudo ip route add default gw 192.168.50.254 table sshtable

Используйте ip route show table sshtable для отображения всех маршрутов в sshtable.

Попробуйте

2
ответ дан 31 July 2018 в 13:34

Другие вопросы по тегам:

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