Cisco Outdoor Access Point in Mobility Express

Einen Cisco Outdoor Access Point, wie z.B. den AIR-AP1542I-E-K9 kann man nicht einfach zu einem Mobility Express Controller hinzufügen. Der AP1542 ist per Default im Bridge Modus und benötigt somit eine Authorisierung zum Join auf dem WLC. Auf einem normalen WLC (2504, 5508,5520 usw.) kann man die MAC Adresse des Access Points einfach im GUI unter Security > AP Policies hinzufügen.

Siehe dazu: https://www.cisco.com/c/en/us/support/docs/wireless/4400-series-wireless-lan-controllers/98848-lap-auth-uwn-config.html

Leider ist dieser Menupunkt auf dem abgespeckten Mobility Express GUI nicht vorhanden. Somit muss man dies per CLI (per SSH) erledigen.

show auth-list

-> zeigt die aktuelle Config an

debug capwap events enable
debug capwap events disable

-> hilft beim Suchen des Fehlers

config auth-list ap-policy mic enable
config auth-list ap-policy authorize-ap enable
config auth-list add mic 5c:71:XX:XX:XX:XX
config auth-list ap-policy authorize-ap username ap-mac

-> erfasst eine MAC Adresse auf der Auth-Liste des ME Controllers

Danach solle ein „show auth-list“ etwa so aussehen:e

Wenn der AP eingebunden ist, sollte die Einstellung wieder rückgängig gemacht werden. Damit alle anderen APs nicht wegfallen.

config auth-list ap-policy authorize-ap disable

Cisco ISR 1100 Pakete aufzeichen

In Ciscos IOS-XE ist ein Paket Recorder integriert. So kann man einfach zur Analyse und Fehlersuche Datenpakete aufzeichen und exportieren.

Ich habe einen Cisco ISR 1100 verwendet um VoIP Traffic im Wireshark zu analysieren.Der in Wireshark integrierte Stream Analyzer zeigt so sehr einfach ob Pakete verloren gehen oder Jitter und Delay zu gross sind.

Zur Konfig:
Zuerst sollte sehr restiktiv der Traffic gefiltert werden. Wir wollen nur Aufzeichnen, was wir wirklich benötigen.

ip access-list extended CAPTURE1-to-SBC
  permit udp host 10.1.11.45 host xxx.xxx.xxx.xxx       (SBC)
  permit udp host xxx.xxx.xxx.xxx  host 10.1.11.45 

Danach wird der Capture aufgesetzt. Hier muss der Name, die Access-Liste, die Buffer-Grösse und das Interface angegeben werden:

monitor capture toSBC access-list CAPTURE1-to-SBC buffer size 4 interface GigabitEthernet0/0/1 both

Ich zeichne allen Traffic welcher der vorhin definierten Access-Liste entspricht und von/zu dem Interface Gi0/0/1 kommt auf bis der Buffer von 4MB gefüllt ist.

Nun startet man die Aufzeichnung:

monitor capture start

Folgende Befehle sind nun nützlich:

sh monitor capture toSBC buffer      (zeigt den Inhalt des Buffers)
monitor capture stop                 (stoppt die Aufzeichnung)
monitor capture clear                (leert den Buffer)

Wenn man die Aufzeichnung an einem entfernten Ort erstellt, kann man sich die Daten z.B. über FTP zusenden.

conf t
 ip ftp source-interface GigabitEthernet0/0/0
 ip ftp username ftp-user
 ip ftp password ftp-password
end

monitor capture toSBC export ftp://xxx.xxx.xxx.xxx/capture1.pcap

(xxx.xxx.xxx.xxx wäre die IP des FTP Servers)

Mehr Infos findet man auf der Cisco Seite:

https://www.cisco.com/c/en/us/td/docs/ios-xml/ios/epc/configuration/xe-16-9/epc-xe-16-9-book/nm-packet-capture-xe.html

Cisco ISR 1100 Software Versions

Bei den Cisco ISR 1100 Routern gibt es viele verschiedene IOS XE Software Versionen. Angefangen bei den 16.6. mit dem Codenamen Everest, über Fuji, Gibraltar bis zu den neusten Amsterdam Versionen 17.1.

Cisco fügt hier immer bei den neuen Versionen an 2ter Stelle (xx.01.xx zu xx.02.xx) neue Features hinzu. Meistens sind diese Versionen im Status ED (Early Deploment).

Die hinterste Stelle (xx.xx.01 zu xx.xx.02) bezeichnet reine Bug-Fix Releases. Meistens sind diese Versionen im Status MD (Maintenance Deployment).

Wer nicht alle Release Note zu lesen möchte kann diese kleine Liste zur hilfe nehmen.

VPN von Cisco ISR 1100 Series nach Fortigate

Cisco Konfig

1. Verschlüsselungskey für das VPN definieren (keyring)

crypto ikev2 keyring KEY_VPN_Basel-Zuerich
  peer Fortigate
   address 46.11.11.11      (IP Adresse der Fortigate)
   pre-shared-key abc123    (langes, kompliziertes Passwort verwenden) 

2. IKEv2 Proposal definieren (SA)

crypto ikev2 proposal default
  encryption aes-cbc-256
  integrity sha512
  group 19

3. IKEv2 Profil definieren

crypto ikev2 profile PROF_VPN_Basel-Zuerich
  match identity remote address 46.11.11.11 255.255.255.255
  identity local address 62.12.12.12
  authentication local pre-share
  authentication remote pre-share
  keyring local KEY_VPN_Basel-Zuerich
   

4. Access Liste für VPN Traffic erstellen  (ACL)

ip access-list extended VPNACL-VPN_Basel-Zuerich
 permit ip 10.20.20.0 0.0.0.255 10.10.0.0 0.0.63.255

 (von Clientnetz vor Ort nach Server-Netz über das VPN) 

5. IPSecTransform SET definieren  (Verschlüsselung im Tunnel)

crypto ipsec transform-set TS-VPN_Basel-Zuerich esp-aes 256 esp-sha256-hmac 

6. Crypto Map erstellen (definiert Peer, ACL, und Transform Set)

crypto map CMAP-VPN_Basel-Zuerich 10 ipsec-isakmp
  set peer 46.11.11.11
  set security-association lifetime seconds 86400
  set transform-set TS-VPN_Basel-Zuerich
  set pfs group19
  set ikev2-profile PROF_VPN_Basel-Zuerich
  match address VPNACL-VPN_Basel-Zuerich 

7. VPN aktivieren (Zuweisen der Crypto Map auf das Router Interface)

interface Dialer1
  crypto map CMAP-VPN_Basel-Zuerich 

9. NAT ins Internet (Traffic ins VPN ohne NAT)

ip access-list extended NATACL_nach_Internet
  deny   ip 10.20.20.0 0.0.0.255 10.10.0.0 0.0.63.255
  permit ip 10.20.20.0 0.0.0.255 any
  
ip nat inside source list NATACL_nach_Internet interface Dialer1 overload 

Die NAT Rule mit der Access Liste ist wichtig, damit der Traffic ins VPN nicht übersetzt wird.

Fortigate Konfig

Cisco Router mit zwei Uplinks und NAT (Dual Uplink, NAT, IP SLA)

Cisco Router 1100 Serie mit 2 WAN Anbindungen sind relativ günstig und einfach zu konfigurieren. Sobald aber noch Network Address Translation (NAT) dazu kommt wird es mühsam. Standardmässig wird nur eine ANT Konfiguration pro Source Subnet unterstützt.

Gerne stell eich hier eine Anleitung zur Verfügung wie ich dieses Problem gelöst habe.

Szenario: Lokales LAN (privat adressiert) und zwei Uplinks (hier VDSL und LTE Fallback mit Swisscom SIM Karte)

Konfig für 3G/4G/LTE

controller Cellular 0/2/0
lte sim data-profile 1 attach-profile 2 slot 0
no lte firmware auto-sim
lte modem link-recovery rssi onset-threshold -110
lte modem link-recovery monitor-timer 20
lte modem link-recovery wait-timer 5
lte modem link-recovery debounce-count 6
profile id 1 apn gprs.swisscom.ch authentication none pdn-type ipv4

Ich habe ein Profil erstellt mit den APN Angaben von Swisscom und habe dies an das Cellular0/2/0 Interface angebunden.

LAN Interface Konfigs

Die internen Interfaces gelten als Switch Ports. Somit habe ich ein VLAN 10 Interface erstellt und die Switch Ports in dieses VLAN aufgenommen.

interface GigabitEthernet0/1/0
description *** Gi0/1/0 : to Customer ***
switchport access vlan 10
switchport mode access
spanning-tree portfast
!
interface GigabitEthernet0/1/1
description *** Gi0/1/0 : to Customer ***
switchport access vlan 10
switchport mode access
spanning-tree portfast
!
interface GigabitEthernet0/1/2
description *** Gi0/1/0 : to Customer ***
switchport access vlan 10
switchport mode access
spanning-tree portfast
!
interface GigabitEthernet0/1/3
description *** Gi0/1/0 : to Customer ***
switchport access vlan 10
switchport mode access
spanning-tree portfast
!
interface Vlan10
description *** VLAN10 : to Customer LAN ***
ip address 10.1.1.1 255.255.255.0
ip nat inside

WAN Interface Konfigs

interface Cellular0/2/0
ip address negotiated
no ip unreachables
no ip proxy-arp
ip nat outside
dialer in-band
dialer idle-timeout 0
dialer watch-group 2
dialer-group 2
ipv6 address dhcp
ipv6 enable
pulse-time 1
!
controller VDSL 0/3/0
!
interface Ethernet0/3/0
description *** Et0/3/0 : Ethernet BuiltIn for VDSL ***
no ip address
ip mtu 1500
load-interval 30
no negotiation auto
ipv6 address dhcp
pppoe enable group global
pppoe-client dial-pool-number 1
!
interface Dialer1
description *** DIALER1 : VDSL Dialer ***
ip address negotiated
ip nat outside
encapsulation ppp
ip tcp adjust-mss 1452
load-interval 30
dialer pool 1
ipv6 address dhcp
ppp chap hostname DSL-LOGIN-USERNAME
ppp chap password DSL-LOGIN-PASSWORD
!
dialer-list 2 protocol ip permit
!
access-list 2 permit any
!

Das DSL Login basiert auf PPPoE und beim Mobile Netzwerk von Swisscom erhalte ich direkt per DHCP eine IP Adresse.

IP SLA

Nun wird ein IP SLA benötigt um das VDSL Interface zu überwachen und anhand dieses Outputs die Routen und das NAT anzupassen.

ip sla 1
icmp-echo 100.100.100.100 source-interface Dialer1 (IP des Dialers)
threshold 2
timeout 800
frequency 3
ip sla schedule 1 life forever start-time now

Die Routen werden mittels TRACK angepasst:

ip route 0.0.0.0 0.0.0.0 Dialer1 10 track 1
ip route 0.0.0.0 0.0.0.0 Cellular0/2/0 20

Das IP NAT wird mittels einem EVENT geändert:

event manager applet ipsla1-down
event track 1 state down
action 1.0 syslog msg "ICMP SLA 1 FAILED - Update NAT"
action 2.0 cli command "enable"
action 3.0 cli command "clear ip nat transl *"
action 4.0 cli command "conf t"
action 4.1 cli command "no ip nat inside source list Internal_IP interface Dialer1 overload"
action 4.2 cli command "ip nat inside source list Internal_IP interface Cellular0/2/0 overload"
action 5.0 cli command "end"
action 5.5 cli command "wr"
event manager applet ipsla1-up
event track 1 state up
action 1.0 syslog msg "ICMP SLA 1 RECOVERED - Update NAT"
action 2.0 cli command "enable"
action 3.0 cli command "clear ip nat transl *"
action 4.0 cli command "conf t"
action 4.1 cli command "no ip nat inside source list Internal_IP interface Cellular0/2/0 overload"
action 4.2 cli command "ip nat inside source list Internal_IP interface Dialer1 overload"
action 5.0 cli command "end"
action 5.5 cli command "wr"
!
ip access-list standard Internal_IP
permit 10.1.1.0 0.0.0.255

Funktion überprüfen

Ich abe mal zum Testen das DSL Interface ausgezogen und danach wieder eingesteckt. Bei der Umschaltung werden alle Schritte im LOG aufgeführt. Wenn man das DSL Kabel auszieht gehen zwei PING verloren. Somit dauert die Entdeckung des Ausfalls und die Konfiguration ca. 2 bis 5 Sekunden.

von DSL nach LTE
von LTE zu DSL
Apr 29 13:31:37.248: %TRACK-6-STATE: 1 ip sla 1 reachability Up -> Down
Apr 29 13:31:37.252: %HA_EM-6-LOG: ipsla1-down: ICMP SLA FAILED - Update PBR/NAT
Apr 29 13:31:37.931: %SYS-5-CONFIG_I: Configured from console by  on vty2 (EEM:ipsla1-down)
Apr 29 13:31:40.870: %VDSL_DAEMON-3-VDSL_LINE_UPDOWN: Controller VDSL 0/3/0, line 0, changed state to down
Apr 29 13:31:40.871: %CONTROLLER-5-UPDOWN: Controller VDSL 0/3/0, changed state to down
Apr 29 13:31:42.872: %LINK-3-UPDOWN: Interface Ethernet0/3/0, changed state to down
Apr 29 13:31:43.873: %LINEPROTO-5-UPDOWN: Line protocol on Interface Ethernet0/3/0, changed state to down
Apr 29 13:31:44.446: %SYS-2-PRIVCFG_ENCRYPT: Successfully encrypted private config file
Apr 29 13:32:24.577: %VDSL_DAEMON-3-VDSL_LINE_UPDOWN: Controller VDSL 0/3/0, line 0, changed state to up
Apr 29 13:32:24.577: %CONTROLLER-5-UPDOWN: Controller VDSL 0/3/0, changed state to up
Apr 29 13:32:24.763: %LINEPROTO-5-UPDOWN: Line protocol on Interface Virtual-Access2, changed state to down
Apr 29 13:32:24.769: %DIALER-6-UNBIND: Interface Vi2 unbound from profile Di1
Apr 29 13:32:24.773: %LINK-3-UPDOWN: Interface Virtual-Access2, changed state to down
Apr 29 13:32:26.577: %LINK-3-UPDOWN: Interface Ethernet0/3/0, changed state to up
Apr 29 13:32:27.579: %LINEPROTO-5-UPDOWN: Line protocol on Interface Ethernet0/3/0, changed state to up
Apr 29 13:32:46.969: %DIALER-6-BIND: Interface Vi2 bound to profile Di1
Apr 29 13:32:46.971: %LINK-3-UPDOWN: Interface Virtual-Access2, changed state to up
Apr 29 13:32:47.256: %LINEPROTO-5-UPDOWN: Line protocol on Interface Virtual-Access2, changed state to up
Apr 29 13:32:52.257: %TRACK-6-STATE: 1 ip sla 1 reachability Down -> Up
Apr 29 13:32:52.261: %HA_EM-6-LOG: ipsla1-up: ICMP SLA RECOVERED - Update PBR/NAT
Apr 29 13:32:53.042: %SYS-5-CONFIG_I: Configured from console by  on vty2 (EEM:ipsla1-up)
Apr 29 13:32:59.564: %SYS-2-PRIVCFG_ENCRYPT: Successfully encrypted private config file

Cisco IP SLA – default Route ändern – 3G/4G/LTE Failover

Dieses Beispiel soll zeigen wie man einen Cisco Router (in meinem Beispiel einen ISR1117 – C1100 Series) mit DSL und einem Mobile Failover konfiguriert. Ich verwende zwei VRF um eine VPN Konfiguration zu einem Office zu ermöglichen. Falls jemand keine VPN Verbindungen und somit auch keine VRF Konfiguration benötigt, kann man ja einfach die VRF Befehle weglassen.

Ausgangslage:
Cisco C1117-4PLTEEA Router
VDSL Anschluss (primäre Leitung über VDSL)
3G/4G/LTE SIM Karte (sekundäre Verbindung über Mobile)

VRF Konfiguration:
Ich benutze ein VRF für die Internet Verbindung und ein zweites VRF für die VPN Konfiguration. Alle Access Ports, DHCP Server usw. befinden sich im 2ten VRF.

Hier ein Beispiel für die VRF Konfiguration:


vrf definition CustomerInternal
rd 51873:5501
!
address-family ipv4
exit-address-family
!
vrf definition Internet
rd 24889:1
!
address-family ipv4
exit-address-family
!
address-family ipv6
exit-address-family

Zuerst die VDSL Konfiguration:

Zuerst den ADSL/VDSL Controller in den korrekten Modus setzen. Hier in der Schweiz wäre das „vdsl2“. Danach wird ein Interface „Ethernet0/3/0“ erstellt. Das ATM Interface wird für VDSL nicht mehr benötigt und kann somit deaktiviert werden.
Das Ethernet0/3/0 Interface wird konfiguriert und auf einen PPP Dialer verwiesen. Dieser erhält dann die Zugangsdaten und die IP Adresse per PPP.

Hier die Befehle:

!
controller VDSL 0/3/0
operating mode vdsl2
!
interface ATM0/3/0
no ip address
shutdown
no atm enable-ilmi-trap
!
interface Ethernet0/3/0
description *** Et0/3/0 : Ethernet BuiltIn for VDSL ***
vrf forwarding Internet
no ip address
load-interval 30
no negotiation auto
ipv6 address dhcp
pppoe enable group global
pppoe-client dial-pool-number 1
!
interface Dialer1
description *** DIALER1 : VDSL Dialer to Fixnet/DSL Provider ***
vrf forwarding Internet
ip address negotiated
encapsulation ppp
ip tcp adjust-mss 1452
load-interval 30
dialer pool 1
ipv6 address dhcp
ppp chap hostname "ppp username"
ppp chap password 0 "ppp password"
!

Die DSL Konfiguration sollte nun laufen und der Router eine Public IP erhalten haben. Dies kann man mit „sh ip int brief“ überprüfen.

Als nächstes nehmen wir uns der Mobile (3G,4G, LTE) Konfiguration an. Mein Tipp als erstes, nehmt eine SIM Karte ohne PIN. Die SIM Befehle zum freischalte, Code ändern, usw. sind folgende:

  • cellular 0/2/0 lte sim unlock
  • cellular 0/2/0 lte sim unblock

Falls die PIN 3 mal falsch eingegeben wurde.

Das Cellular Interface habe ich wie folgt konfiguriert:
– IP NAT outside nur wenn man über diese Verbindung per NAT ins Internet möchte.

Das Interface erhält die IP per DHCP vom Provider (Sunrise, Swisscom…)

Zuerst muss man ein Cellular LTE Profile erstellen. Diese Konfiguration ist mit „sh runn“ nicht ersichtlich. Meine Beispiel Konfiguration ist für eine Sunrise SIM Karte mit dem APN „internet“. Die APN Konfigurationen könnt ihr bei eurem Provider oder mittels einer Google-Suche sicherlich herausfinden.

router#cellular 0/2/0 lte profile create 1 internet none ipv4

evtl. das Default Profil vorher löschen. router#cellular 0/2/0 lte profile delete 1

Dieses erstelle Profil muss man an den Controller binden „lte sim data-profile 1 attach-profile 1 slot 0“ und danach kann man das Cellular Interface konfigurieren. Damit der Router die Verbindung dann auch aufbaut wird ein „Watcher“ benötigt. Dieser überwacht ob man eine Verbindung zu eiener gewissen IP herstellen möchte und falls ja, dann öffnet er die Data-Connection. Ich überwache hier meine VPN Gateways. Falls man keine VPN Verbindungen hat, würde ich die DNS Adresse oder sonst eine, immer wieder verwendete IP Adresse überwachen. Falls nichts davon vorhanden ist kann man natürlich auch 0.0.0.0/0 konfigurieren.

!
controller Cellular 0/2/0
lte sim data-profile 1 attach-profile 1 slot 0
lte modem link-recovery disable

lte firmware auto-sim
!
interface Cellular0/2/0
vrf forwarding Internet
ip address negotiated
no ip unreachables
no ip proxy-arp
ip nat outside
dialer in-band
dialer idle-timeout 30
dialer watch-group 2
dialer-group 2
ipv6 address dhcp
ipv6 enable
pulse-time 1
!
interface Cellular0/2/1
no ip address
shutdown
!
dialer watch-list 2 ip <255.255.255.0>
dialer watch-list 2 delay route-check initial 60
dialer watch-list 2 delay connect 1
dialer-list 2 protocol ip permit

Nun stehen beide Verbindungen, über DSL sowie über Mobile, zur Verfügung. Die Default-Route würde nun entscheiden, welcher Weg bevorzugt wird. Ich entschied mich für ein „IP SLA“ welches eine Bedingung prüft und dann eine Route installiert oder entfernt. In meinem Beispiel überwache ich die fixe IP Adresse meines DSL Anschlusses. Diese erhalte ich per PPP. So lange ich diese anpingen kann ist die Route 0.0.0.0 0.0.0.0 über den Dialer1 mit der Metric 10 aktiv. Wenn aber das DSL getrennt wird (Unterbruch, Kabelfehler, usw.) dann verliere ich die PPP Session und somit die IP Adresse. Somit wird die zweite Route über das Cellular Interface mit der Metric 20 aktiv.

Mit dem IP SLA können natürlich auch andere IP Adressen oder auch mehrere angepingt werden. (1.1.1.1 oder 8.8.8.8 oder ein Router bei eurem Provider)


!
ip sla 1
icmp-echo source-interface Dialer1
vrf Internet
threshold 2
timeout 1000
frequency 3
!
ip sla schedule 1 life forever start-time now
!
track 1 ip sla 1 reachability
!
ip route vrf Internet 0.0.0.0 0.0.0.0 Dialer1 10 track 1
ip route vrf Internet 0.0.0.0 0.0.0.0 Cellular0/2/0 20
!

——————————-

Weiterführende Informationen:
IP SLA: https://www.cisco.com/c/en/us/td/docs/ios-xml/ios/ipsla/configuration/15-mt/sla-15-mt-book/sla_icmp_echo.html
Cellular Profile: https://www.cisco.com/c/en/us/td/docs/routers/access/1100/software/configuration/xe-16-7/cisco_1100_series_swcfg_xe_16_7_x/cisco_1100_series_swcfg_chapter_01011.html
Grundkonfig Mobile https://protocoholic.wordpress.com/2018/05/29/configuring-cisco-c1111-4pltea-router-for-4g-3g-cellular-communication/

FlexVPN Solution – Remote Offices per VPN anbinden

ENTWURF

Dieser Blog Eintrag soll eine Übersicht der Möglichkeiten aufzeigen, welche Cisco FlexVPN bietet. Dies an einem konkreten Beispiel: Das Anbinden von Aussenstellen (Remote Branches) an einen zentralen Standort. Am zentralen Standort sind aus Gründen der Redundanz zwei Rechenzentren mit je einem VPN Router vorhanden.
Als Router benutze ich die neusten Cisco Router der 1100er Serie.

Die Aussenstellen sind entweder per FTTH, VDSL oder LTE angebunden.

Somit verwende ich viele der gebotenen Features dieser neuen Cisco 1100er Router. (DSL Modem, SFP GBIC, 3G, 4G LTE Modem, FlexVPN, OSPF, VRF)

Zuerst zur Hardware:
Cisco stellt anfangs 2018 die ISR 1100er Serie Router vor. Sie sollten die 1900er Router ersetzen und machen das, meiner Meinung nach sehr gut. Auch das Preis/Leistung Verhältniss stimmt hier wieder etwas mehr.
Die Router gibt es mit verschiedensten Interfaces, welche ziemlich elegant kombiniert werden können. (WLAN, DSL, LTE, 4Port Switch, 8Port Switch, PoE)

Siehe Cisco Seite: https://www.cisco.com/c/en/us/products/collateral/routers/1000-series-integrated-services-routers-isr/datasheet-c78-739512.html

Wichtig: Die Router mit den 8 Port Switches haben einen schnelleren Prozessor drin. Alle Security Services (wie VPN) müssen über eine SEC Lizenz aktiviert werden. Wenn die Router so bestellt werden, sind alle Lizenzen vorinstalliert. (Achtung: lange Lieferzeiten)
Zudem ist es Interessant, dass die IPsec Performance Lizenz (IPsec Performance: Additional 100 Mbps for ISR 1100-4P and 200 Mbps for ISR 1100-8P) gleich teuer ist wie die IPSec HSEC Lizenz, welche die Drosselung der VPN Performance komplett deaktiviert. (IPSEC HSEC License for Cisco ISR 1100 8P and ISR 1100 4P)

Ohne Performance oder HSEC Lizenz liefert der Router ca. 50mbit/sec IPsec Durchsatz.
Router & NAT Performance: An meinem Gigabit FTTH Anschluss bringt der Router die volle Bandbreite. Er reklamiert zwar mit der Meldung, dass die CPU Last höher als 80% ist, aber der Speedtest zeigt über 980mbit/sec an.

Dann zur Software:
Ich benutze das aktuelle Fuji Release von IOS XE.

Cisco IOS XE Software, Version 16.08.01
Cisco IOS Software [Fuji], ISR Software (ARMV8EB_LINUX_IOSD-UNIVERSALK9_IAS-M), Version 16.8.1, RELEASE SOFTWARE (fc3)

Und nun zum Aufbau der Umgebung

Schema:

Konfiguration der HUB Router:

vrf definition VPN
 description VPN OSPF
 rd 51873:5501
!
 address-family ipv4
 exit-address-family
!
vrf definition Internet
 rd 2:1
!
 address-family ipv4
 exit-address-family
!
!
crypto ikev2 authorization policy IPSECPRO_VPN
 route set interface
 route set access-list flex_route
!
crypto ikev2 keyring KEYRING-VPN
 peer ANY-PEER
  address 0.0.0.0 0.0.0.0
  pre-shared-key *password*
 !
!
crypto ikev2 profile IKEV2PRO_VPN
 match fvrf any
 match identity remote fqdn domain vpn.local
 identity local fqdn R101.vpn.local
 authentication remote pre-share
 authentication local pre-share
 keyring local KEYRING-VPN
 virtual-template 1
!
vlan internal allocation policy ascending
!
crypto ipsec profile IPSECPRO_VPN
 set ikev2-profile IKEV2PRO_VPN
!
!
interface Loopback252
 description *** Loopback252 : VPN Endpoint, OSPF ***
 vrf forwarding VPN
 ip address 10.252.251.101 255.255.255.255
 ip ospf 1 area 1
!
interface GigabitEthernet0/0/0
 description *** Gi0/0/0 : WAN : Uplink to Internet ***
 vrf forwarding Internet
 ip address IPADDRESS NETMASK
 ip tcp adjust-mss 1452
 load-interval 30
 negotiation auto
!
!
interface Virtual-Template1 type tunnel
 vrf forwarding VPN
 ip unnumbered Loopback252
 ip mtu 1400
 ip tcp adjust-mss 1360
 ip ospf 1 area 1
 tunnel source GigabitEthernet0/0/0
 tunnel vrf Internet
 tunnel protection ipsec profile IPSECPRO_VPN
!
router ospf 1 vrf VPN
 router-id 10.252.251.101
 capability vrf-lite
 default-information originate
!

Konfiguration eines VDSL Spoke Routers:

vrf definition VPN
 rd 51873:5501
 !
 address-family ipv4
 exit-address-family
!
vrf definition Internet
 rd 2:1
 !
 address-family ipv4
 exit-address-family
!
crypto ikev2 authorization policy IPSECPRO_VPN
 route set interface
 route set access-list flex_route
!
!
!
crypto ikev2 keyring KEYRING-VPN
 !
 peer HUB1
  address IPADDRESSHUB
  pre-shared-key PASSWORD
 !
!
!
crypto ikev2 profile IKEV2PRO_VPN
 match fvrf any
 match identity remote fqdn domain vpn.local
 identity local fqdn Rx.vpn.local
 authentication remote pre-share
 authentication local pre-share
 keyring local KEYRING-VPN
 ivrf VPN
!
crypto ipsec profile IPSECPRO_VPN
 set ikev2-profile IKEV2PRO_VPN
!
interface Loopback252
 description *** Loopback252 : VPN Endpoint, OSPF ***
 vrf forwarding VPN
 ip address 10.252.251.x 255.255.255.255
 ip ospf 1 area 1
!
interface Tunnel1
 description *** TUNNEL1 : IPsec IKEv2 Tunnel to HUB ***
 vrf forwarding VPN
 ip unnumbered Loopback252
 ip mtu 1400
 ip tcp adjust-mss 1360
 ip ospf 1 area 1
 tunnel source Dialer1
 tunnel destination IPADRESSHUBROUTER
 tunnel vrf Internet
 tunnel protection ipsec profile IPSECPRO_VPN
!
interface Ethernet0/3/0
 description *** Et0/3/0 : Ethernet BuiltIn for VDSL ***
 vrf forwarding Internet
 no ip address
 ip mtu 1500
 load-interval 30
 no negotiation auto
 ipv6 address dhcp
 pppoe enable group global
 pppoe-client dial-pool-number 1
!
interface Vlan10
 description *** VLAN10 : to Customer ***
 vrf forwarding VPN
 ip address IPADDRESS NETMASK
 no ip proxy-arp
 ip ospf 1 area 1
!
interface Dialer1
 description *** DIALER1 : VDSL Dialer ***
 vrf forwarding Internet
 ip address negotiated
 encapsulation ppp
 ip tcp adjust-mss 1452
 load-interval 30
 dialer pool 1
 ipv6 address dhcp
 ppp chap hostname USERNAME
 ppp chap password PASSWORD
!
router ospf 1 vrf VPN
 router-id 10.252.251.x
 capability vrf-lite
 default-information originate
!
interface GigabitEthernet0/1/0
 description *** Gi0/1/0 : VLAN10 - to Customer ***
 switchport access vlan 10
 switchport mode access
 load-interval 30
 no cdp enable
 spanning-tree portfast

Konfiguration eines FTTH Spoke Routers: (nur Unterschiede)

interface GigabitEthernet0/0/0
 description *** Gi0/0/0 : Uplink zu Swisscom BBCS Monzoon ***
 no ip address
 negotiation auto
!
interface GigabitEthernet0/0/0.11
 description *** Gi0/0/0.11 : Uplink zu Swisscom BBCS - VLAN 11 PPP ***
 encapsulation dot1Q 11
 pppoe enable group global
 pppoe-client dial-pool-number 1
!
!
interface Dialer1
 description *** DIALER1 : FTTH Dialer ***
 vrf forwarding Internet
 ip address negotiated
 encapsulation ppp
 ip tcp adjust-mss 1452
 load-interval 30
 dialer pool 1
 ipv6 address dhcp
 ppp chap hostname USERNAME
 ppp chap password PASSWORD

Konfiguration eines LTE Spoke Routers:

Spezielles:

MTU Size: Da auf den VDSL Anschlüssen auf der Swisscom Plattform die MTU 1460 ist, muss der VPN Traffic noch mehr fragmentiert werden.

VRF-Lite und OSPF: Sobald VRF auf einem OSPF Router aktiv ist, werden Type 5 LSA Statements nicht in die Routing Tabebelle geschrieben, da man so Loops verhindern will. Aber genau diese Routen benütigen wir hier in diesem Beispiel. Somit muss capability vrf-lite aktiviert werden:

router ospf
capability vrf-lite

Links:

https://integratingit.wordpress.com/2016/07/10/configuring-cisco-flexvpn-hub-and-spoke/

https://www.cisco.com/c/en/us/support/docs/security/flexvpn/118888-configure-flexvpn-00.html

https://packetpushers.net/cisco-flexvpn-dmvpn-high-level-design/

https://networkengineering.stackexchange.com/questions/38915/why-would-type-5-as-external-ospf-route-not-install-in-routing-table

http://packetlife.net/blog/2010/mar/29/inter-vrf-routing-vrf-lite/

https://markwardbopp.wordpress.com/2015/06/10/ospf-series-why-wont-my-ospf-route-install-what-does-downward-bit-setnon-backbone-lsa-mean/

Sicherer Icecast Server auf OpenBSD

OpenBSD

Als erstens installieren wir die aktuelle OpenBSD Version. Zur Zeit ist das 5.9.
Ich installiere dies auf einer VMware ESXi Umgebung. Läuft natürlich auch im VMware Workstation oder anderen Virtualisierungs-Tools oder auf einer Hardware Maschine.

Angaben zu den empfohlenen Werten:
RAM: 512MB
Disk: 20GB
Disk Controller: LSI Logic SCSI
CPU: 1 Socket, 2 Cores
Keine Diskettenlaufwerke, Serial, Parallel Ports und Floppy Disk Controller im BIOS deaktivieren.

Die Installationsdatei install59.iso kann man auf der Openbsd.org Seite oder diversen Mirrors herunterladen. In der Schweiz empfehle ich natürlich den Switch Mirror.

http://mirror.switch.ch/ftp/pub/OpenBSD/5.9/amd64/install59.iso

Danach von dieser CD booten und die folgenden Fragen beantworten.

openbsd_first1

i für Installation
sg für das schweizerdeutsche Keyboard Layout
Hostname (nur der Hostname ohne Domain)
Bei der IP Konfiguration empfehle ich natürlich für einen Server eine fixe IP zu verteilen.

Disk-Aufteilung

openbsd_disk1

Ich mache die Disk-Aufteilung von Hand. Wer weniger geübt ist, kann natürlich auch das Default-Set verwenden. In fdisk kann man mit „a“ eine Partition erstellen, mit „d“ löschen und mit „q“ speichert man und verlässt den Editor.

Gerne kann man natürlich etwa meine Aufteilung verwenden.

a 2g /
b 2g swap
d 1g /tmp
e 6g /usr
f 7g /var
g 2g /home

Bei den Paketen installiere ich die Games und den XServer nicht. Die X Libraries installiere ich mit, da diese ab und zu hilfreich sind. z.B. wenn man PHP mit GD installieren will.

openbsd_packages1

– SSH Ausführen
– root Login zulassen

1. Teil fertig. Man kann den Server mit reboot neu starten. Die CD (iso File) wird nicht mehr benötigt.

************

OpenBSD anpassen

In diesem kleinen Zwischenschritt machen wir OpenBSD etwas bedienerfreundlich und setzen einige wichtige Einstellungen.
Dazu benutze ich eine andere Shell. TCSH

Diese installiere ich als vorgefertigtes Paket. Alle Pakete kann man auf dem Switch Mirror downloaden:

http://mirror.switch.ch/ftp/pub/OpenBSD/5.9/packages/amd64/

Installation:
# pkg_add http://mirror.switch.ch/ftp/pub/OpenBSD/5.9/packages/amd64/tcsh-6.19.00.tgz
tcsh-6.19.00: ok

Update der „locate“ Datenbank:
/usr/libexec/locate.updatedb

TCSH als Standard-Shell:
#chpass
openbsd_chpass1

Und hier die Shell anpassen.

cd
vi .cshrc

Automatisches vervollständigen:
set autolist

Prompt anpassen:
if ($?prompt) then
set prompt="`hostname -s` %B%n%b %~#"
endif

openbsd_cshrc1

Folgende Dateien bitte etwas überarbeiten:
/etc/ntpd.conf (NTP Servers hinzufügen)
/etc/resolv.conf (weitere Nameserver hinzufügen)

NTP sollte danach etwa so aussehen:
#ntpctl -s all
3/4 peers valid, 1/1 sensors valid, constraint offset 1s, clock synced, stratum 3

peer
wt tl st next poll offset delay jitter
81.94.123.17 from pool pool.ntp.org
1 10 2 11s 34s -0.098ms 2.253ms 0.090ms
94.230.211.37 from pool pool.ntp.org
1 10 2 15s 30s 3.444ms 1.447ms 0.038ms
77.245.18.26 from pool pool.ntp.org
* 1 10 2 16s 34s 0.024ms 2.187ms 0.115ms

************

Icecast Server installieren

Als erstes wieder das Paket von Switch Mirror installieren:
openbsd_icecast1

Danach muss man das File /var/icecast/icecast.xml editieren. (WICHTIG: Die Passwörter ändern.)

Ein kurze Anleitung findet man auf der Icast Webseite: http://icecast.org/docs/icecast-2.4.1/basic-setup.html

Server starten, stoppen, restart:
#/etc/rc.d/icecast start

usage: /etc/rc.d/icecast [-df] start|stop|restart|reload|check

Den Server automatisch beim booten starten:
#rcctl enable icecast

FERTIG

L2TP VPN mit pfsense 2.3

Mit der pfsense Version 2.3 wurde das anfällige PPTP VPN angeschafft. Deshalb erkläre ich hier kurz wie man ein neues VPN, welches mit Windows ohne Clientinstallation funktioniert, einrichten kann.

Im Menu VPN auswählen und dann L2TP.

l2tp_1

Hier kann man die verschiedenen Adressen für die Verbindung eintragen. Am Besten verwendet man für die VPN Verbindung nicht verwendete Netze. (Hier im Beispiel haben wir ein internes LAN mit 192.168.60.0/24)

Im Menu Users sollten dann auch noch die User erfasst werden.

l2tp_2

Damit der L2TP Server von aussen angesprochen werden kann, werden noch Firewall Regeln benötigt. Diese Rules sollten die Ports 500 und 1701 UDP öffnen.

l2tp_3

Fertig ist die Konfiguration auf der pfSense.

Unter Windows sollte man folgende Einstellungen berücksichtigen:
l2tp_win

SSH, Telnet Befehle mit ESC Sequenz beenden

Auf vielen Geräten (z.B. Cisco Routern) können Befehle nicht einfach mit CRTL-C abgebrochen werden.

Häufig wird noch die Meldung „Type escape sequence to abort“ angezeigt. Doch was muss ich drücken damit die ESC Befehle nicht an meinem PC ausgeführt werden?

In den meisten SSH Clients (z.B: Putty, SecureCRT) kann man diese ESC Sequenz mit der Tastenkombination CTRL – SHIFT – 6 senden.

traceroute-esc

 

CTRL – SHIFT – 6     = ESC Sequenz