Современные сетевые инженеры чаще всего не знают как реально работают последовательные интерфейсы, к примеру Serial на Cisco. Моего знакомого, который вроде бы и знает Frame Relay (раз сдал CCNA), поставили в тупик два простых вопроса. Поэтому решил написать небольшую статью, может быть кому то будет интересно.
Вопрос 1. Может ли одно и то же устройство на одном и том же интерфейсе выступать и в роли DTE и в роли DCE?
Рассмотрим вот такую банальную топологию:
Теперь посмотрим, что нам скажет Cisco-1 об интерфейсе Serial1/0:
Cisco-1#sh interfaces serial 1/0 | i frame
LMI DLCI 0 LMI type is ANSI Annex D frame relay DTE segmentation inactive
0 input errors, 0 CRC, 0 frame, 0 overrun, 0 ignored, 0 abort
Как видите он является DTE, так как DCE всегда будет являться FR Switch. А теперь посмотрим еще один вывод с этого же интерфейса:
Cisco-1#show controllers serial 1/0 | i type
cable type : V.11 (X.21) DCE cable, received clockrate 2015232
Как видите наш маршрутизатор выступает и в роли DTE и в роли DCE одновременно на одном и том же интефейсе.
Вопрос 2. Маршрутизатор не может пропинговать свой собственный serial интерфейс. В чем причина, если в конфигурации маршрутизатора нет ошибок, а интерфейс в состоянии up? Но тут без картинки и кусков конфигурации не обойтись:
Сейчас на интерфейсах вот такая незамысловатая конфигурация:
cisco0#sh run int ser6/0
Building configuration...
Current configuration : 111 bytes
!
interface Serial6/0
description to-cisco1
ip address 10.0.0.0 255.255.255.254
serial restart-delay 0
end
cisco1#sh run int serial6/0
Building configuration...
Current configuration : 111 bytes
!
interface Serial6/0
description to-cisco0
ip address 10.0.0.1 255.255.255.254
serial restart-delay 0
end
Пинг с Cisco1 на Cisco0 беспрепятственно проходит:
cisco1#ping 10.0.0.0
Type escape sequence to abort.
Sending 5, 100-byte ICMP Echos to 10.0.0.0, timeout is 2 seconds:
!!!!!
Success rate is 100 percent (5/5), round-trip min/avg/max = 8/20/44 ms
Теперь мы создадим ACL и запретим передачу трафика на хост 10.0.0.1 (на Cisco1):
cisco0(config-ext-nacl)#do sh ip access-list 101
Extended IP access list 101
10 deny ip any host 10.0.0.1
20 permit ip any any (85 matches)
И повесим его на маршрутизаторе Cisco0 для проверки исходящего трафика:
interface Serial6/0
description to-cisco1
ip address 10.0.0.0 255.255.255.254
ip access-group 101 out
serial restart-delay 0
end
А теперь запустим пинг с Cisco1 на свой собственный адрес 10.0.0.1:
cisco1#ping 10.0.0.1
Type escape sequence to abort.
Sending 5, 100-byte ICMP Echos to 10.0.0.1, timeout is 2 seconds:
.....
Success rate is 0 percent (0/5)
Странно, не правда ли, мы не можем пропинговать свой собственный интерфейс. Эксперимента ради уберем ACL на Cisco0 и попробуем еще раз:
cisco1#ping 10.0.0.1
Type escape sequence to abort.
Sending 5, 100-byte ICMP Echos to 10.0.0.1, timeout is 2 seconds:
!!!!!
Success rate is 100 percent (5/5), round-trip min/avg/max = 24/36/44 ms
Все работает. То есть повесив ACL, запрещающий передачу трафика к 10.0.0.1, мы почему то блокируем пинг своего собственного интерфейса. Как такое возможно, ведь в данном случае icmp пакеты формируются но не покидают сетевую карту устройства.
Дело в том, что в отличии от ethernet, последовательные интерфейсы работают несколько иначе. В Ethernet при запуске пинга на свой собственный интерфейс, пакет, как было сказано выше, не покинет сетевую карту. А вот последовательные интерфейсы так не умеют. Пакет будет передан через Tx-контакты в сеть на ближайший маршрутизатор (или хост) и через Rx-контакты получен обратно.
Автор: Bormoglotx