M:MPLS over GRE
- Задача
Имеются две сети разнесенные географически через Internet и есть желание прокинуть трафик l2, плюс что бы он еще содержал теги или как говорит cisco прокинуть trunk. Подчеркну, что всё оборудование реальное, и две сети находятся в одном городе, разделенные обычным Internet.
- Решение
Воспользуемся услугами технологий: VPLS, GRE, OSPF, IPsec, VLAN.
- Оборудование, которым мы располагаем
Вендор | Модель |
---|---|
1. Mikrotik | CCR1036-8G-2S+EM |
2. Mikrotik | RB2011iL-IN |
3. Cisco | WS-C2960-TT-L |
4. Juniper | srx100 |
5. Juniper | ex9208 |
- Схема сети
- Настройка srx100
Сделаем порт тегированным, что бы он понимал различные VLAN-s
set interfaces fe-0/0/6 unit 0 family ethernet-switching port-mode trunk set interfaces fe-0/0/6 unit 0 family ethernet-switching vlan members vlan-trust
Добавим vlan 3
set vlans vlan-trust vlan-id 3
Сделаем порт нетегированным, что бы добавить в него хост.
set interfaces fe-0/0/7 unit 0 family ethernet-switching vlan members vlan-trust
Сохраним и применим конфиг
commit
- Настройка cisco 2960
Создадим vlan 3
conf t vlan 3
Подадим на интерфейс gi0/1 trunk
conf t interface GigabitEthernet0/1 switchport trunk allowed vlan 3 switchport mode trunk load-interval 30
Сделаем интерфейс fa0/24 access
conf t interface FastEthernet0/24 switchport access vlan 3 switchport mode access load-interval 30 no cdp enable spanning-tree portfast
Для MPLS увеличим MTU на коммутаторе для fast ethernet и gigabit ethernet
conf t system mtu 1998 system mtu jumbo 1998
- Настройка juniper ex9208
Создаем vlan vlan371
set vlans vlan371 vlan-id 371 set vlans vlan371 l3-interface vlan.371
Создаем l3 интерфейс
set interfaces irb unit 371 family inet address x.x.x.x/24
Делаем порт untagged vlan 371. MTU ставим 1550
set interfaces ge-4/0/1 description mikrotik-mpls set interfaces ge-4/0/1 mtu 1550 set interfaces ge-4/0/1 unit 0 family ethernet-switching interface-mode access set interfaces ge-4/0/1 unit 0 family ethernet-switching vlan members vlan371
И так мы с вами подготовили трассу для нашей технологии MPLS.
Теперь нам нужно создать : vlan 3, GRE tunnel, OSPF соседство, LDP peers, MPLS interfaces, bridge interfaces, vpls interfaces и как бонус обернем это все IPsec.
И все это мы сделаем на mikrotik.
- Настройка Mikrotik RB2011iL-IN
Создадим vlan 3 и повесим его на интерфейс eth6, обращаем внимание на MTU оно должно больше 1500. Поставил 1526
/interface vlan add interface=ether6 l2mtu=1594 mtu=1526 name=vlan3 vlan-id=3
Сделаем для mpls интерфейса MTU 1526
/mpls interface set [ find default=yes ] mpls-mtu=1526
Займемся GRE туннелем. Создадим адрес.
/ip address add address=172.32.1.17/30 interface=gre1 network=172.32.1.16
Создадим GRE интерфейс. 1.1.1.1.1 - Mikrotik RB2011iL-IN. 2.2.2.2 - Mikrotik CCR1036-8G-2S+EM. Делаем MTU 1600
/interface gre add local-address=1.1.1.1.1 mtu=1600 name=gre1 remote-address=2.2.2.2
Создадим LDP и добавим туда наш GRE интерфейс с названием gre1
/mpls ldp set enabled=yes lsr-id=172.32.1.17 transport-address=172.32.1.17 /mpls ldp interface add interface=gre1
Создадим VPLS интерфейс vpls1 и пропишем соседа на той стороне 172.32.1.18. Эти два параметра cisco-style=yes cisco-style-id=5 можно не использовать, идентификация vpls будет через это vpls-id=1:1.
/interface vpls add advertised-l2mtu=1526 cisco-style=yes cisco-style-id=5 disabled=no l2mtu=1526 name=vpls1 pw-type=tagged-ethernet remote-peer=172.32.1.18 vpls-id=1:1
Создадим bridge интерфейс mpls1 и добавим туда два интерфейса vlan3 и vpls1.
/interface bridge add name=mpls1 protocol-mode=none /interface bridge port add bridge=mpls1 interface=vpls1 add bridge=mpls1 interface=vlan3
Поднимем OSPF и установим соседство. OSPF нужен когда таких mikrotik-ов будет больше двух, то есть можно объединить, к примеру 3 сети в один широковещательный домен. OSPF поднимаем на GRE интерфейсе gre1.
/routing ospf interface add interface=gre1 network-type=point-to-point /routing ospf network add area=backbone network=172.32.1.16/30
- Настройка Mikrotik CCR1036-8G-2S+EM
Создадим vlan 3 и повесим его на интерфейс eth3, обращаем внимание на MTU оно должно больше 1500. Поставил 1526
/interface vlan add interface=ether3 l2mtu=1594 mtu=1526 name=vlan3 vlan-id=3
Сделаем для mpls интерфейса MTU 1526
/mpls interface set [ find default=yes ] mpls-mtu=1526
Займемся GRE туннелем. Создадим адрес.
/ip address add address=172.32.1.18/30 interface=gre1 network=172.32.1.16
Создадим GRE интерфейс. 1.1.1.1.1 - Mikrotik RB2011iL-IN. 2.2.2.2 - Mikrotik CCR1036-8G-2S+EM. Делаем MTU 1600
/interface gre add local-address=2.2.2.2 mtu=1600 name=gre1 remote-address=1.1.1.1
Создадим LDP и добавим туда наш GRE интерфейс с названием gre1
/mpls ldp set enabled=yes lsr-id=172.32.1.18 transport-address=172.32.1.18 /mpls ldp interface add interface=gre1
Создадим VPLS интерфейс vpls1 и пропишем соседа на той стороне 172.32.1.17. Эти два параметра cisco-style=yes cisco-style-id=5 можно не использовать, идентификация vpls будет через это vpls-id=1:1.
/interface vpls add advertised-l2mtu=1526 cisco-style=yes cisco-style-id=5 disabled=no l2mtu=1526 name=vpls1 pw-type=tagged-ethernet remote-peer=172.32.1.17 vpls-id=1:1
Создадим bridge интерфейс mpls1 и добавим туда два интерфейса vlan3 и vpls1.
/interface bridge add name=mpls1 protocol-mode=none /interface bridge port add bridge=mpls1 interface=vpls1 add bridge=mpls1 interface=vlan3
Поднимем OSPF и установим соседство. OSPF нужен когда таких mikrotik-ов будет больше двух, то есть можно объединить, к примеру 3 сети в один широковещательный домен. OSPF поднимаем на GRE интерфейсе gre1.
/routing ospf interface add interface=gre1 network-type=point-to-point /routing ospf network add area=backbone network=172.32.1.16/30
Проверка соединения через ping -s 1500. Запустим с адреса 192.168.33.146
ifconfig eth0 eth0 Link encap:Ethernet HWaddr b8:27:eb:89:b4:f3 inet addr:192.168.33.146 Bcast:192.168.33.255 Mask:255.255.255.0 UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1 RX packets:343971 errors:0 dropped:35790 overruns:0 frame:0 TX packets:124361 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:1000 RX bytes:35402150 (33.7 MiB) TX bytes:23765914 (22.6 MiB) ping -s 1500 192.168.33.145 PING 192.168.33.145 (192.168.33.145) 1500(1528) bytes of data. 1508 bytes from 192.168.33.145: icmp_req=1 ttl=64 time=4.30 ms 1508 bytes from 192.168.33.145: icmp_req=2 ttl=64 time=4.31 ms 1508 bytes from 192.168.33.145: icmp_req=3 ttl=64 time=4.46 ms 1508 bytes from 192.168.33.145: icmp_req=4 ttl=64 time=4.32 ms 1508 bytes from 192.168.33.145: icmp_req=5 ttl=64 time=4.26 ms ^C --- 192.168.33.145 ping statistics --- 5 packets transmitted, 5 received, 0% packet loss, time 4006ms rtt min/avg/max/mdev = 4.263/4.332/4.464/0.099 ms
Как видим ICMP отработал без потерь. Так же мной тестировался сервис www (apache, cacti) и SSH. Все сервисы работают без проблем.
- IPsec
И теперь, так как мы используем общую сеть Internet, нам нужно защитить данные от прослушивания. И это мы сделаем с помощью IPsec. Приступим.
- Настройка Mikrotik RB2011iL-IN
Сделаем туннель и повесим policy. 1.1.1.1.1 - Mikrotik RB2011iL-IN. 2.2.2.2 - Mikrotik CCR1036-8G-2S+EM.
/ip ipsec proposal set [ find default=yes ] auth-algorithms=md5 enc-algorithms=aes-128-cbc,twofish /ip ipsec peer add address=2.2.2.2/32 nat-traversal=no secret=our_password /ip ipsec policy add dst-address=2.2.2.2/32 sa-dst-address=2.2.2.2 sa-src-address=1.1.1.1.1 src-address=1.1.1.1.1/32 tunnel=yes
- Настройка Mikrotik CCR1036-8G-2S+EM
Сделаем туннель и повесим policy. 1.1.1.1.1 - Mikrotik RB2011iL-IN. 2.2.2.2 - Mikrotik CCR1036-8G-2S+EM.
/ip ipsec proposal set [ find default=yes ] auth-algorithms=md5 enc-algorithms=aes-128-cbc,twofish /ip ipsec peer add address=1.1.1.1.1/32 nat-traversal=no secret=our_password /ip ipsec policy add dst-address=1.1.1.1.1/32 sa-dst-address=1.1.1.1.1 sa-src-address=2.2.2.2 src-address=2.2.2.2/32 tunnel=yes
На этом статья заканчивается. Цель достигнута. Две сети теперь находятся в одном широковещательном домене и так же благодаря тегированному трафику на концах сети, можно использовать другие vlans для своих нужд.