Cisco ASA: Site-to-Site VPN

Wie man eine Site-to-Site VPN-Verbindung unter ASA 8.4(6) einrichtet:

Szenario:

Wir wollen einen Kunden(netcorp) an unsere Aachener-Geschäftstelle via VPN anbinden. Es wurde uns vorgegeben 3des-md5 zu nutzen.

Aachen extern: 10.20.20.60

Aachen intern: 192.168.1.0/24

Netcorp extern: 10.30.30.70

Netcorp intern: 192.168.2.0/24

Zunächst deklarieren wir das transform-set:

asa-aachen-1(config)# crypto ipsec ikev1 transform-set ESP-3DES-MD5 esp-3des esp-md5-hmac

Dann erstellen wir eine access-list mit der wir definieren, welcher Traffic später protected sein soll.

asa-aachen-1(config)# access-list outside_cryptomap_1 extended permit ip 192.168.1.0 255.255.255.0 192.168.2.0 255.255.255.0

Wir definieren nun unseren crypto map-Eintrag(outside_map 1):

Als erstes setzen wir fest, dass die access-list outside_cryptomap_1 für unsere crypto-map genutzt werden soll um wie oben beschrieben zu definieren welcher Traffic über den Tunnel gesendet werden soll.

asa-aachen-1(config)# crypto map outside_map 1 match address outside_cryptomap_1

Konfiguration von PFS:

asa-aachen-1(config)# crypto map outside_map 1 set pfs group1

Setzen der Peer-Adresse:

asa-aachen-1(config)# crypto map outside_map 1 set peer 10.30.30.70

Setzen des transform-sets:

crypto map outside_map 1 set transform-set ESP-3DES-MD5

Zum Abschluss der crypto map-Konfiguration definieren wir, dass die crypto map auf dem outside-Interface aktiviert wird:

asa-aachen-1(config)# crypto map outside_map interface outside

 

Jetzt konfigurieren wir isakmp:

asa-aachen-1(config)# crypto isakmp policy 10

Festlegen, dass ein pre-shared-key genutzt wird:

asa-aachen-1(config-ikev1-policy)# authentication pre-share

Nun definieren wir noch die encryption, den hash, die Diffie-Hellman-group und die lifetime:

asa-aachen-1(config-ikev1-policy)# encryption 3des
asa-aachen-1(config-ikev1-policy)# hash md5
asa-aachen-1(config-ikev1-policy)# group 2
asa-aachen-1(config-ikev1-policy)# lifetime 86400

Die group-policy und die tunnel-group mit pre-shared-key konfigurieren wir auf folgende Art und Weise:

asa-aachen-1(config)# group-policy 10.30.70.70 internal
asa-aachen-1(config)# group-policy 10.30.70.70 attributes
asa-aachen-1(config-group-policy)# vpn-tunnel-protocol ikev1

asa-aachen-1(config)# tunnel-group 10.30.70.70 type ipsec-l2l
asa-aachen-1(config)# tunnel-group 10.30.70.70 general-attributes
asa-aachen-1(config-tunnel-general)# default-group-policy 10.30.30.70

asa-aachen-1(config)# tunnel-group 10.30.30.70 ipsec-attributes
asa-aachen-1(config-tunnel-ipsec)# ikev1 pre-shared-key *****

 

Jetzt aktivieren ikev1 auf dem outside-Interface:

asa-aachen-1(config)# crypto ikev1 enable outside

 

Damit der Traffic von netcorp auch problemlos durchkommt, erlauben wir Ihn zuerst in der Access-List des outside-Interfaces.

access-list outside_access_in extended permit ip 192.168.2.0 255.255.255.0 192.168.1.0 255.255.255.0 log disable

Weiterhin erstellen wir ein NAT-exempt:

Zuerst werden Netzwerk-Objekte angelegt:

asa-aachen-1(config)# object network insidenat
asa-aachen-1(config-network-object)# subnet 192.168.1.0 255.255.255.0
asa-aachen-1(config-network-object)# exit
asa-aachen-1(config)# object network netcorp2
asa-aachen-1(config-network-object)# subnet 192.168.2.0 255.255.255.0

Dann wird die NAT-Regel erstellt und wir sind mit der Konfiguration von asa-aachen-1 fertig:

nat (inside,outside) source static insidenat insidenat destination static netcorp2 netcorp2 no-proxy-arp route-lookup

Das ganze kann man natürlich auch über den VPN-Wizard im ASDM(7.1 für ASA4.6(5)) erledigen.

Auf der Gegenstelle bei netcorp wäre die Konfiguration nahezu identisch bis auf ein paar Kleinigkeiten:

asa-aachen-1(config)# access-list outside_cryptomap_1 extended permit ip 192.168.2.0 255.255.255.0 192.168.1.0 255.255.255.0

asa-aachen-1(config)# crypto map outside_map 1 set peer 10.20.20.60

Bei der group-policy und der tunnel-group muss 10.30.30.70 durch 10.20.20.60 ersetzt werden.

access-list outside_access_in extended permit ip 192.168.1.0 255.255.255.0 192.168.2.0 255.255.255.0 log disable

asa-aachen-1(config)# object network insidenat
asa-aachen-1(config-network-object)# subnet 192.168.2.0 255.255.255.0
asa-aachen-1(config-network-object)# exit
asa-aachen-1(config)# object network fn1
asa-aachen-1(config-network-object)# subnet 192.168.1.0 255.255.255.0

nat (inside,outside) source static insidenat insidenat destination static fn1 fn1 no-proxy-arp route-lookup

Nützliche Befehle unter Cisco

Nützliche Befehle unter Cisco:

Switch-Befehle:

show ip arp arp-Tabelle anzeigen
clear ip arp arp-Tabelle löschen
show mac-address-table mac-Adressen auf dem Switch anzeigen
show interface Anzeige der Interfaces auf dem Switch, jedes einzeln
show ip interface brief Kompakte Anzeige der Interfaces
show interface gi0/1 Anzeige des Interfaces gi0/1



Router-Befehle:

show ip proto Übersicht der genutzten IP-Protokolle
show log Das Router Log anzeigen
show ip ospf neigh OSPF Nachbarn anzeigen
show ip route  Routen auf dem Router anzeigen



ASA-Befehle:

show interface ip brief Kompakte Anzeige der Interfaces
show vpdn session pppoe state Anzeiges des PPPoE-Status
show route Anzeige der Routen
show crypto ipsec sa Anzeige der IPsec-SAs

IPv6 unter Cisco

Wie man IPv6 auf einem Cisco Router aktiviert:

Wir nutzen für das Beispiel das Subnetz fec0::/46, es ist ein privates Netz.
Falls man ein richtiges Netz zugewiesen bekommt, muss man dieses Netz gegen das „echte“ Netz austauschen.

Als erstes wird IPv6 auf einem Cisco Router global aktiviert:

router-aachen#conf t
Enter configuration commands, one per line. End with CNTL/Z.
router-aachen(config)#ipv6 unicast-routing

Und cef für IPv6 aktiviert
router-aachen(config)#ipv6 cef

Der nächste Schritt ist dann das Interface für IPv6 zu konfigurieren:
router-aachen(config)#int gi0/0
router-aachen(config-if)#ipv6 enable
router-aachen(config-if)#ipv6 address fec0::1/48
router-aachen(config-if)#end

Nun kann man mit dem Befehl show ipv6 interface gi0/0 die IPv6 Adressen sehen:

router-aachen#show ipv6 interface gi0/0
GigabitEthernet0/0 is up, line protocol is up
IPv6 is enabled, link-local address is FE80::E22F:6DFF:FEB6:E230
No Virtual link-local address(es):
Description: IPv6-Test
Global unicast address(es):
FEC0::1, subnet is FEC0::/48
Joined group address(es):
FF02::1
FF02::2
FF02::1:FF00:1
FF02::1:FF1C:AD1B
MTU is 1500 bytes
ICMP error messages limited to one every 100 milliseconds
ICMP redirects are enabled
ICMP unreachables are sent
ND DAD is enabled, number of DAD attempts: 1
ND reachable time is 30000 milliseconds (using 30000)
ND advertised reachable time is 0 (unspecified)
ND advertised retransmit interval is 0 (unspecified)
ND router advertisements are sent every 200 seconds
ND router advertisements live for 1800 seconds
ND advertised default router preference is Medium

Jetzt muss man nur noch eine default-Route für IPv6 konfigurieren:
router-aachen#conf t
router-aachen(config)#ipv6 route ::/0 GigabitEthernet0/0 FE80::5675:D0FF:FE81:331B
router-aachen(config)# end

Jetzt können wir auf diesem Router IPv6 nutzen.

Ein Link zu Cisco:
http://www.cisco.com/en/US/docs/ios/ipv6/configuration/guide/ip6-addrg_bsc_con_external_docbase_0900e4b1805a3c5b_4container_external_docbase_0900e4b181b83f78.html

Cisco EVC kurz und knapp

Cisco EVC 

EVC = Ethernet Virtual Circuit

EVCs sind der neue Weg um 802.1q Trunks zu konfigurieren und bringen gegenüber der alten Konfigurationsweise erhebliche Vorteile .

Wie funktionieren EVCs:

Wenn eine 802.1q Frame das eingehende Interface erreicht, klassifiziert der EVC anhand des Tags  im Frame welcher EVC genutzt wird.

Im EVC wird dann konfiguriert was genau passieren soll.

Hier ist eine Beispiel für die EVC-Konfiguration:

Router Aachen:

interface GigabitEthernet0/2
switchport trunk allowed vlan none
switchport mode trunk
service instance 11 ethernet
encapsulation dot1q 11
rewrite ingress tag pop 1 symmetric
xconnect 192.2.0.1 11 encapsulation mpls

Was passiert hier:

switchport trunk allowed vlan none
switchport mode trunk

Diese beiden Befehle sagen dem Interface, dass wir nur 802.1q Tags empfangen.
Durch diese beiden Befehle passiert aber erst mal nichts, wir müssen zuerst noch eine Service-Instanz konfigurieren, damit das Geräte weiß was es mit den Daten machen soll:

service instance 11 ethernet

Hier konfigurieren wir die Service Instanz , die Nummer hat nichts mit dem VLAN zutun, für die spätere Zuordnung ist es jedoch einfacher mit der gleichen Nummer zu arbeiten.

encapsulation dot1q 11

Eingehende Daten aus VLAN 11 werden nun der Service-Instanz 11 zugeordnet.

rewrite ingress tag pop 1 symmetric

Da das Tag im Frame jetzt nicht mehr benötigt wird, entfernen wir es: Mit pop 1 wird das erste Tag in dem jeweiligen Frame entfernt.

xconnect 192.2.0.1 11 encapsulation mpls

Hier schicken wir den Frame zu unserem nächsten MPLs Partner, auch hier ist die VCID 11 nur genutzt worden um später eine einfachere Zuordnung zu haben.

Auf der Gegenseite wird dann das gleiche nur in umgekehrter Reihenfolge abgearbeitet.

Die Flexibilität der EVCs zeigt sich hier:
encapsulation dot1q 11 wird auf VLAN 11 angewendet
encapsulation dot1q 25 second-dot1q 13 wird auf das erste Tag 25 und zweite Tag 13 angewendet
encapsulation dot1q any second-dot1q 22 wird auf jedes erste Tag angewendet, welches als zweites TAG 22 hat
encapsulation dot1q untagged wird auf auf normale ethernet Traffic angewendet
encapsulation dot1q default wird auf jeden Traffic angewendet der das Interface erreicht.

Hier ein Link zu Cisco:

http://www.cisco.com/en/US/docs/switches/lan/catalyst6500/ios/12.2SY/configuration/guide/ethernet_virtual_connection.html
[Valid RSS]