LINUX.ORG.RU

Сообщения Izolda

 

Настройка IPoE

Добрый день.

Пытаюсь настроить IPoE

В инструкции рекомендуют на сервере добавлять подсети так:

ip addr add 10.4.99.1/32 dev lo

А маршруты на компьютеры в сети добавлять так

ip route add 10.4.99.53/32 dev eth0.963 src 10.4.99.1

с указанием в каком влане надо искать компьютер с адресом 10.4.99.53

По DHCP тестовому компьютеру выдаётся 10.4.99.53/32 с шлюзом 10.4.99.1 И всё работает на первый взгляд вроде нормально кроме DNS

При проверке DNS с компьютера выдаёт ошибку

root@vixen:~# nslookup mail.ru 10.4.99.1
;; connection timed out; no servers could be reached

При проверки с сервера какие доходят пакеты выдаёт следующее

root@vixen:~# tcpdump -n -i eth0.963 host 10.4.99.53
tcpdump: verbose output suppressed, use -v or -vv for full protocol decode
listening on eth0.963, link-type EN10MB (Ethernet), capture size 262144 bytes
16:00:39.235394 IP 10.4.99.53.49180 > 10.4.99.1.53: 63196+ A? mail.ru. (25)
16:00:44.235115 IP 10.4.99.53.49180 > 10.4.99.1.53: 63196+ A? mail.ru. (25)
16:00:44.389203 ARP, Request who-has 10.4.99.1 tell 10.4.99.53, length 46
16:00:44.389211 ARP, Reply 10.4.99.1 is-at 38:68:dd:05:80:55, length 28
16:00:49.235093 IP 10.4.99.53.49180 > 10.4.99.1.53: 63196+ A? mail.ru. (25)

Т. е. невидно обратных ответов

Пинг проходит на шлюз

root@vixen:~# ping 10.4.99.1
PING 10.4.99.1 (10.4.99.1) 56(84) bytes of data.
64 bytes from 10.4.99.1: icmp_seq=1 ttl=64 time=0.150 ms
64 bytes from 10.4.99.1: icmp_seq=2 ttl=64 time=0.131 ms
^C

С самого сервера запросы DNS работают нормально

root@vixen:~# nslookup mail.ru 10.4.99.1
Server:         10.4.99.1
Address:        10.4.99.1#53

Non-authoritative answer:
Name:   mail.ru
Address: 217.69.139.202
Name:   mail.ru
Address: 94.100.180.201
Name:   mail.ru
Address: 94.100.180.200
Name:   mail.ru
Address: 217.69.139.200
Name:   mail.ru
Address: 2a00:1148:db00:0:b0b0::1

При проверке запросов на IP-адреса сервера которые добавлены обычным способом наблюдается такая же проблема При проверке запросов с IP-адресов добавленных не по технологии IPoE а обычным способом DNS-сервер на адресе 10.4.99.1 отвечает нормально В итоге пока приходится использовать DNS-сервер находящийся на другом сервере но для уменьшения нагрузки хотелось бы использовать находящийся на шлюзовом сервере

Какого-то нюанса видимо нет в инструкции

Может кто-то может подсказать в чём дело и как решить проблемы с видимостью DNS?

 ,

Izolda
()

tc шейпер гарантированная скорость

Добрый день.

Есть необходимость выделения на определенные IP гарантированной скорости Используется сетевая карта 40Гбит

Ранее пользовались скриптом, который устанавливает на общий трафик ограничение скорости а IP с гарантированными скоростями отправлялись в отдельный класс

/sbin/tc qdisc del dev eth0 root
/sbin/tc qdisc del dev eth1 root

# дефолтный класс
/sbin/tc qdisc add dev eth0 root handle 1: htb default 1
/sbin/tc class add dev eth0 parent 1: classid 1:1 htb rate 18GBit ceil 18GBit quantum $quantum burst $burst cburst $cburst
/sbin/tc qdisc add dev eth1 root handle 1: htb default 1
/sbin/tc class add dev eth1 parent 1: classid 1:1 htb rate 18GBit ceil 18GBit quantum $quantum burst $burst cburst $cburst

# класс с гарантированными скоростями
/sbin/tc class replace dev eth0 parent 1: classid 1:2 htb rate 1Gbit ceil 1Gbit quantum $quantum burst $burst cburst $cburst
/sbin/tc class replace dev eth1 parent 1: classid 1:2 htb rate 1Gbit ceil 1Gbit quantum $quantum burst $burst cburst $cburst

# ip вносяться в класс с гарантированными скоростями при помощи ipset
ipset add QUEUES $ip skbprio 1:2
# сами скорости для конкретных ip выделяются на другом оборудовании а на этом только отрезается их общая скорость

Механизм исправно работал пока общая скорость не выросла. Теперь те у кого IP с гарантированными скоростями работают нормально с потреблением около 1 Гбит а те IP которые попадают в дефолтный класс с ограничением скорости в 18 Гбит в итоге работают на скорости не выше 16 Гбит Повышение quantum, burst и cburst не помогло исправить ситуацию

Если отключить шейпер то общая скорость увеличивается до 23 Гбит При использовании тестов на основе Iperf механизм работает исправно и выдает скорость 18Гбит в дефолтном классе В связи с чем мы подозреваем что у ограничения скорости есть какой-то лимит на уровне соотношения количества пакетов к скорости выше которого механизм пока еще просто не работает

Может кто-то знает и сможет подсказать как отрезать для определенных IP с использованием ipset скорость из общего потока так что бы в нее никто не мог влезть из дефолтного класса без ограничения скорости на этот дефолтный класс что возможно поможет решить проблему?

 , ,

Izolda
()

isc-dhcp-server не выдаёт фиксированные ip

Добрый день.

Пытаюсь настроить по инструкции https://www.opennet.ru/docs/RUS/dhcp/ DHCP сервер на debian и не получается выдать фиксированные ip с привязкой к маку

/etc/dhcp/dhcpd.conf

default-lease-time 86400;
max-lease-time 86400;

ddns-update-style none;

authoritative;

log-facility local7;

subnet 172.16.61.0 netmask 255.255.255.0 {
   range 172.16.61.2 172.16.61.253;
   option broadcast-address 172.16.61.255;
   option routers 172.16.61.1;
   option domain-name-servers 172.16.61.1;
   }

host lol1 { hardware ethernet fc:aa:14:18:dc:53; fixed-address 10.3.61.2; }
host lol2 { hardware ethernet 00:19:db:ed:db:b3; fixed-address 10.3.61.3; }

/etc/default/isc-dhcp-server

INTERFACESv4="eth0.100" 

писать INTERFACESv4=«eth0.100 eth0.100:1» не помогает

# так добавляю vlan, на который добавляю две подсети vconfig add eth0 100 ifconfig eth0.100 172.16.61.1 netmask 255.255.255.0 up ifconfig eth0.100:1 10.3.61.1 netmask 255.255.255.0 up

в итоге не работает выдача фиксированных адресов компьютеру выдаётся 172.16.61.2

если изменить конфиг так

/etc/dhcp/dhcpd.conf

default-lease-time 86400;
max-lease-time 86400;

ddns-update-style none;

authoritative;

log-facility local7;

subnet 10.3.61.0 netmask 255.255.255.0 {
   range 10.3.61.2 10.3.61.254;
   option broadcast-address 10.3.61.255;
   option routers 10.3.61.1;
   option domain-name-servers 10.3.61.1, 193.200.22.10;

   host lol1 { hardware ethernet fc:aa:14:18:dc:53; fixed-address 10.3.61.2; }
   host lol2 { hardware ethernet 00:19:db:ed:db:b3; fixed-address 10.3.61.3; }
   }

subnet 172.16.61.0 netmask 255.255.255.0 {
   range 172.16.61.2 172.16.61.253;
   option broadcast-address 172.16.61.255;
   option routers 172.16.61.1;
   option domain-name-servers 172.16.61.1;
   }

то компьютер получает свой 10.3.61.2, но я так понимаю так раздавать фиксированные адреса неправильно и где-то писали что при таком варианте в подсеть 10.3.61.0/24 может кто-то залезть чужой

и такой вариант еще не подходит так как не для всех адресов есть возможность на раздающем ip компьютере добавлять подсеть так как без

записи eth0.100:1 в файле /etc/default/isc-dhcp-server или без ifconfig eth0.100:1 10.3.61.1 netmask 255.255.255.0 up

то выдача фиксированного адреса не работает даже при таком варианте

 ,

Izolda
()

ffmpeg меняюшееся имя файла

Можно ли в ffmpeg генерировать файлы изображений с видео с меняющимся именем состоящим из текущей даты?

если делать так:

ffmpeg -i «источник» -f image2 -vf fps=fps=3 /dir/%04d.jpg

то в /dir каждый кадр будут создаваться файлы с разным именем

но если попробовать прописать так:

ffmpeg -i «источник» -f image2 -vf fps=fps=3 /dir/date +%s.jpg

то будет создан один файл с именем unixtimestamps.jpg и ffmpeg перестанет работать так как не может записать в уже созданный файл снова по причине того что не обновляет время во время своей работы

Возможно надо как-то иначе дать команду ffmpeg что бы генерировались изображения с датой в имени файла?

 ,

Izolda
()

iptables -t nat snat и dnat

Добрый день.

Есть в наличии один роутер раздающий выделенные ip напрямую и раздающий выделенные ip через nat но с выделенных ip, которые разданы напрямую не видно выделенных ip, которые разданы через nat с других роутеров, неважно по какому принципу выдан выделенный ip видно выделенные ip этого компьютера, которые разданы через nat

Выглядит примерно так, только другие ip:

[центральный роутер]все другие роутеры общаются через него ifconfig eth0 100.100.1.1 255.255.255.0 up ; это основной ip центрального роутера через который работает роутер раздающий выделенные ip напрямую и раздающий выделенные ip через nat

route add -net 100.100.100.0/24 gw 100.100.1.2

route add -net 100.100.200.0/24 gw 100.100.1.2

[роутер, о котором идет речь] ifconfig eth1 100.100.1.2 255.255.255.0 up ; это основной ip роутера раздающего выделенные ip напрямую и раздающего выделенные ip через nat

ifconfig eth1:1 100.100.100.1 255.255.255.0 up ; это подсеть выделенных ip раздаваемых через nat

ifconfig eth1:1 192.168.0.1 255.255.255.0 up ; это подсеть внутренних ip, на которые выделяются выделенные ip раздаваемые через nat

ifconfig eth1:1 100.100.200.1 255.255.255.0 up ; это подсеть выделенных ip раздаваемых напрямую

На роутере поднята подсеть выделенных ip раздаваемых через nat

ifconfig eth1:1 100.100.100.1 255.255.255.0 up

route -n | grep 100.100.100.0

100.100.100.0 0.0.0.0 255.255.255.0 U 0 0 0 eth1

На роутере прописаны правила SNAT и DNAT:

iptables -t nat -A POSTROUTING –source 192.168.0.5 -o eth1 -j SNAT –to-source 100.100.100.2

iptables -t nat -A PREROUTING -i eth1 –destination 100.100.100.2 -j DNAT –to-destination 192.168.0.5

при трассировке будет следующее

1ms 1ms 1ms 100.100.200.1 ; компьютер, которому выдан ip напряую обращается к роутеру

100.100.100.2 сообщает: заданный узел недоступен

Я так понимаю это из-за того что есть подсеть 100.100.100.1/24 в которой никого напрямую не видно а видно только через DNAT, в который трафик не заворачивается

При попытке обхитрить маршрутизацию и не использовать ifconfig eth1:1 100.100.100.1 255.255.255.0 up а потушить ifconfig eth1:1 down

при трассировке будет безконечный цикл поиска а при пинге превышен срок жизни ttl при передаче пакета:

1ms 1ms 1ms 100.100.200.1 ; компьютер, которому выдан ip напряую обращается к роутеру

1ms 1ms 1ms 100.100.1.1 ; его отсылает на центральный роутер

1ms 1ms 1ms 100.100.200.1 ; оттуда его отсылает обратно

1ms 1ms 1ms 100.100.1.1 ; его отсылает на центральный роутер

1ms 1ms 1ms 100.100.200.1 ; оттуда его отсылает обратно

С других роутеров компьютеры, которым выданы выделенные ip через nat видны при ifconfig eth1:1 down через dnat даже при отсутствии такой подсети при маршруте route add -net 100.100.100.0/24 gw 100.100.1.2 на центральном роутере

Остается только уводить компьютеры, которым выдаются выделенные ip через nat на отдельный роутер или все же есть способ сдружить все это вместе на одном роутере?

 , ,

Izolda
()

ipset для iptables nat

Добрый день.

Нужно на каждую машину выдавать свой выделенный IP, но именно через NAT.

Есть много однотипных правил NAT но с уникальными внутренними ip к которым привязан уникальный внешний ip:

iptables -t nat -A POSTROUTING –protocol all –source ВНУТРЕННИЙIP1 -o eth1 -j SNAT –to-source ВНЕШНИЙIP1

iptables -t nat -A POSTROUTING –protocol all –source ВНУТРЕННИЙIP2 -o eth1 -j SNAT –to-source ВНЕШНИЙIP2

Можно ли их как-то сократить до одного правила при помощи ipset?

 ,

Izolda
()

аналог ipset для iptables -m limit

Добрый день.

Нужно сократить количество однотипных правил в iptables. Обычно это делаю через ipset но в этот раз не помогает.

в ipset создана таблица, допустим TABLE с типом hash:ip через ipset в нее заносятся ip ipset -A TABLE ip-адрес

список правил

iptables -A FORWARD –protocol all –destination ip-адрес -m limit –limit 1/s –limit-burst 1 -j ACCEPT iptables -A FORWARD –destination ip-адрес -j DROP

работает нормально, но их нужно очень много

Пробую ограничить прохождение трафика по одному пакету в секунду двумя правилами:

iptables -A FORWARD -m set –match-set TABLE dst -m limit –limit 1/s –limit-burst 1 -j ACCEPT iptables -A FORWARD -m set –match-set TABLE dst -j DROP

но вместо того что бы эти два правила работали параллельно они работают как одно, просто учитывают перечисленные в TABLE ip

Возможно это надо делать как-то иначе так что бы не было много правил?

 ,

Izolda
()

PPP не видит IP если подключение по L2TP

Добрый день.

При подключении к VPN серверу по PPTP в логах PPP отображается IP а при подключении по L2TP не отображается. В логах XL2TPD IP отображается но в PPP не передается а нужно именно в логах PPP что бы была эта информация так как когда много подключений бывает что не понятно кто подключился а в PPP можно привязать выдачу логов к логину.

используются такие версии

ppp-2.4.7.tar.gz pptpd-1.4.0.tar.gz xl2tpd-1.3.12.zip

получение IP прописано в файле auth.c

...
static void
network_phase(unit)
    int unit;
{
    lcp_options *go = &lcp_gotoptions[unit];

if (*remote_number){
   // ТУТ ВЫВОД В ЛОГИ
   }
...

самостоятельно понять почему remote_number нет знаний пока не хватает

Кто то разбирается в сишке хорошо и может подсказать что там дописать что бы в логах был IP с которого производится подключение?

 , , ,

Izolda
()

Непонятная ошибка при выводе dmesg

При выводе dmesg -T после установки debian 9.5 стала появляться ошибка

[Пт фев  8 09:50:39 2019] hpsa 0000:03:00.0: hpsa_update_device_info: LV failed, device will be skipped.
[Пт фев  8 09:51:10 2019] hpsa 0000:03:00.0: hpsa_update_device_info: LV failed, device will be skipped.
[Пт фев  8 09:51:40 2019] hpsa 0000:03:00.0: hpsa_update_device_info: LV failed, device will be skipped.
[Пт фев  8 09:52:11 2019] hpsa 0000:03:00.0: hpsa_update_device_info: LV failed, device will be skipped.
[Пт фев  8 09:52:43 2019] hpsa 0000:03:00.0: hpsa_update_device_info: LV failed, device will be skipped.

Знает кто как сделать так что бы она не появлялась?

 ,

Izolda
()

поднятие туннеля PPTP через NAT на Debian

Добрый день.

Столкнулся с такой проблемой и не получается понять в чем дело. На Debian 7 работало поднятие туннеля VPN (PPTP) через сервер за NAT а уже на Debian 9 не работает.

Возможно кто то еще сталкивался с этой проблемой, нашел ее решение и может подсказать что надо сделать что бы устранить эту проблему?

 , , ,

Izolda
()

Шейпинг трафика

использую tc для шейпинга и пытаюсь настроить через хэш таблицы

download поток нормально загоняется для каждого адреса в свою таблицу а upload все равно продолжает идти через таблицу по умолчанию 800:: если upload резать через таблицу по умолчанию 800:: при достижении ~ более 500 отдельных сетевых адресов начинаются затыки в сети если upload при большом количестве отдельных сетевых адресов отключить то затыков в сети не наблюдается

пример рабочего кода с ограничением при upload через таблицу по умолчанию 800::

rmmod ifb
modprobe ifb numifbs=1
tc qdisc del dev eth0 root
tc qdisc add dev eth0 root handle 1: htb default 9
tc class add dev eth0 parent 1: classid 1:1 htb rate 1000MBit ceil 1000MBit
tc class add dev eth0 parent 1:1 classid 1:9 htb rate 1000MBit ceil 1000MBit
tc qdisc add dev eth0 parent 1:9 handle 9: sfq perturb 10

ip link set dev ifb0 up
tc qdisc del dev ifb0 root
tc qdisc del dev ifb0 ingress
tc qdisc add dev eth0 ingress
tc filter add dev eth0 parent ffff: protocol ip u32 match u32 0 0 action mirred egress redirect dev ifb0
tc qdisc add dev ifb0 root handle 1: htb default 9
tc class add dev ifb0 parent 1: classid 1:1 htb rate 1000MBit ceil 1000MBit
tc class add dev ifb0 parent 1:1 classid 1:9 htb rate 1000MBit ceil 1000MBit
tc qdisc add dev ifb0 parent 1:9 handle 9: sfq perturb 10

tc filter add dev eth0 parent 1:0 handle 20: protocol ip u32 divisor 256
tc filter add dev eth0 parent 1:0 protocol ip u32 ht 800:: match ip dst 192.168.0.0/24 hashkey mask 0x000000ff at 16 link 20:

tc filter add dev ifb0 parent 1:0 handle 20: protocol ip u32 divisor 256
tc filter add dev ifb0 parent 1:0 protocol ip u32 ht 800:: match ip src 192.168.0.0/24 hashkey mask 0x000000ff at 16 link 20:

tc class add dev eth0 parent 1:1 classid 1:10 htb rate 10Mbit ceil 10Mbit
tc qdisc add dev eth0 parent 1:10 handle 10: sfq perturb 10
tc filter add dev eth0 parent 1:0 protocol ip prio 1 u32 ht 20:15: match ip dst 192.168.0.21/32 flowid 1:10
tc class add dev ifb0 parent 1:1 classid 1:10 htb rate 10Mbit ceil 10Mbit
tc qdisc add dev ifb0 parent 1:10 handle 10: sfq perturb 10
tc filter add dev ifb0 parent 1:0 protocol ip prio 1 u32 ht 800:: match ip src 192.168.0.21/32 flowid 1:10

при upload через отдельную таблицу все равно поток идет через таблицу по умолчанию 800::

...
tc filter add dev ifb0 parent 1:0 protocol ip prio 1 u32 ht 20:15: match ip src 192.168.0.21/32 flowid 1:10

возможно я что то не так формирую в хэш таблицу или оно просто и не должно работать в ifb через хэш таблицы?

 ,

Izolda
()

Сбор статистики с зеркалированного трафика

Кто то сталкивался с проблемой сбора статистики [с какого сетевого адреса на какой примерно в какое время ходил трафик и в каком объеме] именно зеркалированного трафика а не проходящего через сетевые интерфейсы? Имеется ли какой то бесплатный софт для этой цели?

 , ,

Izolda
()

traffic control проблема с ограничением скорости

добрый день осваиваю ограничение скорости при помощи traffic control

моя конфигурация следующая [что бы не занимать много места выложен пример только с двумя сетевыми адресами]

rmmod ifb
modprobe ifb numifbs=1
tc qdisc del dev eth4 root
tc qdisc add dev eth4 root handle 1: htb default 9
tc class add dev eth4 parent 1: classid 1:1 htb rate 10000MBit ceil 10000MBit
tc class add dev eth4 parent 1:1 classid 1:9 htb rate 10000MBit ceil 10000MBit
tc qdisc add dev eth4 parent 1:9 handle 9: sfq perturb 10

ip link set dev ifb0 up
tc qdisc del dev ifb0 root
tc qdisc del dev ifb0 ingress
tc qdisc add dev eth4 ingress
tc filter add dev eth4 parent ffff: protocol ip u32 match u32 0 0 action mirred egress redirect dev ifb0
tc qdisc add dev ifb0 root handle 1: htb default 9
tc class add dev ifb0 parent 1: classid 1:1 htb rate 10000MBit ceil 10000MBit
tc class add dev ifb0 parent 1:1 classid 1:9 htb rate 10000MBit ceil 10000MBit
tc qdisc add dev ifb0 parent 1:9 handle 9: sfq perturb 10

tc filter add dev eth4 parent 1:0 handle 10: protocol ip u32 divisor 256
tc filter add dev eth4 parent 1:0 protocol ip u32 ht 800:: match ip dst 10.3.5.0/24 hashkey mask 0x000000ff at 16 link 10:

tc class add dev eth4 parent 1:1 classid 1:a htb rate 100Mbit ceil 100Mbit
tc qdisc add dev eth4 parent 1:a handle a: sfq perturb 10
tc filter add dev eth4 parent 1:0 protocol ip prio 1 u32 ht 10:2c: match ip dst 10.3.5.44/32 flowid 1:a
tc class add dev ifb0 parent 1:1 classid 1:a htb rate 100Mbit ceil 100Mbit
tc qdisc add dev ifb0 parent 1:a handle a: sfq perturb 10
tc filter add dev ifb0 parent 1:0 protocol ip prio 1 u32 ht 800:: match ip src 10.3.5.44/32 flowid 1:a

tc class add dev eth4 parent 1:1 classid 1:b htb rate 20Mbit ceil 20Mbit
tc qdisc add dev eth4 parent 1:b handle b: sfq perturb 10
tc filter add dev eth4 parent 1:0 protocol ip prio 1 u32 ht 10:19: match ip dst 10.3.5.25/32 flowid 1:b
tc class add dev ifb0 parent 1:1 classid 1:b htb rate 20Mbit ceil 20Mbit
tc qdisc add dev ifb0 parent 1:b handle b: sfq perturb 10
tc filter add dev ifb0 parent 1:0 protocol ip prio 1 u32 ht 800:: match ip src 10.3.5.25/32 flowid 1:b

где

eth4 это сетевой интерфейс на котором настроены подсети ifb0 это виртуальный интерфейс на основе eth4 что бы резать скорость на нем в противположном направлении так как разработчики не смогли реализовать резалку скоростей без этого как мною было прочитано в интернете

сетевухи 10GBit при реальном употреблении 1Gbit-1.5GBit и общей загрузки процессора 30%

скорость режит нормально в обще стороны там где задано ограничение скорости на адрес а там где не задано наблюдаются проблемы со скоростью которая падает от скорости подключения сетевого интерфейса до нескольких мигабит и с потерей пакетов псевдослучайно от 10% до 50% каким то непонятным мне алгоритмом на каждый адрес с других подсетей [при отключении ограничения скоростей потери пакетов исчезают] все что в 10.3.5.0/24 нормально работает а параллельно еще есть подсеть 10.3.4.0/24 которую конфигурация не затрагивает обрезанием скорости конкретно на адрес а только направляет в отдельный класс

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

 

Izolda
()

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