Моя машина запускает 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-соединения). Любые идеи о том, как этого достичь?
Здесь мы возьмем 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.
Попробуйте
Здесь мы возьмем 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.
Попробуйте
Здесь мы возьмем 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.
Попробуйте