Моя машина выполняет Сервер Ubuntu 16.04, и это имеет два NICs, 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
.
Попробовать.