Raspbian Busterでstatic IP ip_addressを変えるとアドレスが増える

Raspbian Busterでstatic IPを設定するには、公式ドキュメントにある通り、/etc/dhcpcd.conf に設定を追加する。

interface eth0
static ip_address=192.168.0.4/24    
static routers=192.168.0.1
static domain_name_servers=192.168.0.1

ところで、このip_addressを変えて sudo systemctl restart dhcpcd すると、インターフェースに割り当てられたIPアドレスがどんどん増えていく。

$ ip a s dev eth0
2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP group default qlen 1000
    link/ether xxxx brd ff:ff:ff:ff:ff:ff
    inet 192.168.1.9/24 brd 192.168.1.255 scope global dynamic noprefixroute eth0
       valid_lft 86025sec preferred_lft 75225sec
    inet6 xxxx scope link
       valid_lft forever preferred_lft forever

$ sudo vi /etc/dhcpcd.conf
## static ip_addressを変更

$ sudo systemctl restart dhcpcd

$ ip a s dev eth0
2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP group default qlen 1000
    link/ether xxxx brd ff:ff:ff:ff:ff:ff
    inet 192.168.1.9/24 brd 192.168.1.255 scope global dynamic noprefixroute eth0      # <= 残った
       valid_lft 85999sec preferred_lft 75199sec
    inet 192.168.1.131/24 brd 192.168.1.255 scope global secondary noprefixroute eth0 # <=増えた
       valid_lft forever preferred_lft forever
    inet6 xxxx scope link
       valid_lft forever preferred_lft forever

$ sudo vi /etc/dhcpcd.conf
## static ip_addressを変更

$ sudo systemctl restart dhcpcd

$ ip a s dev eth0
2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP group default qlen 1000
    link/ether xxxx brd ff:ff:ff:ff:ff:ff
    inet 192.168.1.9/24 brd 192.168.1.255 scope global dynamic noprefixroute eth0      # <= 残った
       valid_lft 85661sec preferred_lft 74861sec
    inet 192.168.1.131/24 brd 192.168.1.255 scope global secondary noprefixroute eth0 # <= 残った
       valid_lft forever preferred_lft forever
    inet 192.168.1.132/24 brd 192.168.1.255 scope global secondary noprefixroute eth0 # <=増えた
       valid_lft forever preferred_lft forever
    inet6 xxxx scope link
       valid_lft forever preferred_lft forever

rebootすれば1つになるが、rebootできない時は、一度ipコマンドでflushしてやる必要があるようだ。

$ sudo systemctl stop dhcpcd; sudo ip addr flush dev eth0; sudo systemctl start dhcpcd

dhcpdの設定が間違っていたりしてdhcpdの起動に失敗すると、リモートアクセスできなくなるので注意。

References