Дата  Запланированые курсы
24.09 Maya (профессиональный курс)
24.09 MOC-20741B. Сетевая инфраструктура на основе Windows Server 2016
24.09 DEV-J30. Программирование на платформе Java. Разработка многоуровневых приложений
25.09 DEV-PY100. Основы процедурного программирования на языке Python
25.09 DEV-PY-MP. Модульная программа "Разработчик прикладного программного обеспечения (Язык Python)"
01.10 Компьютерное проектирование в системе AutoCAD (профессиональный курс)
01.10 Профессиональная верстка сайтов. HTML5 и CSS3
01.10 Компьютерное проектирование в системе AutoCAD (базовый курс)
01.10 MOC-20762. Разработка баз данных SQL
01.10 DEV-С-CP+. Расширенная комплексная программа «Разработчик прикладного программного обеспечения (Языки С и C++)»
01.10 DEV-C10. Процедурное программирование. Языки С/C++
01.10 Основы алгоритмизации и программирования (Группа I)
01.10 Основы алгоритмизации и программирования (Группа II)
02.10 DEV-J-MP+. Расширенная комплексная программа "Разработчик прикладного программного обеспечения (Язык Java)"
02.10 DEV-J10. Программирование на платформе Java. Введение в язык Java
02.10 DEV-J-MP+. Расширенная комплексная программа "Разработчик прикладного программного обеспечения (Язык Java)"
02.10 DEV-J10. Программирование на платформе Java. Введение в язык Java
08.10 MOC-20764. Администрирование инфраструктуры баз данных SQL
08.10 MOC-20742B. Инфраструктура идентификации на основе Windows Server 2016
08.10 DEV-J60. Технологии разработки корпоративных приложений на платформе Java Enterprise Edition (Java EE)
08.10 Введение в тестирование программного обеспечения
15.10 DEV-OCPJP. Подготовка к сдаче сертификационных экзаменов серии Oracle Certified Professional Java Programmer
15.10 Компьютерное проектирование в системе AutoCAD (профессиональный курс)
15.10 Трёхмерное моделирование. 3ds Max
15.10 Работа в MS Excel. Базовый уровень
16.10 DEV-PY101. Базовые алгоритмы и структуры данных на языке Python
17.10 Инструменты бизнес-анализа Microsoft Excel: PowerPivot, PowerView
22.10 MOC-10987. Настройка производительности и оптимизация баз данных SQL
22.10 Введение в тестирование программного обеспечения
22.10 MOC-20744A. Безопасность инфраструктуры средствами Windows Server 2016
22.10 Средства векторной графики. Adobe Illustrator
22.10 Основы создания веб-сайтов. Adobe Dreamweaver
22.10 Работа в MS Excel. Расширенные возможности
24.10 NET-DLINKSW-LAB. Технологии коммутации современных сетей Ethernet. Лабораторный практикум
25.10 DEV-J20. Программирование на платформе Java. Стандартные пакеты
25.10 DEV-J20. Программирование на платформе Java. Стандартные пакеты
29.10 MOC-10961B. Автоматизация администрирования с Windows PowerShell
29.10 Автоматизация работы в Excel 2010 с использованием макросов VBA
07.11 DEV-C20. Объектно-ориентированное программирование. Базовый уровень. Язык С++
12.11 Компьютерное проектирование в системе AutoCAD (базовый курс)
12.11 Профессиональная верстка сайтов. HTML5 и CSS3
13.11 DEV-PY110. Процедурное программирование на языке Python (расширенный курс)
19.11 DEV-J30. Программирование на платформе Java. Разработка многоуровневых приложений
19.11 DEV-J30. Программирование на платформе Java. Разработка многоуровневых приложений
26.11 Средства растровой графики. Adobe Photoshop
26.11 Поисковая оптимизация (SEO)
03.12 Компьютерное проектирование в системе AutoCAD (базовый курс)
03.12 DEV-C21. Объектно-ориентированное программирование. Углубленное изучение. Язык С++
07.12 DEV-PY200. Объектно-ориентированное программирование на языке Python
10.12 Основы создания веб-сайтов. Adobe Dreamweaver
10.12 Средства векторной графики. Adobe Illustrator
10.12 Поисковая оптимизация (SEO) для профессионалов
17.12 Компьютерное проектирование в системе AutoCAD (профессиональный курс)
09.01 DEV-C22. Стандарт С++11, С++14, С++17 для прикладного программирования
14.01 DEV-OCPJP. Подготовка к сдаче сертификационных экзаменов серии Oracle Certified Professional Java Programmer
14.01 DEV-OCPJP. Подготовка к сдаче сертификационных экзаменов серии Oracle Certified Professional Java Programmer
04.02 DEV-QT10. Прикладное программирование на С++ с использованием Qt. Базовый уровень
11.02 DEV-J60. Технологии разработки корпоративных приложений на платформе Java Enterprise Edition (Java EE)
11.02 DEV-J60. Технологии разработки корпоративных приложений на платформе Java Enterprise Edition (Java EE)
11.03 Введение в тестирование программного обеспечения
11.03 Введение в тестирование программного обеспечения
11.03 Введение в тестирование программного обеспечения
Открыт набор на осенний семестр в Академию информатики для школьников Открыт набор на осенний семестр на программы второго высшего образования
Добро пожаловать, Гость! Чтобы использовать все возможности Вход или Регистрация.

Уведомление

Icon
Error

LAN + 2 ISP + NAT, логика работы?
Shek
#1 Оставлено : 9 мая 2010 г. 20:04:53(UTC)
Ранг: Активный Участник

Группы: Зарегистрированные пользователи
Зарегистрирован: 09.02.2009(UTC)
Сообщений: 146
Баллов: 438
Откуда: Russia Питер

Здравствуйте!
Игорь Борисович недавно закончил читать курс по сетям 3 семестр и в конце за 3 минуты рассказал про мультихоминг.
С виду все очевидно, но на практике работает не так как я ожидал, помогите разобраться.

Есть маршрутизатор 2811 + HWIC-4ESW.
Два провайдера zet и sky двумя кабелями воткнуты в fa0/0 и fa0/1 соответственно.
fa0/0/0 привязан к vlan 500 смотрит в LAN. Локальная сеть одна.
Задача - настроить доступ в интернет по обоим каналам одновременно с баллансировкой нагрузки (хотя бы простой 50 на 50, без анализа задержек и пропускной способности) при условии, что один из провайдеров дает нам ip-адрес из приватного диапазона.

Вот полный конфиг, делал как показывал Игорь Борисович:
======================================================================================
Building configuration...
version 12.4
service timestamps debug datetime msec
service timestamps log datetime msec
no service password-encryption
!
hostname R1
!
boot-start-marker
boot-end-marker
!
logging message-counter syslog
logging buffered 4096
!
no aaa new-model
!
dot11 syslog
ip source-route
!
ip cef
!
ip domain name home
ip name-server 156.154.70.22
ip name-server 156.154.71.22
no ipv6 cef
!
multilink bundle-name authenticated
!
voice-card 0
!
username user privilege 15 secret 5 #%$@f
archive
log config
hidekeys
!
ip ssh version 2
!
interface FastEthernet0/0
mac-address 001c.1cc2.e726
ip address 10.189.8.20 255.255.252.0
ip access-group fa0/0_out out
ip nat outside
ip virtual-reassembly
no shutdown
duplex auto
speed auto
!
interface FastEthernet0/1
mac-address 001c.1cc2.e727
ip address 94.19.254.10 255.255.255.0
ip access-group fa0/1_out out
ip nat outside
ip virtual-reassembly
no shutdown
duplex auto
speed auto
!
interface FastEthernet0/0/0
switchport access vlan 500
!
interface FastEthernet0/0/1
!
interface FastEthernet0/0/2
!
interface FastEthernet0/0/3
!
interface Vlan1
no ip address
!
interface Vlan500
ip address 192.168.0.1 255.255.255.0
ip nat inside
ip virtual-reassembly
!
ip forward-protocol nd
ip route 0.0.0.0 0.0.0.0 FastEthernet0/1 94.19.254.1
ip route 0.0.0.0 0.0.0.0 FastEthernet0/0 10.189.8.1
no ip http server
no ip http secure-server
!
!
ip nat inside source route-map skymap interface FastEthernet0/1 overload
ip nat inside source route-map zetmap interface FastEthernet0/0 overload
!
ip access-list standard aclnat
permit 192.168.0.0 0.0.0.255
!
ip access-list extended fa0/0_out
permit ip any any log
ip access-list extended fa0/1_out
permit ip any any log
!
!
route-map zetmap permit 10
match ip address aclnat
match interface FastEthernet0/0
!
route-map skymap permit 10
match ip address aclnat
match interface FastEthernet0/1
!
control-plane
!
line con 0
logging synchronous
line aux 0
line vty 0 4
login local
transport input ssh
!
scheduler allocate 20000 1000
end
======================================================================================
Я ожидал, что при таких настройках пакеты маршрутизируются в тот интерфейс, в адрес которого они NATятся
(или наоборот NATятся в адрес того интерфейса в который смаршрутизированы), но все оказалось не так:
...
May 9 00:32:50.081: %SEC-6-IPACCESSLOGP: list fa0/0_out permitted tcp 94.19.254.10(0) -> 74.125.39.101(0), 1 packet
May 9 00:32:53.093: %SEC-6-IPACCESSLOGP: list fa0/0_out permitted tcp 10.189.8.20(0) -> 209.85.135.102(0), 1 packet
May 9 00:33:03.081: %SEC-6-IPACCESSLOGP: list fa0/1_out permitted tcp 10.189.8.20(0) -> 74.125.53.113(0), 1 packet
May 9 00:33:44.689: %SEC-6-IPACCESSLOGP: list fa0/1_out permitted tcp 94.19.254.10(0) -> 66.102.9.103(0), 6 packets
...
Сразу надо сказать, что если бы оба внешних интерфейса имели бы внешние ip адреса, то проблема была бы не столь острой,
ведь по сути разницы нет с какого интерфейса уйдет во внешний мир пакет, важно то, что ответ вернется назад по адресу источника,
а при трансляции уже была создана запись на нужном интерфейсе с соответствующим адресом, но тем не менее,
Игорь Борисович рекомендовал ставить ACL на out на внешний интерфейс с запретом выхода из него всех пакетов с адресами источника не как у этого интерфейса...
Да и хотелось бы все-таки иметь возможность работы в такой схеме где один провайдер дает ip адреса из приватного диапазона.


??????????????????????????????????????????????????????????????????????????????????????
Возникают вопросы:
1. В чем смысл route-map применимо к NAT?
2. В чем смысл match interface в каждом route-map?
3. Объясните, пожалуйста, поэтапно как пакет обрабатывается в данной схеме от приема из LAN до отправки наружу, что сначала NAT или выбор маршрута?
4. Как сделать так, чтобы пакеты уходили с в нешних интерфесов только с адресами источника конкретно этих самых интерфейсов
(не в смысле как резать все остальные пакеты, а чтобы логика работы была такой)?
??????????????????????????????????????????????????????????????????????????????????????


======================================================================================
Если кому интересны мои рассуждения по этому поводу (кто не хочет разобраться в этом вопросе, можете не читать):

1) Сначала я думал следующим образом (принимая во внимание строки match interface в route-map'ах) -
пришел пакет на внутренний интерфейс от компьютера 192.168.0.100 с адресом назначения 74.125.39.101,
дальше его надо смаршрутизировать, но в таблице маршрутизации нет явных маршрутов, зато есть два default gateway,
значит случайным (или другим) образом выбирается next-hop и соответствующий исходящий интерфейс (допустим выбрался fa0/1),
в настройках исходящего интерфейса есть ip nat outside, следовательно смотрим строки относящиеся к NAT, первая в конфиге
ip nat inside source route-map skymap interface FastEthernet0/1 overload
соответственно смотрим route-map skymap
route-map skymap permit 10
match ip address aclnat
match interface FastEthernet0/1
match ip address aclnat - true, потому что пакет пришел из LAN с адреса 192.168.0.100
как я понимаю пакет мы уже поставили в очередь на исходящий интерфейс fa0/1 и значит match interface fa0/1 - true
соответственно route-map дает permit и происходит трансляция в адрес fa0/1, создаются соответствующие записи в таблице NAT, и пакет стоящий в очереди fa0/1 с него же уходит.

Теперь допустим для этого же пакета выбрался не fa0/1, а fa0/0 в качестве интерфейса отправления
в настройках fa0/0 тоже есть ip nat outside, смотрим
ip nat inside source route-map skymap interface FastEthernet0/1 overload
заходим в route-map skymap
и у нас по идее должно не совпасть match interface fa0/1, соответственно route-map не дает permit и,
(вообще по документации route-map применяется _ТОЛЬКО_ к входящим пакетам _ДО_ выбора исходящего интерфейса и тут я в замешательстве)
как я думал, строка
ip nat inside source route-map skymap interface FastEthernet0/1 overload
пропускается и должен происходить просмотр следующей строки
ip nat inside source route-map zetmap interface FastEthernet0/0 overload
где уже все match совпадают и пакет вроде как должен правильно уйти с fa0/0 с адресом источника fa0/0

Но на деле, как вы можете видеть, все не совсем так.

2) Если не так, значит наоборот - "Сначала NAT, затем маршрутизация" и рассуждать можно так:
пришел пакет на внутренний интерфейс от компьютера 192.168.0.100 с адресом назначения 74.125.39.101,
на интерфейсе vlan 500 на который пришел пакет есть ip nat inside, значит пакет нужно NATить, смотрим
ip nat inside source route-map skymap interface FastEthernet0/1 overload
заходим в
route-map skymap permit 10
match ip address aclnat
match interface FastEthernet0/1
и натыкаемся на _match interface_, но для пакета еще не выбран ни один исходящий интерфейс, так как мы условились что маршуртизация после NATа,
следовательно route-map не дает permit и строка
ip nat inside source route-map skymap interface FastEthernet0/1 overload
пропускается, равно как и следующая строка
ip nat inside source route-map zetmap interface FastEthernet0/1 overload

а раз так, то NAT не происходит и вообще непонятно что и как дальше...

И что есще интересно - все по нулям (то есть в route-map не происходит совпадений с match !?):
route-map zetmap, permit, sequence 10
Match clauses:
ip address (access-lists): aclnat
interface FastEthernet0/0
Set clauses:
Policy routing matches: 0 packets, 0 bytes
route-map skymap, permit, sequence 10
Match clauses:
ip address (access-lists): aclnat
interface FastEthernet0/1
Set clauses:
Policy routing matches: 0 packets, 0 bytes
======================================================================================

======================================================================================
Теперь эксперименты:

Если убрать match interface в route-map'ах, то трансляция адресов происходит _только_ в адрес fa0/1, так как первой идет строка:
ip nat inside source route-map skymap interface FastEthernet0/1 overload
но при этом пакеты физически уходят с обоих внешних интерфейсов, значит match interface что-то все-таки дает (но ЧТО?).

Если попробовать использовать match next-hop, то по результатам - это равносильно match interface

Если попробовать явно указывать исходящий интерфейс командой set default interface
результат тот же:
May 9 15:22:23.153: %SEC-6-IPACCESSLOGP: list fa0/0_out permitted udp 10.189.8.20(0) -> 156.154.70.22(0), 1 packet
May 9 15:22:33.097: %SEC-6-IPACCESSLOGP: list fa0/1_out permitted udp 10.189.8.20(0) -> 156.154.70.22(0), 1 packet
May 9 15:23:02.125: %SEC-6-IPACCESSLOGP: list fa0/1_out permitted tcp 94.19.254.10(0) -> 91.213.196.100(0), 1 packet

Если просто удалить один route-map, например zetmap (напомню, что zet - это fa0/0 и 10.189.8.20, а sky - fa0/1 и 94.19.254.10), то
с fa0/1 пакеты уходят только с адресом источника 94.19.254.10,
а с fa0/0 - либо с адресом источника 94.19.254.10 либо с 192.168.0.100
======================================================================================

Что я только не пробовал с route-map'ами делать...
Ответьте, пожалуйста, на вышеприведенные вопросы или дайте ссылок на первоисточник, где это подробно описывается,
по сайтам cisco ползал вчера весь день и пол-ночи, почти ничего конкретно по этой проблеме не нашел.

Извините за то, что много понаписал. :)
Спасибо!
Реклама
Igor.Arkhimandritov
#2 Оставлено : 10 мая 2010 г. 22:32:06(UTC)
Ранг: Участник

Группы: Зарегистрированные пользователи
Зарегистрирован: 02.03.2004(UTC)
Сообщений: 14
Баллов: 42
Откуда: Russia

Спасибо за детальное изложение - проблема действительно интересная.
Для начала - вопросы.
1. В чем смысл route-map применимо к NAT?
Расширенный синтаксис для указания транслируемых пакетов - не только IP адреса, но и много другого.
При этом обрабатываются только инструкции match, указывать set бесполезно.

2. В чем смысл match interface в каждом route-map?
Указание, что под данное правило трансляции попадают пакеты, маршрутизированные на данный интерфейс.

3. Объясните, пожалуйста, поэтапно как пакет обрабатывается в данной схеме от приема из LAN до отправки наружу, что сначала NAT или выбор маршрута?
Сначала маршрутизация, потом source NAT - и ещё один поиск маршрута. Именно здесь в вашем случае и зарыта собака.
Что происходит:
В таблице два статических маршрута по умолчанию с одинаковым AD. При каждом поиске выбирается один из них случайным образом.
Первый поиск - при маршрутизации.
Ещё один поиск - при обработке условия match interface.
Если выбраны одинаковые маршруты - адрес источника транслируется в адрес интерфейса, с которого уходит пакет,
а если разные - в адрес другого интерфейса.

4. Как сделать так, чтобы пакеты уходили с в нешних интерфесов только с адресами источника конкретно этих самых интерфейсов
(не в смысле как резать все остальные пакеты, а чтобы логика работы была такой)?

Попробуйте так:
Нужно избавится от второго поиска в таблице - задействовать policy routing.

route-map dummy permit 10
match interface FastEthernet0/0
set interface FastEthernet0/0

route-map dummy permit 20
match interface FastEthernet0/1
set interface FastEthernet0/1

interface Vlan500
ip policy route-map dummy

Можно и по-другому, но мне самому интересно - сработает эта ЗАЛЕПУХА или нет.
Жаль нет времени - сам бы попробовал.
Напишите как получится.
artmar
#3 Оставлено : 11 мая 2010 г. 23:43:38(UTC)
Ранг: Активный Участник

Группы: Зарегистрированные пользователи
Зарегистрирован: 22.10.2003(UTC)
Сообщений: 330
Баллов: 990
Откуда: Russia СПб

Добрый день!
при PBR ваша железка встанет очень скоро, какие у вас каналы?
О балансировке нагрузки PBR можно теоритизировать, но не на каналах в десятки мбит.
Без PBR можно решить вашу задачу с помощью ip sla + floating routes, и тем же способом можно сделать какую-никакую балансировку, разве что треков придется поднять несколько.
Если чего непонятно, спрашивайте.
Всего хорошего
Shek
#4 Оставлено : 12 мая 2010 г. 3:19:02(UTC)
Ранг: Активный Участник

Группы: Зарегистрированные пользователи
Зарегистрирован: 09.02.2009(UTC)
Сообщений: 146
Баллов: 438
Откуда: Russia Питер

Благодарю за участие!
Попробовал так, только в данном случае нет явный маршрутов в таблице маршрутизации, поэтому, кажется, правильно будет set default interface (но я пробовал и так и так):
route-map dummy permit 10
match interface FastEthernet0/0
set interface FastEthernet0/0

route-map dummy permit 20
match interface FastEthernet0/1
set interface FastEthernet0/1

interface Vlan500
ip policy route-map dummy

полностью перестает работать канал на fa0/1, все уходит только через fa0/0 с правильным адресом fa0/0.


2 artmar:
Эта железка стоит у меня дома исключительно в учебных целях, так что я как раз теоретизирую по конкретному вопросу возможности одновременной работы вот таких вот обоих каналов =)
Я не сильно разбираюсь в ip sla и floating routes, но судя по документации это решает задачу резервирования канала, но никак не одновременной работы - "Floating Static Route - This backup route has an administrative distance greater than the administrative distance of the primary connection route and therefore would not be in the routing table until the primary interface goes down".
Если не сложно, приведите, пожалуйста, конкретную конфигурацию для решения задачи вашими средствами.
Shek
#5 Оставлено : 12 мая 2010 г. 5:58:18(UTC)
Ранг: Активный Участник

Группы: Зарегистрированные пользователи
Зарегистрирован: 09.02.2009(UTC)
Сообщений: 146
Баллов: 438
Откуда: Russia Питер

Вот что нашел - https://www.cisco.com/en..._Chapter.html#wp1057136
...
dropping of packets behavior is seen when static routing is used to connect to multiple ISPs from the same router, PfR uses static routing to control the traffic class routing, and one or more of the ISPs use Unicast Reverse Path Forwarding (Unicast RPF) filtering for security reasons.
...
The solution involves a minimal configuration change with a new keyword, oer, that has been added to the ip nat inside source command. When the oer keyword is configured, new NAT translations are given the source IP address of the interface that PfR has selected for the packet and PfR forces existing flows to be routed through the interface for which the NAT translation was created.

Настраивал по мануалу:

key chain PFRchain
key 1
key-string PFRstring

oer master
logging
border 10.10.10.10 key-chain PFRchain
interface Vlan500 internal
interface FastEthernet0/1 external
interface FastEthernet0/0 external

oer border
local Loopback1
master 10.10.10.10 key-chain PFRchain

interface Loopback1
ip address 10.10.10.10 255.255.255.255

ip route 0.0.0.0 0.0.0.0 FastEthernet0/1 94.19.254.1
ip route 0.0.0.0 0.0.0.0 FastEthernet0/0 10.189.8.1

ip nat inside source route-map skymap interface FastEthernet0/1 overload oer
ip nat inside source route-map zetmap interface FastEthernet0/0 overload oer

route-map zetmap permit 10
match ip address aclnat
match interface FastEthernet0/0

route-map skymap permit 10
match ip address aclnat
match interface FastEthernet0/1


Абсолютно без изменений, как улетали пакеты куда угодно так и продолжают. Пробовал также и вместе с PfR делать route-map dummy как вы писали - эффект такой же как и в первом случае, все начинает ходить только через fa0/0 с адресом fa0/0.

Интересно, что же я не доделал-то с PfR... Явно ведь здесь решение задачи.
artmar
#6 Оставлено : 12 мая 2010 г. 17:20:56(UTC)
Ранг: Активный Участник

Группы: Зарегистрированные пользователи
Зарегистрирован: 22.10.2003(UTC)
Сообщений: 330
Баллов: 990
Откуда: Russia СПб

<blockquote id="quote"><font size="1" face="Verdana, Helvetica, Arial" id="quote">quote:<hr height="1" noshade id="quote"><i>Originally posted by Shek</i>
2 artmar:
Эта железка стоит у меня дома исключительно в учебных целях, так что я как раз теоретизирую по конкретному вопросу возможности одновременной работы вот таких вот обоих каналов =)
Я не сильно разбираюсь в ip sla и floating routes, но судя по документации это решает задачу резервирования канала, но никак не одновременной работы - "Floating Static Route - This backup route has an administrative distance greater than the administrative distance of the primary connection route and therefore would not be in the routing table until the primary interface goes down".
Если не сложно, приведите, пожалуйста, конкретную конфигурацию для решения задачи вашими средствами.
<hr height="1" noshade id="quote"></blockquote id="quote"></font id="quote">

Но все же разбираетесь, теперь немного вспомним основы маршрутизации:
ip route 0.0.0.0 252.0.0.0 ISP1_GW track 10
ip route 0.0.0.0 252.0.0.0 ISP2_GW 20
ip route 64.0.0.0 252.0.0.0 ISP2_GW track 20
ip route 64.0.0.0 252.0.0.0 ISP1_GW 20
ip route 128.0.0.0 252.0.0.0 ISP1_GW track 10
ip route 128.0.0.0 252.0.0.0 ISP2_GW 20
ip route 192.0.0.0 252.0.0.0 ISP2_GW track 20
ip route 192.0.0.0 252.0.0.0 ISP1_GW 20

;) Теперь интернет вам доступен не одним маршрутом, а четырьмя. Можно, конечно, обойтись и двумя, но в этом случае балансировка будет еще хуже.

Теперь подумайте, как организовать трекинг, чтобы трэк №10 проверял живость первого провайдера, а трэк номер №20 проверял живость второго провайдера. И соответсвенно использовал для проверки провайдера именно им выданный адрес.
а так же обратите внимание в команд референсах на ip local policy :)

ЗЫ посмотрел в dummy роут мапу, там закралась консептуальная ;) ошибка, так как
1) мапа проверяет, пойдет ли пакет в fa0/0, если да, то кидает его туда
2) мапа проверяет, пойдет ли пакет в fa0/1, если да, то кидает его туда.
Но обе эти проверки опираются на решение о маршрутизации, от которого необходимо избавиться

Поэтому, если стремиться реализовать подобное решение (что не рекомендуется вендором на толстых каналах при использовании неаппаратных маршрутизаторов), нужно использовать некоторый другой критерий, на пример

route-map dummy per 10
match address 100
set ip next-hop ISP1

route-map dummy per 20
match address 101
set ip next-hop [verify-availability] ISP2 [track]

использование set interface на броадкастовых интерфейсах требует особого внимания.



Всего хорошего
Всего хорошего
Shek
#7 Оставлено : 12 мая 2010 г. 18:10:47(UTC)
Ранг: Активный Участник

Группы: Зарегистрированные пользователи
Зарегистрирован: 09.02.2009(UTC)
Сообщений: 146
Баллов: 438
Откуда: Russia Питер

Дали вы мне печенюшек похрустеть... =)
К сожалению, проверить смогу только поздно вечером, но у меня уже есть вопрос:
Такой схемой мы создали 4 маршрута, и, если я правильно понимаю, решение о том, в какой из них будет отправлен пакет будет основано уже на адресе назначения - эдакая псевдобалансировка в противоположность по типу как пускать половину локалки через один интерфейс, а вторую через второй с переключением на другой в случае падения? Если так, то нет уж извольте, это не решение, а подпорка. :) Но вы мне дали очень интересную мысль, спасибо!
Igor.Arkhimandritov
#8 Оставлено : 12 мая 2010 г. 22:38:52(UTC)
Ранг: Участник

Группы: Зарегистрированные пользователи
Зарегистрирован: 02.03.2004(UTC)
Сообщений: 14
Баллов: 42
Откуда: Russia

Уф, чего-то глубоко вы залезли.
Попробуем по пунктам.
1. Производительность.
Если железка поддерживает CEF-switching с NAT, то она поддерживает и CEF-switching c PBR.
Если же и то и другое - process switching, то узким местом станет именно NAT, а не PBR.

2. Концептуальная ошибка в мапе.
Если внимательно прочитать текст, то можно увидеть, что мап предназначен не для того, чтобы вообще избежать маршрутизации,
а о том, чтобы избежать ПОВТОРНОЙ маршрутизации. Критерии match address здесь вообще бесполезны, т.к. настоящей балансировки при этом всё равно не получится. verify-availability проверяет доступность по CDP, которого не будет между вами и провайдером.

3. Балансировка.
Нормальной (round-robin) балансировки можно добиться именно с помощью маршрутизации.
Балансировка на основании диапазонов адресов мне представляется не лучшим решением. Поэтому один поиск в таблице нужен в любом случае.

4. PfR и OER
Действительно, одно из лучших решений в данной ситуации.
IP SLA в приведённой конфигурации вообще не занимается балансировкой, а только отслеживает состояние каналов и удаляет битые маршруты из таблицы.

5. Почему не работает.
Проверьте, осуществляется ли балансировка по статическим маршрутам в отсутствии PBR и трансляции. Конфигурацию с PfR ещё не смотрел - доберусь до железки, проверю.
artmar
#9 Оставлено : 13 мая 2010 г. 0:30:53(UTC)
Ранг: Активный Участник

Группы: Зарегистрированные пользователи
Зарегистрирован: 22.10.2003(UTC)
Сообщений: 330
Баллов: 990
Откуда: Russia СПб

Игорь,
1) вы действительно полагаете, что 2811 поддерживает "CEF-switching с NAT, то она поддерживает и CEF-switching c PBR"
2) Вы все-таки потестируйте предложенное вами решение, если сразу не видите промах
3) ссылки на необходимость CDP в студию? Вообще говоря, команда позволяет опираться на состояние трэка ( www.cisco.com/en/...gtpbrtrk.html#wp1057830 ), чтобы не заворачивать трафик вслепую.

4) Когда round-robin стала нормальной балансировкой, источники, если есть? На мой взгляд, а так же очень авторитетных людей в мире Cisco, основной недостаток ее будет несвоевременное прибытие пакетов и их внеочередность, что не понравится даже такому неприхотливому протоколу как TCP. А с учетом включенного НАТа, любопытно будет поведение сервера в инете, установившем соединение с хостом А, но получившим АСК от хоста В, вам не кажется?
Не понимаю, к чему вы заговорили о том, что ip sla не занимается балансировкой, она занимается отказоустойчивостью, на случай падения какого-либо канала
OER тяжела и громоздка, более есть более красивые решения, учитывая www.cisco.com/en/..._oerstr.html#wp1059322, хотя последнее наверняка можно как-нибудь обойти

5) Что есть "настоящая балансировка" в вашем понимании?
Всего хорошего
Shek
#10 Оставлено : 13 мая 2010 г. 0:52:19(UTC)
Ранг: Активный Участник

Группы: Зарегистрированные пользователи
Зарегистрирован: 09.02.2009(UTC)
Сообщений: 146
Баллов: 438
Откуда: Russia Питер

Пардон, но я как автор этого топика очень попросил бы не переходить на споры и холивары!
Мне совершенно не важно насколько какое решение загружает железку или насколько одно эффективнее другого, пока что у нас вообще ни одного решения поставленной задачи нет (разделение потоков на основании адресов источника или назначения в данном случае я балансировкой не считаю, задача в другом).

Пожалуйста, не переходите на споры.
artmar
#11 Оставлено : 13 мая 2010 г. 1:33:04(UTC)
Ранг: Активный Участник

Группы: Зарегистрированные пользователи
Зарегистрирован: 22.10.2003(UTC)
Сообщений: 330
Баллов: 990
Откуда: Russia СПб

<blockquote id="quote"><font size="1" face="Verdana, Helvetica, Arial" id="quote">quote:<hr height="1" noshade id="quote"><i>Originally posted by Shek</i>
<br />разделение потоков на основании адресов источника или назначения в данном случае я балансировкой не считаю, задача в другом).
<hr height="1" noshade id="quote"></blockquote id="quote"></font id="quote">
хм, вообще при настройка по-умолчанию, СЕФ делает балансировку на основе source and destination полей пакета ;)
а что вы считаете балансировкой? и в чем задача?


Всего хорошего
Всего хорошего
Igor.Arkhimandritov
#12 Оставлено : 13 мая 2010 г. 1:53:03(UTC)
Ранг: Участник

Группы: Зарегистрированные пользователи
Зарегистрирован: 02.03.2004(UTC)
Сообщений: 14
Баллов: 42
Откуда: Russia

Нормальная балансировка - round-robin per destination. Поддерживается в CEFe.
По поводу PBR и CEF :
https://supportforums.cisco.com/message/1326386
Руки дойдут -решение протестирую - прочтёте внимательнее, увидите, как я его назвал.
По поводу CDP был неправ - действительно поддерживается трекинг.
Oer, мне кажется, не тяжеловесней IP SLA, хотя могут быть варианты.

Проблема интересная, предлагаю вместе поискать оптимальное решение.
Shek
#13 Оставлено : 13 мая 2010 г. 14:19:50(UTC)
Ранг: Активный Участник

Группы: Зарегистрированные пользователи
Зарегистрирован: 09.02.2009(UTC)
Сообщений: 146
Баллов: 438
Откуда: Russia Питер

Так ведь оно изначально по умолчанию и работает ip cef и per-destination, балансировка работает без NATa и PBR, по умолчанию как только появляются два дефолтных маршрута.

Копал PfR и наткнулся совсем на непонятную штуку - когда пишешь
ip nat inside source route-map mapname interface XXX overload и хочешь добавить oer как рекомендуют в документации, то в контекстной справке написано, что приписку oer можно использовать только с virtual-template интерфейсами... Совсем не понимаю что это и зачем нужно, а главное как это использовать в данном случае.
Igor.Arkhimandritov
#14 Оставлено : 13 мая 2010 г. 17:43:19(UTC)
Ранг: Участник

Группы: Зарегистрированные пользователи
Зарегистрирован: 02.03.2004(UTC)
Сообщений: 14
Баллов: 42
Откуда: Russia

А какая у вас версия IOS и feature-set?
Shek
#15 Оставлено : 13 мая 2010 г. 18:04:08(UTC)
Ранг: Активный Участник

Группы: Зарегистрированные пользователи
Зарегистрирован: 09.02.2009(UTC)
Сообщений: 146
Баллов: 438
Откуда: Russia Питер

Качал с торрентов это:
c2800nm-adventerprisek9-mz.124-24.T2.bin
ASK9-AESK9 FEAT SET FACTORY UPG FOR BUNDLES

Скажите, а вот это совсем сейчас не в тему или таки стоит покопать? А то я с первой бутылки кефира не разобрался... www.cisco.com/en/.../gtnatvi.html#wp1027357

Почему у нас не так как говорит cisco про то как работает NAT!? Никакой маршрутизации после NAT'а www.cisco.com/en/...e09186a0080133ddd.shtml

Чувствую пора бомбить техсаппорт cisco [8D]
Igor.Arkhimandritov
#16 Оставлено : 15 мая 2010 г. 1:36:30(UTC)
Ранг: Участник

Группы: Зарегистрированные пользователи
Зарегистрирован: 02.03.2004(UTC)
Сообщений: 14
Баллов: 42
Откуда: Russia

Про NVI действительно не совсем в тему - этот интерфейс применяется для виртуальной маршрутизации,
в основном при использовании MPLS VPN.

Cisco и не говорит такого про source NAT[8)]
Сначала маршрутизация - потом NAT.

На следующей неделе буду тестировать лабораторные конфигурации - обязательно посмотрю и вашу.
На первый взгляд всё должно работать штатно.
В реальности - посмотрим.
Shek
#17 Оставлено : 19 мая 2010 г. 13:01:43(UTC)
Ранг: Активный Участник

Группы: Зарегистрированные пользователи
Зарегистрирован: 09.02.2009(UTC)
Сообщений: 146
Баллов: 438
Откуда: Russia Питер

Как дела с тестами? У меня так и не получается...
Shek
#18 Оставлено : 4 июня 2010 г. 13:07:58(UTC)
Ранг: Активный Участник

Группы: Зарегистрированные пользователи
Зарегистрирован: 09.02.2009(UTC)
Сообщений: 146
Баллов: 438
Откуда: Russia Питер

Видимо так и не дошли руки до моей лабы... Может еще кто присоединится к обсуждению?
Shek
#19 Оставлено : 30 июня 2010 г. 23:18:44(UTC)
Ранг: Активный Участник

Группы: Зарегистрированные пользователи
Зарегистрирован: 09.02.2009(UTC)
Сообщений: 146
Баллов: 438
Откуда: Russia Питер

Сколько же сил было потрачено почти зря.
Оказывается во всем виновато слово log, а точнее то, что в ACL попадающий под ACE с log пакет обрабатывается как process switching.
Так что убираем permit ip any any log и все работает как в аптеке, проверено на рабочей конфигурации!
www.cisco.com/web...igence/acl-logging.html

Благодарности сюда: sysadmins.ru/topic267947.html
RSS Лента  Atom Лента
Пользователи, просматривающие эту тему
Guest (3)
Быстрый переход  
Вы не можете создавать новые темы в этом форуме.
Вы не можете отвечать в этом форуме.
Вы не можете удалять Ваши сообщения в этом форуме.
Вы не можете редактировать Ваши сообщения в этом форуме.
Вы не можете создавать опросы в этом форуме.
Вы не можете голосовать в этом форуме.