LINUX.ORG.RU

Proxnox 7.4 и четыре сетевые. Интернет через прокси и объединение карт без dhcp.

 , , , ,


1

2

Привет, может кто то сталкивался и знает как правильно настроить. Есть сервер с двумя двух-портовыми сетевыми картами. В одной порты объеденены в linux bond0 в локальную сеть, со второй только один провод идет к интерфейсу который через другую локальную сеть подключен к интернету. На интерфейсе который подключен к интернету есть прокси сервер. сервер. В основном виртуальные хосты должны быть в одной локальной сети с proxmox, а интернет интерфейс должен через NAT только раздавать интернет на время конфигурации и настройки т.к. там debian. Конфиг написал такой:

auto lo
iface lo inet loopback

auto enp3s0f0
iface enp3s0f0 inet static

#auto enp3s0f1
#iface enp3s0f1 inet manual

auto enp6s0
iface enp6s0 inet manual

auto enp7s0
iface enp7s0 inet manual

auto bond0
iface bond0 inet static
        bond-slaves enp6s0 enp7s0
        bond-miimon 100
        bond-mode 802.3ad
        bond-xmit-hash-policy layer2+3


auto vmbr0
iface vmbr0 inet manual
        address 10.10.8.18/26
        gateway 10.10.8.1
        dns-nameservers 192.168.20.8 192.168.25.9
        dns-search srv.works.local works.local
        bridge-ports bond0
        bridge-stp off
        bridge-fd 0

auto vmbr1
iface vmbr1 inet manual
        address 10.10.9.41/26
        gateway 10.10.9.1
        bridge-ports enp3s0f0
        dns-nameservers 192.168.20.8 192.168.25.9
        dns-search proxy.works.ru srv.works.local works.local

auto vmbr100
#### private sub network
iface vmbr100 inet static
        address 10.19.7.1/26
        bridge-ports none
        bridge-stp off
        bridge-fd 0

#NAT SETTINGS
post-up echo 1 > /proc/sys/net/ipv4/ip_forward
post-up iptables -t nat -A POSTROUTING -s '10.19.7.0/26' -o vmbr1 -j MASQUERADE
post-down iptables -t nat -D POSTROUTING -s '10.19.7.0/26' -o vmbr1 -j MASQUERADE

про файлы /etc/apt/apt.conf , /etc/apt/apt.conf.d/10proxy и /etc/enveropment в курсе. Cделал соответствующие записи и разложил по соответствующим местам и в виртуалках и на proxmox . Пробовал прибить их сначала на одной, потом на другой, вернув на первую. Интернет виртуалки не видят.

В общем не получается раздать виртуальным машинам интернет. Не видят они прокси что то. хотя 10.10.9.1 пингуется, и 10.10.8.1 пингуется. а 192.168.20.8 192.168.25.9 и proxy.works.ru srv.works.local works.local не пингуется ничего. Но мне надо что бы оба интерфейса работали, т.к. я сам иогу видеть только из 10.10.8.18 с компьютера 10.10.8.22. и сам доступ в интернет из этой части не имею и 10.10.9.41 не вижу.



Последнее исправление: reanews (всего исправлений: 3)
Ответ на: комментарий от Harliff

я завтра проверю, но iptables -L -t nat я запускал. там внизу несколько раз типа 10.19.7.0/26 все разрешено. Отпишусь. У меня на интерфейсе у виртуальной машины снята галка фаервола.

reanews
() автор топика
Последнее исправление: reanews (всего исправлений: 1)
Ответ на: комментарий от Harliff

вот уточнил:


:~# iptables -S -t nat

-P PREROUTING ACCEPT
-P INPUT ACCEPT
-P OUTPUT ACCEPT
-P POSTROUTING ACCEPT
-A POSTROUTING -s 10.19.7.0/26 -o vmbr1 -j MASQUERADE
-A POSTROUTING -s 10.19.7.0/26 -o vmbr1 -j MASQUERADE
-A POSTROUTING -s 10.19.7.0/26 -o vmbr1 -j MASQUERADE
-A POSTROUTING -s 10.19.7.0/26 -o vmbr1 -j MASQUERADE
-A POSTROUTING -s 10.19.7.0/26 -o vmbr1 -j MASQUERADE
-A POSTROUTING -s 10.19.7.0/26 -o vmbr1 -j MASQUERADE
-A POSTROUTING -s 10.19.7.0/26 -o vmbr1 -j MASQUERADE

~# iptables -S -t filter

-P INPUT ACCEPT
-P FORWARD ACCEPT
-P OUTPUT ACCEPT

[cut = виртуальные машины за NAT настроены так:]


network:
  ethernets:
    ens18:
	addresses:
	- 10.19.7.2/24
	gateway4: 10.19.7.1
	nameservers:
	   addresses:
	   - 192.168.20.8
	   - 192.168.25.9
	   - 8.8.8.8
           - 10.19.7.1
           search:
	   - srv1.works.local
	   - works.local
	   - proxy.works.local
	optional: true
	 dhcp4: no
  version: 2

reanews
() автор топика

Вообще, тот же libvirt для бриджей делает правила вида

$IPT4 -A FORWARD -d $PUBLIC_IP4_RANGE -o $PUBLIC_IFACE -m conntrack --ctstate RELATED,ESTABLISHED -j ACCEPT
$IPT4 -A FORWARD -s $PUBLIC_IP4_RANGE -i $PUBLIC_IFACE -j ACCEPT
$IPT4 -A FORWARD -i $PUBLIC_IFACE -o $PUBLIC_IFACE -j ACCEPT
$IPT4 -A FORWARD -o $PUBLIC_IFACE -j REJECT --reject-with icmp-port-unreachable
$IPT4 -A FORWARD -i $PUBLIC_IFACE -j REJECT --reject-with icmp-port-unreachable

и

Chain LIBVIRT_PRT (1 references)
 pkts bytes target     prot opt in     out     source               destination         
  690 69883 RETURN     all  --  *      *       192.168.122.0/24     224.0.0.0/24        
    0     0 RETURN     all  --  *      *       192.168.122.0/24     255.255.255.255     
27791 1731K MASQUERADE  tcp  --  *      *       192.168.122.0/24    !192.168.122.0/24     masq ports: 1024-65535
14974 2086K MASQUERADE  udp  --  *      *       192.168.122.0/24    !192.168.122.0/24     masq ports: 1024-65535
    0     0 MASQUERADE  all  --  *      *       192.168.122.0/24    !192.168.122.0/24    

Просто запили ubuntu какую-нибудь, подключись virt-manager, создай работающую сеть и подсмотри что оно там создаёт.

targitaj ★★★★★
()
Ответ на: комментарий от targitaj

я с маршрутами не очень, можно чуть подробнее?

на основной машине

iptables -S -t nat

-P PREROUTING ACCEPT
-P INPUT ACCEPT
-P OUTPUT ACCEPT
-P POSTROUTING ACCEPT
-A POSTROUTING -s 10.19.7.0/26 -o vmbr1 -j MASQUERADE
-A POSTROUTING -s 10.19.7.0/26 -o vmbr1 -j MASQUERADE
-A POSTROUTING -s 10.19.7.0/26 -o vmbr1 -j MASQUERADE
-A POSTROUTING -s 10.19.7.0/26 -o vmbr1 -j MASQUERADE
-A POSTROUTING -s 10.19.7.0/26 -o vmbr1 -j MASQUERADE
-A POSTROUTING -s 10.19.7.0/26 -o vmbr1 -j MASQUERADE
-A POSTROUTING -s 10.19.7.0/26 -o vmbr1 -j MASQUERADE

~# iptables -S -t filter

-P INPUT ACCEPT
-P FORWARD ACCEPT
-P OUTPUT ACCEPT

на виртуальной


Chain INPUT (policcy ACCEPT)
target    prot  opt sourse destination

Chain FORWARD (policcy ACCEPT)
target    prot  opt sourse destination

Chain OUTPUT (policcy ACCEPT)
target    prot  opt sourse destination

как настроены виртуалки и основная я на старте писал уже. Т.е. настройки интернетовского порта указаны в vmbr1 т.к. если указать в enp3s0f0, то локалка перестает видеть локальную сеть настроенную через bont0.

А для связи с интернетом нужно указать прокси в файлах /etc/apt.conf , /etc/apt.conf.d/10proxy и /etc/environment

но в данном случае если настроить интернет интерфейс vmbr1 для доступа в интернет для сети интерфейса vmbr100 , то прокси указать негде получается, т.к. этот интерфейс уже не часть основного сервера proxmox и не часть виртуалки из сети vmbr100 (я так думаю) запутался уже.

вообще настройку делал похожей на (adminwin.ru/nastroyka-nat-dlya-virtualynh-mashin-proxmox/)

reanews
() автор топика
Последнее исправление: reanews (всего исправлений: 1)
Ответ на: комментарий от reanews

Это не машруты. У тебя есть правила, в которых ты указываешь критерии. Приходит пакет. Система его отсматривает и принимает решение что с ним делать, на основании заявленных в правилах критериев.

Смотри.

-A POSTROUTING -s 10.19.7.0/26 -o vmbr1 -j MASQUERADE

значит добавить в цепь правил POSTROUTING в таблице nat правило, которое будет ждать пакеты с source адресом из диапазона 10.19.7.0/26 вышедших из интерфейса vmbr1 чтобы сделать с ними действие MASQUERADE. Если пакет не попадает под эти критерии, то правило к нему НЕ применяется. Вот этот момент самый главный надо понять. Правило применяется по факту соответствия критериям. Далее, правила выстроены в цепь. Пакет будет проверяться на соответствие критериям по правилам в этой цепи. По порядку. Первое же совпадение приведёт к действию и стоящие дальше правила не отработают.

Критериев немного, разберись с ними.

source addr - адрес в поле source ip в ip пакете

destination add - адрес в поле dest ip в ip пакете

input interface - интерфейс куда предполагается зайти пакету (это решается как раз маршрутизацией)

output interface - интерфейс из которого пакет вышел

protocol - какой протокол (tcp udp icmp и прочие)

Вот тебе на русском древняя дока https://www.opennet.ru/docs/RUS/iptables/

Вот тебе оригинал https://www.frozentux.net/documents/iptables-tutorial/

Пробегись, там есть схемы и примеры.

targitaj ★★★★★
()
Последнее исправление: targitaj (всего исправлений: 2)
Ответ на: комментарий от targitaj

сейчас сразу так разобраться сложно. но тут может быть по другому как то решить? Я сделал traceroute по dns-nameservers 192.168.20.8 192.168.25.9 и он их оба хорошо видит. т.к. маршрут идет через bond0 тут все правильно. Но proxy он не трассирует и не видит, т.к. он может быть увиден только через vmbr0 и конечно он его не видит никак. Т.к. пытается его пинговать через bond0. Тут у мен идея перенастроить интернет на eno3s0f0, а виртуалки прятать за vmbr1 , Только на Proxmox надо как то запретить искать локальные машины 10.10.8.1/26 в eno3s0f0, а то он путается и вообще становится не доступен. И в 10.10.8.1/26 искать интернет и прокси тоже надо запретить. Мне надо правило как то запилить. Это будет типа?:

iptables -I FORWARD -s 10.10.8.1/26 -i $LAN_eno3s0f0 -j DROP

iptables -I FORWARD -s $LAN_eno3s0f0 -i $LAN_bond0 -j DROP

reanews
() автор топика