Changing the IP Address on a Cisco Router With an IP Conflict

If you wish to bring up a Cisco router that has an IP address that conflicts with existing hosts on your network, there are a variety of ways to change it. We just happened to have a crossover network cable sitting on our work bench, and a GNU/Linux host on the LAN with an extra unused NIC in it. We didn’t happen to have a convenient console cable, and thought, hey, why not? There are some examples of various GNU/Linux networking tweaks, as well as the mundane changing the IP address in IOS, so some part of this might help you.

The first step is to bind an address that doesn’t conflict with the Cisco to the extra interface:

[root@sv-51 sysconfig]# cd network-scripts
[root@sv-51 network-scripts]# ls
ifcfg-eth0        ifdown-ipv6   ifup-ippp   ifup-ppp
ifcfg-eth1        ifdown-isdn   ifup-ipsec  ifup-routes
ifcfg-lo          ifdown-post   ifup-ipv6   ifup-sit
ifcfg-lo.rpmsave  ifdown-ppp    ifup-ipx    ifup-sl
ifdown            ifdown-sit    ifup-isdn   ifup-wireless
ifdown-aliases    ifdown-sl     ifup-plip   init.ipv6-global
ifdown-ippp       ifup          ifup-plusb  network-functions
ifdown-ipsec      ifup-aliases  ifup-post   network-functions-ipv6
[root@sv-51 network-scripts]# vi ifcfg-eth1
[root@sv-51 network-scripts]# cat ifcfg-eth1
DEVICE=eth1
ONBOOT=yes
BOOTPROTO=static
IPADDR=10.50.100.201
[root@sv-51 network-scripts]#
[root@sv-51 network-scripts]# /etc/init.d/network restart
Shutting down interface eth0:                              [  OK  ]
Shutting down interface eth1:                              [  OK  ]
Shutting down loopback interface:                          [  OK  ]
Setting network parameters:                                [  OK  ]
Bringing up loopback interface:                            [  OK  ]
Bringing up interface eth0:                                [  OK  ]
Bringing up interface eth1:                                [  OK  ]
[root@sv-51 network-scripts]# 
[root@sv-51 root]# ifconfig
eth0      Link encap:Ethernet  HWaddr 00:60:08:11:BD:4A
inet addr:10.50.100.51  Bcast:10.50.100.255  Mask:255.255.255.0
UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
RX packets:13453 errors:0 dropped:0 overruns:0 frame:0
TX packets:6694 errors:0 dropped:0 overruns:0 carrier:0
collisions:354 txqueuelen:100
RX bytes:876741 (856.1 Kb)  TX bytes:471045 (460.0 Kb)
Interrupt:12 Base address:0xe000
eth1      Link encap:Ethernet  HWaddr 00:60:97:09:70:EF
inet addr:10.50.100.201  Bcast:10.255.255.255  Mask:255.0.0.0
UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
RX packets:79 errors:0 dropped:0 overruns:0 frame:0
TX packets:105 errors:0 dropped:0 overruns:0 carrier:4
collisions:0 txqueuelen:100
RX bytes:8864 (8.6 Kb)  TX bytes:6343 (6.1 Kb)
Interrupt:11 Base address:0xd000
lo        Link encap:Local Loopback
inet addr:127.0.0.1  Mask:255.0.0.0
UP LOOPBACK RUNNING  MTU:16436  Metric:1
RX packets:10 errors:0 dropped:0 overruns:0 frame:0
TX packets:10 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:0
RX bytes:660 (660.0 b)  TX bytes:660 (660.0 b)
[root@sv-51 root]#

Add a route for both the existing conflicting address and the new address:

[root@sv-51 network-scripts]# route add 10.50.100.202 gw 10.50.100.201
[root@sv-51 network-scripts]# route add 10.50.100.200 gw 10.50.100.201
[root@sv-51 network-scripts]# route
Kernel IP routing table
Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
10.50.100.200   10.50.100.201   255.255.255.255 UGH   0      0        0 eth1
10.50.100.202   10.50.100.201   255.255.255.255 UGH   0      0        0 eth1
10.50.100.0     *               255.255.255.0   U     0      0        0 eth0
10.0.0.0        *               255.0.0.0       U     0      0        0 eth1
127.0.0.0       *               255.0.0.0       U     0      0        0 lo
default         10.50.100.82    0.0.0.0         UG    0      0        0 eth0
[root@sv-51 network-scripts]#

Now, let’s change the address on the Cisco Router:

[root@sv-51 network-scripts]# telnet 10.50.100.200
Trying 10.50.100.200...
Connected to 10.50.100.200.
Escape character is '^]'.
User Access Verification
Password:
router>en
Password:
router#show run
Building configuration...
Current configuration:
version 12.0
.
.
.
!
interface FastEthernet0
ip address 10.50.100.200 255.255.255.0
ip access-group 100 in
ip access-group 100 out
no ip directed-broadcast
!
.
.
.
router#
router#conf term
Enter configuration commands, one per line.  End with CNTL/Z.
router(config)#int FastEthernet0
router(config-if)#ip address 10.50.100.202 255.255.255.0

The connection will lock up here, just reconnect to copy the running config to start and reload the router:

[root@sv-51 root]# telnet 10.50.100.202
Trying 10.50.100.202...
Connected to 10.50.100.202.
Escape character is '^]'.
User Access Verification
Password:
router>en
Password:
router#copy run start
Destination filename [startup-config]?
Building configuration...
router#
router#reload
Proceed with reload? [confirm]
Connection closed by foreign host.
[root@sv-51 root]#

Let’s remove the Cisco from the extra NIC, plug it in to the LAN, remove the extra routes, and try to telnet in to the Cisco:

[root@sv-51 root]# /etc/init.d/network restart
Shutting down interface eth0:                              [  OK  ]
Shutting down interface eth1:                              [  OK  ]
Shutting down loopback interface:                          [  OK  ]
Setting network parameters:                                [  OK  ]
Bringing up loopback interface:                            [  OK  ]
Bringing up interface eth0:                                [  OK  ]
Bringing up interface eth1:                                [  OK  ]
[root@sv-51 root]# route
Kernel IP routing table
Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
10.50.100.0     *               255.255.255.0   U     0      0        0 eth0
10.0.0.0        *               255.0.0.0       U     0      0        0 eth1
127.0.0.0       *               255.0.0.0       U     0      0        0 lo
default         10.50.100.82    0.0.0.0         UG    0      0        0 eth0
[root@sv-51 root]# telnet 10.50.100.202
Trying 10.50.100.202...
Connected to 10.50.100.202.
Escape character is '^]'.
User Access Verification
Password:

Looks good.