Современные сетевые инженеры чаще всего не знают как реально работают последовательные интерфейсы, к примеру 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? Но тут без картинки и кусков конфигурации не обойтись:
image
Сейчас на интерфейсах вот такая незамысловатая конфигурация:
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-контакты получен обратно.

Комментарии (0)