Переслать общедоступную сеть вокруг текущей сети

Для целей этого обсуждения у меня есть очень текущая всегда работающая Linux-машина с двумя nics:

  • wifi0
  • eth0

Очень грубая диаграмма моей желаемой конфигурации выглядит так:

(----------------------------) | linux/main computer | | | ----------- / ~ ~ ~ ~ ~ \ ------- -------| | internet |-- ~ wifi ~ --| wifi0 |------------| eth0 |======) ----------- \ ~ ~ ~ ~ ~ / ------- -------| | | | | (----------------------------) | \ subnet / | \ wifi / | ------------ | | dd-wrt |=================================================) | router |====\ subnet | |====\ subnet ------------ 

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

Проблема в том, что брандмауэр-шлюз, которому я доверяю, больше не является шлюзом; он не подключен к Интернету.

Скорее мой доступ в Интернет происходит от wifi0 . Я хочу отключить Wi-Fi , чтобы передать весь свой трафик через мои доверенные шлюзы через eth0 и иметь возможность поддерживать свою собственную локальную подсеть, управляемую моим маршрутизатором / шлюзом, главным образом, на моем маршрутизаторе / шлюзе.

Поэтому в основном я ищу способ настроить wifi0 для приема всего входящего трафика и сразу же перенаправить его через eth0 на мой маршрутизатор. Я хочу, чтобы весь исходящий трафик, не привязанный к моей локальной подсети, отправлялся напрямую через Wi-Fi в глобальный мир, но весь подсети трафика, который должен обрабатывать мой локальный маршрутизатор, и весь исходящий трафик – будь то мой маршрутизатор или мой интернет- подключенного компьютера, чтобы претерпеть nat и выглядеть так, как если бы он происходил из одного и того же адреса.

Это должно быть возможно, и я действительно хотел бы сделать это только с помощью iptables и / или инструментов, включенных в текущие пакеты iproute2 . Мое предпочтение – networkd для nic init / setup, и я знаю, что мне может потребоваться создать виртуальный nic или два в подключенном ящике linux, чтобы это произошло, но я нечеткий по деталям.

Кто-нибудь, пожалуйста, помогите мне с этим? Я очень плохо с фильтрами пакетов и тому подобное.

ps. Я едва ли женат на названии этого вопроса, и если кто-то может подумать о более сжатой / описательной, я был бы благодарен.

Если это имеет значение, я также могу:

 ----- \ router / box \ \ ________ / ---- | / \ eth0 [========] wan port | ---- | | | eth1 [========] lan port [=======\subnet ____ / \ ________ / 

… потому что у меня на самом деле есть два сетевых пользователя в моей главной коробке, кроме wifi0, где находится Интернет. Поэтому я предположил, что могу переправить (или переместить ?) Весь трафик между wifi0 и eth0, и для большинства намерений и целей они полностью игнорируют этих двух пользователей во время маршрутизации всего ежедневного трафика через eth1 . Я просто не очень разбираюсь в iptables или nftables или любом остальном достаточно хорошо, чтобы выполнить свою цель. Пожалуйста, дайте мне руку.

One Solution collect form web for “Переслать общедоступную сеть вокруг текущей сети”

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

Требования

  1. Весь интернет-исходящий трафик из управляемой подсети или компьютера Linux / Main («LMC»), чтобы перейти непосредственно в Интернет через wlan0, используя SNAT или MASQUERADE
  2. Весь входящий Интернет-трафик, входящий в исходящий Интернет-трафик, должен быть доставлен напрямую, используя отслеживание соединений, созданное SNAT или MASQUERADE (см. Выше)
  3. Весь подсети-исходящий трафик от LMC, чтобы идти прямым
  4. Весь неизвестный интернет-входящий трафик должен быть перенаправлен на «доверенный межсетевой экран» DD-WRT, который мы будем считать на 192.168.1.253

Я считаю, что мы сможем сделать это с помощью iptables .

 # Shortcuts filter() { iptables -t filter "$@"; } nat() { iptables -t nat "$@"; } # Set the policy for INPUT and FORWARDING to DROP, OUTPUT to ACCEPT iptables -P INPUT DROP iptables -P FORWARD DROP iptables -P OUTPUT ACCEPT # Empty all chains (erase all rules) iptables -Z # Enable forwarding echo 1> net.ipv4.ip_forward # SNAT outbound traffic on wlan0 (we will use MASQUERADE) nat -A POSTROUTING -o wlan0 -j MASQUERADE # Accept return traffic for our own outbound connections filter -A INPUT -i wlan0 -m state --state ESTABLISHED,RELATED -j ACCEPT # Forward all unknown inbound traffic to DD-WRT box, eg 192.168.1.253 nat -A PREROUTING -i wlan0 -j DNAT --to-destination 192.168.1.253 

Теперь настройте таблицы маршрутизации, чтобы ваш «LMC» знал, как добраться до DD-WRT, и, в свою очередь, по умолчанию маршрут DD-WRT является вашим «LMC». Фактически, все в вашей сети должно иметь «LMC» в качестве маршрута по умолчанию. Сам «LMC» должен иметь ваш провайдер вверх по течению в качестве маршрута по умолчанию.

Если вам нужна специфика для этого, предоставьте несколько (например) IP-адресов и шлюзов.

Одно предупреждение: я не уверен, что это возможно, как описано в вашем Вопросе. Возможно, вам понадобится NAT / маршрутизировать весь трафик через DD-WRT (даже исходящий трафик с «LMC»).

  • systemd-networkd .net игнорируется в контейнере systemd-nspawn
  • Настройка VLAN на linux-мосте для виртуальных машин с systemd
  • Linux + почему проблема с отображением ifconfig, но не с ethtool?
  • Получите WiFi SSID при подключении
  • IP-адрес удален из сетевого интерфейса, управляемого systemd-networkd
  • Как я могу заставить свои пользовательские службы ждать, пока сеть не будет в сети?
  • монтировать samba-файлы при загрузке с помощью systemd
  • systemd-networkd по умолчанию, если dhcp не работает
  • Возможно ли, чтобы пользователи debian подключались к сети через systemd-networkd?
  • Правильная настройка суффикса DNS Ubuntu 17.04?
  • Не удается настроить частную сеть с помощью systemd-networkd
  • Linux и Unix - лучшая ОС в мире.