LINUX.ORG.RU

Сообщения Uranus

 

Два WEB сервера за NAT-ом

Форум — General

Доброго времени суток дамы и господа!

Есть вопрос.
Имеется роутер на Убунте, за ним и за натом, в локальной сети, находятся два Web сервера с разными локальными IP.
Соответственно попасть на оба этих сервера обычным способом не получается, так как внешний IP один и NAT переадресует трафик только на один из этих серверов.
Хотелось бы узнать, есть ли какой-нибудь способ чтобы оба эти сервера отвечали с одного внешнего IP, ну там селекция по URL или какая-нибудь программа на роутере будет селекцией заниматься.
Можно конечно сервера селектировать по портам, одному оставить 80, а другому сделать скажем 81 порт, и NAT-ом уже раскидывать, но лучше сделать так чтобы внешний пользователь даже не знал что сервера два.

 ,

Uranus
()

Работает ли TRIM на SSD диске отданом VM?

Форум — Admin

Доброго времени суток!

Прежде всего у меня есть система «Ubuntu server 18.04», на которой поднята виртуальная машина KVM с установленной «Windows 10», которой полностью отдан SSD диск командой
"--disk /dev/disk/by-id/ata-WDC_WD1600AAJS-00YZCA0_WD-WCAYUC485843,bus=virtio,sparse=false,cache=none,io=native"
(не обращайте на название диска в этой строке, на самом деле диск другой)

Хотелось бы узнать работает ли с этим диском TRIM, если да то где, на хосте или ещё где?

 , ,

Uranus
()

PPPoE и bridge

Форум — Admin

Доброго времени суток дамы и господа!

Имеется несколько вопросов.
Ubuntu 18.04 server, работает роутером, дальше буду называть этот копмьютер роутером, есть два провайдера, оба поднимаются через PPPoE на этом роутере.
Поднял на этом же роутере виртуальную машину с Windows (там крутиться одна программа очень нужная мне программа и несколько разных серверов).

Кроме того в локалке имеется ещё один компьютер, для работы.

Схема подключения такая, выходящий для локалки кабель из роутера подключен к хабу, который уже раздаёт локалку как и для рабочего компьютера так и для вируталки.
Виртуалка через бридж связана с реальной (свободной)сетевой картой в роутере, и эта реальная сетевая включена в роутер.

Возникает следующая проблема, после того как я в /etc/network/interfaces прописываю бридж, у меня перестают подниматься PPPoE соединения если они прописаны в этом же файле.

Вот сам файл:

auto lo
iface lo inet loopback

pre-up ipset restore < /etc/network/ipset.rules
pre-up iptables-restore -c < /etc/network/firewall-v4
pre-up sudo bash -c 'echo ffff > /sys/class/net/enp3s0f3/queues/rx-0/rps_cpus'

auto enp3s0f0
iface enp3s0f0 inet static
address 192.168.0.1
netmask 255.255.255.0
post-up ethtool -K enp3s0f0 gro off gso off tso off
post-up ethtool -G enp3s0f0 rx 4096 tx 4096
post-up ifconfig enp3s0f0 txqueuelen 10000


auto enp3s0f3
iface enp3s0f3 inet manual
post-up ethtool -K enp3s0f3 gro off gso off tso off
post-up ethtool -G enp3s0f3 rx 4096 tx 4096
post-up ifconfig enp3s0f3 txqueuelen 10000


auto enp3s0f2
iface enp3s0f2 inet manual
#dns-nameserver 8.8.4.4 1.1.1.1
post-up ethtool -K enp3s0f2 gro off gso off tso off
post-up ethtool -G enp3s0f2 rx 4096 tx 4096
post-up ifconfig enp3s0f2 txqueuelen 10000


auto p11
iface p11 inet ppp
pre-up /bin/ip link set enp3s0f3 up
provider p11


auto p22
iface p22 inet ppp
pre-up /bin/ip link set enp3s0f2 up
provider p22


auto enp4s0
iface enp4s0 inet manual
post-up ethtool -K enp4s0 gro off gso off tso off
post-up ethtool -G enp4s0 rx 4096 tx 4096
post-up ifconfig enp4s0 txqueuelen 10000


post-up suricata -v -q 0 -c /etc/suricata/suricata.yaml -D
post-down iptables-save -c > /etc/network/firewall-v4
post-down ipset save > /etc/network/ipset.rules
post-down suricatasc -c shutdown

auto br0
iface br0 inet static
address 192.168.0.4
netmask 255.255.255.0
gateway 192.168.0.1
broadcast 192.168.0.255
dns-nameserver 192.168.0.1
bridge_ports enp4s0
bridge_stp off
bridge_fd 0
bridge_waitport 0

Приходиться поднимать их позже в другом месте, но стоит только убрать бридж как всё начинает работать...
Хотелось бы понять в чём проблема...?!

 , ,

Uranus
()

Подключение модуля и другое...

Форум — Admin

Доброго времени суток!

Я возможно туплю дамы и господа, но возник один вопрос.
Ubuntu server 18.04.

Пытаюсь скомпилировать и установить драйвера для сетевой карты I350-T4V2, которые взял с сайта Intel.
С самой компиляцией проблем нет.
Пытаюсь подключить модуль
rmmod igb; modprobe igb RSS=6,6,6,6

Ошибок нет.

Выхлоп modinfo igb

Intel Corporation, <e1000-devel@lists.sourceforge.net>
root@Router:/var/log# modinfo igb
filename:       /lib/modules/4.15.0-46-generic/updates/drivers/net/ethernet/intel/igb/igb.ko
version:        5.3.5.22
license:        GPL
description:    Intel(R) Gigabit Ethernet Linux Driver
author:         Intel Corporation, <e1000-devel@lists.sourceforge.net>
srcversion:     E29E48F02CC07EACD9C4C96
alias:          pci:v00008086d000010D6sv*sd*bc*sc*i*
alias:          pci:v00008086d000010A9sv*sd*bc*sc*i*
alias:          pci:v00008086d000010A7sv*sd*bc*sc*i*
alias:          pci:v00008086d000010E8sv*sd*bc*sc*i*
alias:          pci:v00008086d00001526sv*sd*bc*sc*i*
alias:          pci:v00008086d0000150Dsv*sd*bc*sc*i*
alias:          pci:v00008086d000010E7sv*sd*bc*sc*i*
alias:          pci:v00008086d000010E6sv*sd*bc*sc*i*
alias:          pci:v00008086d00001518sv*sd*bc*sc*i*
alias:          pci:v00008086d0000150Asv*sd*bc*sc*i*
alias:          pci:v00008086d000010C9sv*sd*bc*sc*i*
alias:          pci:v00008086d00000440sv*sd*bc*sc*i*
alias:          pci:v00008086d0000043Csv*sd*bc*sc*i*
alias:          pci:v00008086d0000043Asv*sd*bc*sc*i*
alias:          pci:v00008086d00000438sv*sd*bc*sc*i*
alias:          pci:v00008086d00001516sv*sd*bc*sc*i*
alias:          pci:v00008086d00001511sv*sd*bc*sc*i*
alias:          pci:v00008086d00001510sv*sd*bc*sc*i*
alias:          pci:v00008086d00001527sv*sd*bc*sc*i*
alias:          pci:v00008086d0000150Fsv*sd*bc*sc*i*
alias:          pci:v00008086d0000150Esv*sd*bc*sc*i*
alias:          pci:v00008086d00001524sv*sd*bc*sc*i*
alias:          pci:v00008086d00001523sv*sd*bc*sc*i*
alias:          pci:v00008086d00001522sv*sd*bc*sc*i*
alias:          pci:v00008086d00001521sv*sd*bc*sc*i*
alias:          pci:v00008086d00001539sv*sd*bc*sc*i*
alias:          pci:v00008086d0000157Csv*sd*bc*sc*i*
alias:          pci:v00008086d0000157Bsv*sd*bc*sc*i*
alias:          pci:v00008086d00001538sv*sd*bc*sc*i*
alias:          pci:v00008086d00001537sv*sd*bc*sc*i*
alias:          pci:v00008086d00001536sv*sd*bc*sc*i*
alias:          pci:v00008086d00001533sv*sd*bc*sc*i*
alias:          pci:v00008086d00001F45sv*sd*bc*sc*i*
alias:          pci:v00008086d00001F41sv*sd*bc*sc*i*
alias:          pci:v00008086d00001F40sv*sd*bc*sc*i*
depends:        ptp,dca
retpoline:      Y
name:           igb
vermagic:       4.15.0-46-generic SMP mod_unload
parm:           InterruptThrottleRate:Maximum interrupts per second, per vector, (max 100000), default 3=adaptive (array of int)
parm:           IntMode:Change Interrupt Mode (0=Legacy, 1=MSI, 2=MSI-X), default 2 (array of int)
parm:           Node:set the starting node to allocate memory on, default -1 (array of int)
parm:           LLIPort:Low Latency Interrupt TCP Port (0-65535), default 0=off (array of int)
parm:           LLIPush:Low Latency Interrupt on TCP Push flag (0,1), default 0=off (array of int)
parm:           LLISize:Low Latency Interrupt on Packet Size (0-1500), default 0=off (array of int)
parm:           RSS:Number of Receive-Side Scaling Descriptor Queues (0-8), default 1, 0=number of cpus (array of int)
parm:           VMDQ:Number of Virtual Machine Device Queues: 0-1 = disable, 2-8 enable, default 0 (array of int)
parm:           max_vfs:Number of Virtual Functions: 0 = disable, 1-7 enable, default 0 (array of int)
parm:           MDD:Malicious Driver Detection (0/1), default 1 = enabled. Only available when max_vfs is greater than 0 (array of int)
parm:           QueuePairs:Enable Tx/Rx queue pairs for interrupt handling (0,1), default 1=on (array of int)
parm:           EEE:Enable/disable on parts that support the feature (array of int)
parm:           DMAC:Disable or set latency for DMA Coalescing ((0=off, 1000-10000(msec), 250, 500 (usec)) (array of int)
parm:           LRO:Large Receive Offload (0,1), default 0=off (array of int)
parm:           debug:Debug level (0=none, ..., 16=all) (int)

Но когда перезагружаю компьютер то вижу в dmesg такое

[   13.242751] dca service started, version 1.12.1
[   13.322594] igb: unknown parameter 'RSS' ignored
[   13.322632] SSE version of gcm_enc/dec engaged.
[   13.508601] igb: Intel(R) Gigabit Ethernet Network Driver - version 5.4.0-k
[   13.584513] igb: Copyright (c) 2007-2014 Intel Corporation.
[   13.660707] e1000e: Intel(R) PRO/1000 Network Driver - 3.2.6-k
[   13.730975] igb 0000:03:00.0: added PHC on eth0
[   13.730977] igb 0000:03:00.0: Intel(R) Gigabit Ethernet Network Connection
[   13.730978] igb 0000:03:00.0: eth0: (PCIe:5.0Gb/s:Width x4) b4:96:91:3d:f0:dc
[   13.731271] igb 0000:03:00.0: eth0: PBA No: H47822-003
[   13.731272] igb 0000:03:00.0: Using MSI-X interrupts. 6 rx queue(s), 6 tx queue(s)
[   13.802820] igb 0000:03:00.1: added PHC on eth1
[   13.802821] igb 0000:03:00.1: Intel(R) Gigabit Ethernet Network Connection
[   13.802822] igb 0000:03:00.1: eth1: (PCIe:5.0Gb/s:Width x4) b4:96:91:3d:f0:dd
[   13.803116] igb 0000:03:00.1: eth1: PBA No: H47822-003
[   13.803117] igb 0000:03:00.1: Using MSI-X interrupts. 6 rx queue(s), 6 tx queue(s)
[   13.875120] igb 0000:03:00.2: added PHC on eth2
[   13.875121] igb 0000:03:00.2: Intel(R) Gigabit Ethernet Network Connection
[   13.875122] igb 0000:03:00.2: eth2: (PCIe:5.0Gb/s:Width x4) b4:96:91:3d:f0:de
[   13.875416] igb 0000:03:00.2: eth2: PBA No: H47822-003
[   13.875417] igb 0000:03:00.2: Using MSI-X interrupts. 6 rx queue(s), 6 tx queue(s)
[   13.944590] igb 0000:03:00.3: added PHC on eth3
[   13.944591] igb 0000:03:00.3: Intel(R) Gigabit Ethernet Network Connection
[   13.944592] igb 0000:03:00.3: eth3: (PCIe:5.0Gb/s:Width x4) b4:96:91:3d:f0:df
[   13.944885] igb 0000:03:00.3: eth3: PBA No: H47822-003
[   13.944887] igb 0000:03:00.3: Using MSI-X interrupts. 6 rx queue(s), 6 tx queue(s)

Почему «Intel(R) Gigabit Ethernet Network Driver - version 5.4.0-k», что я делаю не так или что я не понимаю?

 ,

Uranus
()

Не работает Intel® Ethernet Flow Director?

Форум — General

Доброго времени суток!

6 ядерный комп
Система Ububtu 18.04 server
Я решил поэкспериментировать с Flow Director, сетевая плата I350-T4, на сколько я понял она поддерживает эту технологию.
Проверял как сказано в https://software.intel.com/en-us/articles/setting-up-intel-ethernet-flow-dire...
ethtool -k enp3s0f3 | grep ntuple
Включил командой:
ethtool -K enp3s0f3 ntuple on
Проверил, ещё раз, да, включилось.
Но когда пытаюсь скажем добавить блокировку UDP трафика с определённого IP командой:
ethtool -U enp3s0f3 flow-type udp4 src-ip 10.4.82.2 action -1
Получаю ошибку:
rmgr: Cannot insert RX class rule: Invalid argument
В dmesg
igb 0000:03:00.3: ethtool -N: The specified action is invalid
Причём action можно ставить любую хоть 0 хоть 5 результат будет тот же самый.

Хотелось бы понять в чём проблема, как я не пытался я вообще не могу добавить какие-либо правила, а не только то что указано выше.

На всякий случай даю выхлопы некоторых команд
ethtool -l enp3s0f3

Channel parameters for enp3s0f3:
Pre-set maximums:
RX:             0
TX:             0
Other:          1
Combined:       8
Current hardware settings:
RX:             0
TX:             0
Other:          1
Combined:       6


ethtool -n enp3s0f3

6 RX rings available
Total 0 rules

ethtool -i enp3s0f3
driver: igb
version: 5.4.0-k
firmware-version: 3.13.0
expansion-rom-version:
bus-info: 0000:03:00.3
supports-statistics: yes
supports-test: yes
supports-eeprom-access: yes
supports-register-dump: yes
supports-priv-flags: yes

 , ,

Uranus
()

KVM и синхронизация времени

Форум — Admin

Всем доброго времени суток!

Имеется такой вопрос.
У меня на Ubuntu server в виртуальной машине (KVM) работает гостевая система Windows 7 x64.
Есть программа которая отслеживает изменение времени, и она мне сообщает что примерно каждый час время подводиться(изменяется) на 1 минуту и несколько секунд вперед (похоже в зависимости от нагрузки гостевой системы).
Хотелось бы узнать чем (какой программой или каким компонентом) это изменение времени производиться и если есть возможность сделать эту подводку более частой, скажем каждые 30 или даже 10 минут.
Просто при резком изменении времени на 1 минуту происходят определённые сбои в нашем программном обеспечении (хоть и не критические, но всё же).
Если же подводка часов будет более частой то таких проблем не возникнет.

 

Uranus
()

При загрузке не всегда активируется сетевая карта

Форум — Admin

Доброго времени суток!

Решил вот поделиться проблемой, проблема уже как пол года.
При загрузке Ubuntu 18.04 lts Server довольно часто не стартует сетевая I350-4.

Выражается это в том что после загрузки через «ifconfig -a» у меня нет ни одного сетевого интерфейса кроме lo.

Причём такое бывает через раз, то карта есть, то карты нет!

Подскажите куда копать и где смотреть!

p.s. Не совсем в тему, но на этом компьютере (это роутер вообще то) я поднимаю два PPPoE, два провайдера, маршрутизация и всё остальное вроде работает, на этом же форуме советовался, но уже пару раз было что не поднимались оба PPPoE, причём руками через «pon» всё стартует, можно ли как то отслеживать и принудительно стартовать?!

 ,

Uranus
()

Бредовая идея с Bonding сетевых карт

Форум — General

Заранее извиняюсь, если идея бредовая, но просто действительно хочется понять можно ли её реализовать и и будет ли от неё толк.

Допустим имеется провайдер Ростелеком, оптика, заводиться она на huawei hg8245, девайс переведён в режим бриджа.

Имеется роутер из компа на основе Ubuntu с четырёх портовой интеловской сетевой к которому от huawei идёт один кабель, и уже на роутере поднимается PPPoE.

Так вот вопрос, что мы получим если от huawei к роутеру будет идти не один а два провода, на роутере мы делаем Bonding двух портов сетевой как одного устройства и уже на этом устройстве поднимаем PPPoE.

Будет ли такое работать и самое интересное даст ли это хоть какой то плюс хоть в чём то?!
Какой Плюс..., ну допусти DDOS с большим кол-вом мелких пакетов..., то что в работе будет две сетевых даст ли запас прочности или это не будет играть никакой роли и всё упрётся в какое-то узкое место?!

Я сознательно опускаю возможность того что может не справиться сам huawei, пока меня интериеует именно часть связанная с роутером.

 

Uranus
()

2 провайдера, балансировка...и т.д.

Форум — Admin

Доброго времени суток!

Да я знаю что не первый и не второй и даже не 10 кто создаёт подобную тему, так что заранее прошу прощения за свой плач Ярославны!

Для начала исходные данные, имеется два провайдера, к обоим подключение через PPPoE.
Подключения делаются на роутере, за роутером локальная сеть, на данный момент для тестов подключен только один компьютер.
На роутере никаких серверов имеющих доступ снаружи нет, более того доступ снаружи вообще заблокирован (ну по крайней мере сейчас).
Решил сделать балансировку исходящего трафика, что от роутера, что из локалки.

Для понимания чего и куда лепить использовал много ссылок, но в основном код заимствовал с двух мест тут и тут.(с маркировкой пакетов, структура цепочек взята из второй ссылки, нужное место можно найти по тексту «tprov1»)

rt_tables

100 static
101 prov1
102 prov2


ip rule

0: from all lookup local
1: from all lookup static
10: from all fwmark 0x2 lookup prov1
11: from all fwmark 0x4 lookup prov2
32766: from all lookup main
32767: from all lookup default


ip route

default nexthop via 109.195.208.69 dev ppp0 weight 1 nexthop via 212.57.162.84 dev ppp1 weight 1
109.195.208.69 dev ppp0 proto kernel scope link src 109.195.211.10
192.168.0.0/24 dev enp4s0f0 proto kernel scope link src 192.168.0.1
212.57.162.84 dev ppp1 proto kernel scope link src 178.46.164.246


ip route show table static

109.195.208.69 dev ppp0 scope link
192.168.0.0/24 dev enp4s0f0 scope link
212.57.162.84 dev ppp1 scope link


ip route show table prov1

default via 109.195.208.69 dev ppp0


ip route show table prov2

default via 212.57.162.84 dev ppp1


выбор провайдера

iptables -t mangle -N select_prov
iptables -t mangle -A select_prov -j CONNMARK --set-mark 2
iptables -t mangle -A select_prov -m statistic --mode nth --every 2 --packet 0 -j RETURN
iptables -t mangle -A select_prov -j CONNMARK --set-mark 4
iptables -t mangle -A select_prov -m statistic --mode nth --every 2 --packet 1 -j RETURN


сортировка соединений

iptables -t mangle -N sort_connect
iptables -t mangle -A sort_connect -o lo -j RETURN
iptables -t mangle -A sort_connect -o $loc_eth -j RETURN
iptables -t mangle -A sort_connect -m conntrack --ctstate NEW -j select_prov


трафик проверяем в...

iptables -t mangle -I OUTPUT -j sort_connect
iptables -t mangle -I FORWARD -j sort_connect


В общем то всё работает, но я не пойму как принудительно заставить какой-либо трафик идти через определённого провайдера, скажем чтобы все запросы HTTP (или какой-то определённый IP) шли только через второго провайдера, а весь остальной трафик балансировался как обычно?!

 ,

Uranus
()

Traffic control, ingress на IFB

Форум — Admin

Доброго времени суток!

Имеется вопрос, нужно «ограничить» входящий трафик на роутере, роутер это компьютер с установленной Ubuntu server 18.04.
Причина довольно банальна, за роутером есть сервер Тимспика и WEB сервер, периодически всякие «творческие» личности DDOS-ят, я понимаю что от таких атак простыми средствами не защитится, но мне захотелось кое-что проверить.
Допустим у меня канал 200мбит, одна из «творческих» личностей посылает на любой из прокинутых портов до любого сервера трафик в 100мбит, по скольку порт прокинут то трафик не оседает на самом роутере, а проходит до сервера и серверу «плохеет».
Если я за компом, то естественно я его заблокирую, а вот для случаев когда меня нет на месте и нужно ограничить поступление трафика к серверу.
ingress police - может ограничивать или весь канал или только IP и подсети, а мне хотелось чтобы любой пытающийся соединиться с серверами получал ограничение на передачу трафика к серверу, но не буду же я создавать кучу фильтров с кучей подсетей со всего интернета.
На этом же форуме я прочитал что советуют поднять виртуальный интерфейс IFB и перенаправить весь трафик на него и потом уже на этом интерфейсе работать как с обычным egress трафиком.

Вот что у меня получилось:

###########################################################################################################################################

tc qdisc del dev ifb0 root &> /dev/null
tc filter del dev ifb0 &> /dev/null
tc class del dev ifb0 &> /dev/null
tc qdisc del dev ppp0 ingress &> /dev/null
tc qdisc del dev ppp0 handle ffff: ingress &> /dev/null

modprobe ifb numifbs=1
ip link set dev ifb0 up

tc qdisc add dev ifb0 root handle 1: htb default 30

tc class add dev ifb0 parent 1: classid 1:1 htb rate 200mbit burst 256k

tc class add dev ifb0 parent 1:1 classid 1:10 htb rate 10mbit ceil 100mbit burst 128k prio 1
tc class add dev ifb0 parent 1:10 classid 1:110 htb rate 800kbit ceil 1200kbit burst 10k prio 1

tc class add dev ifb0 parent 1:10 classid 1:120 htb rate 2mbit ceil 4mbit burst 20k prio 2

tc class add dev ifb0 parent 1:1 classid 1:30 htb rate 100mbit ceil 200mbit burst 256k prio 3

tc qdisc add dev ifb0 parent 1:110 handle 110: sfq perturb 10
tc qdisc add dev ifb0 parent 1:120 handle 120: sfq perturb 10
tc qdisc add dev ifb0 parent 1:30 handle 20: sfq perturb 10

tc filter add dev ifb0 pref 1 parent 110: protocol ip handle 2 flow hash keys src divisor 1024
tc filter add dev ifb0 pref 1 parent 120: protocol ip handle 2 flow hash keys src divisor 1024
tc filter add dev ifb0 pref 1 parent 20: protocol ip handle 2 flow hash keys src divisor 1024

tc filter add dev ifb0 parent 1: protocol ip prio 1 u32 match ip protocol 0x11 0xff match ip dport 9988 0xffff match ip dst xx.xx.xx.xx/32 flowid 1:110
tc filter add dev ifb0 parent 1: protocol ip prio 2 u32 match ip protocol 0x6 0xff match ip dport 30033 0xffff match ip dst xx.xx.xx.xx/32 flowid 1:120
tc filter add dev ifb0 parent 1: protocol ip prio 2 u32 match ip protocol 0x6 0xff match ip dport 80 0xffff match ip dst xx.xx.xx.xx/32 flowid 1:120
tc filter add dev ifb0 parent 1: protocol ip prio 3 u32 match ip src 0.0.0.0/0 flowid 1:1

tc qdisc add dev ppp0 ingress handle ffff:
tc filter add dev ppp0 parent ffff: u32 match u32 0 0 action mirred egress redirect dev ifb0 ###########################################################################################################################################

Вроде бы даже работает, но некоторые пользователи говорят что не могут зайти на ТС сервер когда эти правила включены, потому хотел бы чтобы знающие люди поглядели и указали мне на возможные ошибки.
p.s. Даже при практически не загруженном сервере я вижу что у меня постоянно увеличиваются overlimits на корневом классе, на остальных (dropped, overlimits и requeues) нулёвые, хотя счётчики пакетов меняются, это нормально или нет.
qdisc htb 1: dev ifb0 root refcnt 2 r2q 10 default 48 direct_packets_stat 0 ver 3.17 direct_qlen 1000 Sent 66261555 bytes 685628 pkt (dropped 0, overlimits 741 requeues 0)

 ,

Uranus
()

RSS подписка на новые темы