Конфигуриране на мрежови интерфейси и маршрутизиране с помощта на пакета iproute 2
Повечето дистрибуции на Linux, както и UNIX, използват командите ifconfig, arp и route за конфигуриране на мрежа и маршрутизиране. Въпреки това, от ядрото на Linux 2.2 мрежовата система е напълно преработена и са добавени нови функции, които преди това изискваха допълнителни помощни програми, като базирано на правила маршрутизиране, контрол на трафика и т.н. Тези функции се предоставят от софтуерния пакет iproute2, който в момента е включен в повечето съвременни дистрибуции.
Помощната програма ip съчетава възможностите на командите ifconfig, arp и route, разгледайте синтаксиса на командата:
ip [Опции] Обект [ Команда [Аргументи на командата] ]
където Опциите са незадължителни параметри, които засягат общата работа на помощната програма или извеждането на резултати.
В момента са налични следните опции:
- -V, -Version - извежда към стандартен изход (stdout) версията на програмата ip
- -s, -stats, -statistic - показва статистическа информация.
- -f, -family предхожда идентификатор на протокол като inet (IPv4), inet6(IPv6) или връзка (устройства). Служи за избор на спецификация на протокола, ако протоколът не е зададен, тогава по подразбиране протоколът се избира от параметрите на командата.
- -4 - аналог на параметъра -family inet
- -6 - аналог на -family inet6
- -0 - аналог на параметъра -family link
- -o, -oneline - всеки запис ще се показва на нов ред.
- -r Показване на символни имена на хостове.
Обектът е обект, с който се работи или за който се получава информация. Обектите са както следва:
Командата описва действието върху обекта.
ip връзка- конфигурация на мрежово устройство.
Налични команди: задаване ипоказване (или списък).
IP Link set- промяна на параметрите на мрежовото устройство.
ip link show (list, ls, sh, lst, l)- показва информация за мрежовия интерфейс. Аргументи:
- dev - Името на интерфейса, с който ще извършваме някои манипулации.
- нагоре - показва само активирани интерфейси.
Показване на информация за състоянието на интерфейса eth0
# ip връзка ls dev eth0
В резултат на това получаваме:
eth0: mtu 1500 qdisc cbq qlen 100 link/ether 00:04:61:92:21:1d brd ff:ff:ff:ff:ff:ff
Нека да покажем статистиката на интерфейса eth0
#ip -s връзка ls dev eth0
2: eth0: mtu 1500 qdisc cbq qlen 100 link/ether 00:04:61:92:21:1d brd ff:ff:ff:ff:ff:ff RX: bytes packets errors dropped overrun mcast 2891892504 15070935 0 0 0 0 TX: байтове пакети грешки изпуснати превозвач collsns 3139067270 54387014 0 0 0 132934
ip addr add 10.0.0.1/24 brd + dev eth0 етикет eth0:Alias
ip адрес на 127.0.0.1/8 dev lo
Пример за екип:
$ ip адрес ls eth0 3: eth0: mtu 1500 qdisc cbq qlen 100 връзка/етер 00:a0:cc:66:18:78 brd ff:ff:ff:ff:ff:ff inet 193.233.7.90/24 brd 193.233.7.255 обхват глобален eth0 inet6 3ffe:2400:0:1:2a0:ccff:fe66:1878/64 scope global dynamic valid_lft forever preferred_lft 604746sec inet6 fe80::2a0:ccff:fe66:1878/10 scope link [имейл защитен]:
ip route- управление на таблица за маршрутизиране.
Съкращения: маршрут, ро, р.
ip route add - добавяне на нов маршрут ip route change - промяна на маршрута ip route replace - заместване на route
Съкращения: доп., а; промяна, chg; замествам, възм.
Добавете маршрут към мрежата 10.0.0/24 през 193.233.7.65
ip route add 10.0.0/24 чрез 193.233.7.65
Нека добавим шлюз по подразбиране в случай на използване на два канала в зависимост от натоварването на канала:
ip маршрут добавяне на обхват по подразбиране global nexthop dev ppp0 nexthop dev ppp1
ip route delete- изтриване на маршрут.
Съкращения: delete, del, d.
Аргументи: Аргументите на тази команда са подобни на ip route add.
Изтрийте маршрута, създаден в предишния раздел.
ip route del default scope global nexthop dev ppp0 nexthop dev ppp1
ip правило- управление на правилата за маршрутизиране
Съкращения: правило, ru
ip rule add - добавяне на ново правило. Изтриване на Ip правило - изтриване на правило.
Съкращения: доп., а; изтриване, изтриване, d
Маршрутизирайте пакети от мрежа 192.203.80.0/24 според примерната таблица.
ip ru добавяне от 192.203.80.0/24 таблица пример преди 220
Нека да разгледаме примери за използване на базирано на правила маршрутизиране.
# echo 200 Потребител >> /etc/iproute2/rt_tables # ip правило добавяне от 10.0.0.10 таблица Джон # ip правило ls 0: от всички локални справки 32765: от 10.0.0.10 справки Джон 32766: от всички основни справки 32767: от всички справки по подразбиране
След това присвояваме шлюз по подразбиране за този потребител и изчистваме кеша на таблицата за маршрутизиране, за да влязат в сила нашите промени.
# ip route add default via 195.96.98.253 dev ppp2 table John # ip route flush cache
2. Необходимо е да насочите целия трафик към порт 80 през мрежовата карта eth0. Нека отбележим пакетите, отиващи към порт 80.
# iptables -A PREROUTING -i eth0 -t mangle -p tcp --dport 80 -j MARK --set-mark 2
Нека създадем правила за маркирани пакети.
# ехо 202 www.out >> /etc/iproute2/rt_tables Добавяне на # ip правилоfwmark 2 table www.out # ip route add default via 10.0.0.2 dev eth0 table www.out # ip route flush cache
СПИСЪК НА ИЗПОЛЗВАНАТА ЛИТЕРАТУРА:
1. Справочник за IP команда - Алексей Н. Кузнецов 2. Linux Advanced Routing & Контрол на трафика HOWTO