Skip to content
This repository has been archived by the owner on Jul 16, 2021. It is now read-only.

IPv6アドレス割当方式の移行に失敗した #7

Open
Noiri opened this issue Mar 2, 2019 · 10 comments
Open

IPv6アドレス割当方式の移行に失敗した #7

Noiri opened this issue Mar 2, 2019 · 10 comments

Comments

@Noiri
Copy link
Collaborator

Noiri commented Mar 2, 2019

No description provided.

@fono09
Copy link
Member

fono09 commented Mar 2, 2019

interfaces {
    ethernet eth0 {
        address 192.168.10.1/24
        duplex auto
        smp_affinity auto
        speed auto
    }
    ethernet eth1 {
        address fd00:10::1/64
        duplex auto
        smp_affinity auto
        speed auto
    }
    ethernet eth2 {
        address fd00:11::1/64
        duplex auto
        smp_affinity auto
        speed auto
    }
    loopback lo {
    }
}
protocols {
    static {
        route 0.0.0.0/0 {
            next-hop 192.168.10.254 {
            }
        }
    }
}
service {
    ssh {
        port 22
    }
}
system {
    config-management {
        commit-revisions 10
    }
    console {
        device ttyS0 {
            speed 9600
        }
    }
    host-name vyos
    login {
        user admin {
            authentication {
                encrypted-password ****************
                plaintext-password ****************
            }
            level admin
        }
        user ictsc {
            authentication {
                encrypted-password ****************
                plaintext-password ****************
            }
            level admin
        }
    }
    ntp {
        server 0.pool.ntp.org {
        }
        server 1.pool.ntp.org {
        }
        server 2.pool.ntp.org {
        }
    }
    package {
        auto-sync 1
        repository community {
            components main
            distribution helium
            password ****************
            url http://packages.vyos.net/vyos
            username ""
        }
    }
    syslog {
        global {
            facility all {
                level notice
            }
            facility protocols {
                level debug
            }
        }
    }
    time-zone UTC
}
``

@fono09
Copy link
Member

fono09 commented Mar 2, 2019

考えられる問題

  • RA非対応クライアント
  • DHCPv6かも?

@fono09
Copy link
Member

fono09 commented Mar 2, 2019

DHCPv6だとして設定してみます。

@fono09
Copy link
Member

fono09 commented Mar 2, 2019

https://wiki.vyos.net/wiki/IPv6_Router_Advertisements
set interfaces ethernet eth2 ipv6 router-advert send-advert true
効果なし。
delete interface ethernet eth2 ipv6 router-advert
で取り消し。

@fono09
Copy link
Member

fono09 commented Mar 2, 2019

set service dhcpv6-server
set service dhcpv6-server shared-network-name DEFAULT subnet fd00:11::/64 address-range start fd00:11::100 stop fd00:11::199

@fono09
Copy link
Member

fono09 commented Mar 2, 2019

admin@vyos:~$ ping6 -I eth2 ff02::1
PING ff02::1(ff02::1) from fe80::5054:2ff:fe7e:583 eth2: 56 data bytes
64 bytes from fe80::5054:2ff:fe7e:583: icmp_seq=1 ttl=64 time=0.060 ms
64 bytes from fe80::3037:18ff:fe40:6e89: icmp_seq=1 ttl=64 time=0.512 ms (DUP!)
64 bytes from fe80::5054:8fff:fe77:4fb6: icmp_seq=1 ttl=64 time=0.533 ms (DUP!)

@fono09
Copy link
Member

fono09 commented Mar 2, 2019

admin@vyos:~$ ssh admin@fe80::5054:8fff:fe77:4fb6%eth2
でHost2に入れた。

@fono09
Copy link
Member

fono09 commented Mar 2, 2019

一旦固定設定。
sudo ip a a fd00:11::100/64 dev eth0

@fono09
Copy link
Member

fono09 commented Mar 2, 2019

wide-dhcpv6-clientを入れないと無理っぽい?

@arsley arsley changed the title 問題F IPv6アドレス割当方式の移行に失敗した Mar 2, 2019
@fono09
Copy link
Member

fono09 commented Mar 2, 2019

まず、ルータ側へログインし、アドレスが不明な端末2へアクセスするためリンク上の全ノードに対するマルチキャストpingを発行。
$ ping6 -I eth2 ff02::1
これにより、3つの同リンク上のインターフェイスの応答を確認した。

このうち、fe80::5054:8fff:fe77:4fb6のみ、当該のクレデンシャルで疎通できたため、以降このノードに対して作業を行った。

割当範囲が/64を下回っており、なおかつプールの指定があるためステートレス指定ではなくDHCPv6仕様の制約と推定。以降、当該のfd00:11::/64 fd00:11::100 - fd00:11::199においてDHCPv6を有効化する作業に移った。

まず、VyOS側に下記設定を投入、commitsaveを実施。

service {
    dhcpv6-server {
        preference 0
        shared-network-name DEFAULT {
            subnet fd00:11::/64 {
                address-range {
                    start fd00:11::100 {
                        stop fd00:11::199
                    }
                }
            }
        }
    }
}

ルータ経由で端末2において、DHCPv6ステートフル割当を有効化する作業を開始。
$ ssh admin@fe80::5054:8fff:fe77:4fb6%eth2

端末2の/etc/netplan/99-network-config.yamlを下記のように編集。

network:
    version: 2
    renderer: networkd
    ethernets:
        eth0:
            dhcp6: true
            accept-ra: false

$ sudo netplan applyを実施したものの、DHCPv6は有効にならず。

そのため、systemd-networkdのDHCPクライアント機能を直接有効化するため、下記の通り編集。

[Match]
Name=eth0

[Network]
DHCP=yes

$ sudo systemctl restart systemd-networkを実施したものの、DHCPv6は有効にならなかっため、
今一度下記のとおりに編集。

[Match]
Name=eth0

[Network]
DHCP=no

$ sudo systemctl restart systemd-networkを実施した。

最終的に、IPv4を一時的に有効化し、wide-dhcpv6-clientを導入するため、端末2に対してIPv4グローバルの疎通と名前解決を持たせることにした。
ルータにおいて、
set interfaces ethernet eth2 address 192.168.1.1/24
set nat source rule 100 outbound-interface eth0 source address 192.168.1.0/24 translation address masquerade
端末2において、
$ sudo ip a a 192.168.1.2/24 dev eth0
$ sudo ip r a default 192.168.1.1
# cat > /etc/resolv.conf nameserver 8.8.8.8
を実施してIPv4グローバルの疎通と名前解決を得た。

この後、端末2において
apt install wide-dhcpv6-clientを実施。
/etc/wide-dhcpv6/dhcp6c.confを下記のとおり編集。

# Default dhpc6c configuration: it assumes the address is autoconfigured using
# router advertisements.

profile default
{
  information-only;

  request domain-name-servers;
  request domain-name;

  script "/etc/wide-dhcpv6/dhcp6c-script";
};

interface eth0 {
	send rapid-commit;
	send ia-na 0;
	script "/etc/wide-dhcpv6/dhcp6c-script";
};

id-assoc na 0 {
};

systemctl restart wide-dhcpv6-clientを実施し、
当該の範囲のIPv6アドレスの自動割当を確認。

一時的に疎通したIPv4の設定を削除。
ルータにて
delete interfaces ethernet eth2 address 192.168.1.1/24
delete nat
save,commitを実施。
端末2にて
ip r d default
ip a d 192.168.1.2/24
/etc/resolv.confの記述をnameserver 127.0.0.53に復帰。

以上で正常にDHCPv6によるIPv6アドレス割当が正常に行われる状態となった。

Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Projects
None yet
Development

No branches or pull requests

2 participants