Centos 7 настройка сети
Содержание:
Установка и настройка Bind на CentOS
Как установить и настроить сервер доменных имен (DNS)
при помощи Bind 9 и дистрибутива Linux
(CentOs5.2)
Дано:
Сервер для DNS —> 192.168.76.1 (ns1.example.com)
Зона —> example.com
Файлы зон:
—> db.example.com
—> db.76.168.192.
—> db.0.0.127
—>db.cacheУстановка BIND 9
Установку выполняем на CentOs5.2yum install bindНастройка BIND
9
Создадим и наполним конфигурационный файл
/var/named/chroot/etc/named.confvi /var/named/chroot/etc/named.conf
options
{
directory «/var/named/»;
dump-file «/var/run/named_dump.bd»;
statistics-file «/var/run/named.stats»;
};
zone «example.com» IN {
type master;
file «db.example.com»;
};
zone «76.168.192.IN-ADDR.ARPA.» IN {
type master;
file «db.76.168.192»;
};
zone
«0.0.127.IN-ADDR.ARPA.» IN {
type master;
file «db.127.0.0»;
};
zone
«.» {
type hint;
file «db.cache»;
};
Будем использовать сокращения.
Создаем файлы для example.com.,
192.168.76.0, 127.0.0.1 и корня
vi
/var/named/chroot/var/named/db.example.com.
;Где:
SOA — первая запись в зону доменных имен, указывающая на то, что данный
сервер наиболее лучший источник информации об описанном домене.
;root.example.com — ваша
почта (да именно без @)
;ns1.example.com — сервер имен (где хранится этот файл)
;$TTL — время жизни
; (
) — разрешает перенос записи SOA
$TTL
1H
@ IN SOA ns1.example.com root.example.com (
22 ; Серийный номер —
автоматически обновляется (увеличивается на 1) при внесении новых
записей
3H ; Обновление
1H ; Повтор
1W ; Истечение срока действия
1H ) ;
Минимум
;
Серверы имен
; ставим пробел IN NS ns1.example.com
IN NS ns1.example.com
;
адреса для канонических имен ns1 IN A 192.168.76.1
station1 IN A 192.168.76.154
;Псевдонимы-
помно обратиться к станции по нескольким именам, как:ping
station2 так и ping station1station2
IN CNAME station1ns1
IN CNAME gw1
vi
/var/named/chroot/var/named/db.76.168.192
$TTL
1H@
IN SOA ns1.example.com root.example.com (73H1H1W1H
);Серверы
имен;ставим
пробел IN NS ns1.example.com
IN
NS ns1.example.com;
Указывают на канонические имена1
PTR ns1.example.com.154
PTR station1.example.com.
vi /var/named/chroot/var/name/db.127.0.0
# loopback адрес для направления пакетов себе.$TTL
1H @ IN SOA ns1.example.com root.example.com (303h1h1w1h
)
;Серверы
имен
IN NS ns1.example.com.
1
IN PTR localhost.
vi /var/named/chroot/var/named/db.cache
#корневые сервера
A.ROOT-SERVERS.NET.
3600000 A 198.41.0.4
;
; formerly NS1.ISI.EDU
;
. 3600000 NS B.ROOT-SERVERS.NET.
B.ROOT-SERVERS.NET. 3600000 A 192.228.79.201
;
; formerly C.PSI.NET
;
. 3600000 NS C.ROOT-SERVERS.NET.
C.ROOT-SERVERS.NET. 3600000 A 192.33.4.12
;
; formerly TERP.UMD.EDU
;
. 3600000 NS D.ROOT-SERVERS.NET.
D.ROOT-SERVERS.NET. 3600000 A 128.8.10.90
;
; formerly NS.NASA.GOV
;
. 3600000 NS E.ROOT-SERVERS.NET.
E.ROOT-SERVERS.NET. 3600000 A 192.203.230.10
;
; formerly NS.ISC.ORG
;
. 3600000 NS F.ROOT-SERVERS.NET.
F.ROOT-SERVERS.NET. 3600000 A 192.5.5.241
;
; formerly NS.NIC.DDN.MIL
;
. 3600000 NS G.ROOT-SERVERS.NET.
G.ROOT-SERVERS.NET. 3600000 A 192.112.36.4
;
; formerly AOS.ARL.ARMY.MIL
;
. 3600000 NS H.ROOT-SERVERS.NET.
H.ROOT-SERVERS.NET. 3600000 A 128.63.2.53
;
; formerly NIC.NORDU.NET
;
. 3600000 NS I.ROOT-SERVERS.NET.
I.ROOT-SERVERS.NET. 3600000 A 192.36.148.17
J.ROOT-SERVERS.NET. 3600000 A 192.58.128.30
;
; operated by RIPE NCC
;
. 3600000 NS K.ROOT-SERVERS.NET.
K.ROOT-SERVERS.NET. 3600000 A 193.0.14.129
;
; operated by ICANN
;
. 3600000 NS L.ROOT-SERVERS.NET.
L.ROOT-SERVERS.NET. 3600000 A 198.32.64.12
;
; operated by WIDE
;
. 3600000 NS M.ROOT-SERVERS.NET.
M.ROOT-SERVERS.NET. 3600000 A 202.12.27.33
; End of File
Запуск
и остановка сервера:/etc/init.d/nammed {start stop restart}Утилиты для
тестирования DNShost, nslookup, dig.Более подробные
настройки DNS читайте:man bind, книгу DNS и BIND..
Plutonit.ru — Администрирование, настройка Linux и Windows 2009 — 2019
Centos 7 настройка сети
Начнем мы с самых простых методов инсталляции, так сказать все поэтапно, а именно с графического, этот метод удобен при разовой установке, ну аж если у вас она массовая, то в помощь вам скрипты и PXE.
Настройка сети во время установки
Логично, что для упрощения настройки разработчики CentOS позаботились сделать все как можно дружелюбнее. У вас как у пользователя есть возможность на вкладке Network & Hostname сразу задать статический ip адрес при установке.
Выбираем нужный сетевой интерфейс и нажимаем справа Configure.
Переходим в пункт ipv4 и выбираем manual, то есть в ручную.
Прописываем ваши данные такие как
- ip адрес
- маску подсети
- шлюз
- dns сервера
Как видите, это очень простой способ, но мы же учимся администрированию, поэтому ниже будут представлены консольные методы.
Для того, чтобы у вас все получилось вам нужно быть администратором (root) данной системы, о чем будет говорить значок решетки #.
Вводим ifconfig. Команда выводит текущие сетевые интерфейсы. У вас их может быть много, но заведите себе правило, если это сервер, то он обязательно должен иметь статику, ни в коем случае не оставляйте DHCP.
Видим, что только есть интерфейс замыкания. В CentOS по умолчанию сетевой интерфейс отключен. Как его включить читаем ниже.
Установка в centos ifconfig
Если у вас выскакивает ifconfig: команда не найдена или ifconfig: command not found то не расстраивайтесь, ее забыли добавить в минимальную версию, как только настроите сеть по инструкции ниже, то сможете установить ее, только после настройки сети.
Посмотрим в состав какого пакета она входит
yum provides ifconfig
И собственно установим сам ifconfig в centos 7
yum install net-tools
Настроим статику.
Centos настройка сети из консоли
Самый распространенный метод, который позволяет произвести в centos настройку сети из консоли, да то самое черное окно, его преимущества в том, что требуется минимальная скорость сетевого подключения к серверу, в отличии от графики, очень пригодится если редактировать настройки Centos при большой нагрузке на сервер. Пишем vi или nano кому что нравится.
Хочу отметить, что название интерфейса у вас может быть другое, отличное от ifcfg-eth0, но тоже будет начинаться с ifcfg-. Посмотреть список интерфейсов можно командой
ip addr show
или
ip a
Вот пример названия ifcfg-ens192
Еще можно посмотреть командой
ls /etc/sysconfig/network-scripts/ | grep ifcfg
Внесите/измените записи в файле для задания статической настройки сетевого интерфейса:
Собственно как понятно из файла, IP адрес он получает от DHCP сервера, поэтому выключаем DHCP и меняем настройки на ститику.Для редактирования жмем Insert.
После редактирования жмем ESC потом :wq (Что значит записать и выйти)
После выхода пишем ifdown eth0 на всякий случай тушим интерфейс, потом ifup eth0 поднимаем интерфейс.
Видим, что сетевой интерфейс поднялся.
Установка и настройка Dynamic DNS DDNS на CentOS 6.0
Для работы DDNS потребуется установить и настроить сервер DNS и DHCP и настроить их таким образом, что бы сервер DHCP раздавая сетевые реквизиты клиентам самостоятельно вносил изменения в DNS сервер.
Но для начала работы нам необходимо произвести предварительную настройку. Настройка заключается в следующем: вручную указать IP адрес нашего сервера, адрес DNS сервера и имя нашего сервера.
Зададим IP адрес. Для этого в файле /etc/sysconfig/network-scripts/ifcfg-eth0 мы изменяем настройки интерфейса eth0
Теперь вносим изменения в файл /etc/resolv.conf указывая себя в качестве основного DNS сервера
nameserver 192.168.200.101
И в файле /etc/sysconfig так же пишем
NS это сокращение от Name Server, наш сервер будет выполнять роль сервера имен, поэтому логично назвать его понятным именем.
Теперь нужно перезапустить сервис поддержки сети и проверить что все работает
Устанавливаем все необходимые приложения и прописываем их в автозапуск:
Далее создаем секретный ключ. Этот ключ обеспечит безопасность нашего DNS сервера, и не позволит серверу принимать изменения зоны от серверов не имеющих данного ключа.
Эта команда сгенерирует новый ключ размером 128 бит, и запишет его в файл /etc/rndc.key. После этого мы можем использовать данный ключ в конфигурации нашего сервера.Для того что бы DNS сервер знал о существовании ключа mykey необходимо добавить в файл конфигурации /etc/named.conf следующую строку
После чего сервер будет знать о существовании нашего ключа.
Для того что бы DHCP сервер смог передавать изменения зоны серверу DNS, добавим в том же файле конфигурации /etc/named.conf следующие строки сразу после секции options
Данными строками мы определили для сервера DNS группу IP адресов с именем «dhcp», и разрешили контроль DNS сервера на интерфейсе 127.0.0.1 на порту 953 для хостов группы «dhcp», при условии использования ключа «mykey».
Теперь необходимо создать зоны которыми мы будем управлять при помощи DHCP сервера. Для этого в файле локальной конфигурации сервера DNS /etc/named.conf мы прописываем прямую и обратную зоны для сети «mynet.lan», описание остальных зон из файла желательно убрать.
Таким образом мы обозначили две зоны.Для того что бы наш сервер мог обрабатывать не только наши указанные зоны но и мог работать в качестве кэширующего сервера, в секцию options необходимо добавить две строки:
Где 192.168.200.1 — адрес нашего DNS сервера, на который будут переправлены запросы.
Так же необходимо настроить сервер DNS что бы он был доступен для всех компьютеров сети, изменим соответствующую конфигурацию в /etc/named.conf в секции options
Теперь можно приступить к описанию самих зон. Для этого создаем два файла
И наполняем их следующим образом:файл mynet.zone:
файл 192.168.200.zone
Теперь запускаем сервер bind
и проверяем работу прямой и обратной зоны
Это обозначает что и прямая и обратная зоны работают корректно.
Теперь переходим к настройке сервера DHCP. Редактируем файл /etc/dhcp/dhcpd.conf и приводим его к следующему виду.
В данной конфигурации мы указали ключ для обновления зоны DNS, указали стиль обновления зоны, указали какие зоны обновлять и где они находятся, так же указали необходимые параметры сети для которой мы будем раздавать IP адреса. Ну и в конце мы указали фиксированный адрес для хоста NS. DNS сервер должен всегда иметь фиксированный адрес прописанный вручную, тем не менее в DHCP мы указываем себя затем, что бы сервер случайно не выдал адрес DNS сервера какому либо клиенту
Это не обязательно, но желательно.Есть ещё одно важное НО. Так как зона у нас динамическая и сервер named работает от пользователя named, то возможна ситуация когда права доступа не позволят серверу записывать файлы в каталог /etc/named/ или не дадут возможности серверу изменить файлы описания зон
Для того что бы избежать этих недоразумений немного скорректируем права.
После проделанных манипуляций запускаем сервер dhcp
Теперь мы можем проверить наш DDNS сервер. Для этого достаточно получить IP адрес у нашего DHCP и далее проверить появилась ли запись о нашем клиенте в DNS. Для примера с клиента с именем winxp мы получаем IP адрес:
И к примеру мы получили IP адрес 192.168.200.3Теперь проверяем:
Это значит что сервер успешно добавил клиента winxp и в прямую и в обратную зоны.Так же при удачной настройке мы должны увидеть файлы с расширением jnl в папке /etc/named
Из чего состоит файловая система CentOS 7
Как видите есть корневой каталог / и много под каталогов, мы разберем самые основные.
- / > корень в нем располагаются все остальные папки
- /bin > тут находятся основные утилиты CentOS 7
- /etc > тут как раз хранятся конфиги
- /home > содержит домашние каталоги созданных пользователей
- /root > домашний каталог администратора
- /var > логи и динамические файлы
Основные команды по работе с CentOS 7
И так для начала введите команду
pwd > вы увидите где вы находитесь в моем случае это корень, далее команду
ls > она покажет содержимое структуры файловой системы, вы увидите папки описанные выше
Теперь давайте перейдем в каталог /etc делается это с помощью команды
cd /etc
далее сделаем ls
Как видите тут гораздо поинтересней, напомню, тут все конфигурационные файлы системы. Если у вас не уместился весь список, то пролистать вверх или вниз можно клавишами Shift+pg UP или Pg Down.
Теперь научимся с вами делать резервную копию конфигурационных файлов, например папки sysconfig, если вдруг она повреждена то у нас будут проблемы с запуском CentOS 7. Для начала посмотрим ее размер, с помощью команды
du -hsx /etc/sysconfig
Ключи hsx выводят в мегабайтах размер папки. Как видите она в принципе весит не много, всего 280К. Место у нас есть так, что можно делать бэкап конфигов.
Создадим в корневом каталоге папку Backup.
mkdir /backup
поднимемся в корневой каталог командой
cd ..
теперь скопируем всю папку susconfig, для этого пишем
cp -r /etc/sysconfig/ /backup/
далее перейдем в папку backup
cd /backup
и выполним команду ls
Как видите папка sysconfig у нас скопировалась со всем содержимым.
Давайте научимся копировать отдельные файлы, например скопируем файл crond в корневой каталог
cp crond /root/
cd /root
ls
Как видите все работает.
Давайте теперь удалим данный файл, зачем нам мусор. Есть такая вот команды
rm crond
далее жмем y для подтверждения удаления
ls
Давайте научимся создавать текстовые файлы, для этого переходим в каталог /backup/sysconfig/ и создадим тут файл readme с описанием того, что у нас находится в данной папке.
cd /backup/sysconfig/
vi readme
vi это встроенный файловый редактор.
В итоге у вас откроется пустой файл readme. Жмем I для редактирования
Далее пишите содержимое в данном файле, что угодно понятное для себя, как только закончите редактирование жмете ESC затем :wq (записать и выйти)
Как видите сам редактор не такой сложный и сама структура файловой системы CentOS 7, довольно дружелюбна. Теперь посмотрим содержимое нашего файла, для этого введите
cat readme
Теперь давайте перемести файл readme в папку backup и переименуем его в другое назваиние
mv readme /backup/backup_list
cd /backup
ls
cat backup_list
Как видите файл переместился и пере именовался.
Теперь научимся искать файлы в файловой системы CentOS 7. Для этого есть утилита find, вводим
find / -name messages
посмотреть синтаксис можно командой
man find
Как видите файл логов системы лежит по пути /var/log/messages. Переходим туда
cd /var/log/
посмотрим его содержимое с помощью tail, она по умолчанию выводит последние 10 строк, но можно вызвать и любое количество
tail messages
поставим параметр -20, чтобы вызвать последние 20 строк
можно например вывести первые 20 строк, для этого введите
head -20 messages
Как посмотреть системные ресурсы CentOS
Давайте научимся смотреть как разбиты диски в CentOS и сколько свободного места
df -h
как видите, места полно. Есть общий размер, размер свободного пространства, процент использования.
Теперь проверим сколько cpu и памяти используется в системе, введем команду top.
Первая строка показывает время работы сервера и среднюю загрузку, вторая сколько запущено процессов, третья это загрузка cpu, четвертая это использование памяти и пятая использование свопа.
Посмотреть список запущенных процессов можно командой
ps aux
У вас появится список всех процессов, перемещаться можно клавишами Shift+Pg Down или Up.
Допустим нужно вывести только cron
ps aux | grep cron
Как видите отфильтровалось, важная информация тут это номер процесса 601
Давайте завершим данный процесс, введите
kill 601
Как видите теперь процесса нет,
Как видите, главное знать команды, конечно все это проще сделать с помощью mc утилиты, имеющей графический интерфейс, но знать азы нужно, далее будет произведена настройка сети Centos 7.
Апр 5, 2016 20:47
-
Последние записи
- Программа 1cv8c.exe версии прекратила взаимодействие с Windows
- Как изменить имя компьютера Windows 10, за минуту
- Подключение было запрещено, учетная запись пользователя не имеет прав
- Windows Identity Foundation ошибка 0x80096002
- Duplicate key was found при установке ManageEngine ServiceDesk 10508
Настройка DNS на сетевом интерфейсе CentOS 7
Пропишем DNS. они находятся в файле resolv.conf. Пишем.
И прописываем в нем nameserver 192.168.102.1
перезапускаем интерфейс командой
/etc/init.d/network restart
или
service network restart
Пингуем яндекс, видим, что все ок.
Если у вас два интерфейса и вам нужно поставить основной, то делается это в файле /etc/sysconfig/network
Так же тут можно поменять имя хоста.
Задаем шлюз и имя сервера
Третий способ. Утилита system-config-network-tui
поставить ее можно из репозитория.
После установки пишем system-config-network-tui
Выбираем Device configuration
Выбираем нужный интерфейс
Задаем настройки
Задаем DNS
Задаем нужные DNS сервера и имя сервера
Save & out.
Четвертый способ через консоль mc
ставим ее yum install mc -y
Запускаем командой mc. Переходим для примера в каталог /etc/sysconfig/network-scripts
выбираем ifcfg-eth0 и нажимаем F4. Выбираем 3 пункт редактировать с помощью mc.
Как в CentOS 6-7 настроить статический ip адрес-01
Как в CentOS 6-7 настроить статический ip адрес-02
F10 чтобы выйти.
Вот уважаемые читатели мы с вами разобрались как происходит в centos настройка сети. На этом думаю закончим данную статью, если есть какие либо вопросы пишите помогу чем смогу.
Материал сайта pyatilistnik.org
Апр 1, 2017 00:34
-
Последние записи
- Как узнать версию Mozilla Firefox, за минуту
- Как узнать версию Google Chrome, за минуту
- Экспорт и импорт сертификата Windows
- Как скачать ограниченное видео с гугл диска
- Как изменить тип сертификата Signature на Exchange, и наоборот
Установка и настройка Bind на Centos7. Настройка Master-Slave DNS-серверов на Centos7
Декабрь 23rd, 2016 Evgeniy Kamenev
Домен: kamaok.org.ua
Master-сервер (192.168.1.86) — Centos 7.2
Slave-сервер (192.168.1.84) — Ubuntu 14.04 LTS
Локальная сеть, которой будут разрешены рекурсивные запросы – 192.168.1.0/24
Настройка Standalone-сервера (кеширующего, без обслуживания какой-либо зоны)
1.Настройка конфигурационного файла Bind /etc/named.conf
# yum install bind bind-utils
1 | # yum install bind bind-utils |
# cp /etc/named.conf /etc/named.conf~
1 | # cp /etc/named.conf /etc/named.conf~ |
# nano /etc/named.conf
1 | # nano /etc/named.conf |
options {
listen-on port 53 { 127.0.0.1; 192.168.1.86; };
listen-on-v6 { none; };
directory «/var/named»;
dump-file «/var/named/data/cache_dump.db»;
statistics-file «/var/named/data/named_stats.txt»;
memstatistics-file «/var/named/data/named_mem_stats.txt»;
allow-query { any; };
recursion yes;
allow-transfer { none;};
allow-update { none; };
allow-recursion {localhost; 192.168.1.0/24; };
notify yes;
version «My DNS Server»;
forwarders { 8.8.8.8; 8.8.4.4; };
dnssec-enable yes;
dnssec-validation yes;
bindkeys-file «/etc/named.iscdlv.key»;
managed-keys-directory «/var/named/dynamic»;
pid-file «/run/named/named.pid»;
session-keyfile «/run/named/session.key»;
};
logging {
channel default_debug {
file «data/named.run»;
severity dynamic;
};
};
zone «.» IN {
type hint;
file «named.ca»;
};
include «/etc/named.rfc1912.zones»;
include «/etc/named.root.key»;
1 |
options{ listen-onport53{127.0.0.1;192.168.1.86;}; listen-on-v6{none;}; directory»/var/named»; dump-file»/var/named/data/cache_dump.db»; statistics-file»/var/named/data/named_stats.txt»; memstatistics-file»/var/named/data/named_mem_stats.txt»; allow-query{any;}; recursion yes; allow-transfer{none;}; allow-update{none;}; allow-recursion{localhost;192.168.1.024;}; notify yes; version»My DNS Server»; forwarders{8.8.8.8;8.8.4.4;}; dnssec-enable yes; dnssec-validation yes; bindkeys-file»/etc/named.iscdlv.key»; managed-keys-directory»/var/named/dynamic»; pid-file»/run/named/named.pid»; session-keyfile»/run/named/session.key»; }; logging{ channeldefault_debug{ file»data/named.run»; severity dynamic; }; }; zone».»IN{ type hint; file»named.ca»; }; include»/etc/named.rfc1912.zones»; include»/etc/named.root.key»; |
Проверка синтаксиса основного конфигурационного файла /etc/named.conf
# named-checkconf /etc/named.conf
1 | # named-checkconf /etc/named.conf |
2. Отключение использования IPv6 для DNS
# nano /etc/sysconfig/named
1 | # nano /etc/sysconfig/named |
OPTIONS=»-4″
1 | OPTIONS=»-4″ |
Перезапуск Bind и проверка корректности обслуживания запросов
# systemctl restart named
1 | # systemctl restart named |
# ps ax | grep amed
1 | # ps ax | grep amed |
1183 ? Ssl 0:00 /usr/sbin/named -u named -4
1 | 1183?Ssl00usrsbinnamed-unamed-4 |
# netstat -nlpu | grep amed
1 | # netstat -nlpu | grep amed |
udp 0 0 192.168.1.86:53 0.0.0.0:* 1183/named
udp 0 0 127.0.0.1:53 0.0.0.0:* 1183/named
1 |
udp192.168.1.86530.0.0.0*1183named udp127.0.0.1530.0.0.0*1183named |
Проверяем локально на DNS-сервере
# dig +short @127.0.0.1 ukr.net
1 | # dig +short @127.0.0.1 ukr.net |
212.42.76.253
212.42.76.252
1 |
212.42.76.253 212.42.76.252 |
# dig +short @192.168.1.86 ya.ru
1 | # dig +short @192.168.1.86 ya.ru |
213.180.193.3
93.158.134.3
213.180.204.3
1 |
213.180.193.3 93.158.134.3 213.180.204.3 |
Проверяем с клиента в локальной сети(192.168.1.84)
# dig +short @192.168.1.86 gmail.com
1 | # dig +short @192.168.1.86 gmail.com |
216.58.214.197
1 | 216.58.214.197 |
3.Настройка rndc
# cat /etc/rndc.key
1 | # cat /etc/rndc.key |
key «rndc-key» {
algorithm hmac-md5;
secret «vRqEj7vmS5qGRVeaheBY1g==»;
};
1 |
key»rndc-key»{ algorithm hmac-md5; secret»vRqEj7vmS5qGRVeaheBY1g==»; }; |
Если файла нет, то можно сгенерировать командой
# rndc-confgen -a
1 | # rndc-confgen -a |
# nano /etc/named.conf
1 | # nano /etc/named.conf |
key «rndc-key» {
algorithm hmac-md5;
secret «vRqEj7vmS5qGRVeaheBY1g==»;
};
controls {
inet 127.0.0.1 port 953
allow { 127.0.0.1; } keys { «rndc-key»; };
};
options {
………………
1 |
key»rndc-key»{ algorithm hmac-md5; secret»vRqEj7vmS5qGRVeaheBY1g==»; }; controls{ inet127.0.0.1port953 allow{127.0.0.1;}keys{«rndc-key»;}; }; options{ ……………… |
# named-checkconf /etc/named.conf
1 | # named-checkconf /etc/named.conf |
# systemctl restart named
1 | # systemctl restart named |
# rndc status
1 | # rndc status |
version: 9.9.4-RedHat-9.9.4-29.el7_2.3 (My DNS Server) 8f9657aa>
&&
&& |
&&
&& |
&&
&& |
&&
&& |
&&
&& |
&&
&& |
&&
&& |