Cisco/Replace BT infinity

source: http://www.peterbatey.com/articles/using-a-cisco-router-with-bt-infinity.html

Using a Cisco Router with BT Infinity

 * Using a Cisco router in place of the BT HomeHub supplied with BT Infinity is a relatively straightforward configuration. Although this configuration has been tested on a 2800 series router, the configuration should work on pretty much any IOS router with changes to the ethernet interface name. The configuration below gets basic connectivity to the internet, but doesn't include any firewall or access control on the router. For firewall configuration see the CBAC article.


 * The BT installation of Infinity will change the faceplate on your BT master socket, adding the VDSL port. This is something BT don't make that clear up front - if you're upgrading from ADSL and are running your router on a telephone extension socket you'll find that you can't do this anymore, the VDSL modem has to connect directly to the master socket. BT will (I believe) install up to 30m of ethernet cable between the VDSL modem and the BT HomeHub during the installation if required. The configuration BT will install is shown below:

http://www.peterbatey.com/images/articles/infinity.jpg


 * BT Infinity Installation
 * The BT HomeHub is on the left, connected to the VDSL modem via the ethernet cable with the red plugs. For the Cisco router configuration, we'll assume that the cable connected to the HomeHub is now connected to the GigabitEthernet 0/0 interface on the router.


 * Interface Configuration


 * First, the GigabitEthernet interface configuration. As we'll be setting up a PPPoE link via this interface, we don't need to assign it an IP address, we simply configure a PPPoE client on the interface.

router(config)# vpdn enable router(config)# interface GigabitEthernet0/0 router(config-if)# no ip address router(config-if)# pppoe enable group global router(config-if)# pppoe-client dial-pool-number 1

router(config)# interface Dialer0 router(config-if)# ip address negotiated router(config-if)# ip nat outside router(config-if)# encapsulation ppp router(config-if)# dialer pool 1 router(config-if)# dialer-group 1 router(config-if)# ppp chap hostname bthomehub@btbroadband.com router(config-if)# ppp chap password 0 cisco router(config-if)# ip mtu 1492
 * Now we configure the PPPoE dialer interface:

router(config)# interface Gi0/1 router(config-if)# ip address 192.168.10.1 255.255.255.240 router(config-if)# ip nat inside
 * and the Internal LAN Interface:


 * Note the IP address is negotiated (over PPP) rather than DHCP. There is no password required for the bthomehub@btbroadband.com user on BT's side, but the config doesn't seem to work without having a password set - which can be anything. Another point to note is the MTU needs to be reduced to 1492 to accommodate the PPP headers, and in some cases lower otherwise you'll experience connectivity issues to some sites.


 * DHCP Configuration


 * We'll need to give IP addresses to the clients on our internal LAN. Of course you may want to give some devices static addresses, so we can exclude a small range for that purpose. We'll also need to exclude the internal interface address from our DHCP scope too, so let's exlude the first four addresses from the subnet of 192.168.10.0/28 for static assignment.

Usually you'll just want to use the DNS servers and domain name assigned by BT, so we can import the DHCP options from the outside interface into the internal DHCP scope. Here's the configuration we'll need to setup our DHCP scope for the internal clients:

router(config)# ip dhcp excluded-address 192.168.10.1 192.168.10.4 router(config)# ip dhcp pool Internal_LAN router(dhcp-config)# import all router(dhcp-config)# network 192.168.10.0 255.255.255.240 router(dhcp-config)# default-router 192.168.10.1


 * Address Translation

We'll need to create an access list to specify the traffic to match for address translation (NAT). We just need to have a permit statement for our internal LAN addresses, and a deny for everything else. IOS has an implicit deny at the end of the access list, but I always like to include it anyway. Access list 110 will be our NAT access list:

router(config)# access-list 110 permit ip 192.168.10.0 0.0.0.15 router(config)# access-list 110 deny ip any any


 * Remember: The mask used in an access list is a wildcard mask, and not the subnet mask!


 * We've already done most of the configuration for NAT. What we need to do finish the NAT configuration is to bind together the access-list to select the traffic to translate and the inside/outside interface definitions with a statement telling the router how to do the translation. As we've already done most of the work, we need a single NAT statement to match the internal addresses and use NAT Overload on the address of Dialer0, the PPPoE interface.

router(config)# ip nat inside source list 110 interface Dialer0 overload


 * You should now have connectivity from the internal 192.168.10.0/28 subnet to the internet.


 * That wraps up this configuration example. If you spot any errors or omissions, or if you want to comment on this article, get in touch via the Contact page.