LinuxForum.Fans
Тема

Сетевые проблемы и еще пару нюансов

Автор: XliN 73 сообщений 21972 просмотров
#137675

Ну я тебе давал в асю)

#137698

Попробую на модеме поднять и проверить. Будет ли разница. wink

#138850

Xlin тебе проверенно
Чуть позже напишу с приоритетом по портам.
добавлять в конец firewall.sh
Ток правь под себя

#################### LAN
local=vlan6
tc qdisc del dev $local root
tc qdisc add dev $local root handle 1: htb
tc class add dev $local parent 1: classid 1:1 htb rate 100mbit
tc class add dev $local parent 1:1 classid 1:10 htb rate 1mbit ceil 1mbit prio 1
tc qdisc add dev $local parent 1:10 handle 10: sfq perturb 10
#Наш юзер 10.0.0.254 - входящая для пользователя скорость
tc filter add dev $local parent 1:0 protocol ip prio 1 handle 400 fw classid 1:10

################ WAN
inet=ppp0
tc qdisc del dev $inet root
tc qdisc add dev $inet root handle 1: htb
tc class add dev $inet parent 1: classid 1:1 htb rate 100mbit
tc class add dev $inet parent 1:1 classid 1:10 htb rate 1mbit ceil 1mbit prio 1
tc qdisc add dev $inet parent 1:10 handle 10: sfq perturb 10
#Наш юзер 10.0.0.254 - исходящая для пользователя скорость
tc filter add dev $inet parent 1:0 protocol ip prio 1 handle 400 fw classid 1:10


#Наш юзер 10.0.0.254 - входящая для пользователя скорость.
iptables -t mangle -A FORWARD -d 172.16.0.30 -j MARK --set-mark 400
#Наш юзер 10.0.0.254 - исходящая для пользователя скорость.
iptables -t mangle -A FORWARD -s 172.16.0.30 -j MARK --set-mark 400

#138857

Вот тут с приоритетом по портам smile

text

#!/bin/bash
#################### LAN
local=vlan6
tc qdisc del dev $local root
tc qdisc add dev $local root handle 1: htb
tc class add dev $local parent 1: classid 1:1 htb rate 100mbit
tc class add dev $local parent 1:1 classid 1:90 htb rate 1mbit ceil 1mbit prio 90
tc class add dev $local parent 1:1 classid 1:10 htb rate 10mbit ceil 10mbit prio 10
tc qdisc add dev $local parent 1:10 handle 10: sfq perturb 10
tc qdisc add dev $local parent 1:90 handle 90: sfq perturb 10
#Наш юзер  172.16.0.30 - входящая для пользователя скорость
tc filter add dev $local parent 1:0 protocol ip prio 1 handle 90 fw classid 1:90
tc filter add dev $local parent 1:0 protocol ip prio 1 handle 10 fw classid 1:10
################ WAN
inet=ppp0
tc qdisc del dev $inet root
tc qdisc add dev $inet root handle 1: htb
tc class add dev $inet parent 1: classid 1:1 htb rate 100mbit
tc class add dev $inet parent 1:1 classid 1:90 htb rate 1mbit ceil 1mbit prio 90
tc class add dev $inet parent 1:1 classid 1:10 htb rate 10mbit ceil 10mbit prio 10
tc qdisc add dev $inet parent 1:10 handle 10: sfq perturb 10
tc qdisc add dev $inet parent 1:90 handle 90: sfq perturb 10
#Наш юзер 172.16.0.30 - исходящая для пользователя скорость
tc filter add dev $inet parent 1:0 protocol ip prio 1 handle 90 fw classid 1:90
tc filter add dev $inet parent 1:0 protocol ip prio 1 handle 10 fw classid 1:10
#Наш юзер 172.16.0.30 - входящая для пользователя скорость.
iptables -t mangle -A FORWARD -d 172.16.0.30 -j MARK --set-mark 90
#Наш юзер  172.16.0.30 - исходящая для пользователя скорость.
iptables -t mangle -A FORWARD -s 172.16.0.30 -j MARK --set-mark 90

iptables -t mangle -A FORWARD -i $local -o $inet -p tcp -m multiport --dport 80,443,110,25,143,5190 -j MARK --set-mark 10 iptables -t mangle -A FORWARD -i $inet -o $local -p tcp -m multiport --sport 80,110,443,25,143,5190 -j MARK --set-mark 10 iptables -t mangle -A FORWARD -i $local -o $inet -p udp -m multiport --dport 80,443,110,25,143,5190 -j MARK --set-mark 10 iptables -t mangle -A FORWARD -i $inet -o $local -p udp -m multiport --sport 80,110,443,25,143,5190 -j MARK --set-mark 10

#138866

Можно попробовать заменить напимер

iptables -t mangle -A FORWARD -d 172.16.0.30 -j MARK --set-mark 90
iptables -t mangle -A FORWARD -s 172.16.0.30 -j MARK --set-mark 90

iptables -t mangle -A FORWARD -i vlan6 -o ppp0 -j MARK --set-mark 90
iptables -t mangle -A FORWARD -i ppp0 -o vlan6 -j MARK --set-mark 90

iptables -t mangle -A FORWARD -i vlan5 -o ppp0 -j MARK --set-mark 90
iptables -t mangle -A FORWARD -i ppp0 -o vlan5 -j MARK --set-mark 90


Хотя можно и на bash зделать цикл. Чтоб вручную непереписывать все интерфейсы.

#138920

Вот ещё просьба проверить. Xlin адаптирован более менее под тебя, полностью проверил

text

#!/bin/bash
inet="ppp0"

#Режем входящую NUMBERS_VLAN="vlan5 vlan6" for number_vl in `echo $NUMBERS_VLAN` do echo $number_vl #Даём всем инет но min iptables -t mangle -A FORWARD -i $number_vl -o $inet -j MARK --set-mark 90 iptables -t mangle -A FORWARD -i $inet -o $number_vl -j MARK --set-mark 90

tc qdisc del dev $number_vl root tc qdisc add dev $number_vl root handle 1: htb tc class add dev $number_vl parent 1: classid 1:1 htb rate 100Mbit

tc class add dev $number_vl parent 1:1 classid 1:100 htb rate 100Mbit ceil 100Mbit prio 20 tc class add dev $number_vl parent 1:1 classid 1:90 htb rate 100Kbit ceil 300Kbit prio 90 tc class add dev $number_vl parent 1:1 classid 1:80 htb rate 600Kbit ceil 800Kbit prio 80 tc class add dev $number_vl parent 1:1 classid 1:70 htb rate 20Kbit ceil 20Kbit prio 1 tc class add dev $number_vl parent 1:1 classid 1:10 htb rate 1Mbit ceil 1Mbit prio 10

tc qdisc add dev $number_vl parent 1:100 handle 100: sfq perturb 10 tc qdisc add dev $number_vl parent 1:90 handle 90: sfq perturb 10 tc qdisc add dev $number_vl parent 1:80 handle 80: sfq perturb 10 tc qdisc add dev $number_vl parent 1:70 handle 70: sfq perturb 10 tc qdisc add dev $number_vl parent 1:10 handle 10: sfq perturb 10 tc filter add dev $number_vl parent 1:0 protocol ip prio 1 handle 100 fw classid 1:100 tc filter add dev $number_vl parent 1:0 protocol ip prio 1 handle 90 fw classid 1:90 tc filter add dev $number_vl parent 1:0 protocol ip prio 1 handle 80 fw classid 1:80 tc filter add dev $number_vl parent 1:0 protocol ip prio 1 handle 70 fw classid 1:70 tc filter add dev $number_vl parent 1:0 protocol ip prio 1 handle 10 fw classid 1:10 done

#Даём начальнику по max iptables -t mangle -A FORWARD -s 172.16.0.30 -j MARK --set-mark 10 iptables -t mangle -A FORWARD -d 172.16.0.30 -j MARK --set-mark 10

#Между подсетями на 100 iptables -t mangle -A FORWARD -i vlan6 -o vlan5 -j MARK --set-mark 100 iptables -t mangle -A FORWARD -i vlan5 -o vlan6 -j MARK --set-mark 100

#Кому необходим интернет на средней скорости + приоритет на портах NUMBERS_N="172.16.0.30 172.16.0.31 172.16.0.14" for number_n in `echo $NUMBERS_N` do iptables -t mangle -A FORWARD -s $number_n -p tcp -m multiport --dport 80,443,110,25,143,5190 -j MARK --set-mark 80 iptables -t mangle -A FORWARD -d $number_n -p tcp -m multiport --sport 80,110,443,25,143,5190 -j MARK --set-mark 80 iptables -t mangle -A FORWARD -s $number_n -p udp -m multiport --dport 80,443,110,25,143,5190 -j MARK --set-mark 80 iptables -t mangle -A FORWARD -d $number_n -p udp -m multiport --sport 80,110,443,25,143,5190 -j MARK --set-mark 80 done

#Даём 20Kbit NUMBERS_MAX="172.16.0.36" for number_mx in `echo $NUMBERS_MAX` do iptables -t mangle -A FORWARD -s $number_mx -j MARK --set-mark 70 iptables -t mangle -A FORWARD -d $number_mx -j MARK --set-mark 70 done

#Режем исходящую tc qdisc del dev $inet root tc qdisc add dev $inet root handle 1: htb tc class add dev $inet parent 1: classid 1:1 htb rate 100Mbit tc class add dev $inet parent 1:1 classid 1:90 htb rate 100Kbit ceil 300Kbit prio 90 tc class add dev $inet parent 1:1 classid 1:80 htb rate 600Kbit ceil 800Kbit prio 80 tc class add dev $inet parent 1:1 classid 1:70 htb rate 20Kbit ceil 20Kbit prio 1 tc class add dev $inet parent 1:1 classid 1:10 htb rate 1Mbit ceil 1Mbit prio 10 tc qdisc add dev $inet parent 1:90 handle 90: sfq perturb 10 tc qdisc add dev $inet parent 1:80 handle 80: sfq perturb 10 tc qdisc add dev $inet parent 1:70 handle 70: sfq perturb 10 tc qdisc add dev $inet parent 1:10 handle 10: sfq perturb 10 tc filter add dev $inet parent 1:0 protocol ip prio 1 handle 90 fw classid 1:90 tc filter add dev $inet parent 1:0 protocol ip prio 1 handle 80 fw classid 1:80 tc filter add dev $inet parent 1:0 protocol ip prio 1 handle 70 fw classid 1:70 tc filter add dev $inet parent 1:0 protocol ip prio 1 handle 10 fw classid 1:10

#138992

Не забудешь надеюсь отписаться)

#139062

Kettler, Огромное спасибо. Все протестил и все заработало. Последний скрипт имеется ввиду. Теперь осталось грамотно настроить iptables и усе. Для начала пойдет.

Что касаемо фаирвола. Kettler, выше выкладывал свой конфиг, он очень даже ничего. Подправлю и должно все подхватиться.
МНе надо запретить всем инет, разрешить обновляться только DrWeb`еру и дать доступ только тем кому надо.

З.Ы. Как бы в конфиге не указывать IP, а писать имя компа? А то у меня DHCP и всегда меняются.

#139074

Тыкс с dr подсказал долг выполнен :D можно смотреть кино

#139211
Kettler написал:
Тыкс с dr подсказал долг выполнен :D можно смотреть кино

Ага, осталось теперь всем все запретить, а то все кто переключит получение IP по DHCP получат инет. Я думаю надо как то сделать привязку по MAC адресу.
DrWeb пусть обновляется внутри локалки с зеркала, ну и NOD тоже. Вообще для этого надо поднять FTP.

#193655

Подключился к другому провайдеру и переделал скрипт. В сети 192.168.1.0/24 со скоростью все в норме, а вот на 192.168.3.1 192.168.3.222 192.168.3.223 скорость мизерная. 8-10 кбайт примерно.

Выкладываю конфиг. Может где намудрил.

Показать

#!/bin/bash
inet="eth1"

######################### Список IP адресов для всех ###############################

################# ALL ########################
# comp7 - 192.168.1.180
# electron (Катька) - 192.168.1.178
# kadr-new (Кадры) - 192.168.1.177
# material (Оксанка) - 192.168.1.186
##############################################

################ PRIV ########################
# admin - 192.168.1.173
# comp1 - 192.168.1.179
# TM - 192.168.3.253
# Главный врач - 192.168.3.200
# Величко - 192.168.3.254
# Dlink wi-fi - 192.168.3.201

############### Servers #####################
# 192.168.3.1 --- LPU SERVER
# 192.168.3.222 --- SERVER TERMINALOV
# 192.168.2.223 --- DNS SERVER SLAVE



# Всем скорость от 1 Мбит/c. Входящая и исходящая.
NUMBERS_ALL="192.168.1.180 192.168.1.178 192.168.1.177 192.168.1.186 192.168.2.100"


# Всем скорость от 1 Мбит/c до 8 Мбит/c. Входящая и исходящая.
NUMBERS_PRIV="192.168.1.173 192.168.1.179 192.168.3.200 192.168.3.254 192.168.3.1 192.168.3.222 193.168.3.223 192.168.3.253 192.168.3.201"

################ Подключаем все модулю и все запрещаем в фаирволе ###############
echo "1" > /proc/sys/net/ipv4/ip_forward
echo 1 > /proc/sys/net/ipv4/ip_dynaddr
modprobe iptable_nat
modprobe ip_conntrack
modprobe ip_conntrack_ftp
modprobe ip_nat_ftp
iptables -F
iptables -F -t nat
iptables -F -t mangle

iptables -P INPUT DROP
iptables -P OUTPUT DROP
iptables -P FORWARD DROP

################# Маскарадинг в инет и локалку ###############################
iptables --table nat --append POSTROUTING --out-interface vlan3 -j MASQUERADE
iptables --table nat --append POSTROUTING --out-interface vlan4 -j MASQUERADE
iptables --table nat --append POSTROUTING --out-interface vlan5 -j MASQUERADE
iptables --table nat --append POSTROUTING --out-interface eth1 -j MASQUERADE

iptables -t nat -A PREROUTING -i eth1 -p tcp --dport 2010 -j DNAT --to-destination 192.168.3.1
iptables -t nat -A PREROUTING -i eth1 -p tcp --dport 3389 -j DNAT --to-destination 192.168.3.222

#Выравниваем MTU
iptables -I FORWARD -p tcp --tcp-flags SYN,RST SYN -j TCPMSS --clamp-mss-to-pmtu

#############Firewall#############
# Отбрасывать все пакеты, которые не могут быть идентифицированы и поэтому не могут иметь определенного статуса.
iptables -A INPUT -m state --state INVALID -j DROP
iptables -A FORWARD -m state --state INVALID -j DROP

# Принимать все пакеты, которые инициированы из уже установленного соединения, и имеющим признак ESTABLISHED.
# Состояние ESTABLISHED говорит о том, что это не первый пакет в соединении.
iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
iptables -A FORWARD -m state --state ESTABLISHED,RELATED -j ACCEPT

# Приводит к связыванию системных ресурсов, так что реальных обмен данными становится не возможным.
iptables -A INPUT -p tcp ! --syn -m state --state NEW -j DROP
iptables -A OUTPUT -p tcp ! --syn -m state --state NEW -j DROP

#разрешаем локальный траффик для локальной сети
iptables -A INPUT -i lo -j ACCEPT
iptables -A OUTPUT -o lo -j ACCEPT

iptables -A INPUT -i vlan3 -j ACCEPT
iptables -A OUTPUT -o vlan3 -j ACCEPT

iptables -A INPUT -i vlan4 -j ACCEPT
iptables -A OUTPUT -o vlan4 -j ACCEPT

iptables -A INPUT -i vlan5 -j ACCEPT
iptables -A OUTPUT -o vlan5 -j ACCEPT

#Разрешаем гулять всем подсетям
iptables -A FORWARD -i vlan4 -o vlan3 -j ACCEPT
iptables -A FORWARD -i vlan3 -o vlan4 -j ACCEPT

iptables -A FORWARD -i vlan4 -o vlan5 -j ACCEPT
iptables -A FORWARD -i vlan5 -o vlan4 -j ACCEPT

iptables -A FORWARD -i vlan3 -o vlan5 -j ACCEPT
iptables -A FORWARD -i vlan5 -o vlan3 -j ACCEPT


# ICMP разрешаем пинг с локальной сети провайдера до сервера
iptables -A INPUT -i $inet -p icmp -j ACCEPT
iptables -A OUTPUT -o $inet -p icmp -j ACCEPT

#Разрешаем ICMP пакеты для vlan3, vlan4 в интернет
iptables -A FORWARD -i $inet -o vlan3 -p icmp -j ACCEPT
iptables -A FORWARD -i vlan3 -o $inet -p icmp -j ACCEPT

iptables -A FORWARD -i $inet -o vlan4 -p icmp -j ACCEPT
iptables -A FORWARD -i vlan4 -o $inet -p icmp -j ACCEPT

iptables -A FORWARD -i $inet -o vlan5 -p icmp -j ACCEPT
iptables -A FORWARD -i vlan5 -o $inet -p icmp -j ACCEPT


iptables -A FORWARD -i eth1 -o vlan3 -d 192.168.3.1 -p tcp -m tcp --dport 2010 -j ACCEPT
iptables -A FORWARD -i eth1 -o vlan3 -d 192.168.3.222 -p tcp -m tcp --dport 3389 -j ACCEPT

# Разрешаем серверу http, https, ssh, ftp (открываем порты 80,443,21,22)

iptables -A INPUT -i $inet -p tcp --sport 465 -j ACCEPT
iptables -A OUTPUT -o $inet -p tcp --dport 465 -j ACCEPT

#HTTP
iptables -A INPUT -i $inet -p tcp --sport 80 -j ACCEPT
iptables -A OUTPUT -o $inet -p tcp --dport 80 -j ACCEPT
iptables -A INPUT -i $inet -p tcp --dport 80 -j ACCEPT
iptables -A OUTPUT -o $inet -p tcp --sport 80 -j ACCEPT
# passive ftp
##########################################################
iptables -A INPUT -p tcp -m tcp --dport 21 -j ACCEPT # ftp-сервер
iptables -A OUTPUT -p tcp -m tcp --sport 21 -j ACCEPT

iptables -A INPUT -p tcp -m tcp --dport 20 -j ACCEPT # ftp-data для активного режима
iptables -A OUTPUT -p tcp -m tcp --sport 20 -j ACCEPT

iptables -A INPUT -p tcp -m tcp --dport 60000:60235 -j ACCEPT
iptables -A OUTPUT -p tcp -m tcp --sport 60000:60235 -j ACCEPT
###########################################################
# SSH
iptables -A INPUT -i $inet -p tcp --dport 22 -j ACCEPT
iptables -A OUTPUT -o $inet -p tcp --sport 22 -j ACCEPT
#DNS
iptables -A INPUT -i $inet -p udp --dport 53 -j ACCEPT
iptables -A OUTPUT -o $inet -p udp --sport 53 -j ACCEPT

iptables -A INPUT -i $inet -p udp --sport 53 -j ACCEPT
iptables -A OUTPUT -o $inet -p udp --dport 53 -j ACCEPT

#DHCP
iptables -A INPUT -i $inet -p udp --dport 67 -j ACCEPT
iptables -A OUTPUT -o $inet -p udp --sport 67 -j ACCEPT

iptables -A INPUT -i $inet -p udp --sport 67 -j ACCEPT
iptables -A OUTPUT -o $inet -p udp --dport 67 -j ACCEPT

#############Шейпер#############

#Режем входящую
NUMBERS_VLAN="vlan3 vlan4 vlan5"
for number_vl in `echo $NUMBERS_VLAN`
do
echo $number_vl

tc qdisc del dev $number_vl root
tc qdisc add dev $number_vl root handle 1: htb

tc class add dev $number_vl parent 1: classid 1:1 htb rate 100Mbit

tc class add dev $number_vl parent 1:1 classid 1:100 htb rate 100Mbit ceil 100Mbit burst 15k
tc class add dev $number_vl parent 1:1 classid 1:90 htb rate 1Mbit ceil 8Mbit burst 15k
tc class add dev $number_vl parent 1:1 classid 1:80 htb rate 300Kbit ceil 1Mbit burst 15k

tc qdisc add dev $number_vl parent 1:100 handle 100: sfq perturb 10
tc qdisc add dev $number_vl parent 1:90 handle 90: sfq perturb 10
tc qdisc add dev $number_vl parent 1:80 handle 80: sfq perturb 10

tc filter add dev $number_vl parent 1:0 protocol ip prio 7 handle 100 fw classid 1:100
tc filter add dev $number_vl parent 1:0 protocol ip prio 1 handle 90 fw classid 1:90
tc filter add dev $number_vl parent 1:0 protocol ip prio 2 handle 80 fw classid 1:80
done

#Между подсетями на 100
iptables -t mangle -A FORWARD -i vlan3 -o vlan4 -j MARK --set-mark 100
iptables -t mangle -A FORWARD -i vlan3 -o vlan5 -j MARK --set-mark 100

iptables -t mangle -A FORWARD -i vlan4 -o vlan3 -j MARK --set-mark 100
iptables -t mangle -A FORWARD -i vlan4 -o vlan5 -j MARK --set-mark 100

iptables -t mangle -A FORWARD -i vlan5 -o vlan3 -j MARK --set-mark 100
iptables -t mangle -A FORWARD -i vlan5 -o vlan4 -j MARK --set-mark 100


###############################################################################
#PRIV
for number_priv in `echo $NUMBERS_PRIV`
do
iptables -t mangle -A FORWARD -s $number_priv -o $inet -j MARK --set-mark 90
iptables -t mangle -A FORWARD -i $inet -d $number_priv -j MARK --set-mark 90
iptables -A FORWARD -s $number_priv -o $inet -j ACCEPT
iptables -A FORWARD -i $inet -d $number_priv -j ACCEPT
done

#### ALL
for number_all in `echo $NUMBERS_ALL`
do
iptables -t mangle -A FORWARD -s $number_all -o $inet -j MARK --set-mark 80
iptables -t mangle -A FORWARD -i $inet -d $number_all -j MARK --set-mark 80
iptables -A FORWARD -s $number_all -o $inet -j ACCEPT
iptables -A FORWARD -i $inet -d $number_all -j ACCEPT
done
#############################################################################

#Режем исходящую
tc qdisc del dev $inet root
tc qdisc add dev $inet root handle 1: htb

tc class add dev $inet parent 1: classid 1:1 htb rate 100Mbit

tc class add dev $inet parent 1:1 classid 1:90 htb rate 1Mbit ceil 8Mbit burst 15k
tc class add dev $inet parent 1:1 classid 1:80 htb rate 300Kbit ceil 1Mbit burst 15k

tc qdisc add dev $inet parent 1:90 handle 90: sfq perturb 10
tc qdisc add dev $inet parent 1:80 handle 80: sfq perturb 10

tc filter add dev $inet parent 1:0 protocol ip prio 1 handle 90 fw classid 1:90
tc filter add dev $inet parent 1:0 protocol ip prio 2 handle 80 fw classid 1:80

Вот эти три IP адреса это все на одном сервере. Основной 192.168.3.1 - на нем две виртуалки крутится. Следовательно касяк на 192.168.3.1 я думаю. Там три сетевых и все объеденные в мост.

#193659

Так. Вопрос временно снимается :D Проверил провайдера. У меня такой же дома и он на спидтесте показал то же самое. Нет входящей почти. Буду ждать когда починят. Звонить без толку в выходные я думаю.

#193676
--=XliN=-- написал:
Так. Вопрос временно снимается :D Проверил провайдера. У меня такой же дома и он на спидтесте показал то же самое. Нет входящей почти. Буду ждать когда починят. Звонить без толку в выходные я думаю.

скрипты при чём то

Войдите или зарегистрируйтесь, чтобы ответить.