71855

Поочерёдное объединение компьютеров локальных сетей филиалов в две единые для всей корпорации виртуальные частные сети

Курсовая

Информатика, кибернетика и программирование

Участники MPLS-сети должны видеть друг друга по протоколу уровня 2 и иметь возможность обмениваться метками. Поэтому для решения задачи следует объединить внутренние маршрутизаторы R4, R5, R6 и R7 в одну вспомогательную виртуальную частную сеть уровня 2 на основе технологии SSTP.

Русский

2014-11-13

3.71 MB

1 чел.

Курсовой проект.

Задание

У корпорации 4 филиала и в каждом по два маршрутизатора: в 0-м - R0 и R4,  в 1-м - R1 и R5, во 2-м  - R2 и R6, 3-м - R3 и R7. Внешние маршрутизаторы R0, R1, R2 и R3 имеют выход в Интернет, а внутренние R4, R5, R6 и R7 – нет (рис. 1).

а. Адреса внутренних сетей филиалов представлены на рис. 1: 0-192.168.4*V.0/24; 1-192.168.4*V+1.0/24; 2-192.168.4*V+2.0/24; 3-192.168.4*V+3.0/24. Например, для  варианта V=7 0-192.168.28.0/24 1-192.168.29.0/24 2-192.168.30.0/24 3-192.168.31.0/24. К внутренним маршрутизаторам  R4, R5, R6 и R7 подсоединены локальные сети филиалов, представленные в каждом филиале одним компьютером  R13, R12, R10 и R11, соответственно (рис. 2 или 3).

Рис. 1. Топология для курсового проекта. 1 этап.

Ставится задача поочерёдно объединить компьютеры R10, R11, R12 и R13 локальных сетей филиалов в две единые для всей корпорации  виртуальные частные сети на основании технологии MPLS.  Одна VPN должна быть уровня 2, а вторая – 3.

Технология для MPLS VPN уровня 3 – BGP VRF. Для MPLS VPN уровня 2 выберем BGP VPLS.

Участники MPLS-сети должны видеть друг друга по протоколу уровня 2 и иметь возможность обмениваться метками. Поэтому для решения задачи следует объединить внутренние маршрутизаторы  R4, R5, R6 и R7 в одну вспомогательную виртуальную частную сеть уровня 2 на основе технологии SSTP. Метки будут помещаться в пакеты PPP при обмене данными по SSTP.

б. Выбор номера схемы соединения филиалов по протоколу SSTP осуществляется из рис. 4 по формуле V%15+1.  

в. В качестве протокола маршрутизации чётные варианты используют RIP, а нечётные – OSPF.

Для связи SSTP-серверов и клиентов на внутренних маршрутизаторах R4, R5, R6 и R7 между собой следует обеспечить их видимость друг другом по протоколу IP. Для этого на внешних маршрутизаторах R0, R1, R2 и R3 следует организовать преобразование исходящих и приходящих адресов.

Рис. 2. Топология для курсового проекта. 2 этап. Адреса для  VPN уровня 2.

Рис. 3. Топология для курсового проекта. 2 этап. Адреса для  VPN уровня 3.

г. Для организации MPLS VPN уровня 2 и 3 используется BGP с отражателем маршрутов. Номер маршрутизатора отражателем маршрута равен V%4+4. Например, для  варианта V=7 это R7 (7%4+4=3+4=7). В MPLS-сети чётные варианты организуют LSP с помощью  LDP,  а нечётные с помощью  RSVP.

д. Адреса компьютеров R10, R11, R12 и R13 для  VPN уровня 2 представлены на рис. 2: R10-172.16.200+V.1/24, R11-172.16.200+V.2/24,  R12-172.16.200+V.3/24 и R13-172.16.200+V.4/24, где  V-номер варианта. Например, для  варианта V=7: R10-172.16.207.1/24, R11-172.16.207.2/24,  R12-172.16.207.3/24 и R13-172.16.207.4/24.

Рис. 4. Схемы соединения филиалов 0, 1, 2 и 3 по протоколу  SSTP. К-клиент, С-сервер. Фактически 0 это R4, 1- R5, 2-R6, 3-R7.

е. Адреса компьютеров R10, R11, R12 и R13 для  VPN уровня 3 представлены на рис. 3: 172.16.1+4*V.2/24, R11-172.16.2+4*V.2/24,  R12-172.16.3+4*V.2/24 и 172.16.4+4*V.2/24, где  V-номер варианта. Например, для  варианта V=7: R10-172.16.29.2/24 (1+4*7=29), R11-172.16.30.2/24,  R12-172.16.31.2/24 и R13-172.16.32.2/24.

Выполнение

Выполним курсовой проект для варианта V=0 и номера тап-сети D=0.

Согласно варианту:

а. Адреса внутренних сетей филиалов  0-192.168.0.0/24 1-192.168.1.0/24 2-192.168.2.0/24 3-192.168.3.0/24(4*0+3).

б. Схема соединения филиалов по протоколу SSTP имеет номер 0 из рис. 3.

.

Здесь, согласно рис. 3, 0 это R4, 1- R5, 2-R6, 3-R7.

в. В качестве протокола маршрутизации используем RIP.

г. В качестве отражателя  маршрутов  используется  маршрутизатор R5. В MPLS-сети LSP организуем с помощью  LDP.

д. Адреса компьютеров для  VPN уровня 2: R10-172.16.200.1/24, R11-172.16.200.2/24,  R12-172.16.200.3/24 и R13-172.16.200.4/24.

е. Адреса компьютеров для  VPN уровня 3: R10-172.16.1.2/24(1+4*0=1), R11-172.16.2.2/24,  R12-172.16.3.2/24 и R13-172.16.4.2/24.

Создаём в GNS3 проект с именем MPLS. Соберите в нём топологию, изображённую на рис. 1 и добавьте в каждый маршрутизатор тап-интерфейс, согласно номеру своей тап-сети. Например, если у вас тап-сеть 0, то для R1

 options = -net nic,vlan6 -net tap,vlan6,script=no,downscript=no,ifname=tap001

1. Стартуем проект. Назначим имена, например для R0

[admin@R0] >system identity set name=R0

Проверим у всех маршрутизаторов соседей с помощью команды ip neighbour print. Назначим адреса на тап-интерфейсы, например для R2

[admin@R2] >ip address add address=10.0.2.1/24 interface=ether7

Пропингуем Ubuntu, например для R2

[admin@R0] >ping  10.0.2.1

Для удобства работы используйте протокол ssh и закладки в терминальном окне Ubuntu (см. рис. 2.3 и.2.4 из разделы 2).

Дайте табам имена

Для R0, R1, R2 и R3 (и только) обеспечьте взаимную связь через свою модель Интернета, назначив шлюз на тап-интерфейс Ubuntu, например для R1

[admin@R0] >ip route add dst-address=10.0.0.0/16 gateway=10.0.1.2

Пропингуйте R0, R1, R2 и R3 между собой по адресам тап-интерфейсов.

На каждом филиале на внутренних маршрутизаторах R4, R5, R6 и R7 сделайте шлюз на внешний маршрутизатор  R0, R1, R2 и R3, соответственно. Например, для  филиала 1 после назначения адресов

[admin@R1] >ip address add address=192.168.1.1/24 interface=ether1

[admin@R5] >ip address add address=192.168.1.2/24 interface=ether1

и обязательной  проверки

[admin@R5] >ping 192.168.1.1

назначаем шлюз

[admin@R5] >ip route add gateway=192.168.1.1

2. Настроим NAT для исходящих адресов на маршрутизаторах R0 R1 R2 R2, имеющих доступ в Интернет

/ip firewall nat add chain=srcnat action=masquerade out-interface=ether7

Из внешних  маршрутизаторов R4, R5, R6 и R7 должны пинговаться адреса 10.0.4.1 10.0.5.1 10.0.6.1 10.0.7.1  тап-интерфейсов  внутренних  маршрутизаторов R4, R5, R6 И R7.

Настроим NAT для входящих адресов на маршрутизаторах R0 R1 R2 R3. Назначим на тап-интерфейсы R0, R1, R2 и R3 дополнительные адреса  10.0.0.22/24  10.0.1.22/24  10.0.2.22/24  10.0.3.22/24. Например, для R3

[admin@R3] >ip address add address=10.0.3.22/24 interface=ether7

Определим для R0, R1, R2 и R3 предпочтительные исходящие адреса для маршрутизации 10.0.0.1/24,  10.0.1.1.24,  10.0.2.1/24  и 10.0.3.1/24, соответственно. Например, для R3

[admin@R3] >ip route set 0 pref-src= 10.0.3.1

Введём правила преобразования адресов 192.168.0.2, 192.168.1.2, 192.168.2.2, 192.168.3.2 внутренних  маршрутизаторов R4, R5, R6 и R7 во внешние  адреса  тап-интерфейсов маршрутизаторов R0, R1, R2 и R2.  Например 

 [admin@R0] >/ip firewall nat add chain=dstnat action=dst-nat to-addresses= 192.168.0.2 dst-address=10.0.0.22

[admin@R1] >/ip firewall nat add chain=dstnat action=dst-nat to-addresses= 192.168.1.2 dst-address=10.0.1.22

[admin@R2] >/ip firewall nat add chain=dstnat action=dst-nat to-addresses= 192.168.2.2 dst-address=10.0.2.22

[admin@R3] >/ip firewall nat add chain=dstnat action=dst-nat to-addresses= 192.168.3.2 dst-address=10.0.3.22

Проверьте тщательно преобразования. Вы должны, поочерёдно находясь на каждом из внутренних  маршрутизаторов R4, R5, R6 и R7, соединятся по протоколу telnet к адресам   10.0.0.22/24,  10.0.1.22/24,  10.0.2.22/24 и 10.0.3.22/24  тап-интерфейсов внешних маршрутизаторов R0, R1, R2 и R3 и попадать в соответствующие  внутренние  маршрутизаторы R4, R5, R6 и R7.

3. Объединим филиалы с помощью VPN с  использованием SSTP. Мы используем схему соединения филиалов по протоколу SSTP номер 0 из рис. 3. Для других схем настройка  SSTP несколько отличается. Будьте внимательны.

Начнём с сертификатов. Перейдите в свою папку  easy-rsa в Ubuntu. Создайте корневой сертификат  CA (Certificate Authority), необходимый для подписи сертификатов клиента и сервера

. vars (через пробел)

./clean-all

./pkitool --initca

Создадим 3 сертификата s0, s1 и s2 сервера, например

./pkitool --server s1

и 3 сертификата с0, с1 и с2 клиента, например

./pkitool с0

Перепишем по ssh корневой сертификат на все внутренние компьютеры  R4, R5, R6 и R7, например scp ca.crt admin@10.0.4.1:.  Перепишем по ssh сертификаты и ключи для сервера  в SSTP-сервера. Перепишем по ssh сертификаты и ключи для клиента в SSTP-клиенты

Для топологии 0 нашего варианта 0 (рис. 3) перепишем  с0, с1 и с2 в  R4, а s0, s1 и s2 в   R5, R6 и R7, соответственно

Импортируем в R4

[admin@R4] >certificate import file-name=ca.crt

[admin@R4] >certificate import file-name=с0.crt

[admin@R4] >certificate import file-name=с1.crt

[admin@R4] >certificate import file-name=с2.crt

[admin@R4] >certificate import file-name=с0.key

[admin@R4] >certificate import file-name=с1.key

[admin@R4] >certificate import file-name=с2.key

На запрос passphrase – просто жмём enter. Переименовываем KR сертификаты. Здесь и далее будьте внимательны с номерами после set. Для их правильного назначения используйте команду certificate print detail.

[admin@R4] >certificate set 1 name=c0

[admin@R4] >certificate set 2 name=c1 

[admin@R4] >certificate set 3 name=c2 

Импортируем в R5

[admin@R5 >certificate import file-name=ca.crt

[admin@R5 >certificate import file-name=s0.crt

[admin@R5 >certificate import file-name=s0.key

Переименовываем KR сертификат

[admin@R5 >certificate set 1 name=s0 

Импортируем в R6

certificate import file-name=ca.crt

certificate import file-name=s1.crt

certificate import file-name=s1.key

Переименовываем KR сертификат

[admin@R6] >certificate set 1 name=s1

Импортируем в R7

[admin@R7] >certificate import file-name=ca.crt

[admin@R7] >certificate import file-name=s2.crt

[admin@R7] >certificate import file-name=s2.key

Переименовываем KR сертификат

[admin@R7] >certificate set 1 name=s2

На SSTP-серверах добавляем  имена, пароли, локальный и удалённый  адреса для SSTP-пользователей

[admin@R5>ppp secret add  name=c0 password=c0 local-address=172.16.0.1 remote-address=172.16.0.2

[admin@R6>ppp secret add  name=c1 password=c1 local-address=172.16.0.3 remote-address=172.16.0.4

[admin@R7>ppp secret add  name=c2 password=c2 local-address=172.16.0.5 remote-address=172.16.0.6

Здесь адреса взяты произвольно. Каких либо рекомендаций по их выбору не даётся.

Добавляем SSTP-сервера и определяем в них сертификаты

[admin@R5 >int sstp-server add name=s0 user=c0

[admin@R5] >int sstp-server server set enabled=yes certificate=s0 verify-client-certificate=ye

[admin@R6 >int sstp-server add name=s1 user=c1

[admin@R6]>int sstp-server server set enabled=yes certificate=s1 verify-client-certificate=ye

[admin@R7 >int sstp-server add name=s2 user=c2

[admin@R7] >int sstp-server server set enabled=yes certificate=s2 verify-client-certificate=ye

Параметр user – не обязателен.

Добавляем 3 SSTP-клиента в R4 и определяем в них сертификаты. Помним, что SSTP-клиенты подсоединяются к  SSTP-серверам через NAT. Поэтому вместо адресов SSTP-серверов указываем адреса соответствующих внешних маршрутизаторов.

[admin@R4] >interface  sstp-client add certificate=c0 connect-to=10.0.1.22 name=c0 user=c0 password=c0 verify-server-certificate=yes disabled=no

[admin@R4] >interface  sstp-client add certificate=c1 connect-to=10.0.2.22 name=c1 user=c1 password=c1 verify-server-certificate=yes disabled=no     

[admin@R4] >interface  sstp-client add certificate=c2 connect-to=10.0.3.22 name=c2 user=c2 password=c2 verify-server-certificate=yes disabled=no   

На  R4, R5, R6 и R7 должны появиться новые адреса из диапазона  172.16.0.1-172.16.0.6. Пропингуйте из  SSTP-клиентов соответствующие им SSTP-сервера по динамически назначенным адресам

[admin@R4] >ping 172.16.0.1

[admin@R4] >ping 172.16.0.3

[admin@R4] >ping 172.16.0.5

С помощью команды interface bridge add добавим на R4, R5, R6 и R7 интерфейсы-петли в виде моста bridge1. Назначим на них адреса. Значения этих адресов никак не регламентируются

[admin@R4] >ip address add address=4.4.4.4/32 interface=bridge1 

[admin@R5] >ip address add address=5.5.5.5/32 interface=bridge1 

[admin@R6] >ip address add address=6.6.6.6/32 interface=bridge1

[admin@R7] >ip address add address=7.7.7.7/32 interface=bridge1 

4. Добьемся, чтобы  R4, R5, R6 и R7 видели друг друга по этим адресам. В качестве протокола маршрутизации возьмём  RIP. Помним, что надо рекламировать сети, а не маршруты

[admin@R4] >ip ad pr

0   10.0.5.1/24        10.0.5.0        ether7                                                                                              

1   192.168.0.2/24     192.168.0.0     ether1                                                                                              

2 D 172.16.0.2/32      172.16.0.1      c0                                                                                                  

3 D 172.16.0.4/32      172.16.0.3      c1                                                                                                  

4 D 172.16.0.6/32      172.16.0.5      c2                                                                                                  

5    4.4.4.4/32          4.4.4.4         bridge1   

[admin@R4] >routing rip network add network=4.4.4.4/32 

[admin@R4] >routing rip network add network=172.16.0.1/32 

[admin@R4] >routing rip network add network=172.16.0.3/32 

[admin@R4] >routing rip network add network=172.16.0.5/32 

[admin@R5] >ip ad pr 

0   10.0.5.1/24        10.0.5.0        ether7                                                                                              

1   192.168.1.2/24     192.168.1.0     ether1                                                                                              

2 D 172.16.0.1/32      172.16.0.2      s0                                                                                                  

3    5.5.5.5/32          5.5.5.5         bridge1                                                                                             

[admin@R5] >routing rip network add network=5.5.5.5/32 

[admin@R5] >routing rip network add network=172.16.0.2/32

[admin@R6] >ip ad pr 

0   10.0.6.1/24        10.0.6.0        ether7                                                                                              

1   192.168.2.2/24     192.168.2.0     ether1                                                                                              

2 D 172.16.0.3/32      172.16.0.4      s1                                                                                                  

3    6.6.6.6/32          6.6.6.6         bridge1                                                                                             

[admin@R6] >routing rip network add network=6.6.6.6/32

[admin@R6] >routing rip network add network=172.16.0.4/32

[admin@R7] >ip ad pr

0   10.0.7.1/24        10.0.7.0        ether7                                                                                              

1    192.168.3.2/24     192.168.3.0     ether1                                                                                              

2 D 172.16.0.5/32      172.16.0.6      s2                                                                                                  

3    7.7.7.7/32          7.7.7.7         bridge1                                                                                             

[admin@R7] >routing rip network add network= 7.7.7.7/32

[admin@R7] >routing rip network add network= 172.16.0.6/32 

Проверяем маршруты

[admin@R4] >ip route print 

0 A S   0.0.0.0/0                            192.168.0.1         1       

1 ADC   4.4.4.4/32          4.4.4.4         bridge1            0       

2 ADr   5.5.5.5/32                          172.16.0.1         120     

3 ADr   6.6.6.6/32                          172.16.0.3         120     

4 ADr   7.7.7.7/32                          172.16.0.5         120     

5 ADC   10.0.4.0/24         10.0.4.1        ether7              0       

6 ADC   172.16.0.1/32       172.16.0.2    c0                  0       

7 ADC   172.16.0.3/32       172.16.0.4    c1                  0       

8 ADC   172.16.0.5/32       172.16.0.6    c2                  0       

9 ADC   192.168.0.0/24      192.168.0.2  ether1              0       

[admin@R5] >ip route print 

0 A S  0.0.0.0/0                          192.168.1.1        1       

1 ADr  4.4.4.4/32                         172.16.0.2         120     

2 ADC   5.5.5.5/32          5.5.5.5          bridge1             0       

3 ADr   6.6.6.6/32                          172.16.0.2         120     

4 ADr   7.7.7.7/32                          172.16.0.2         120     

5 ADC   10.0.5.0/24         10.0.5.1        ether7              0       

6 ADC   172.16.0.2/32       172.16.0.1     s0                  0       

7 ADr   172.16.0.3/32                       172.16.0.2         120     

8 ADr   172.16.0.5/32                       172.16.0.2         120     

9 ADC   192.168.1.0/24     192.168.1.2    ether1              0    

[admin@R6] >ip route print 

0 A S   0.0.0.0/0                            192.168.2.1        1       

1 ADr   4.4.4.4/32                          172.16.0.4         120     

2 ADr   5.5.5.5/32                          172.16.0.4         120     

3 ADC   6.6.6.6/32          6.6.6.6          bridge1             0       

4 ADr   7.7.7.7/32                          172.16.0.4         120     

5 ADC   10.0.6.0/24         10.0.6.1        ether7              0       

6 ADr   172.16.0.1/32                       172.16.0.4         120     

7 ADC   172.16.0.4/32       172.16.0.3    s1                  0       

8 ADr   172.16.0.5/32                       172.16.0.4         120     

9 ADC   192.168.2.0/24     192.168.2.2   ether1              0    

[admin@R7] >ip route print 

0 A S   0.0.0.0/0                            192.168.3.1        1       

1 ADr   4.4.4.4/32                          172.16.0.6         120     

2 ADr   5.5.5.5/32                          172.16.0.6         120     

3 ADr   6.6.6.6/32                          172.16.0.6         120     

4 ADC   7.7.7.7/32          7.7.7.7         bridge1             0       

5 ADC   10.0.7.0/24         10.0.7.1        ether7              0       

6 ADr   172.16.0.1/32                       172.16.0.6         120     

7 ADr   172.16.0.3/32                       172.16.0.6         120     

8 ADC   172.16.0.6/32       172.16.0.5    s2                  0       

9 ADC   192.168.3.0/24      192.168.3.2  ether1              0  

Глядя на таблицы маршрутов, мы на всех устройствах видим маршруты на сети 4.4.4.4/32, 5.5.5.5/32, 6.6.6.6/32 и  7.7.7.7/32. Мы с уверенностью в успехе запускаем расширенные пинги из R4, R5, R6 и R7  на адреса 4.4.4.4 5.5.5.5 6.6.6.6  7.7.7.7 интерфейсов-петель с адресом источника равным адресу локального интерфейса-петли, например

[admin@R4] >ping 5.5.5.5 src-address=4.4.4.4

[admin@R4] >ping 6.6.6.6 src-address=4.4.4.4

[admin@R4] >ping  7.7.7.7 src-address=4.4.4.4

[admin@R5] >ping 6.6.6.6 src-address=5.5.5.5

[admin@R5] >ping 7.7.7.7 src-address=5.5.5.5

и т.д.

SSTP VPN уровня 3 настроена. Значит настроена и VPN уровня 2.  Настроим MPLS поверх  VPN уровня 2. В MPLS-сети LSP организуем с помощью  LDP.

5. Настраиваем LDP, добавляя в него SSTP-интерфейсы и указывая в качестве транспортного адреса адрес моста

[admin@R4] >mpls ldp set enabled=yes transport-address=4.4.4.4 lsr-id=4.4.4.4 

[admin@R4] >mpls ldp interface add interface=c0      

[admin@R4] >mpls ldp interface add interface=c1 

[admin@R4] >mpls ldp interface add interface=c2 

[admin@R5] >mpls ldp set enabled=yes transport-address=5.5.5.5 lsr-id=5.5.5.5

[admin@R5] >mpls ldp interface add interface=s0

[admin@R6] >mpls ldp set enabled=yes transport-address=6.6.6.6 lsr-id=6.6.6.6

[admin@R7] >mpls ldp interface add interface=s1

[admin@R7] >mpls ldp set enabled=yes transport-address=7.7.7.7 lsr-id=7.7.7.7

[admin@R7] >mpls ldp interface add interface=s2

Проверим LDP-соседей командой mpls ldp neighbor print. Маршрутизатор R4 выдаёт такие транспортные адреса соседей: 5.5.5.5, 6.6.6.6 и 7.7.7.7. И R5 и R6 и R7  выдают адрес 4.4.4.4.

6. Настроим BGP. Мы отражателем маршрутов назначим маршрутизатор R5. Настроим BGP сессии к отражателю от  остальных внутренних маршрутизаторов R4, R6 и R7. В качестве источника обновлений возьмём интерфейс-петлю bridge1. В качестве адреса удалённого пира используем адрес его интерфейса-петли. Предварительно проверьте доступность  remote-address.

[admin@R5] >routing bgp instance set 0 client-to-client-reflection=yes

[admin@R5]>routing bgp peer add remote-address=4.4.4.4 remote-as=65530  update-source=bridge1 route-reflect=yes

[admin@R5]>routing bgp peer add remote-address=6.6.6.6 remote-as=65530 update-source=bridge1 route-reflect=yes  

[admin@R5]>routing bgp peer add remote-address=7.7.7.7 remote-as=65530 update-source=bridge1 route-reflect=yes

[admin@R4] >routing bgp instance set 0 client-to-client-reflection=no

[admin@R4]>routing bgp peer add remote-address=5.5.5.5 remote-as=65530update-source=bridge1 route-reflect=no

[admin@R6] >routing bgp instance set 0 client-to-client-reflection=no

[admin@R6]>routing bgp peer add remote-address=5.5.5.5 remote-as=65530 update-source=bridge1 route-reflect=no

[admin@R7] >routing bgp instance set 0 client-to-client-reflection=no

[admin@R7]>routing bgp peer add remote-address=5.5.5.5 remote-as=65530 update-source=bridge1 route-reflect=no

Для  R4,  R5,  R6 и R7 в winbox должно начать изменятся время  BGP-сессии в поле  routing bgp peer Uptime. Обязательно проверьте. Если это поле пусто-дальнейшая работа бессмыслена. Проверьте маршрутизацию.

Переходим к топологии на рис. 2, добавьте компьютеры R10, R11,  R12 и R13 к существующей топологии и дайте им имена. Проверьте соседей у новых компьютеров и назначьте адреса на тап-интерфейсы. Сохраните проект MPLS и сделайте две копии:   BGPVPLS и BGPVRF.

Создадим VPN уровня 2 типа BGP VPLS.  Откроем проект BGPVPLS. На R4, R5, R6 и R7 с помощью коменды interface  bridge add name=vpls создадим мосты с именем vpls  и добавим в каждый из них интерфейсы, идущие в сторону компьютеров       R10, R11,  R12 и R13 локальных сетей филиалов: interface  bridge port add bridge=vpls interface=ether2. Назначим на компьютеры R10, R11,  R12 и R13 адреса согласно варианту. Для варианта V=0 имеем(рис. 4).

Рис. 4 Топология BGPVPLS

[admin@R10] >ip address add address=172.16.200.1/24 interface= ether1

[admin@R11] >ip address add address=172.16.200.2/24 interface= ether1

[admin@R12] >ip address add address=172.16.200.3/24 interface= ether1

[admin@R13] >ip address add address=172.16.200.4/24 interface= ether1

Установим для BGP-сессий семейства адресов l2vpn

[admin@R4]>routing bgp peer set 0 address-families=l2vpn

[admin@R5]>routing bgp peer set 0,1,2 address-families=l2vpn

[admin@R6]>routing bgp peer set 0 address-families=l2vpn

[admin@R7]>routing bgp peer set 0 address-families=l2vpn

Для настройки  VPLS BGP выполните команды

[admin@R4]>interface vpls bgp-vpls add bridge= vpls bridge-horizon=1 route-distinguisher=4.4.4.4:1 site-id=4 export-route-targets=4:1 import-route-targets=5:1,6:1,7:1 

[admin@R5]>interface vpls bgp-vpls add bridge= vpls bridge-horizon=1 route-distinguisher=5.5.5.5:1 site-id=5 export-route-targets=5:1 import-route-targets=4:1,6:1,7:1 

[admin@R6]>interface vpls bgp-vpls add bridge= vpls bridge-horizon=1 route-distinguisher=6.6.6.6:1 site-id=6 export-route-targets=6:1 import-route-targets=4:1,5:1,7:1 

[admin@R7]>interface vpls bgp-vpls add bridge= vpls bridge-horizon=1 route-distinguisher=7.7.7.7:1 site-id=7 export-route-targets=7:1 import-route-targets=4:1,5:1,6:1 

Проверим на маршрутизаторах R4, R5, R6 и R7 LDP-соседей командой mpls ldp neighbor print. Видим, что каждый является соседом каждого.

На каждом маршрутизаторе автоматически создадутся по три  VPLS-интерфейса, например

[admin@R4] > /interface vpls print 

Flags: X - disabled, R - running, D - dynamic, B - bgp-signaled, C - cisco-bgp-signaled

0 RDB name="vpls1" mtu=1500 l2mtu=1500 mac-address=02:6E:3C:4F:4A:E0 arp=enabled disable-running-check=no remote-peer=5.5.5.5 cisco-style=no cisco-style-id=0 advertised-l2mtu=1500 pw-type=raw-ethernet use-control-word=yes vpls=bgp-vpls1

1 RDB name="vpls2" mtu=1500 l2mtu=1500 mac-address=02:EE:3A:22:7B:CD arp=enabled disable-running-check=no remote-peer=6.6.6.6  cisco-style=no cisco-style-id=0 advertised-l2mtu=1500 pw-type=raw-ethernet use-control-word=yes vpls=bgp-vpls1

2 RDB name="vpls3" mtu=1500 l2mtu=1500 mac-address=02:3A:0B:F0:4A:C0 arp=enabled disable-running-check=no remote-peer=7.7.7.7  cisco-style=no cisco-style-id=0 advertised-l2mtu=1500 pw-type=raw-ethernet use-control-word=yes vpls=bgp-vpls1

Проверьте командой  interface  bridge port print, что эти интерфейсы добавились в мост vpls. 

Устройства R10, R11, R12 и R13 видят друг друга как соседи, например

[admin@R10] > ip neighbor pr

# INTERFACE ADDRESS      MAC-ADDRESS       IDENTITY   VERSION    BOARD      

5 ether1    172.16.200.2     00:AA:00:92:A8:00  R11        5.5        x86        

8 ether1    172.16.200.3     00:AA:00:2C:6B:00  R12        5.5        x86        

10 ether1   172.16.200.4     00:AA:00:76:48:00   R13        5.5        x86        

Проверьте, что устройства R13, R12, R10 и R11 пингуют друг друга по MAC-адресам и адресам (V=0) 172.16.200.1  172.16.200.2 172.16.200.3  172.16.200.4.

VPN уровня 2 типа BGP VPLS настроена.

8. Создадим VPN уровня 3 типа BGP VRF.  Откроем проект BGPVRF. Назначим во внутренних маршрутизаторах адреса на интерфейс ether2, идущий в сторону компьютера локальной сети филиала. Для варианта V=0 имеем (рис. 5)

[admin@R4] >ip address add address=172.16.1.1/24 interface=ether2 

[admin@R6] >ip address add address=172.16.2.1/24 interface=ether2

[admin@R7] >ip address add address=172.16.3.1/24 interface=ether2

[admin@R5] >ip address add address=172.16.4.1/24 interface=ether2

Рис. 5. Топология BGPVRF

Установим для BGP-сессий семейства адресов  vpnv4

[admin@R4]>routing bgp peer set 0 address-families= vpnv4

[admin@R5]>routing bgp peer set 0,1,2 address-families= vpnv4

[admin@R6]>routing bgp peer set 0 address-families= vpnv4

[admin@R7]>routing bgp peer set 0 address-families= vpnv4

Используем сокращённую настройку VRF. Поместим в R4, R5, R6 и R7 интерфейс ether2, идущий в сторону локальной сети филиала   в  VRF с route-distinguisher   2:2 и назначим маркер маршрутов rm.  Это осуществляется командой

ip route vrf add routing-mark= rm interfaces= ether2 route-distinguisher=2:2      import-route-targets=2:2 export-route-targets=2:2

Укажем  BGP в R4, R5, R6 и R7, что VRF с идентификатором   2:2 будут участвовать в маршрутизации для семейства адресов  vpnv4 с перераспределением присоединённых маршрутов. Это осуществляется командой

routing bgp instance vrf add routing-mark=rm redistribute-connected=yes

Посмотрим на маршруты. Например для R4

[admin@R4] >ip route print detail where routing-mark=rm

Flags: X - disabled, A - active, D - dynamic, C - connect, S - static, r - rip, b - bgp, o - ospf, m - mme, B - blackhole, U - unreachable, P - prohibit

0 ADC  dst-address=172.16.1.0/24 pref-src=172.16.1.1 gateway=vrf  gateway-status=vrf reachable distance=0 scope=10 routing-mark=rm

1 ADb  dst-address=172.16.2.0/24 gateway=6.6.6.6 gateway-status=6.6.6.6 recursive via 172.16.0.3 c1 distance=200 scope=40 target-scope=30 routing-mark=rm bgp-local-pref=100 bgp-origin=incomplete bgp-ext-communities="RT:2:2"

2 ADb  dst-address=172.16.3.0/24 gateway=7.7.7.7 gateway-status=7.7.7.7 recursive via 172.16.0.5 c2 distance=200 scope=40 target-scope=30 routing-mark=rm bgp-local-pref=100 bgp-origin=incomplete bgp-ext-communities="RT:2:2"

3 ADb  dst-address=172.16.4.0/24 gateway=5.5.5.5 gateway-status=5.5.5.5 recursive via 172.16.0.1 c0 distance=200 scope=40 target-scope=30 routing-mark=rm bgp-local-pref=100 bgp-origin=incomplete bgp-ext-communities="RT:2:2"

[admin@R4] >routing bgp vpnv4-route pr

Flags: L - label-present

#   ROUTE-DISTINGUISHER            DST-ADDRESS        GATEWAY   IN..

0 L 2:2                             172.16.2.0/24       6.6.6.6             c1  

1 L 2:2                             172.16.3.0/24       7.7.7.7             c2  

2 L 2:2                             172.16.4.0/24       5.5.5.5             c0  

3 L 2:2                             172.16.1.0/24                           vrf

[admin@R5] >ip route print detail where routing-mark=rm

Flags: X - disabled, A - active, D - dynamic, C - connect, S - static, r - rip, b - bgp, o - ospf, m - mme, B - blackhole, U - unreachable, P - prohibit

0 ADb  dst-address=172.16.1.0/24 gateway=4.4.4.4         gateway-status=4.4.4.4 recursive via 172.16.0.2 s0 distance=200 scope=40 target-scope=30 routing-mark=rm bgp-local-pref=100 bgp-origin=incomplete bgp-ext-communities="RT:2:2"

1 ADb  dst-address=172.16.2.0/24 gateway=6.6.6.6 gateway-status=6.6.6.6 recursive via 172.16.0.2 s0 distance=200 scope=40 target-scope=30 routing-mark=rm bgp-local-pref=100 bgp-origin=incomplete bgp-ext-communities="RT:2:2"

2 ADb  dst-address=172.16.3.0/24 gateway=7.7.7.7 gateway-status=7.7.7.7 recursive via 172.16.0.2 s0 distance=200 scope=40 target-scope=30 routing-mark=rm bgp-local-pref=100 bgp-origin=incomplete bgp-ext-communities="RT:2:2"

3 ADC  dst-address=172.16.4.0/24 pref-src=172.16.4.1 gateway=vrf gateway-status=vrf reachable distance=0 scope=10 routing-mark=rm

[admin@R5] >routing bgp vpnv4-route pr

Flags: L - label-present

#   ROUTE-DISTINGUISHER DST-ADDRESS GATEWAY   IN..

0 L 2:2                            172.16.1.0/24      4.4.4.4             s0  

1 L 2:2                            172.16.2.0/24      6.6.6.6             s0  

2 L 2:2                            172.16.3.0/24      7.7.7.7             s0  

3 L 2:2                            172.16.4.0/24                           vrf

[admin@R6] >ip route print detail where routing-mark=rm

Flags: X - disabled, A - active, D - dynamic, C - connect, S - static, r - rip, b - bgp, o - ospf, m - mme, B - blackhole, U - unreachable, P - prohibit

0 ADb  dst-address=172.16.1.0/24 gateway=4.4.4.4 gateway-status=4.4.4.4 recursive via 172.16.0.4 s1 distance=200 scope=40 target-scope=30 routing-mark=rm bgp-local-pref= bgp-origin=incomplete bgp-ext-communities="RT:2:2"

1 ADC  dst-address=172.16.2.0/24 pref-src=172.16.2.1 gateway=vrf gateway-status=vrf reachable distance=0 scope=10 routing-mark=rm

2 ADb  dst-address=172.16.3.0/24 gateway=7.7.7.7 gateway-status=7.7.7.7 recursive via 172.16.0.4 s1 distance=200 scope=40 target-scope=30 routing-mark=rm bgp-local-pref=100 bgp-origin=incomplete bgp-ext-communities="RT:2:2"

3 ADb  dst-address=172.16.4.0/24 gateway=5.5.5.5 gateway-status=5.5.5.5 recursive via 172.16.0.4 s1 distance=200 scope=40 target-scope=30 routing-mark=rm bgp-local-pref=100 bgp-origin=incomplete bgp-ext-communities="RT:2:2"

[admin@R6] >routing bgp vpnv4-route pr

Flags: L - label-present

#ROUTE-DISTINGUISHER DST-ADDRESS GATEWAY     IN..

0 L 2:2                            172.16.1.0/24      4.4.4.4             s1  

1 L 2:2                            172.16.3.0/24      7.7.7.7             s1  

2 L 2:2                            172.16.4.0/24      5.5.5.5             s1  

3 L 2:2                            172.16.2.0/24                           vrf

[admin@R7] >ip route print detail where routing-mark=rm

Flags: X - disabled, A - active, D - dynamic, C - connect, S - static, r - rip, b - bgp, o - ospf, m - mme, B - blackhole, U - unreachable, P - prohibit

0 ADb  dst-address=172.16.1.0/24 gateway=4.4.4.4 gateway-status=4.4.4.4 recursive via 172.16.0.6 s2 distance=200 scope=40 target-scope=30 routing-mark=rm bgp-local-pref=100 bgp-origin=incomplete bgp-ext-communities="RT:2:2"

1 ADb  dst-address=172.16.2.0/24 gateway=6.6.6.6 gateway-status=6.6.6.6 recursive via 172.16.0.6 s2 distance=200 scope=40 target-scope=30 routing-mark=rm bgp-local-pref=100 bgp-origin=incomplete bgp-ext-communities="RT:2:2"

2 ADC  dst-address=172.16.3.0/24 pref-src=172.16.3.1 gateway=vrf gateway-status=vrf reachable distance=0 scope=10 routing-mark=rm

3 ADb  dst-address=172.16.4.0/24 gateway=5.5.5.5 gateway-status=5.5.5.5 recursive via 172.16.0.6 s2 distance=200 scope=40 target-scope=30 routing-mark=rm bgp-local-pref=100 bgp-origin=incomplete bgp-ext-communities="RT:2:2"

admin@R7] >routing bgp vpnv4-route pr

Flags: L - label-present

#ROUTE-DISTINGUISHER DST-ADDRESS GATEWAY   IN..

0 L 2:2                            172.16.1.0/24      4.4.4.4             s2  

1 L 2:2                            172.16.2.0/24      6.6.6.6             s2  

2 L 2:2                            172.16.4.0/24      5.5.5.5             s2  

3 L 2:2                            172.16.3.0/24                          vrf

Видим, что маршруты на сети  172.16.1.0/24  172.16.2.0/24  172.16.3.0/24  172.16.4.0/24 присутствуют во всех маршрутизаторах  R4, R5, R6 и R7.

9. Назначим адреса на компьютеры, согласно варианту R10-172.16.1+4*V.2/24, R11-172.16.2+4*V.2/24, R12-172.16 .3+4*V+2.2/24, R13-172.16 .4+4*V.2/24.  Для V=0 имеем

[admin@R10] >ip address add address=172.16.1.2/24 interface=ether1

[admin@R11] >ip address add address=172.16.2.2/24 interface=ether1

[admin@R12] >ip address add address=172.16.3.2/24 interface=ether1

[admin@R13] >ip address add address=172.16.4.2/24 interface=ether1

Для каждого компьютера проверьте связь по IP к маршрутизатору и затем пропишите шлюзы

[admin@R10] >ip route add gateway=172.16.1.1

[admin@R11] >ip route add gateway=172.16.2.1

[admin@R12] >ip route add gateway=172.16.3.1

[admin@R13] >ip route add gateway=172.16.4.1

Теперь  R10,   R11,  R12  и R13 видят друг друга по адресам 172.16.1.2, 172.16.2.2 172.16.3.2 172.16.4.2. То есть MPLS VRF VPN уровня 3 функционирует.

В отличие от VPN  2 Устройства R10, R11, R12 и R13 не видят друг друга как соседи, а видят только физически присоединённые устройства, например

[admin@R10] > ip neighbor pr

# INTERFACE ADDRESS MAC-ADDRESS       IDENTITY   VERSION    BOARD      

0 ether1    172.16.1.1      00:AA:00:C2:5C:01  R4         5.5        x86        

1 ether1    10.0.10.1       52:54:00:12:34:5C  R10        5.5        x86        

2 ether7    172.16.1.1      00:AA:00:C2:5C:01  R4         5.5        x86        

 3 ether7    172.16.1.2      00:AA:00:23:42:00  R10        5.5        x86    


 

А также другие работы, которые могут Вас заинтересовать

72647. Арифметические выражения 13.77 KB
  Используемые величины переменных или элементов массивов должны быть определены до того, как они появятся в арифметическом выражении. Также, величины целых переменных должны быть арифметическими, а не величинами меток операторов, установленными оператором ASSIGN.
72648. Размещение элементов массива в памяти ЭВМ 11.81 KB
  Если массив одномерный то его элементы хранятся в памяти друг за другом например А1 А2 А3 А4 Во многих языках программирования например в СИ элементы двумерного массива располагаются в памяти ЭВМ по строкам в Фортране по столбцам.
72649. Понятие массива 18.25 KB
  Каждый массив должен быть описан в начале программы с помощью оператора размерности DIMENSION с указанием предельных значений каждого индекса, которые задаются целыми константами. Это необходимо для того, чтобы зарезервировать соответствующий объем памяти для хранения элементов массива.
72650. Формы представления данных в памяти ЭВМ 12.71 KB
  Под кодированием понимается переход от исходного представления информации, удобного для восприятия информации человеком, к представлению, удобному для хранения, передачи и обработки. Информация в памяти ЭВМ записывается в виде цифрового двоичного кода.
72651. Запись операторов в свободном и фиксированном форматах 12.37 KB
  Для записи комментариев ставится символ С в первой позиции строки далее до конца строки любой текст считается комментарием и игнорируется компилятором. Допускается запись нескольких операторов на одной строке разделителем является символ...
72652. Константы. Типы констант 13.61 KB
  Константа — это величина, которая не изменяется в программе в процессе программирования, то есть её значение не изменяется. Типы констант Существуют константы следующих типов: Целые — это простые целые числа любого знака. Например: 3; 157.
72653. Алфавит и имена переменных 13.42 KB
  Все другие ASCII символы могут применяться только в символьных константах. Пробелы используются для удобочитаемости программ. Они игнорируются компилятором, если не находятся внутри символьной константы.
72654. Алгоритм 16.96 KB
  Часто в качестве исполнителя выступает некоторый механизм компьютер токарный станок швейная машина но понятие алгоритма необязательно относится к компьютерным программам так например чётко описанный рецепт приготовления блюда также является алгоритмом в таком случае исполнителем является человек.
72655. Операционная система 22.05 KB
  Программы составляющие ПО можно разделить на три группы: системное ПО системы программирования прикладное ПО. Структуру ОС составляют следующие модули: базовый модуль ядро ОС управляет работой программы и файловой системой обеспечивает доступ к ней и обмен файлами между периферийными устройствами...