Schlagwort-Archive: Provider

Cisco: ATM-Interface mit mehreren PPPOE Sessions zum DSL Provider

Wer in der glücklichen Lage ist mehr als einen DSL-Zugang zu haben wird auf den Cisco Seiten schnell fündig wie er einen Cisco Router einrichten muss damit er ins Netz kommt. Das wollte ich auch gleich mal ausprobieren und parallel zu meinem T-DSL Zugang einen weiteren Provider benutzen, über den ich eine feste IP-Adresse bekomme. Seit dem IOS Release 12.4(15) gibt es dazu die Möglichkeit mehr als eine dialer-group am ATM-Interface zu definieren. Also schnell mal eingestellt und probiert.


!
interface ATM0/0/0
no ip address
no ip redirects
no ip unreachables
no ip proxy-arp
no atm ilmi-keepalive
pvc 1/32
pppoe-client dial-pool-number 2
pppoe-client dial-pool-number 1
!
!
interface Dialer1
description # DSL Telekom
ip address negotiated
no ip redirects
no ip unreachables
no ip proxy-arp
ip mtu 1492
ip nat outside
ip virtual-reassembly
encapsulation ppp
dialer pool 1
no cdp enable
ppp authentication pap chap callin
ppp chap hostname 00XXXXX0001@t-online.de
ppp chap password 7 XXXXX
ppp pap sent-username 00XXXXX0001@t-online.de password 7 XXXXX
ppp ipcp dns request accept
ppp ipcp route default
ppp ipcp address accept
!
!
interface Dialer2
description # DSL VIADSL
ip address negotiated
no ip redirects
no ip unreachables
no ip proxy-arp
ip mtu 1492
ip nat outside
ip virtual-reassembly
encapsulation ppp
dialer pool 2
no cdp enable
ppp authentication pap chap callin
ppp chap hostname XXXXX@viadsl.de
ppp chap password 7 XXXXX
ppp pap sent-username XXXXX@viadsl.de password 7 XXXXX
ppp ipcp dns request accept
ppp ipcp route default
ppp ipcp address accept
!

Nach ein paar Versuchen stellte sich sehr schnell Frustration ein, da der Router immer nur zu einem der beiden Provider eine Verbindung aufgebaut hat. Ein Blick in „show pppoe sesions“ bestätigte das:

2 client sessions

Uniq ID  PPPoE  RemMAC          Port                  Source   VA         State
SID  LocMAC                                         VA-st
N/A    580  0090.1a41.650c  ATM0/0/0              Di2      Vi2        UP

001b.d51b.eb56  VC:  1/32                      UP
N/A    0     0000.0000.0000  ATM0/0/0              Di1      N/A        PADISN

0000.0000.0000  VC:  1/32

Nach längerer Suche wird dann auch klar warum das Verhalten so ist. Das ATM-Interface baut jede PPPOE-Session mit der selben MAC-Adresse auf. Da beide Verbindungen aber auf dem selben DSLAM enden kann das nicht klappen. Es muss also eine Lösung her wie man für jede PPPOE-Session eine eigene MAC-Adresse einstellen kann. Das mag nur leider Cisco überhaupt nicht und es ist auch so nicht vorgesehen. Man kann zwar an einem ATM-Interface eine andere MAC-Adresse vergeben, man kann das aber nicht in einer PVC pro Dialer-group machen.

Die einzige Lösung ist sich ein EEM-Script zu basteln das die MAC-Adresse bei Bedarf am ATM-Interface setzt, damit jede PPPOE-Session ihre eigene MAC-Adresse benutzen kann. Falls hier jemand vom Hersteller mit liest, darf das gerne als Feature Wunsch aufgenommen werden (ATM-Interface with random mac-address per pppoe session).

!
event manager applet MAC-DIAL1
event syslog pattern "Line protocol on Interface Virtual-Access3, changed state to up"
action 1.0 cli command "enable"
action 1.1 cli command "conf t"
action 1.2 cli command "interface atm0/0/0"
action 1.3 cli command "mac-address 101b.d51b.eb56"
action 1.4 cli command "end"
action 1.5 cli command "exit"
!
event manager applet MAC-DIAL2
event syslog pattern "Line protocol on Interface Virtual-Access2, changed state to up"
action 1.0 cli command "enable"
action 1.1 cli command "conf t"
action 1.2 cli command "interface atm0/0/0"
action 1.3 cli command "mac-address 201b.d51b.eb56"
action 1.4 cli command "end"
action 1.5 cli command "exit"
event manager applet MAC-DIAL3
!
event syslog pattern "Interface Virtual-Access2, changed state to down"
action 1.0 cli command "enable"
action 1.1 cli command "conf t"
action 1.2 cli command "interface atm0/0/0"
action 1.3 cli command "mac-address 301b.d51b.eb56"
action 1.4 cli command "end"
action 1.5 cli command "exit"
!
event manager applet MAC-DIAL4
event syslog pattern "Interface Virtual-Access3, changed state to down"
action 1.0 cli command "enable"
action 1.1 cli command "conf t"
action 1.2 cli command "interface atm0/0/0"
action 1.3 cli command "mac-address 401b.d51b.eb56"
action 1.4 cli command "end"
action 1.5 cli command "exit"
!

Damit wird nach einem Verbindungsaufbau oder Abbau einer PPPOE-Session sofort die MAC-Adresse geändert und die nächste Verbindung kann aufgebaut werden.

Router#show pppoe session
2 client sessions

Uniq ID  PPPoE  RemMAC          Port                  Source   VA         State
SID  LocMAC                                         VA-st
N/A   1466  0090.1a41.650c  ATM0/0/0              Di2      Vi2        UP

301b.d51b.eb56  VC:  1/32                      UP
N/A   1476  0090.1a41.650c  ATM0/0/0              Di1      Vi3        UP

201b.d51b.eb56  VC:  1/32                      UP

Hier kann man die beiden aufgebauten PPPOE-Sessions sehen, da sie jetzt unterschiedliche MAC-Adressen haben. Für das DSLAM ist das unerheblich, solange die MAC-Adresse nicht von jemand anderem verwendet wird.

Ein kleiner Nachteil ergibt sich daraus noch: Der ATM-Adapter im Router muss jetzt im Promiscuous Modus arbeiten was zu einer etwas höheren Prozessor Last führt, da jedes einzelne Datenpaket vom Adapter gelesen werden muss um zu überprüfen ob das Datenpaket verarbeitet werden soll oder nicht.

Router#show ip interface brief
Interface                  IP-Address      OK? Method Status                Prot
ocol
FastEthernet0/0            192.168.10.1   YES NVRAM  up                    up

FastEthernet0/1            unassigned      YES NVRAM  administratively down down

ATM0/0/0                   unassigned      YES NVRAM  up                    up

NVI0                       192.168.10.1    YES unset  up                    up

Virtual-Access1            unassigned      YES unset  up                    up

Virtual-Access2            unassigned      YES unset  up                    up

Virtual-Access3            unassigned      YES unset  up                    up

Dialer1                    84.135.89.184   YES IPCP   up                    up

Dialer2                    194.231.187.196 YES IPCP   up                    up

Hier haben beide Dialer ihre IP-Adresse zugewiesen bekommen und die Routen werden aufgebaut.

Router#show ip route
[ ... ]
Gateway of last resort is 217.0.116.114 to network 0.0.0.0

84.0.0.0/32 is subnetted, 1 subnets
C       84.135.89.184 is directly connected, Dialer1
C    192.168.10.0/24 is directly connected, FastEthernet0/0
217.0.116.0/32 is subnetted, 1 subnets
C       217.0.116.114 is directly connected, Dialer1
194.231.190.0/32 is subnetted, 1 subnets
C       194.231.190.1 is directly connected, Dialer2
194.231.187.0/32 is subnetted, 1 subnets
C       194.231.187.196 is directly connected, Dialer2
S*   0.0.0.0/0 [1/0] via 217.0.116.114
[1/0] via 194.231.190.1
is directly connected, Dialer2
is directly connected, Dialer1

Was jetzt noch fehlt ist Network Adress Translation (NAT), aber das ist ein anderes Thema was bei mehr als einer Verbindung nicht so ganz trivial ist.