Показаны сообщения с ярлыком quagga. Показать все сообщения
Показаны сообщения с ярлыком quagga. Показать все сообщения

среда, 26 января 2022 г.

Терра настройка отказоустойчивости на 2-х интерфейсах одного шлюза

 Попалась С-терра 2000 gate, но "cisco CLI" достаточно условный, позволяет сконфигурировать только простые (native vlan) IP адреса на существующих в cisco CLI интерфейсы, но если нужны вланы или агрегирование, то все надо делать в Linux подсистеме (DEBIAN), переходя из cisco CLI командой:

 run bash

а из bash попасть в cisco CLI можно командой:

cs_console

Задача собрать Portchannel и сконфигурировать отказоустойчивое подключение к двум коммутаторам к влану без LACP (vPC на этих коммутаторах не планируется настраивать) - Bond mode "active-backup" с одним активным интерфейсом (eth0) и пассивным backup  интерфейсом (eth1).

Настраивать всё это надо в Linux подсистеме, с немного изменённым (от Debian) способом:

1) Bond добавляется в файле:  

cscons# cat /etc/network/interfaces.d/bond0

auto bond0
iface bond0 inet static
address 10.0.0.1
netmask 255.255.255.255
mtu 1500
slaves eth0 eth1
bond_mode active-backup
bond_miimon 100
bond_primary eth0

Примечание: чтобы этот файл учитывался в конфигурации необходимо чтобы в файле 

cscons# cat /etc/network/interfaces

source-directory /etc/network/interfaces.d

была строка импорта каталога: source-directory /etc/network/interfaces.d

Проверить можно командами:

ifup bind0

ip address show bind0

2) Чтобы увидеть интерфейс Portchannel1 ассоциированный к bond0, в файле 
cscons# cat /etc/ifaliases.cf

interface (name="GigabitEthernet0/0" pattern="eth0")
interface (name="GigabitEthernet0/1" pattern="eth1")
interface (name="GigabitEthernet0/2" pattern="eth2")
interface (name="GigabitEthernet0/3" pattern="eth3")
interface (name="GigabitEthernet0/4" pattern="eth4")
interface (name="GigabitEthernet0/5" pattern="eth5")
interface (name="Loopback0" pattern="loopback0")
interface (name="Port-channel1" pattern="bond0")

добавить строку соответствия (жёлтым)
затем надо ребилдить конфигурацию, чтобы cisco CLI увидел этот новый интерфейс:

integr_mgr calc -f /etc/ifaliases.cf

service vpngate restart

Но cisco CLI не дает изменять IP адреса, которые были добавлены таким образом, и у меня не захотело поднимать bond0 интерфейс без какого-нибудь IP, поэтому поставил адрес 10.0.0.1/32.

3) Чтобы создать Vlan сабинтерфейсы в данном Bond0, их необходимо конфигурировать в общем файле интерфейсов и сразу с актуальными IP (дописывая между ###netifcfg-begin### и ###netifcfg-end### не допускается наличие пустых строк) в файле:
cat /etc/network/interfaces

auto bond0.1145
iface bond0.1145 inet static
mtu 1500
address 10.144.200.88
netmask 255.255.255.240
auto bond0.1146
iface bond0.1146 inet static
mtu 1500
address 10.144.200.108
netmask 255.255.255.240

после этого можно проверить:

ifup bind0.1145

ip address show bind0.1145

4) Чтобы добавить сабинтерфейсы в Cisco CLI (чтобы использовать для настройки маршрутизации, VPN и т.д.) необходим снова описать их в файле:

cscons# cat /etc/ifaliases.cf

interface (name="GigabitEthernet0/0" pattern="eth0")
interface (name="GigabitEthernet0/1" pattern="eth1")
interface (name="GigabitEthernet0/2" pattern="eth2")
interface (name="GigabitEthernet0/3" pattern="eth3")
interface (name="GigabitEthernet0/4" pattern="eth4")
interface (name="GigabitEthernet0/5" pattern="eth5")
interface (name="Loopback0" pattern="loopback0")
interface (name="Port-channel1" pattern="bond0")
interface (name="Port-channel1.1145" pattern="bond0.1145")
interface (name="Port-channel1.1146" pattern="bond0.1146")
interface (name="default" pattern="*")

5) при необходимости Loopback интерфейса в cisco CLI, он добавляется также как bond0, в отдельном файле:

cscons# cat /etc/network/interfaces.d/loopback0

auto loopback0
iface loopback0 inet static
address 2.2.2.2
netmask 255.255.255.255
pre-up ip link del loopback0 type dummy 2>/dev/null || true
pre-up ip link add loopback0 type dummy
post-down ip link set dev loopback0 down


И затем добавляется , как описано в п.4 (зеленым).

После каждого изменения /etc/ifaliases.cf

необходимо ребилдить конфигурацию:

integr_mgr calc -f /etc/ifaliases.cf
service vpngate restart

После чего в cisco CLI будет отображаться:

#sh run
...
interface GigabitEthernet0/0
 description member PO_1_primary_Active_eth0
 no ip address
!
interface GigabitEthernet0/1
 description member PO_1_second_Standby_eth1
 no ip address
!
interface GigabitEthernet0/2
 no ip address
 shutdown
!
interface GigabitEthernet0/3
 no ip address
 shutdown
!
interface GigabitEthernet0/4
 no ip address
 shutdown
!
!
interface Loopback0
 ip address 2.2.2.2 255.255.255.255
!
interface Port-channel1
 ip address 10.0.0.1 255.255.255.255
!
interface Port-channel1.1145
 ip address 10.144.200.88 255.255.255.240
!
interface Port-channel1.1146
 ip address 10.144.200.108 255.255.255.240

Дескрипшен на интерфейсы g0/0 и g0/1 прописаны из cisco CLI.

Проверить конфигурацию Bond0 можно в Linux подсистеме:

cscons# cat /proc/net/bonding/bond0

Bonding Mode: fault-tolerance (active-backup)
Primary Slave: eth0 (primary_reselect always)
Currently Active Slave: None
MII Status: down
MII Polling Interval (ms): 100
Up Delay (ms): 0
Down Delay (ms): 0

Slave Interface: eth0
MII Status: down
Speed: Unknown
Duplex: Unknown
Link Failure Count: 0
Permanent HW addr: 00:00:00:00:00:55
Slave queue ID: 0

Slave Interface: eth1
MII Status: down
Speed: Unknown
Duplex: Unknown
Link Failure Count: 0
Permanent HW addr: 00:00:00:00:00:56
Slave queue ID: 0

 
 





среда, 11 октября 2017 г.

Конфигурирование BGP на quagga

Возникла задача создать многоточечную сеть ВПН на quagga-like системах с топологией "звезда". Так как кол-во точек могло быть  достаточно большим, а также необходимо чтобы решение было резервируемым, то маршрутизацию решил сделать на BGP, для совместимости с имеющимся оборудованием CISCO, в котором данный протокол уже использовался.
Обычная конфигурация стандартно заработала, но возникла проблема с доставкой маршрутов между удаленными точками: -центральный узел их не отдавал. Почитав мануалы включил route-reflector-client и тут началось странное, на 1-м удаленном роутере всё как должно быть, а на другом, с аналогичной конфигурацией, маршрут приходит, но не инсталлируется в таблицу, причем, если в bgp конфигурации центральной точки убрать и снова прописать route-reflect-client, маршрут на 2-й точке инсталлировался, но потом опять исчезал. Выяснилось, что удаленные точки считают, что они находятся в bgp-кластере с название router-id центральной точки. Указав на центральном узле bgp claster-id равное router-id, вся маршрутизация заработала штатно. Связь между точками осуществлялась по vpn-туннелям с /30 битной адресацией (192.168.255.252/30, 192.168.255.248/30 и т.д.)

!-HUB-
!
router bgp 65000
 bgp router-id 10.10.10.1
 bgp always-compare-med
 bgp cluster-id 10.10.10.1
 network 10.10.10.1/32
 redistribute connected
 neighbor 10.0.0.102 remote-as 65000
 neighbor 10.0.0.106 remote-as 65000
 neighbor 10.0.0.106 weight 20000  !-увеличить вес для маршрутов основного канала
 neighbor 192.168.255.250 remote-as 65000
 neighbor 192.168.255.250 route-reflector-client
 neighbor 192.168.255.250 next-hop-self
 neighbor 192.168.255.254 remote-as 65000
 neighbor 192.168.255.254 route-reflector-client
 neighbor 192.168.255.254 next-hop-self
!
ИЛИ указывать peer через шаблон:
 neighbor intergr peer-group
 neighbor intergr remote-as 65000
 neighbor intergr route-reflector-client
 neighbor intergr next-hop-self
 neighbor intergr soft-reconfiguration inbound
 neighbor 192.168.255.254 peer-group intergr



-----------------------
!-SPOKE-
!
router bgp 65000
 bgp router-id 192.168.50.194
 network 192.168.50.0/24
 networ 192.168.255.254/32
 redistribute connected
 neighbor 192.168.255.253 remote-as 65000
 neighbor 192.168.255.253 next-hop-self ! (не работает если маршрут от 3-го роутера, нужен  "set ip next-hop 192.168.255.253" в route-map )
 neighbor 192.168.255.253 route-map route-in in
 neighbor 192.168.255.253 route-map route-out out
!
!
router prefix-list route-in seq 10 permit 10.0.1.0/24
router prefix-list route-in seq 20 permit 192.168.22.0/24
!
router prefix-list route-out seq 10 permit 192.168.50.0/24
!
router route-map route-in permit 100
 match ip address prefix-list route-in
 set ip next-hop 192.168.255.253
!
router route-map route-out permit 100
 match ip address prefix-list route-out

команды для отладки:

!-HUB-
# show bgp 192.168.50.0/24
BGP routing table entry for 192.168.50.0/24
Paths: (1 available, best #1, table Default-IP-Routing-Table)
  Advertised to non peer-group peers:
  10.0.0.102 10.0.0.106 192.168.255.250
  Local, (Received from a RR-client)
    192.168.255.254 (metric 1) from 192.168.255.254 (192.168.255.254)
      Origin IGP, metric 0, localpref 100, valid, internal, best
      Last update: Tue Oct 10 15:43:22 2017

!-SPOKE-
# show bgp 192.168.22.0/24
BGP routing table entry for 192.168.22.0/24
Paths: (1 available, no best path)
  Not advertised to any peer
  Local
    192.168.255.250 (inaccessible) from 192.168.255.253 (192.168.255.250)
      Origin IGP, metric 0, localpref 100, valid, internal
      Originator: 192.168.255.250, Cluster list: 10.10.10.1
      Last update: Tue Oct 10 16:01:47 2017

show bgp
show ip route bgp