JUNOS

Материал из Xgu.ru

Перейти к: навигация, поиск
Junos-logo.jpg

Juniper Networks JUNOS - операционная система, под управлением которой работает сетевое оборудование фирмы Juniper Networks. JUNOS основана на операционной системе UNIX FreeBSD.

Содержание

[править] Control Plane и Forwarding Plane

Важный аспект работы JUNOS - это логическое и физическое разделение Control Plane и Forwarding (Data) Plane.

CP and FP.JPG

RE (Routing Engine) выполняется на процессоре архитектуры x86 или PowerPC. PFE (Packet Forwarding Engine) выполняется на специальных микросхемах ASIC (Application-Specific Integrated Circuit). Это сделано для увеличения производительности - транзитные пакеты передаются без вмешательства RE (соответственно и процессора). RE используется для построения RT (Routing Table) и FT (Forwarding Table). FT после ее построения записывается в память PFE и выполняется на ASIC. FT представляет собой таблицу, содержащую сеть назначения, интерфейс, через который может быть достигнута эта сеть, IP адрес next-hop'a и mac адрес next-hop'a. Так же на PFE для увеличения производительности и скорости обработки транзитных пакетов выполняется QoS, Policer (Shaping) и Stateless Firewall Filter(ACLs).

[править] Иерархическая структура интерфейса командной строки JUNOS

Работа с командной строкой в JUNOS разделяется на 2 режима:

  • Operational Mode (приглашение командной строки ">") - тут нам доступны show команды и команды для мониторинга и траблшутинга сети (monitor, ping, test, traceroute);
  • Configuration Mode (приглашение командной строки "#") - режим, в котором происходит настройка устройства. В этот режим можно попасть, если набрать команду "Configure" или "Edit" в Operational Mode.


[править] Operational Mode

Структура команд:

Operation Mode Junos.JPG

Команды, которые нам доступны в Operational Mode:

root> ?
Possible completions:
  clear                Clear information in the system
  configure            Manipulate software configuration information
  file                 Perform file operations
  help                 Provide help information
  monitor              Show real-time debugging information
  mtrace               Trace multicast path from source to receiver
  op                   Invoke an operation script
  ping                 Ping remote target
  quit                 Exit the management session
  request              Make system-level requests
  restart              Restart software process
  set                  Set CLI properties, date/time, craft interface message
  show                 Show system information
  ssh                  Start secure shell on another host
  start                Start shell
  telnet               Telnet to another host
  test                 Perform diagnostic debugging
  traceroute           Trace route to remote host

[править] Configuration Mode

В JUNOS используется 2 конфигурации:

  • Active Configuration - это текущая конфигурация устройства.
  • Candidate Configuration - это конфигурация, которую мы правим в режиме конфигурирования.

Для того, чтобы конфигурация-кандидат стала активной, в режиме конфигурирования нужно ввести команду "Commit":

root> configure
Entering configuration mode

[edit]
root# set system root-authentication plain-text-password
New password:
Retype new password:

[edit]
root# commit
commit complete

[edit]
root# exit
Exiting configuration mode

root>

Чтобы зайти в определенный контекст для настройки используется команда "Edit":

Juniper Junos Edit.JPG

Доступные контексты для редактирования:

root> configure
Entering configuration mode

[edit]
root# edit ?
Possible completions:
> access               Network access configuration
> access-profile       Access profile for this instance
> accounting-options   Accounting data configuration
> applications         Define applications by protocol characteristics
> chassis              Chassis configuration
> class-of-service     Class-of-service configuration
> diameter             Diameter protocol layer
> event-options        Event processing configuration
> firewall             Define a firewall configuration
> forwarding-options   Configure options to control packet forwarding
> groups               Configuration groups
> interfaces           Interface configuration
> jsrc                 JSRC partition configuration
> jsrc-partition       JSRC partition configuration
> logical-systems      Logical systems
> multi-chassis
> policy-options       Policy option configuration
> protocols            Routing protocol configuration
> routing-instances    Routing instance configuration
> routing-options      Protocol-independent routing option configuration
> security             Security configuration
> services             Service PIC applications settings
> snmp                 Simple Network Management Protocol configuration
> system               System parameters
> virtual-chassis      Virtual chassis configuration
[edit]

[править] Настройка интерфейсов

Для того, чтобы настроить интерфейс нужно перейти в контекст "Interfaces":

root> configure
Entering configuration mode

[edit]
root# edit interfaces

[edit interfaces]
root#

Иерархия настройки интерфейсов:

Interface Configure Juniper.PNG

[править] L3 настройки интерфейса

Важный момент - все L3 параметры интерфейса настраиваются в контексте "UNIT". UNIT - это аналог сабинтерфейсов в Cisco.

[edit interfaces]
root# set em0 unit 0 family inet address 100.0.0.1/30

Em0 - Это наш физический интерфейс. Family inet - параметры какого протокола мы хотим настроить. Доступны следующие значения:

root# set em0 unit 0 family ?
Possible completions:
> ccc                  Circuit cross-connect parameters
> inet                 IPv4 parameters
> inet6                IPv6 protocol parameters
> iso                  OSI ISO protocol parameters
> mpls                 MPLS protocol parameters
> tcc                  Translational cross-connect parameters
> vpls                 Virtual private LAN service parameters
[edit interfaces]
root# set em0 unit 0 family

Можно сразу из Configuration Mode посмотреть, что мы настроили набрав команду "show":

[edit interfaces]
root# show
em0 {
    unit 0 {
        family inet {
            address 100.0.0.1/30;
        }
    }
}

[edit interfaces]

Применим наши настройки командой "Commit":

root# commit
commit complete

Проверим доступность IP на другой стороне канала:

root> ping 100.0.0.2 rapid
PING 100.0.0.2 (100.0.0.2): 56 data bytes
!!!!!
--- 100.0.0.2 ping statistics ---
5 packets transmitted, 5 packets received, 0% packet loss
round-trip min/avg/max/stddev = 0.402/0.719/1.306/0.343 ms

[править] L2 настройки интерфейса

L2 настройки задаются в следующем контексте:

root> configure
Entering configuration mode

[edit]
root# edit interfaces em0

[edit interfaces em0]
root# set ?
Possible completions:
  accounting-profile   Accounting profile name
+ apply-groups         Groups from which to inherit configuration data
+ apply-groups-except  Don't inherit configuration data from these groups
  description          Text description of interface
  disable              Disable this interface
  encapsulation        Physical link-layer encapsulation
  gratuitous-arp-reply  Enable gratuitous ARP reply
> hold-time            Hold time for link up and link down
> layer2-policer       Layer2 policing for interface
  link-mode            Link operational mode
  mac                  Hardware MAC address
  mtu                  Maximum transmit packet size (256..9192)
  no-gratuitous-arp-reply  Don't enable gratuitous ARP reply
  no-gratuitous-arp-request  Ignore gratuitous ARP request
  no-traps             Don't enable SNMP notifications on state changes
> traceoptions         Interface trace options
  traps                Enable SNMP notifications on state changes
> unit                 Logical interface
  vlan-tagging         802.1q VLAN tagging support
[edit interfaces em0]

Задать дуплекс на интерфейсе:

[edit interfaces em0]
root# set link-mode full-duplex

[edit interfaces em0]
root#

Посмотреть состояние интерфейсов и назначенные IP адреса (аналог sh ip int bri в Cisco):

root> show interfaces terse
Interface               Admin Link Proto    Local                 Remote
cbp0                    up    up
demux0                  up    up
dsc                     up    up
em0                     up    up
em0.0                   up    up   inet     100.0.0.1/30
em1                     up    up
gre                     up    up
ipip                    up    up
irb                     up    up
lo0                     up    up
lo0.16384               up    up   inet     127.0.0.1           --> 0/0
lo0.16385               up    up   inet     128.0.0.4           --> 0/0
                                   inet6    fe80::2ab:ae0f:fc99:e300
lsi                     up    up
mtun                    up    up
pimd                    up    up
pime                    up    up
pip0                    up    up
pp0                     up    up
tap                     up    up

[править] Именования интерфейсов в JUNOS

В JUNOS используется следующая схема именования интерфейсов:

Juniper-interface.JPG

  • GE - Тип интерфейса. В данном случае Gigabit Ethernet.
  • 0 - это Flexible PIC Concentrator (FPC). Номер физического слота на нашем шасси.
  • 0 - это Physical Interface Card (PIC). Номер карты, вставленной в слот.
  • 1 - это номер порта на карте PIC.

[править] Таблица маршрутизации в JUNOS

В JUNOS можно создавать несколько таблиц маршрутизации. Главная таблица называется inet.0 и содержит ipv4 юникаст маршруты. По-умолчанию созданы следующие таблицы:

  • inet.0 - используется для ipv4 юникаст маршрутов;
  • inet.1 - используется для мультикаста;
  • inet.2 - используется для Multicast Border Gateway Protocol (MBGP) с проверкой RPF (Reverse Path Forwarding);
  • inet.3 - используется для MPLS маршрутов;
  • inet.4 - используется для Multicast Source Discovery Protocol (MSDP) маршрутов;
  • inet6.0 - используется для ipv6 юникаст маршрутов;
  • mpls.0 - используется для mpls next hops.


Как читать вывод команды "show route":

Route Table Juniper.PNG


[править] Forwarding Table

Forwarding Table - таблица для быстрой пересылки пакетов. Строится на основе таблицы маршрутизации. Очень похожа на технологию CEF в Cisco.

Forwarding Table Juniper.PNG

Посмотреть, что в ней находится можно командой "show route forwarding-table":

root@jun-1> show route forwarding-table
Routing table: default.inet
Internet:
Destination        Type RtRef Next hop           Type Index NhRef Netif
default            perm     0                    rjct    36     1
0.0.0.0/32         perm     0                    dscd    34     1
100.0.0.0/30       intf     0                    rslv   546     1 em0.0
100.0.0.0/32       dest     0 100.0.0.0          recv   544     1 em0.0
100.0.0.1/32       intf     0 100.0.0.1          locl   545     2
100.0.0.1/32       dest     0 100.0.0.1          locl   545     2
100.0.0.2/32       dest     0 0:ab:44:8:f8:0     ucst   547     1 em0.0
100.0.0.3/32       dest     0 100.0.0.3          bcst   543     1 em0.0
224.0.0.0/4        perm     0                    mdsc    35     1
224.0.0.1/32       perm     0 224.0.0.1          mcst    31     1
255.255.255.255/32 perm     0                    bcst    32     1

[править] Route Preference

Route Preference - это аналог Administrative Distance (AD) в Cisco IOS.

Протокол Приоритет по умолчанию
Directly connected network 0
Local 0
Static Route 5
OSPF internal route 10
RIP 100
OSPF AS external routes 150
eBGP и iBGP 170

[править] Настройка OSPF в JUNOS

Основная страница: OSPF_в_Juniper

[править] Настройка BGP в JUNOS

Основная страница: BGP_в_Juniper

[править] Пакетная фильтрация (Stateless Firewall Filter) в JUNOS

Блоки, из которых строятся правила фильтрации:

FIREWALL-JUNOS.PNG

В "From" можно указывать следующие значения и их связки:

root# set term block-some-packets from ?
Possible completions:
> address              Match IP source or destination address
+ apply-groups         Groups from which to inherit configuration data
+ apply-groups-except  Don't inherit configuration data from these groups
> destination-address  Match IP destination address
+ destination-port     Match TCP/UDP destination port
+ destination-port-except  Do not match TCP/UDP destination port
> destination-prefix-list  Match IP destination prefixes in named list
+ dscp                 Match Differentiated Services (DiffServ) code point
+ dscp-except          Do not match Differentiated Services (DiffServ) code point
+ esp-spi              Match IPSec ESP SPI value
+ esp-spi-except       Do not match IPSec ESP SPI value
  first-fragment       Match if packet is the first fragment
+ forwarding-class     Match forwarding class
+ forwarding-class-except  Do not match forwarding class
  fragment-flags       Match fragment flags (in symbolic or hex formats) - (Ingress only)
+ fragment-offset      Match fragment offset
+ fragment-offset-except  Do not match fragment offset
+ icmp-code            Match ICMP message code
+ icmp-code-except     Do not match ICMP message code
+ icmp-type            Match ICMP message type
+ icmp-type-except     Do not match ICMP message type
> interface            Match interface name
+ interface-group      Match interface group
+ interface-group-except  Do not match interface group
> interface-set        Match interface in set
+ ip-options           Match IP options
+ ip-options-except    Do not match IP options
  is-fragment          Match if packet is a fragment
+ packet-length        Match packet length
+ packet-length-except  Do not match packet length
+ port                 Match TCP/UDP source or destination port
+ port-except          Do not match TCP/UDP source or destination port
+ precedence           Match IP precedence value
+ precedence-except    Do not match IP precedence value
> prefix-list          Match IP source or destination prefixes in named list
+ protocol             Match IP protocol type
+ protocol-except      Do not match IP protocol type
  service-filter-hit   Match if service-filter-hit is set
> source-address       Match IP source address
+ source-port          Match TCP/UDP source port
+ source-port-except   Do not match TCP/UDP source port
> source-prefix-list   Match IP source prefixes in named list
  tcp-established      Match packet of an established TCP connection
  tcp-flags            Match TCP flags (in symbolic or hex formats)
  tcp-initial          Match initial packet of a TCP connection
+ ttl                  Match IP ttl type
+ ttl-except           Do not match IP ttl type
[edit firewall family inet filter filter-in]

В "Then" можно указывать следующие значения:

  • Accept - разрешить прохождение пакета;
  • Discard - запретить прохождение пакета;
  • Reject - запретить прохождение пакета с отправкой ICMP сообщения "Destination unreachable" отправителю.

Настройка выглядит следующим образом:

[edit firewall family inet]
root# show
filter filter-in {
    term block-some-packets {
        from {
            source-address {
                100.0.0.0/24;
            }
            destination-address {
                200.0.0.0/24;
            }
        }
        then {
            discard;
        }
    }
    term accept-all-other {
        then accept;
    }
}

[edit firewall family inet]
root#

Теперь применяем фильтр на интерфейс:

root# set interfaces em0 unit 0 family inet filter input filter-in

[edit]
root# edit interfaces em0

[edit interfaces em0]
root# show
unit 0 {
    family inet {
        filter {
            input filter-in;
        }
    }
}

[edit interfaces em0]
root#

Не забудьте правильно выбрать направление для фильтра:

FIREWALL-JUNOS-input-output.PNG


[править] Настройка коммутаторов под управлением JUNOS

Настройка порта в режим access:

Configure-access-junos.PNG

Настройка порта в режим trunk:

Configure-trunk-junos.PNG

Настройка native vlan на trunk порту:

Configure-native-vlan-junos.PNG

Настройка Routed Vlan Interface (RVI) - в Cisco IOS это называется Swiched Vlan Interface (SVI):

Rvi-junos.PNG

Ассоциация RVI и VLAN:

Associate-rvi-vlan-junos.PNG


[править] Настройка VLAN

Основная страница: VLAN_в_Juniper

[править] Дополнительная информация

На сайте Juniper Networks есть курс на русском языке "JUNOS как второй язык", рассказывающий о сравнении языка командной строки Cisco IOS и Juniper JUNOS. Может быть очень полезен для инженеров, которые уже освоили Cisco IOS, но впервые столкнулись с оборудованием Juniper.

Более подробную информацию о настройке сетевого оборудования под управлением JUNOS можно получить из официальной документации Juniper.


Источник — «http://xgu.ru/wiki/JUNOS»