docsis_server How To

Setting up Cisco CMTS (without VRF)

  • Here is an example running config with a few things highlighted
    !
    version 12.2
    service timestamps debug uptime
    service timestamps log datetime
    service password-encryption
    !
    hostname docsis-example1
    !
    boot system flash disk0:ubr7100-ik8s-mz.122-15.BC2g.bin
    boot bootldr disk0:ubr7100-boot-mz.122-15.BC2g.bin
    logging queue-limit 100
    no logging console
    enable secret 5 $(very secret)
    !
    username letmein password letmein
    cable modem max-cpe 4
    cable modulation-profile 2 request 10 16 0 8 qpsk scrambler 152 diff 64 fixed uw8
    cable modulation-profile 2 initial 10 34 0 48 qpsk scrambler 152 diff 128 fixed uw16
    cable modulation-profile 2 station 10 34 0 48 qpsk scrambler 152 diff 128 fixed uw16
    cable modulation-profile 2 short 10 75 6 8 qpsk scrambler 152 diff 72 fixed uw8
    cable modulation-profile 2 long 10 220 0 8 qpsk scrambler 152 diff 80 fixed uw8
    cable qos profile 5 max-burst 1600
    cable qos profile 5 max-downstream 1024
    cable qos profile 5 max-upstream 1024
    cable qos profile 5 priority 1
    cable qos profile 5 tos-overwrite 0xFF 0x0
    cable qos profile 6 max-burst 1600
    cable qos profile 6 max-downstream 74
    cable qos profile 6 max-upstream 74
    cable qos profile 6 priority 1
    cable qos profile 6 tos-overwrite 0xFF 0x0
    cable qos permission create
    cable qos permission update
    cable qos permission modems
    aaa new-model
    !
    aaa authentication login default local
    aaa session-id common
    ip subnet-zero
    no ip source-route
    !
    ip nbar pdlm disk0:kazaa2.pdlm
    ip nbar pdlm disk0:gnutella.pdlm
    !
    ip cef
    ip domain name example.com
    ip name-server 24.27.0.6
    ip name-server 24.27.0.7
    ip dhcp relay information option
    !
    mpls ldp logging neighbor-changes
    !
     class-map match-any p2p
      match protocol kazaa2 file-transfer "*"
      match protocol fasttrack
      match protocol napster
      match access-group 112
      match protocol gnutella file-transfer "*"
    !
    !
     policy-map p2p-up
      class p2p
       police cir 256000 bc 8000 be 8000
         conform-action transmit
         exceed-action drop
         violate-action drop
    !
    !
    !
    interface FastEthernet0/0
     ip address 24.27.0.10 255.255.255.0
     service-policy output p2p-up
     ip route-cache same-interface
     load-interval 30
     duplex auto
     speed auto
     no cdp enable
     hold-queue 200 in
     hold-queue 200 out
    !
    interface FastEthernet0/1
     no ip address
     shutdown
     duplex auto
     speed auto
     no cdp enable
    !
    interface Cable1/0
     description use ip policy route-map proxy-redir
     ip address 24.27.1.1 255.255.255.0 secondary
     ip address 24.27.2.1 255.255.255.0 secondary
     ip address 10.1.1.1 255.255.0.0
     ip route-cache flow
     load-interval 30
     cable tftp-enforce mark-only
     cable shared-secret shared-secret
     cable downstream annex B
     cable downstream modulation 64qam
     cable downstream interleave-depth 32
     cable downstream frequency 555000000
     cable downstream channel-id 0
     no cable downstream rf-shutdown
     cable downstream rf-power 58
     cable upstream 0 frequency 22000000
     cable upstream 0 power-level 2
     cable upstream 0 channel-width 3200000
     cable upstream 0 minislot-size 2
     cable upstream 0 data-backoff 5 6
     cable upstream 0 modulation-profile 2
     cable upstream 0 s160-atp-workaround
     no cable upstream 0 shutdown
     cable upstream 1 frequency 22000000
     cable upstream 1 power-level 2
     cable upstream 1 channel-width 3200000
     cable upstream 1 minislot-size 2
     cable upstream 1 data-backoff 5 6
     cable upstream 1 modulation-profile 2
     cable upstream 1 s160-atp-workaround
     no cable upstream 1 shutdown
     cable upstream 2 frequency 22000000
     cable upstream 2 power-level 2
     cable upstream 2 channel-width 3200000
     cable upstream 2 minislot-size 2
     cable upstream 2 data-backoff 5 6
     cable upstream 2 modulation-profile 2
     cable upstream 2 s160-atp-workaround
     no cable upstream 2 shutdown
     cable upstream 3 description Melville
     cable upstream 3 frequency 38000000
     cable upstream 3 power-level 2
     cable upstream 3 channel-width 3200000
     cable upstream 3 minislot-size 2
     cable upstream 3 data-backoff 5 6
     cable upstream 3 modulation-profile 2
     cable upstream 3 s160-atp-workaround
     no cable upstream 3 shutdown
     no cable ip-multicast-echo
     cable source-verify dhcp
     cable dhcp-giaddr primary
     cable helper-address 24.27.0.5
     no keepalive
    !
    ip classless
    ip route 0.0.0.0 0.0.0.0 24.27.0.1
    no ip http server
    no ip http secure-server
    !
    !
    !
    logging trap debugging
    logging facility local1
    logging 24.27.0.5
    access-list compiled
    access-list 1 permit 24.27.0.0 0.0.0.255
    access-list 99 deny   any
    access-list 112 permit tcp 24.27.0.0 0.0.3.255 range 411 412 any
    access-list 112 permit tcp 24.27.0.0 0.0.3.255 any range 411 412
    access-list 112 permit tcp 24.27.0.0 0.0.3.255 any eq 1214
    access-list 112 permit tcp 24.27.0.0 0.0.3.255 eq 1214 any
    access-list 112 permit tcp 24.27.0.0 0.0.3.255 range 6346 6347 any
    access-list 112 permit tcp 24.27.0.0 0.0.3.255 any range 6346 6347
    access-list 112 permit tcp 24.27.0.0 0.0.3.255 eq 4662 any
    access-list 112 permit tcp 24.27.0.0 0.0.3.255 any eq 4662
    access-list 112 permit tcp 24.27.0.0 0.0.3.255 eq 6699 any
    access-list 112 permit tcp 24.27.0.0 0.0.3.255 any eq 6699
    access-list 112 permit tcp 24.27.0.0 0.0.3.255 eq 16699 any
    access-list 112 permit tcp 24.27.0.0 0.0.3.255 any eq 16699
    no cdp run
    !
    snmp-server community readonly-name RO 1
    snmp-server enable traps tty
    !
    alias exec spc show proc cpu | exclude 0.00
    !
    line con 0
    line aux 0
    line vty 0 4
     access-class 1 in
     exec-timeout 360 0
    line vty 5 8
     access-class 1 in
     transport input telnet
    line vty 9 15
    !
    end
    
          

    This is an example of a config with only 1 downstream with 4 upstreams. I have highlighted a few options that are important for the docsis_server.
    • ip dhcp relay information option - this tells the CMTS to tack on the MAC address of the CM to any DHCP packets that come through. This enables you to tell which CM a CPE dhcp request is coming from.
    • cable shared-secret shared-secret - don't forget to secure your config files with a secret shared key.
    • cable source-verify dhcp - If a CPE packet comes in and the CMTS doesn't have a record of the IP/MAC combination it will try to verify the IP with the docsis_server.
    • cable dhcp-giaddr primary - This option sets the GIADDR field of the DHCP packets that get relayed by the CMTS. If you use "primary" then the "cmts_ip" field of the "config_nets" table should be the primary IP address of the Cable interface. If you use "secondary" then the "cmts_ip" field of the "config_nets" table should be gateway IP address for that network.
    • cable helper-address 24.27.0.5 - This should be the IP address of your docsis_server.
    • logging 24.27.0.5 - Allow logging of errors to the docsis_server.