Как стать автором
Обновить

Как мы организовали мини-провайдер в поселке

Время на прочтение 14 мин
Количество просмотров 30K
Переехав по работе на Крайний Север столкнулся с проблемой отсутствия нормального интернета (сотовые операторы не в счет, ибо все равно не устраивает). Потыкавшись пару недель с поиском WiFi сетей по соседству, нашел доброго человека, который решил организовать какое-то подобие провайдера с раздачей интернета всем желающим по WiFi. Но у этого человека не было знаний и опыта по настройке сетей и, как следствие, сеть была построена не очень хорошо.

Переговорив, мы решили объединиться. У меня худо-бедно есть опыт по настройке серверов под *nix и построения сетей, у него оборудование и 2-3 канала в интернет через соседей и их ADSL-модемы.

В первую очередь было решено поднять сервер шлюз в сеть. В качестве ОС был установлен Debian. Для раздачи интернета решено использовать связку iptables + Squid (в качестве кеширующего прокси), так же были установлены и настроены BIND (кеширующий DNS) и dhcpd для раздачи Ip адресов.

На шлюзе 2 сетевые карты: одна «смотрит» на локальную сеть, вторая на 4 adsl модема. Так как у меня опыта в построении сетей провайдеров можно сказать нет, было решено пускать пользователей в разные сети через разные модемы (прошу за данное решение сильно не пинать).

маршруты
route add -net 0.0.0.0/4 gw 172.16.1.200
route add -net 16.0.0.0/4 gw 172.16.1.201
route add -net 32.0.0.0/4 gw 172.16.1.202
route add -net 48.0.0.0/4 gw 172.16.1.203
route add -net 64.0.0.0/4 gw 172.16.1.200
route add -net 80.0.0.0/4 gw 172.16.1.201
route add -net 96.0.0.0/4 gw 172.16.1.202
route add -net 112.0.0.0/4 gw 172.16.1.203
route add -net 128.0.0.0/4 gw 172.16.1.200
route add -net 144.0.0.0/4 gw 172.16.1.201
route add -net 160.0.0.0/4 gw 172.16.1.202
route add -net 176.0.0.0/4 gw 172.16.1.203
route add -net 192.0.0.0/4 gw 172.16.1.200
route add -net 208.0.0.0/4 gw 172.16.1.201
route add -net 224.0.0.0/4 gw 172.16.1.202
route add -net 240.0.0.0/4 gw 172.16.1.203

Так же на сервере был установлен webmin.

Собственно, рассказывать про установку iptables, squid, dhs и dhcp смысла нет. Nак как в сети есть куча мануалов, расскажу про небольшую автоматизацию, которую я реализовал для облегчения управления пользователями для человека, который с *nix ни разу не сталкивался.

Схема добавления пользователей следующая:

1. Пользователь прописывается на dhcp (адреса выдаются только зарегистрированным пользователям);
2. Затем пользователь прописывается на squid;
3. Затем запускается скрипт, который парсит конфиг сквида и создает правила для файрвола.

Собственно, сами скрипты (скрипты корявые писались на коленке, дабы работало) (скрипты лежат в директории /etc/nat).

Собственно сам парсинг конфига сквида:

proxy
#!/bin/bash
touch /etc/nat/ip
mask='172'
I=$(cat /etc/squid3/squid.conf | grep localnet | grep 172.16)
arr=$(echo $I | tr " " "\n")
arr2=$(echo $arr | tr "/" "\n")
for x in $arr
do
declare -a arrip
if [[ $x == $mask* ]]; then
arrip[0]=$x
echo $arrip[0] >> /etc/nat/ip
fi
done
### EOF ##############################
/etc/nat/ipread

Как видно, он обрабатывает конфиг и выдергивает все ip-адреса по определенной маске и по результату запускает другой скрипт:

etc/nat/ipread
#!/bin/bash
cat /dev/null > /etc/nat/natread
echo «Сброс правил iptables»
sleep 1
iptables -F
iptables -X
iptables -t nat -F
iptables -t nat -X
iptables -t mangle -F
iptables -t mangle -X
iptables -P INPUT ACCEPT
iptables -P FORWARD ACCEPT
iptables -P OUTPUT ACCEPT

echo "#!/bin/bash" >> /etc/nat/natread
echo «echo 1 > /proc/sys/net/ipv4/ip_forward» >> /etc/nat/natread
echo «iptables -A INPUT -i lo -j ACCEPT» >> /etc/nat/natread
echo «iptables -A FORWARD -i eth0 -o eth1 -j ACCEPT» >> /etc/nat/natread
mask=«172»
badlist=$(cat /etc/nat/bad)
arrbad=$(echo $badlist)
for x in $arrbad
do
if [[ $x == $mask* ]];
then
echo «iptables -I INPUT -i eth0 -s» $x "-j DROP" >> /etc/nat/natread
fi
done
ip=$(cat /etc/nat/ip)
arr=$(echo $ip | tr "/" "\n")
for x in $arr
do
if [[ $x == $mask* ]];
then
echo «iptables -t nat -A POSTROUTING -o eth1 -s» $x "-j MASQUERADE" >> /etc/nat/natread
fi
done
echo «iptables -A FORWARD -i eth1 -m state --state ESTABLISHED,RELATED -j ACCEPT» >> /etc/nat/natread
echo «iptables -A FORWARD -i eth1 -o eth0 -j REJECT» >> /etc/nat/natread
echo «iptables -t nat -A PREROUTING -i eth0! -d 172.16.0.0/24 -p tcp -m multiport --dport 80,8080 -j DNAT --to 172.16.0.1:3128» >> /etc/nat/natread
echo «echo \»Выполняется перезагрузка правил файрвола \"" >> /etc/nat/natread
echo «sleep 1s» >> /etc/nat/natread
echo «echo \».\"" >> /etc/nat/natread
echo «sleep 1s» >> /etc/nat/natread
echo «echo \».\"" >> /etc/nat/natread
echo «sleep 1s» >> /etc/nat/natread
echo «echo \».\"" >> /etc/nat/natread
echo «sleep 1s» >> /etc/nat/natread
echo «echo \»Перезагрузка правил файрвола выполнена успешно!\"" >> /etc/nat/natread
rm /etc/nat/ip
/etc/nat/natread


Данный скрипт сбрасывает правила iptables и генерирует скрипт, который по результату и добавляет правила файрвола.

Данный скрипт приводится для примера:

/etc/nat/natread
#!/bin/bash
echo 1 > /proc/sys/net/ipv4/ip_forward
iptables -A INPUT -i lo -j ACCEPT
iptables -A FORWARD -i eth0 -o eth1 -j ACCEPT
iptables -I INPUT -i eth0 -s 172.16/0/81 -j DROP
iptables -I INPUT -i eth0 -s 172.16.0.82 -j DROP
iptables -I INPUT -i eth0 -s 172.16.0.87 -j DROP
iptables -I INPUT -i eth0 -s 172.16.0.27 -j DROP
iptables -t nat -A POSTROUTING -o eth1 -s 172.16.0.1 -j MASQUERADE
iptables -t nat -A POSTROUTING -o eth1 -s 172.16.0.10 -j MASQUERADE
iptables -t nat -A POSTROUTING -o eth1 -s 172.16.0.100 -j MASQUERADE
iptables -t nat -A POSTROUTING -o eth1 -s 172.16.0.101 -j MASQUERADE
iptables -t nat -A POSTROUTING -o eth1 -s 172.16.0.102 -j MASQUERADE
iptables -t nat -A POSTROUTING -o eth1 -s 172.16.0.103 -j MASQUERADE
iptables -t nat -A POSTROUTING -o eth1 -s 172.16.0.104 -j MASQUERADE
iptables -t nat -A POSTROUTING -o eth1 -s 172.16.0.105 -j MASQUERADE
iptables -t nat -A POSTROUTING -o eth1 -s 172.16.0.106 -j MASQUERADE
iptables -t nat -A POSTROUTING -o eth1 -s 172.16.0.107 -j MASQUERADE
iptables -t nat -A POSTROUTING -o eth1 -s 172.16.0.108 -j MASQUERADE
iptables -t nat -A POSTROUTING -o eth1 -s 172.16.0.109 -j MASQUERADE
iptables -t nat -A POSTROUTING -o eth1 -s 172.16.0.11 -j MASQUERADE
iptables -t nat -A POSTROUTING -o eth1 -s 172.16.0.110 -j MASQUERADE
iptables -t nat -A POSTROUTING -o eth1 -s 172.16.0.111 -j MASQUERADE
iptables -t nat -A POSTROUTING -o eth1 -s 172.16.0.112 -j MASQUERADE
iptables -t nat -A POSTROUTING -o eth1 -s 172.16.0.113 -j MASQUERADE
iptables -t nat -A POSTROUTING -o eth1 -s 172.16.0.114 -j MASQUERADE
iptables -t nat -A POSTROUTING -o eth1 -s 172.16.0.115 -j MASQUERADE
iptables -t nat -A POSTROUTING -o eth1 -s 172.16.0.116 -j MASQUERADE
iptables -t nat -A POSTROUTING -o eth1 -s 172.16.0.117 -j MASQUERADE
iptables -t nat -A POSTROUTING -o eth1 -s 172.16.0.118 -j MASQUERADE
iptables -t nat -A POSTROUTING -o eth1 -s 172.16.0.119 -j MASQUERADE
iptables -t nat -A POSTROUTING -o eth1 -s 172.16.0.12 -j MASQUERADE
iptables -t nat -A POSTROUTING -o eth1 -s 172.16.0.121 -j MASQUERADE
iptables -t nat -A POSTROUTING -o eth1 -s 172.16.0.123 -j MASQUERADE
iptables -t nat -A POSTROUTING -o eth1 -s 172.16.0.124 -j MASQUERADE
iptables -t nat -A POSTROUTING -o eth1 -s 172.16.0.125 -j MASQUERADE
iptables -t nat -A POSTROUTING -o eth1 -s 172.16.0.13 -j MASQUERADE
iptables -t nat -A POSTROUTING -o eth1 -s 172.16.0.14 -j MASQUERADE
iptables -t nat -A POSTROUTING -o eth1 -s 172.16.0.15 -j MASQUERADE
iptables -t nat -A POSTROUTING -o eth1 -s 172.16.0.16 -j MASQUERADE
iptables -t nat -A POSTROUTING -o eth1 -s 172.16.0.17 -j MASQUERADE
iptables -t nat -A POSTROUTING -o eth1 -s 172.16.0.18 -j MASQUERADE
iptables -t nat -A POSTROUTING -o eth1 -s 172.16.0.19 -j MASQUERADE
iptables -t nat -A POSTROUTING -o eth1 -s 172.16.0.20 -j MASQUERADE
iptables -t nat -A POSTROUTING -o eth1 -s 172.16.0.21 -j MASQUERADE
iptables -t nat -A POSTROUTING -o eth1 -s 172.16.0.22 -j MASQUERADE
iptables -t nat -A POSTROUTING -o eth1 -s 172.16.0.23 -j MASQUERADE
iptables -t nat -A POSTROUTING -o eth1 -s 172.16.0.24 -j MASQUERADE
iptables -t nat -A POSTROUTING -o eth1 -s 172.16.0.25 -j MASQUERADE
iptables -t nat -A POSTROUTING -o eth1 -s 172.16.0.26 -j MASQUERADE
iptables -t nat -A POSTROUTING -o eth1 -s 172.16.0.27 -j MASQUERADE
iptables -t nat -A POSTROUTING -o eth1 -s 172.16.0.28 -j MASQUERADE
iptables -t nat -A POSTROUTING -o eth1 -s 172.16.0.29 -j MASQUERADE
iptables -t nat -A POSTROUTING -o eth1 -s 172.16.0.30 -j MASQUERADE
iptables -t nat -A POSTROUTING -o eth1 -s 172.16.0.31 -j MASQUERADE
iptables -t nat -A POSTROUTING -o eth1 -s 172.16.0.32 -j MASQUERADE
iptables -t nat -A POSTROUTING -o eth1 -s 172.16.0.33 -j MASQUERADE
iptables -t nat -A POSTROUTING -o eth1 -s 172.16.0.34 -j MASQUERADE
iptables -t nat -A POSTROUTING -o eth1 -s 172.16.0.35 -j MASQUERADE
iptables -t nat -A POSTROUTING -o eth1 -s 172.16.0.36 -j MASQUERADE
iptables -t nat -A POSTROUTING -o eth1 -s 172.16.0.37 -j MASQUERADE
iptables -t nat -A POSTROUTING -o eth1 -s 172.16.0.38 -j MASQUERADE
iptables -t nat -A POSTROUTING -o eth1 -s 172.16.0.39 -j MASQUERADE
iptables -t nat -A POSTROUTING -o eth1 -s 172.16.0.40 -j MASQUERADE
iptables -t nat -A POSTROUTING -o eth1 -s 172.16.0.41 -j MASQUERADE
iptables -t nat -A POSTROUTING -o eth1 -s 172.16.0.42 -j MASQUERADE
iptables -t nat -A POSTROUTING -o eth1 -s 172.16.0.43 -j MASQUERADE
iptables -t nat -A POSTROUTING -o eth1 -s 172.16.0.44 -j MASQUERADE
iptables -t nat -A POSTROUTING -o eth1 -s 172.16.0.45 -j MASQUERADE
iptables -t nat -A POSTROUTING -o eth1 -s 172.16.0.46 -j MASQUERADE
iptables -t nat -A POSTROUTING -o eth1 -s 172.16.0.47 -j MASQUERADE
iptables -t nat -A POSTROUTING -o eth1 -s 172.16.0.48 -j MASQUERADE
iptables -t nat -A POSTROUTING -o eth1 -s 172.16.0.49 -j MASQUERADE
iptables -t nat -A POSTROUTING -o eth1 -s 172.16.0.50 -j MASQUERADE
iptables -t nat -A POSTROUTING -o eth1 -s 172.16.0.51 -j MASQUERADE
iptables -t nat -A POSTROUTING -o eth1 -s 172.16.0.52 -j MASQUERADE
iptables -t nat -A POSTROUTING -o eth1 -s 172.16.0.53 -j MASQUERADE
iptables -t nat -A POSTROUTING -o eth1 -s 172.16.0.54 -j MASQUERADE
iptables -t nat -A POSTROUTING -o eth1 -s 172.16.0.55 -j MASQUERADE
iptables -t nat -A POSTROUTING -o eth1 -s 172.16.0.56 -j MASQUERADE
iptables -t nat -A POSTROUTING -o eth1 -s 172.16.0.57 -j MASQUERADE
iptables -t nat -A POSTROUTING -o eth1 -s 172.16.0.58 -j MASQUERADE
iptables -t nat -A POSTROUTING -o eth1 -s 172.16.0.59 -j MASQUERADE
iptables -t nat -A POSTROUTING -o eth1 -s 172.16.0.60 -j MASQUERADE
iptables -t nat -A POSTROUTING -o eth1 -s 172.16.0.61 -j MASQUERADE
iptables -t nat -A POSTROUTING -o eth1 -s 172.16.0.62 -j MASQUERADE
iptables -t nat -A POSTROUTING -o eth1 -s 172.16.0.63 -j MASQUERADE
iptables -t nat -A POSTROUTING -o eth1 -s 172.16.0.64 -j MASQUERADE
iptables -t nat -A POSTROUTING -o eth1 -s 172.16.0.65 -j MASQUERADE
iptables -t nat -A POSTROUTING -o eth1 -s 172.16.0.66 -j MASQUERADE
iptables -t nat -A POSTROUTING -o eth1 -s 172.16.0.67 -j MASQUERADE
iptables -t nat -A POSTROUTING -o eth1 -s 172.16.0.68 -j MASQUERADE
iptables -t nat -A POSTROUTING -o eth1 -s 172.16.0.69 -j MASQUERADE
iptables -t nat -A POSTROUTING -o eth1 -s 172.16.0.70 -j MASQUERADE
iptables -t nat -A POSTROUTING -o eth1 -s 172.16.0.71 -j MASQUERADE
iptables -t nat -A POSTROUTING -o eth1 -s 172.16.0.72 -j MASQUERADE
iptables -t nat -A POSTROUTING -o eth1 -s 172.16.0.73 -j MASQUERADE
iptables -t nat -A POSTROUTING -o eth1 -s 172.16.0.74 -j MASQUERADE
iptables -t nat -A POSTROUTING -o eth1 -s 172.16.0.75 -j MASQUERADE
iptables -t nat -A POSTROUTING -o eth1 -s 172.16.0.76 -j MASQUERADE
iptables -t nat -A POSTROUTING -o eth1 -s 172.16.0.77 -j MASQUERADE
iptables -t nat -A POSTROUTING -o eth1 -s 172.16.0.78 -j MASQUERADE
iptables -t nat -A POSTROUTING -o eth1 -s 172.16.0.79 -j MASQUERADE
iptables -t nat -A POSTROUTING -o eth1 -s 172.16.0.80 -j MASQUERADE
iptables -t nat -A POSTROUTING -o eth1 -s 172.16.0.81 -j MASQUERADE
iptables -t nat -A POSTROUTING -o eth1 -s 172.16.0.82 -j MASQUERADE
iptables -t nat -A POSTROUTING -o eth1 -s 172.16.0.83 -j MASQUERADE
iptables -t nat -A POSTROUTING -o eth1 -s 172.16.0.84 -j MASQUERADE
iptables -t nat -A POSTROUTING -o eth1 -s 172.16.0.85 -j MASQUERADE
iptables -t nat -A POSTROUTING -o eth1 -s 172.16.0.86 -j MASQUERADE
iptables -t nat -A POSTROUTING -o eth1 -s 172.16.0.87 -j MASQUERADE
iptables -t nat -A POSTROUTING -o eth1 -s 172.16.0.88 -j MASQUERADE
iptables -t nat -A POSTROUTING -o eth1 -s 172.16.0.89 -j MASQUERADE
iptables -t nat -A POSTROUTING -o eth1 -s 172.16.0.90 -j MASQUERADE
iptables -t nat -A POSTROUTING -o eth1 -s 172.16.0.91 -j MASQUERADE
iptables -t nat -A POSTROUTING -o eth1 -s 172.16.0.92 -j MASQUERADE
iptables -t nat -A POSTROUTING -o eth1 -s 172.16.0.93 -j MASQUERADE
iptables -t nat -A POSTROUTING -o eth1 -s 172.16.0.94 -j MASQUERADE
iptables -t nat -A POSTROUTING -o eth1 -s 172.16.0.95 -j MASQUERADE
iptables -t nat -A POSTROUTING -o eth1 -s 172.16.0.96 -j MASQUERADE
iptables -t nat -A POSTROUTING -o eth1 -s 172.16.0.97 -j MASQUERADE
iptables -t nat -A POSTROUTING -o eth1 -s 172.16.0.98 -j MASQUERADE
iptables -t nat -A POSTROUTING -o eth1 -s 172.16.0.99 -j MASQUERADE
iptables -t nat -A POSTROUTING -o eth1 -s 172.16.0.120 -j MASQUERADE
iptables -A FORWARD -i eth1 -m state --state ESTABLISHED,RELATED -j ACCEPT
iptables -A FORWARD -i eth1 -o eth0 -j REJECT
echo «Выполняется перезагрузка правил файрвола „
sleep 1s
echo “.»
sleep 1s
echo "."
sleep 1s
echo "."
sleep 1s
echo «Перезагрузка правил файрвола выполнена успешно!»

Как видно, тут так же реализована возможность добавления пользователей, которые забыли заплатить за интернет путем добавления адресов этих пользователей в файл bad.

Собственно, с раздачей интернета разобрались. Но возникла проблема: из-за частых скачков в электрической сети ADSL-модемы могли зависнуть наглухо, из-за этого пользователи не могли зайти на часть сайтов. В качестве костыля был написан скрипт, который проверяет доступность модемов и на основании теста из шаблонов генерировал таблицу маршрутов:

ping-test
#!/bin/bash
host1=«172.16.1.200»
host2=«172.16.1.201»
host3=«172.16.1.202»
host4=«172.16.1.203»
if ping -q -c 1 $host1 &> /dev/null;
then
x=«1»
else
x=«0»
fi
if ping -q -c 1 $host2 &> /dev/null;
then
y=«1»
else
y=«0»
fi
if ping -q -c 1 $host3 &> /dev/null;
then
z=«1»
else
z=«0»
fi
if ping -q -c 1 $host4 &> /dev/null;
then
i=«1»
else
i=«0»
fi
if [ $x == 1 ] && [ $y == 1 ] && [ $z == 1 ] && [ $i == 1 ];
then
rm -f /etc/nat/network
cp /etc/nat/network-ok /etc/nat/network
else
if [ $x == 0 ] && [ $y == 1 ] && [ $z == 1 ] && [ $i == 1 ];
then
rm -f /etc/nat/network
cp /etc/nat/network-host1 /etc/nat/network
else
if [ $x == 1 ] && [ $y == 0 ] && [ $z == 1 ] && [ $i == 1 ];
then
rm -f /etc/nat/network
cp /etc/nat/network-host2 /etc/nat/network
else
if [ $x == 1 ] && [ $y == 1 ] && [ $z == 0 ] && [ $i == 1 ];
then
rm -f /etc/nat/network
cp /etc/nat/network-host3 /etc/nat/network
else
if [ $x == 1 ] && [ $y == 1 ] && [ $z == 1 ] && [ $i == 0 ];
then
rm -f /etc/nat/network
cp /etc/nat/network-host4 /etc/nat/network
else
if [ $x == 0 ] && [ $y == 0 ] && [ $z == 1 ] && [ $i == 1 ];
then
rm -f /etc/nat/network
cp /etc/nat/network-host12 /etc/nat/network
else
if [ $x == 1 ] && [ $y == 0 ] && [ $z == 0 ] && [ $i == 1 ];
then
rm -f /etc/nat/network
cp /etc/nat/network-host23 /etc/nat/network
else
if [ $x == 0 ] && [ $y == 1 ] && [ $z == 0 ] && [ $i == 1 ];
then
rm -f /etc/nat/network
cp /etc/nat/network-host13 /etc/nat/network
else
if [ $x == 0 ] && [ $y == 1 ] && [ $z == 1 ] && [ $i == 0 ];
then
rm -f /etc/nat/network
cp /etc/nat/network-host14 /etc/nat/network
else
if [ $x == 1 ] && [ $y == 0 ] && [ $z == 1 ] && [ $i == 0 ];
then
rm -f /etc/nat/network
cp /etc/nat/network-host24 /etc/nat/network
else
if [ $x == 1 ] && [ $y == 1 ] && [ $z == 0 ] && [ $i == 0 ];
then
rm -f /etc/nat/network
cp /etc/nat/network-host34 /etc/nat/network
else
if [ $x == 0 ] && [ $y == 0 ] && [ $z == 0 ] && [ $i == 1 ];
then
rm -f /etc/nat/network
cp /etc/nat/network-host123 /etc/nat/network
else
if [ $x == 0 ] && [ $y == 0 ] && [ $z == 1 ] && [ $i == 0 ];
then
rm -f /etc/nat/network
cp /etc/nat/network-host124 /etc/nat/network
else
if [ $x == 0 ] && [ $y == 1 ] && [ $z == 0 ] && [ $i == 0 ];
then
rm -f /etc/nat/network
cp /etc/nat/network-host134 /etc/nat/network
else
if [ $x == 1 ] && [ $y == 0 ] && [ $z == 0 ] && [ $i == 0 ];
then
rm -f /etc/nat/network
cp /etc/nat/network-host234 /etc/nat/network
else
rm -f /etc/nat/network
cp /etc/nat/network-ok /etc/nat/network
fi
fi
fi
fi
fi
fi
fi
fi
fi
fi
fi
fi
fi
fi
fi
chmod +x /etc/nat/network
/etc/nat/delnet
/etc/nat/network


По результатам работы скрипта создаются 2 файла: network с таблицей маршрутов и delnet, который, собственно, при запуске удаляет старые маршруты:

network
#!/bin/bash
route add -net 0.0.0.0/4 gw 172.16.1.200
route add -net 16.0.0.0/4 gw 172.16.1.201
route add -net 32.0.0.0/4 gw 172.16.1.202
route add -net 48.0.0.0/4 gw 172.16.1.203
route add -net 64.0.0.0/4 gw 172.16.1.200
route add -net 80.0.0.0/4 gw 172.16.1.201
route add -net 96.0.0.0/4 gw 172.16.1.202
route add -net 112.0.0.0/4 gw 172.16.1.203
route add -net 128.0.0.0/4 gw 172.16.1.200
route add -net 144.0.0.0/4 gw 172.16.1.201
route add -net 160.0.0.0/4 gw 172.16.1.202
route add -net 176.0.0.0/4 gw 172.16.1.203
route add -net 192.0.0.0/4 gw 172.16.1.200
route add -net 208.0.0.0/4 gw 172.16.1.201
route add -net 224.0.0.0/4 gw 172.16.1.202
route add -net 240.0.0.0/4 gw 172.16.1.203
rm -f /etc/nat/delnet
touch /etc/nat/delnet
echo "#! /bin/bash" >> /etc/nat/delnet
echo «route del -net 0.0.0.0/4 gw 172.16.1.200» >> /etc/nat/delnet
echo «route del -net 16.0.0.0/4 gw 172.16.1.201» >> /etc/nat/delnet
echo «route del -net 32.0.0.0/4 gw 172.16.1.202» >> /etc/nat/delnet
echo «route del -net 48.0.0.0/4 gw 172.16.1.203» >> /etc/nat/delnet
echo «route del -net 64.0.0.0/4 gw 172.16.1.200» >> /etc/nat/delnet
echo «route del -net 80.0.0.0/4 gw 172.16.1.201» >> /etc/nat/delnet
echo «route del -net 96.0.0.0/4 gw 172.16.1.202» >> /etc/nat/delnet
echo «route del -net 112.0.0.0/4 gw 172.16.1.203» >> /etc/nat/delnet
echo «route del -net 128.0.0.0/4 gw 172.16.1.200» >> /etc/nat/delnet
echo «route del -net 144.0.0.0/4 gw 172.16.1.201» >> /etc/nat/delnet
echo «route del -net 160.0.0.0/4 gw 172.16.1.202» >> /etc/nat/delnet
echo «route del -net 176.0.0.0/4 gw 172.16.1.203» >> /etc/nat/delnet
echo «route del -net 192.0.0.0/4 gw 172.16.1.200» >> /etc/nat/delnet
echo «route del -net 208.0.0.0/4 gw 172.16.1.201» >> /etc/nat/delnet
echo «route del -net 224.0.0.0/4 gw 172.16.1.202» >> /etc/nat/delnet
echo «route del -net 240.0.0.0/4 gw 172.16.1.203» >> /etc/nat/delnet
chmod +x /etc/nat/delnet

delnet
#! /bin/bash
route del -net 0.0.0.0/4 gw 172.16.1.200
route del -net 16.0.0.0/4 gw 172.16.1.201
route del -net 32.0.0.0/4 gw 172.16.1.202
route del -net 48.0.0.0/4 gw 172.16.1.203
route del -net 64.0.0.0/4 gw 172.16.1.200
route del -net 80.0.0.0/4 gw 172.16.1.201
route del -net 96.0.0.0/4 gw 172.16.1.202
route del -net 112.0.0.0/4 gw 172.16.1.203
route del -net 128.0.0.0/4 gw 172.16.1.200
route del -net 144.0.0.0/4 gw 172.16.1.201
route del -net 160.0.0.0/4 gw 172.16.1.202
route del -net 176.0.0.0/4 gw 172.16.1.203
route del -net 192.0.0.0/4 gw 172.16.1.200
route del -net 208.0.0.0/4 gw 172.16.1.201
route del -net 224.0.0.0/4 gw 172.16.1.202
route del -net 240.0.0.0/4 gw 172.16.1.203

В качестве примера приведу шаблоны
network-host1
#!/bin/bash
route add -net 0.0.0.0/4 gw 172.16.1.201
route add -net 16.0.0.0/4 gw 172.16.1.202
route add -net 32.0.0.0/4 gw 172.16.1.203
route add -net 48.0.0.0/4 gw 172.16.1.201
route add -net 64.0.0.0/4 gw 172.16.1.202
route add -net 80.0.0.0/4 gw 172.16.1.203
route add -net 96.0.0.0/4 gw 172.16.1.201
route add -net 112.0.0.0/4 gw 172.16.1.202
route add -net 128.0.0.0/4 gw 172.16.1.203
route add -net 144.0.0.0/4 gw 172.16.1.201
route add -net 160.0.0.0/4 gw 172.16.1.202
route add -net 176.0.0.0/4 gw 172.16.1.203
route add -net 192.0.0.0/4 gw 172.16.1.201
route add -net 208.0.0.0/4 gw 172.16.1.202
route add -net 224.0.0.0/4 gw 172.16.1.203
route add -net 240.0.0.0/4 gw 172.16.1.201

rm -f /etc/nat/delnet
touch /etc/nat/delnet
echo "#!/bin/bash" >> /etc/nat/delnet
echo «route del -net 0.0.0.0/4 gw 172.16.1.201» >> /etc/nat/delnet
echo «route del -net 16.0.0.0/4 gw 172.16.1.202» >> /etc/nat/delnet
echo «route del -net 32.0.0.0/4 gw 172.16.1.203» >> /etc/nat/delnet
echo «route del -net 48.0.0.0/4 gw 172.16.1.201» >> /etc/nat/delnet
echo «route del -net 64.0.0.0/4 gw 172.16.1.202» >> /etc/nat/delnet
echo «route del -net 80.0.0.0/4 gw 172.16.1.203» >> /etc/nat/delnet
echo «route del -net 96.0.0.0/4 gw 172.16.1.201» >> /etc/nat/delnet
echo «route del -net 112.0.0.0/4 gw 172.16.1.202» >> /etc/nat/delnet
echo «route del -net 128.0.0.0/4 gw 172.16.1.203» >> /etc/nat/delnet
echo «route del -net 144.0.0.0/4 gw 172.16.1.201» >> /etc/nat/delnet
echo «route del -net 160.0.0.0/4 gw 172.16.1.202» >> /etc/nat/delnet
echo «route del -net 176.0.0.0/4 gw 172.16.1.203» >> /etc/nat/delnet
echo «route del -net 192.0.0.0/4 gw 172.16.1.201» >> /etc/nat/delnet
echo «route del -net 208.0.0.0/4 gw 172.16.1.202» >> /etc/nat/delnet
echo «route del -net 224.0.0.0/4 gw 172.16.1.203» >> /etc/nat/delnet
echo «route del -net 240.0.0.0/4 gw 172.16.1.201» >> /etc/nat/delnet
chmod +x /etc/nat/delnet

network-host123
#!/bin/bash
route add -net 0.0.0.0/4 gw 172.16.1.203
route add -net 16.0.0.0/4 gw 172.16.1.203
route add -net 32.0.0.0/4 gw 172.16.1.203
route add -net 48.0.0.0/4 gw 172.16.1.203
route add -net 64.0.0.0/4 gw 172.16.1.203
route add -net 80.0.0.0/4 gw 172.16.1.203
route add -net 96.0.0.0/4 gw 172.16.1.203
route add -net 112.0.0.0/4 gw 172.16.1.203
route add -net 128.0.0.0/4 gw 172.16.1.203
route add -net 144.0.0.0/4 gw 172.16.1.203
route add -net 160.0.0.0/4 gw 172.16.1.203
route add -net 176.0.0.0/4 gw 172.16.1.203
route add -net 192.0.0.0/4 gw 172.16.1.203
route add -net 208.0.0.0/4 gw 172.16.1.203
route add -net 224.0.0.0/4 gw 172.16.1.203
route add -net 240.0.0.0/4 gw 172.16.1.203

rm -f /etc/nat/delnet
touch /etc/nat/delnet
echo "#!/bin/bash" >> /etc/nat/delnet
echo «route del -net 0.0.0.0/4 gw 172.16.1.203» >> /etc/nat/delnet
echo «route del -net 16.0.0.0/4 gw 172.16.1.203» >> /etc/nat/delnet
echo «route del -net 32.0.0.0/4 gw 172.16.1.203» >> /etc/nat/delnet
echo «route del -net 48.0.0.0/4 gw 172.16.1.203» >> /etc/nat/delnet
echo «route del -net 64.0.0.0/4 gw 172.16.1.203» >> /etc/nat/delnet
echo «route del -net 80.0.0.0/4 gw 172.16.1.203» >> /etc/nat/delnet
echo «route del -net 96.0.0.0/4 gw 172.16.1.203» >> /etc/nat/delnet
echo «route del -net 112.0.0.0/4 gw 172.16.1.203» >> /etc/nat/delnet
echo «route del -net 128.0.0.0/4 gw 172.16.1.203» >> /etc/nat/delnet
echo «route del -net 144.0.0.0/4 gw 172.16.1.203» >> /etc/nat/delnet
echo «route del -net 160.0.0.0/4 gw 172.16.1.203» >> /etc/nat/delnet
echo «route del -net 176.0.0.0/4 gw 172.16.1.203» >> /etc/nat/delnet
echo «route del -net 192.0.0.0/4 gw 172.16.1.203» >> /etc/nat/delnet
echo «route del -net 208.0.0.0/4 gw 172.16.1.203» >> /etc/nat/delnet
echo «route del -net 224.0.0.0/4 gw 172.16.1.203» >> /etc/nat/delnet
echo «route del -net 240.0.0.0/4 gw 172.16.1.203» >> /etc/nat/delnet
chmod +x /etc/nat/delnet

Из примеров можно понять принцип, по которому делались шаблоны.

P.S. Несмотря на корявость решения, данный шлюз уже в течении полугода успешно пускает в сеть порядка 100 пользователей. С минимумом проблем.
Теги:
Хабы:
+13
Комментарии 20
Комментарии Комментарии 20

Публикации

Истории

Ближайшие события

Московский туристический хакатон
Дата 23 марта – 7 апреля
Место
Москва Онлайн
Геймтон «DatsEdenSpace» от DatsTeam
Дата 5 – 6 апреля
Время 17:00 – 20:00
Место
Онлайн