Владимир, Благодарю вас! Очень помогли и все встало на свои места. На самом деле странно то, что в центос 6 было достаточным указать 2 разных маршрута в таблицах и их гейтвеи и соответственно при обращении не к дефолтному пакеты уходили обратно именно с него. Теперь эта схема не работает, думаю, что даже в 7 оси уже будет тоже самое.
"то что вы добавил два шлюза они будут по очереди выбиратся и это может привести к неожиданной работе сайтов и приложений у клиентов в локальной сети." - это просто эксперимент и учения ради =)
"ip rule add from 192.168.0.166 table T1" - именно это и было собственно тем, что нужно и натолкнуло на определенные мысли, спасибо большое еще раз!
ip route replace default scope global nexthop via 217.xxx.xxx.217 dev enp6s0 weight 1 nexthop via 192.168.59.1 dev enp7s0 weight 1
вот в таком варианте я вроде как могу достучаться до 217 и локалке, НО, получается, что работает одновременно 2 шлюза и фиг пойми кто из локалки и как идет в интернет. Очень не хорошо все это
Собственно я же итак пробрасываю 192.168.0.166 через 217.ххх.ххх.218 - или что конкретно вы имеете в виду, что-то я не совсем пойму эту фразу:
простой - 192.168.0.166 натить в интернет через 217.xxx.xxx.218
пункт 2 -сложный - маскарадить и маркировать запросы вашего шлюза к 192.168.0.166 на нужные порты чтобы потом их отправлять с нужного ип на шлюзе.
здесь речь идет и connmark я так понимаю? или какой вариант?
Буду очень благодарен и признателен если опишите поподробней
"Отвечу на ваш вопрос из комментария: если ipv4 forward =0" конечно же он включен, вопрос в том, что есть еще вот такие вот моменты и они мне не совсем понятны:
net.ipv6.conf.default.accept_redirects = 0
net.ipv6.conf.all.accept_redirects = 0
net.ipv4.conf.default.send_redirects = 0
net.ipv4.conf.default.accept_redirects = 0
net.ipv4.conf.all.send_redirects = 0
net.ipv4.conf.all.accept_redirects = 0
в rttables
101 T1
102 T2
(enp5s0 192.168.0.0/24, enp6s0 217.xxx.xxx.218, -первый isp enp7s0 192.168.59.2 - второй isp)
На старте вот так вот скриптик
#!/bin/bash
ip route add 127.0.0.0/8 dev lo table T1
ip route add 192.168.0.0/24 dev enp5s0 table T1
ip route add 217.ххх.ххх.216/29 dev enp6s0 src 217.ххх.ххх.218 table T1
ip route add default via 217.ххх.ххх.217 dev enp6s0 table T1
ip route add 127.0.0.0/8 dev lo table T2
ip route add 192.168.0.0/24 dev enp5s0 table T2
ip route add 192.168.59.0/30 dev enp7s0 src 192.168.59.2 table T2
ip route add default via 192.168.59.1 dev enp7s0 table T2
ip route add 217.xxx.xxx.216/29 dev enp6s0 src 217.xxx.xxx.218
ip route add 192.168.59.0/30 dev enp7s0 src 192.168.59.2
ip route add 192.168.0.0/24 dev enp5s0 src 192.168.0.1
ip rule add from 217.xxx.xxx.218 table T1
ip rule add from 192.168.59.2 table T2
ip route replace default via 192.168.59.1.
exit 0
после чего моя локалка идет через шлюз 2isp т.е. через 192,168,59,1, но тогда из мира при обращении на 217.ххх.ххх.218 не могу попасть в локалку на свой комп, который проброшен в iptables
вот конгфиг iptables
*filter
:INPUT ACCEPT [0:0]
:FORWARD ACCEPT [0:0]
:OUTPUT ACCEPT [0:0]
-I FORWARD -j NETFLOW
-I INPUT -j NETFLOW
-I OUTPUT -j NETFLOW
-A FORWARD -m ratelimit --ratelimit-set lowusersout --ratelimit-mode src -j DROP
-A FORWARD -m ratelimit --ratelimit-set lowusersin --ratelimit-mode dst -j DROP
-A INPUT -p icmp -j ACCEPT
-A INPUT -i lo -j ACCEPT
-A INPUT -i enp5s0 -j ACCEPT
-A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT
-A INPUT -m state --state INVALID -j DROP
-A INPUT -p tcp -m state --state NEW -m tcp --dport 22 -j ACCEPT
-A INPUT -p tcp -m state --state NEW -m tcp --dport 25 -j ACCEPT
-A INPUT -p udp -m state --state NEW -m udp --dport 53 -j ACCEPT
-A INPUT -p tcp -m state --state NEW -m tcp --dport 80 -j ACCEPT
-A INPUT -p tcp -m state --state NEW -m tcp --dport 110 -j ACCEPT
-A INPUT -p tcp -m state --state NEW -m tcp --dport 123 -j ACCEPT
-A INPUT -p udp -m state --state NEW -m udp --dport 123 -j ACCEPT
-A INPUT -p tcp -m state --state NEW -m tcp --dport 143 -j ACCEPT
-A INPUT -p tcp -m state --state NEW -m tcp --dport 443 -j ACCEPT
-A INPUT -p tcp -m state --state NEW -m tcp --dport 445 -j ACCEPT
-A INPUT -p tcp -m state --state NEW -m tcp --dport 465 -j ACCEPT
-A INPUT -p tcp -m state --state NEW -m tcp --dport 993 -j ACCEPT
-A INPUT -p tcp -m state --state NEW -m tcp --dport 995 -j ACCEPT
-A INPUT -p udp -m state --state NEW -m udp --dport 3702 -j ACCEPT
-A INPUT -s 192.168.0.0/24 -p udp -m udp --dport 137 -j ACCEPT
-A INPUT -s 192.168.0.0/24 -p udp -m udp --dport 138 -j ACCEPT
-A INPUT -s 192.168.0.0/24 -p tcp -m tcp --dport 139 -j ACCEPT
-A INPUT -p tcp -s 192.168.0.0/24 --dport 5357 -j ACCEPT
-A INPUT -p tcp -s 192.168.0.0/24 --sport 5357 -j ACCEPT
-A INPUT -p tcp --dport 5357 -j ACCEPT
-A INPUT -s 192.168.0.0/24 -d 239.255.255.250 -m pkttype --pkt-type multicast -j ACCEPT
-A INPUT -j REJECT --reject-with icmp-host-prohibited
-A FORWARD -m state --state RELATED,ESTABLISHED -j ACCEPT
-A FORWARD -p icmp -j ACCEPT
-A FORWARD -i lo -j ACCEPT
-A FORWARD -i enp5s0 -j ACCEPT
-A FORWARD -s 192.168.0.0/24 -d 239.255.255.250 -m pkttype --pkt-type multicast -j ACCEPT
-A FORWARD -d 192.168.0.2/32 -i enp6s0 -p tcp -m tcp --dport 9011 -j LOG --log-level debug - камеры с двра чтобы смотреть с мира офис
-A FORWARD -d 192.168.0.2/32 -i enp6s0 -p udp -m udp --dport 9011 -j LOG --log-level debug
-A FORWARD -d 192.168.0.166/32 -i enp6s0 -p tcp -m tcp --dport 53388 -j LOG --log-level debug - компы в локалке для доступа по rdp
-A FORWARD -d 192.168.0.166/32 -i enp6s0 -p udp -m udp --dport 53388 -j LOG --log-level debug
-A FORWARD -d 192.168.0.2/32 -i enp6s0 -p tcp -m tcp --dport 9011 -j ACCEPT
-A FORWARD -d 192.168.0.2/32 -i enp6s0 -p udp -m udp --dport 9011 -j ACCEPT
-A FORWARD -d 192.168.0.166/32 -i enp6s0 -p tcp -m tcp --dport 53388 -j ACCEPT
-A FORWARD -d 192.168.0.166/32 -i enp6s0 -p udp -m udp --dport 53388 -j ACCEPT
-A FORWARD -j REJECT --reject-with icmp-host-prohibited
COMMIT
# Completed on Sun Aug 16 22:34:45 2020
# Generated by iptables-save v1.8.4 on Sun Aug 16 22:34:45 2020
*nat
:PREROUTING ACCEPT [0:0]
:POSTROUTING ACCEPT [0:0]
:OUTPUT ACCEPT [0:0]
-A PREROUTING -d 217.xxx.xxx.218/32 -i enp6s0 -p tcp -m tcp --dport 9011 -j DNAT --to-destination 192.168.0.2:9011
-A PREROUTING -d 217.xxx.xxx.218/32 -i enp6s0 -p udp -m udp --dport 9011 -j DNAT --to-destination 192.168.0.2:9011
-A PREROUTING -d 217.xxx.xxx.218/32 -i enp6s0 -p tcp -m tcp --dport 53388 -j DNAT --to-destination 192.168.0.166:53388
-A PREROUTING -d 217.xxx.xxx.218/32 -i enp6s0 -p udp -m udp --dport 53388 -j DNAT --to-destination 192.168.0.166:53388
-A POSTROUTING -m mark --mark 0x9 -j MASQUERADE
COMMIT
# Completed on Sun Aug 16 22:34:45 2020
# Generated by iptables-save v1.8.4 on Sun Aug 16 22:34:45 2020
*mangle
:PREROUTING ACCEPT [0:0]
:INPUT ACCEPT [0:0]
:FORWARD ACCEPT [0:0]
:OUTPUT ACCEPT [0:0]
:POSTROUTING ACCEPT [0:0]
-A PREROUTING -i enp5s0 -j MARK --set-xmark 0x9/0xffffffff
COMMIT
Есть подозрение, что в centos8 по умолчанию выключены опции в ядре, ipv4 forward =1, но что еще нужно включить в ядре чтобы это работало? Может быть какие-то опции которые теперь по умолчанию выключены...
В общем непонятно, в тупике что-то. Пока по умолчанию gw 217.ххх.ххх.218 работает все отлично, из мира захожу на свой комп в локалке и вижу камеры, как только меняю gw на 192,168,59,1 из мира вижу только apache на 217.ххх.ххх.218, nfsen/mrtg и т.д. но дальше в локалку к компу и камерам попасть не могу
Написано
Войдите на сайт
Чтобы задать вопрос и получить на него квалифицированный ответ.
"то что вы добавил два шлюза они будут по очереди выбиратся и это может привести к неожиданной работе сайтов и приложений у клиентов в локальной сети." - это просто эксперимент и учения ради =)
"ip rule add from 192.168.0.166 table T1" - именно это и было собственно тем, что нужно и натолкнуло на определенные мысли, спасибо большое еще раз!