Using you Cisco 837 with a Speedlinq or Telfort ADSL connection

De afgelopen dagen is mijn aansluiting omgezet naar een speedlinq comfort aansluiting. Natuurlijk wilde ik mijn oude vertrouwde cisco blijven gebruiken en met de meegeleverde gegevens ging ik aan de slag. Als snel kwam ik er achter dat, hoewel ik voor het comfort abonnement had gekozen, er toch wel behoorlijk verschillen waren met mijn vorige provider (xs4all)

Om te beginnen gebruikt speedlinq comfort een andere VCI / PVC Hieronder even de bij mij bekende getallen zoals de voor de verschillende providers zouden moeten gelden.

XS4ALL (KPN MXSTREAM) 8/48
BBNET 0/35
Speedlinq Comfort 0/34

Hierdoor kon ik geen gebruik meer maken van de dialer interface zoals die bij de mxstream variant gebruikt werd. Het roer moest dus behoorlijk om.

Uiteindelijk heb ik een configuratie gemaakt met een bridge interface. Deze bridge interface zorgt voor een nette verbinding tussen Speedlinq en de router zelf, maar zorgt ook voor een extern ip nummer op de router. Hierdoor kan de router gewoon routeren en NAT-en tussen de interne interface en de externe bridge interface.
Op het eerste gezicht lijkt hiermee de kous af, maar ik kreeg tijdens het surfen de indruk dat het af en toe niet erg snel wilde opstarten. Mijn eerste gedachte was de DNS server. Als de DNS server niet snel antwoord geeft krijg je ook het gevoel dat de eerste pagina lang op zich laat wachten, maar daarna gaat het vlotjes. Zo'n gevoel kreeg ik hierbij ook.
Maar, een snelle test wees uit dat de DNS server prima antwoord gaf.

Wat nu. Eerst een sterk bakje koffie gezet, want hier gebeurde toch wel iets vreemds. Snel maar even een netwerk sniffer van stal gehaald. Nou ja, niet echt natuurlijk want zoals je op deze site kunt zien maken we hier ook netwerk probes, en die zijn nog veel beter in staat je te helpen bij dit soort netwerkproblemen. (zo, de sponsor ook weer tevreden... ;-))

Nader onderzoek wees uit dat het eerste frame van iedere nieuwe sessie (naar een nieuwe site) verloren ging en er pas bij de hertransmissie van dat eerste frame een echte tcp-sessie werd opgebouwd. Ik zag dus eerst een frame met alleen een SYN, daarna drie seconden niets, daarna het zelfde frame nog eens waarna de rest op gang kwam.
Mijn eerste reacties waren wat krachttermen waar het woord speedlinq in voor kwam. Maar al snel kreeg het gevoel dat het bij mijn ciscotje fout ging de overhand. Speedlinq doet dit soort dingen niet zelf. Het blijf gewoon het vertrouwde KPN netwerk wat er onder ligt.
Na wat verder zoeken zag ik dat de arp tabel van mijn cisco aardig vol begon te lopen. Voor iedere site die ik aanklikte probeerde hij een arp entry aan te maken. Logisch, want hij ging over de bridge interface naar buiten. Natuurlijk waren alle arp-entries hetzelfde, namelijk die van de router aan de andere kant, maar de entries werden wel aangemaakt.

Met dat in het achterhoofd wat gegoogled en tot mijn verbazing kwam ik berichten tegen dat cisco een DoS attack probeert te voorkomen door in een bridge configuratie het eerste frame weg te gooien. Ik kan me niet voorstellen dat dat een erg doordachte manier is. DoS-ers zouden bijvoorbeeld kunnen besluiten om twee arpjes te doen en dan ga je alsnog nat. Toch was het wel zoiets.
Nog onduidelijk of mijn IOS versie er ook 'last' van zou hebben ben ik toen gaan bedenken wat ik er aan kon doen.
Het liefst had ik geen bridge interface gehad. (als iemand een config heeft zonder bridge interface, dat zie ik die graag een keer langskomen!) Maar als het dan toch moet, kunnen we er natuurlijk ook minimaal gebruik van maken. Dit door naast de bridge interface ook een route aan te maken naar de 'overkant'. Hierdoor wordt alleen het mac address van de router opgevraagd, maar worden alle andere requests meteen naar de router gestuurd. Zonder het eerste frame te droppen...

En wat denk je... werken als een speer!

Hierbij de config die bij mij prima werkt op mijn Speedlinq Comfort aansluiting. Als iemand uitbereidingen weet hoor ik het graag.
(deze config is voor het gebuik op deze pagina aangepast. Tikfouten voorbehouden.)

Opmerking: Normaal gesproken zou ik ook de 10.0.0.0/8 reeks weigeren op de externe interface, maar speedlinq heeft routers in de 10 reeks en die sturen nog wel eens een ICMP bericht terug welke je dan ook echt nodig hebt. (bijvoorbeeld fragmentation-needed) De 10 reeks droppen is dus niet mogelijk zonder de goede werking te verstoren.

Succes !
Jeroen

(reageren? stuur uw reactie naar info at carotechnolog dot com)


!
! Last configuration change at 18:41:38 CEST Tue Apr 24 2007 by admin
! NVRAM config last updated at 18:41:40 CEST Tue Apr 24 2007 by admin
!
version 12.3
no service pad
service timestamps debug datetime localtime
service timestamps log datetime localtime
service password-encryption
!
hostname Router
!
boot-start-marker
boot-end-marker
!
memory-size iomem 5
logging buffered 16384 informational
enable secret ************
!
clock timezone CET 1
clock summer-time CEST recurring last Sun Mar 2:00 last Sun Oct 3:00
clock save interval 8
no aaa new-model
ip subnet-zero
no ip source-route

ip host sipura.home.org 192.168.1.251
ip host cisco.home.org 192.168.1.254
ip host hpcolorjet.home.org 192.168.1.249
ip host probe.home.org 192.168.1.248
ip host linksys.home.org 192.168.1.253
ip host dreambox.home.org 192.168.1.252
ip host procurve.home.org 192.168.1.250
ip host gate.home.org 192.168.1.1
ip dhcp excluded-address 192.168.1.1 192.168.1.9
ip dhcp excluded-address 192.168.1.240 192.168.1.254
ip dhcp bootp ignore
!
ip dhcp pool home
network 192.168.1.0 255.255.255.0
default-router 192.168.1.254
domain-name home.org
dns-server 192.168.1.254
netbios-node-type h-node
!
!
no ip bootp server
ip inspect name myfw ftp timeout 3600
ip inspect name myfw udp timeout 60
ip inspect name myfw tcp timeout 3600
ip inspect name myfw sip timeout 3600
ip inspect name myfw rtsp timeout 60
ip inspect name myfw smtp timeout 3600
ip audit po max-events 100
no ftp-server write-enable
!
!
username admin password ************
!
bridge irb
!
!
interface Ethernet0
description Connected to the internal network
ip address 192.168.1.254 255.255.255.0
ip nat inside
no ip mroute-cache
no cdp enable
hold-queue 100 out
!
interface ATM0
description Connected to the Internet
no ip address
no ip mroute-cache
atm vc-per-vp 64
no atm ilmi-keepalive
dsl operating-mode auto
bridge-group 1
pvc 0/34
encapsulation aal5snap
!
!
interface BVI1
ip address dhcp client-id Ethernet0
ip access-group 111 in
ip nat outside
ip inspect myfw out
!
ip classless
ip route 0.0.0.0 0.0.0.0 89.220.64.1
no ip http server
no ip http secure-server
ip dns server
ip dns primary home.org soa cisco.home.org hostmaster.home.org 21600 900 7776000 86400
ip nat inside source list 102 interface BVI1 overload
!
!
logging 192.168.1.6
access-list 23 permit 192.168.1.0 0.0.0.255
access-list 102 permit ip 192.168.1.0 0.0.0.255 any
access-list 111 deny ip 192.168.1.0 0.0.0.255 any log
access-list 111 deny ip 127.0.0.0 0.255.255.255 any log
access-list 111 deny ip host 255.255.255.255 any log
access-list 111 deny ip host 0.0.0.0 any log
access-list 111 permit tcp any any established
access-list 111 permit icmp any any administratively-prohibited
access-list 111 permit icmp any any echo-reply
access-list 111 permit icmp any any packet-too-big
access-list 111 permit icmp any any time-exceeded
access-list 111 permit icmp any any traceroute
access-list 111 permit icmp any any unreachable
access-list 111 permit udp any eq domain any eq domain
access-list 111 permit udp any eq domain any gt 1023
access-list 111 permit udp any eq ntp any
access-list 111 permit udp any eq snmp any gt 1023
access-list 111 permit udp any eq 5060 any gt 1023
access-list 111 permit udp any eq bootps any eq bootpc
access-list 111 deny udp any any log
access-list 111 permit gre any any
access-list 111 permit esp any any
access-list 111 deny udp any any eq netbios-ns
access-list 111 deny tcp any any eq 445
access-list 111 deny tcp any any eq 139
access-list 111 deny ip any any log

dialer-list 1 protocol ip permit
snmp-server community public RO
snmp-server enable traps tty
no cdp run
!
control-plane
!
bridge 1 protocol ieee
bridge 1 route ip
!
line con 0
exec-timeout 120 0
no modem enable
transport preferred all
transport output all
stopbits 1
line aux 0
transport preferred all
transport output all
stopbits 1
line vty 0 4
access-class 23 in
exec-timeout 0 0
login local
length 0
transport preferred all
transport input all
transport output all
!
scheduler max-task-time 5000
sntp server 194.109.22.18
!
end