2008-05-28

cisco ios acls

пара забавных вещей о АЦЛ:

1) начиная с 12.3 их можно _редактировать_:
пример:
есть список доступа:
(config)# access-list 101 permit tcp any any established
(config)# access-list 101 permit tcp any any eq www
(config)# access-list 101 permit tcp any any eq smtp
(config)# access-list 101 permit tcp any any eq telnet
(config)# access-list 101 deny ip any any
теперь просмотрим его:
# sh access-list
Extended IP access list 101
10 permit tcp any any established
20 permit tcp any any eq www
30 permit tcp any any eq smtp
40 permit tcp any any eq telnet
50 deny ip any any
теперь удалим запись про смтп:
(config)# ip access-list ext 101
(config-ext-nacl)# no 30
результаты:
# sh access-list
Extended IP access list 101
10 permit tcp any any established
20 permit tcp any any eq www
40 permit tcp any any eq telnet
50 deny ip any any
заменим его на новый с указанием айпи:
(config)# ip access-list ext 101
(config-ext-nacl)# 30 permit tcp any host 1.2.3.4 eq smtp
результаты:
# sh access-list
Extended IP access list 101
10 permit tcp any any established
20 permit tcp any any eq www
30 permit tcp any host 1.2.3.4 eq smtp
40 permit tcp any any eq telnet
50 deny ip any any

2008-05-27

настройка файрвола ipv6

естественно линукс умеет нормально файрволить ipv6. для этого используется все тот же нетфильтер, и юзерспейс-утилита - ip6table. суть - тот же iptables. аналогичные опции, аналогичные цепочки. различны лишь способы указания адресов и поддерживаемые модули... ну и естественно есть скрипты ip6tables-save и ip6tables-restore.

так как опыта эксплуатации ipv6 у меня ноль, то возникает куча вопросов и раздумий... первое что приходит в голову - как ограничить доступ в интернет через меня, т.е. фильтровать цепочку форвард?

вот к какому решени. я пока пришел.
естественно что указывать при этом полностью все адреса неудобно. да и так как все адреса по-определению честные, то необходимо пропускать и трафик из интернета на них
что тут может помочь - использование модуля eui64. данный модуль проверяет совпадение мака в фрейме с младшими 64битами адреса. если использовалась автоконфигурация, то это вполне адекватно. таким образоммы можем сразу отфильтровать "левые" адреса приходящие из локалки на роутер, а пропустить только разданные нами например по дхцп "нашим" макам. далее - ограничить доступ только с определенных маков с локалки...

пример:
1) цепочка для проверки "законных" маков, заодно ограничив исход только с законных префиксов (никто и брокеров не хочет маршрутизировать левые префиксы :)):
ip6tables -N FORW
ip6tables -I FORWARD -i eth+ -m eui64 -s 2001:db8::/48 -j FORW
2) задаем разрешенные маки:
ip6tables -A FORW -m mac --mac-source 00:01:23:45:67:78 -i eth0 -j ACCEPT
ip6tables -A FORW -m mac --mac-source 00:01:23:45:67:90 -i eth0 -j ACCEPT
3) закрываем весь левый трафик _пытающийся_ уйти в туннель :)
iptables -A FORWARD -o tun -j DROP

возникшие у меня вопросы:
1) как поступать с пакетами которые прошли маршрутизацию? например подсеть не являющейся непосредственно подсоединенной?
2) как eui64 работает в не-езернет сетях?
3) что имеет смысл фильтровать на вход _из_ интернета? пока я ничего не фильтрую :)

2008-05-18

ipv6 router advertisements

где можно получить подключение к сети ipv6 и блок адресов я уже упоминал.
теперь хочу поведать о настройке маршрутизатора.

первое что приходит в голову - автоматическая настройка хостов и шлюза с помощью icmpv6, а именно c помощью т.н. router advertisement..
для этого установим radvd - демон выполняющий переодическую отправку этих самых сообщений:
emerge radvd

далее - конфиг.
/etc/radvd.conf:
здесь указываются настройки для каждого интерфейса: какая сеть должна быть на интерфейсе, срок действия адресов, приоритеты роутеров, включена ли рассылка адвертайзментов или нет, и т.д.

пример:

# интерфейс на котором включаем radvd
interface eth0
{
#включаем отправку объявлений
AdvSendAdvert on;
MinRtrAdvInterval 3;
MaxRtrAdvInterval 10;

#указываем подсеть адреса из которой будут выдаваться
prefix 2001:db8:0:0::/64
{
AdvOnLink off;
AdvAutonomous on;
AdvRouterAddr on;
# хост должен обновлять информацию об адресе каждые 20 секунд,
#если он этого не сделает в течении 30 - адрес будет считаться недействительным
AdvPreferredLifetime 20;
AdvValidLifetime 30;
};

};


теперь роутер каждые 3 секунды будет управлять объявления с настройками сети.
хост по получении такого объявления может автоматически создать себе адрес на основе так называемого EUI64 - слегка преобразованного мака.

таким образом полученный хостом адрес будет выглядеть так:
1) старшие 64 бита - адрес сети (указанный в radvd префикс)
2) младшие 64 бита - еуи64
пример формирования младших 64 бит:
допустим мак хоста 01:23:45:67:89:ab
инвертируем 7й би первого октета: 03:23:45:67:89:ab
вставляем посередке ff:fe: 03:23:45:ff:fe:67:89:ab
ставим правильно двоеточия (каждые 16 бит): 0323:45ff:fe67:89ab
приписываем префикс подсети: 2001:db8:0:0:0323:45ff:fe67:89ab
вуаля.
далее - тазик сам выберет из всех маршрутизаторов присылающих объявления шлюз, и сможет работать в сети айпив6 :)

2008-05-15

до начала сессии осталось 15 дней :)

обновил в календаре расписание экзаменов:

Вопросы дня: eigrp k-коэффициенты

1) что значит К5? почему его постоянно ассоциируют с МТУ? ведь в формуле расчета метрики МТУ вообще не фигурирует :)

2) что будет если установить для еигрп все к-коэффициенты равными нулю? :)
уравнять все маршруты, и привести к появлению роутин-лупов? :)
а) какая метрика будет у маршрутов?
б) почему не будет роутин-лупов? :))

2008-05-10

стандартные и расширенные вланы

все уважающие себя цисководы много чего знают о вланах.
но в тоже время вопросы по этим самым вланам очень часто завязаны на конкретное оборудование, которое например может поддерживать только 128 вланов, или поддерживать какие-то фичи связанные с вланами по разному. рассмотрим основые грабли, которые нам любезно разложила циска в своих железках :)

со времен существования цисковского протокола тегирования кадров езернет для вланов (isl) нам досталось деление вланов на стандартные и расширенные.

isl поддерживал только 1005 вланов. и все основные фичи связанные с вланами как правило работают только с этими 1005 вланами. эти вланы называються стандартными.

протокол vtp работает только с 1005 вланами. и пока активен не позволит даже создать на свиче влан с большим номером :)
отключить vtp можно просто переведя его в режим transparent.

расширенными вланами нельзя управлять из vlan database, так как влан датабейс - данные протокола vtp :)

расширенные вланы можно создавать/редактировать из конфигурационного режима командой vlan, и по-хорошему они храняться в конфиге.

расширенные (1006...4095) вланы используються как internal vlan. то есть выделяються для routed ports. потому нужный вам влан уже может оказаться занятым :) будьте бдительны!
internal vlan выделяються начиная с минимального незанятого расширенного влана.