Size: 3360
Comment:
|
Size: 5116
Comment:
|
Deletions are marked like this. | Additions are marked like this. |
Line 44: | Line 44: |
=== Целевая маршрутизация === Особые случаи маршрутизации: * В зависимости от адреса ''отправителя'' * В зависимости от пометок межсетевого экрана * … Policy routing: * `ip rule` ([[http://www.opennet.ru/base/net/iproute2.txt.html|пример]]) * таблицы local и main {{{ [root@uneex ~]# ip r default via 10.0.2.2 dev enp0s3 metric 203 10.0.2.0/24 dev enp0s3 proto kernel scope link src 10.0.2.15 metric 203 10.30.50.0/24 dev enp0s8 proto kernel scope link src 10.30.50.1 [root@uneex ~]# ip r list table local broadcast 10.0.2.0 dev enp0s3 proto kernel scope link src 10.0.2.15 local 10.0.2.15 dev enp0s3 proto kernel scope host src 10.0.2.15 broadcast 10.0.2.255 dev enp0s3 proto kernel scope link src 10.0.2.15 broadcast 10.30.50.0 dev enp0s8 proto kernel scope link src 10.30.50.1 local 10.30.50.1 dev enp0s8 proto kernel scope host src 10.30.50.1 broadcast 10.30.50.255 dev enp0s8 proto kernel scope link src 10.30.50.1 broadcast 127.0.0.0 dev lo proto kernel scope link src 127.0.0.1 local 127.0.0.0/8 dev lo proto kernel scope host src 127.0.0.1 local 127.0.0.1 dev lo proto kernel scope host src 127.0.0.1 broadcast 127.255.255.255 dev lo proto kernel scope link src 127.0.0.1 }}} Пример правил: {{{ # ip rule 0: from all lookup local 32766: from all lookup main 32767: from all lookup default }}} {{{ # echo $TBL $TNAME >> /etc/iproute2/rt_tables # ip rule add from $IP table $TBL # или $TNAME # ip route add default dev $ETH via $GW table $TBL # ip route add $NET dev $ETH table $TBL }}} |
Сетевой уровень: настройка, DHCP и целевая маршрутизация
Настройки
Простой случай: ip a + ip r на каждом интерфейсе
Сохранение настроек: команды+данные (etcnet, network-scripts и т. п.) или спецAPI+данные (Network Manager). Достоинства и недостатки.
Устройство etcnet: ifaces options.d scripts sysctl.conf
Функции маршрутизатора (ip_forward):
команда sysctl net.ipv4.ip_forward == файл /proc/sys/net/ipv4/ip_forward
# sysctl net.ipv4.ip_forward=1 == echo 1 > /proc/sys/net/ipv4/ip_forward
/etc/net/sysctl.conf: net.ipv4.ip_forward = 1
DHCP
- Задача: узнать свой IP.
Решение: спросить у сервера (протокол RARP, сетевой)
- Задача: узнать настройки сети
Решение: спросить у сервера (протокол BOOTP, прикладной)
- Задача: узнать все настройки
Решение: спросить у сервера (протокол DHCP, прикладной)
Штук 70 стандартных полей
PXE = tftp + bootp (возможны девиации)
ISC DHCPD и его настройка:
[root@uneex ~]# cat /etc/dhcp/dhcpd.conf # See dhcpd.conf(5) for further configuration ddns-update-style none; subnet 10.30.50.0 netmask 255.255.255.0 { option routers 10.30.50.1; option subnet-mask 255.255.255.0; option domain-name "class.altlinux.org"; option domain-name-servers 10.30.50.1; range dynamic-bootp 10.30.50.10 10.30.50.100; default-lease-time 21600; max-lease-time 43200; }
Целевая маршрутизация
Особые случаи маршрутизации:
В зависимости от адреса отправителя
- В зависимости от пометок межсетевого экрана
- …
Policy routing:
ip rule (пример)
- таблицы local и main
[root@uneex ~]# ip r default via 10.0.2.2 dev enp0s3 metric 203 10.0.2.0/24 dev enp0s3 proto kernel scope link src 10.0.2.15 metric 203 10.30.50.0/24 dev enp0s8 proto kernel scope link src 10.30.50.1 [root@uneex ~]# ip r list table local broadcast 10.0.2.0 dev enp0s3 proto kernel scope link src 10.0.2.15 local 10.0.2.15 dev enp0s3 proto kernel scope host src 10.0.2.15 broadcast 10.0.2.255 dev enp0s3 proto kernel scope link src 10.0.2.15 broadcast 10.30.50.0 dev enp0s8 proto kernel scope link src 10.30.50.1 local 10.30.50.1 dev enp0s8 proto kernel scope host src 10.30.50.1 broadcast 10.30.50.255 dev enp0s8 proto kernel scope link src 10.30.50.1 broadcast 127.0.0.0 dev lo proto kernel scope link src 127.0.0.1 local 127.0.0.0/8 dev lo proto kernel scope host src 127.0.0.1 local 127.0.0.1 dev lo proto kernel scope host src 127.0.0.1 broadcast 127.255.255.255 dev lo proto kernel scope link src 127.0.0.1
Пример правил:
# ip rule 0: from all lookup local 32766: from all lookup main 32767: from all lookup default
# echo $TBL $TNAME >> /etc/iproute2/rt_tables # ip rule add from $IP table $TBL # или $TNAME # ip route add default dev $ETH via $GW table $TBL # ip route add $NET dev $ETH table $TBL
to be c...d
Д/З
- Изучить настройки сети на сервере:
ip r, ip a
ls /etc/net, ls /etc/net/ifaces
find /etc/net/ifaces/[el]* -type f -print (эта команда рекурсивно просматривает соответствующие каталоги и находит в них файлы)
find /etc/net/ifaces/[el]* -type f -print -exec cat {} \; (эта командавыводит не только имена файлов, но и их содержимое)
(вариант предыдущей команды, в которой find только выдаёт имена файлов, а выводом занимается sh): find /etc/net/ifaces/[el]* -type f -print | while read f; do echo " ====== $f"; cat $f; done
- (файлы вида `*/fw/* — настройка межсетевого экрана)
каких настроек сети не задано явно в текущей конфигурации etcnet и почему?
- Изучить сетевые настройки клиента
В файле /etc/net/ifaces/enp0s3/ipv4route расскомментировать по одной строчке, посмотреть, что измениться после service network restart