LINUX.ORG.RU
ФорумAdmin

linux netns нестабильная работе сетевого стека при большом колличестве netns

 , ,


1

4

Вот скрипт, который создаёт netns до посенения.

#!/bin/bash

BR=te0
COUNT=0

v6_gen () {
SUBNET=fd00:1::
DATA=$(cat /dev/urandom|head -c 512|xxd -p)

printf $SUBNET
printf $DATA|md5sum|sed 's/\(..\)\(..\)\(..\)\(..\)\(..\)\(..\)\(..\)\(..\).*/\1\2:\3\4:\5\6:\7\8/'

}

for a in $(seq 0 1000)
do
	ADDR=$(v6_gen)
	ip netns add test$COUNT
	ip link add dev test${COUNT}0p0 type veth peer name test${COUNT}0p1
	ip link set dev test${COUNT}0p1 netns test$COUNT
#	tee 0|ip netns exec test$COUNT cat - >/proc/sys/net/ipv6/conf/all/disable_ipv6
#        tee 0|ip netns exec test$COUNT cat - >/proc/sys/net/ipv6/default/all/disable_ipv6
	ip -netns test$COUNT link set test${COUNT}0p1 up
        ip -netns test$COUNT link set lo up
        ip -netns test$COUNT link set test${COUNT}0p1 mtu 16384
        ip -netns test$COUNT addr add ${ADDR}/64 dev test${COUNT}0p1
        ip -netns test$COUNT route add ::/0 via fd00:1::1
        ip link set dev test${COUNT}0p0 up
        ip link set dev test${COUNT}0p0 mtu 16384
        ip link set dev test${COUNT}0p0 master $BR
	COUNT=$(echo ${COUNT}+1|bc)
done

Я обтаружил такой факт: если мость забить под завязку, то ipv6 почему-то перестаёт работать. Но, если создать очень много немспейсов, то могут начаться всякие странности (у меня перестал пинговаться ipv6 на loopback).
У меня странности начались именно тогда, когда я создал 6980 netns. Потом система начала очень сильно лагать.

★★★★★

Ответ на: комментарий от anonymous

Я не про форк бомбу, я про то, что если ты являешься провайдером, и у тебя например роутер на linux и у тебя столько клиентов, тогда чего? Я на каждого клиента выделяю netns для того, чтобы можно его было контролировать.

ne-vlezay ★★★★★
() автор топика
Ответ на: комментарий от ne-vlezay

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

anonymous
()

Если у тебя 32-битный линукс то могла тупо закончится память ядра. Кроме того посмотри как это работает в LXC. Ну еще можешь написать в кернельный майл-лист. Может нужно гдето увеличить какуюто константу и перекомпилировать ядро.

cvv ★★★★★
()

ЕМНИП, всегда было что-то подобное. На 2.4.x, если навесить >1000 ip-адресов, то тоже не очень работало.

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

Что значит перестал пинговаться? Роутинг слетел?

роутинг на месте. Просто перестают пинговаться локальные адреса.

ne-vlezay ★★★★★
() автор топика
Ответ на: комментарий от Bers666

Зачем провайдеру netns? Он же для контейнеров.

Для изоляции абонентов.

ne-vlezay ★★★★★
() автор топика
Ответ на: комментарий от ne-vlezay

если ты являешься провайдером, и у тебя например роутер на linux

То что-то в твоей жизни пошло не так.

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

Вообще-то, провайдеры любят линукс. Тот же accel-pptp писали под него, например.

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

Я пока не в каком. Просто делаю эксперименты.

ne-vlezay ★★★★★
() автор топика
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.