フレッツ光クロス(enひかりクロス xpass 固定ip)の場合で、ルータを構築するためにDebian 12でnetinstを行おうと思っても、そのままだと IPv6 アドレスの取得が通らず、netinst cdに入っている本当に最小限のインストールしかできません。
この場合 ssh のインストールもできませんし、もちろん他のパッケージもインストールできません。そこで最小インストール後にネットワーク接続して追加パッケージのインストールができ、仮運用ですがLAN側のクライアントからも接続できるるようになるまでをメモ代わりに挙げておくことにしました。
まずは /etc/sysctl.confの設定(変更箇所のみ)です。(なおDebianは最小インストールの場合、sudoがインストールされないので、su コマンドでインストール時に設定した root のパスワードを指定すると root になれます。)
つづいいてネットワークインターフェースの設定です。WAN側(今回はenp1s0f1)は以下のようにします。
続いてLAN側(今回はenp1s0f0)です。こちらは以下のようにします。
次に /etc/apt/sources.listを編集しておきます。
つづいて ifup enp1s0f0 とします。IPv6アドレスが間違いなければ、IPv6でネットにつながるのでここで apt-get update としてください。これで apt でパッケージ追加ができる状態になりますので、たとえば 以下のようにしてパッケージをインストールします。
次はipv4トンネルです。今回はenひかりクロス xpass 固定IPの場合ですが、ほかのプロバイダーでもほぼ同じ要領で行けると思います。
つづいて回線認証ですが、enひかりクロスXpass固定IPの場合でまだ認証を行っていなければ以下のようにします。
フレッツ光クロスの回線とルータとNetinst cdしか手元にない場合でもとりあえず仮運用できるようにはなる、というお話でした。今回は以上です。それでは。
この場合 ssh のインストールもできませんし、もちろん他のパッケージもインストールできません。そこで最小インストール後にネットワーク接続して追加パッケージのインストールができ、仮運用ですがLAN側のクライアントからも接続できるるようになるまでをメモ代わりに挙げておくことにしました。
まずは /etc/sysctl.confの設定(変更箇所のみ)です。(なおDebianは最小インストールの場合、sudoがインストールされないので、su コマンドでインストール時に設定した root のパスワードを指定すると root になれます。)
net.ipv4.ip_forward=1 net.ipv6.conf.all.forwarding=1変更したら sysctl -p としてください。
つづいいてネットワークインターフェースの設定です。WAN側(今回はenp1s0f1)は以下のようにします。
auto enp1s0f1 iface enp1s0f1 inet6 dhcp accept_ra 2 request_prefix 1 pre-up ip link set dev enp1s0f1 upここで、ifup enp1s0f1としてください。(一度でうまくいかない場合は何度か繰り返します。)そうすると 2xxxで始まる prefixを取得し表示しているはずなので、これを書き留めておきます。なお ctrl+alt+Fxの組み合わせでvt(画面)を切り替えることができるので必要に応じて切り替えて下さい。
続いてLAN側(今回はenp1s0f0)です。こちらは以下のようにします。
auto enp1s0f0 iface enp1s0f0 inet static address 10.1.1.23 netmask 255.255.255.0 iface enp1s0f0 inet6 static address 2001:db8:a2a0:3c00::1 netmask 56 pre-up ip link set dev enp1s0f0 upipv6の方のアドレスは先ほど書き留めたprefixを参考にしてください。今回はプロバイダが指定した IFID ::1にしていますが、IFID (インターフェースID) はプロバイダによって変わります。
次に /etc/apt/sources.listを編集しておきます。
deb http://deb.debian.org/debian bookworm main non-free non-free-firmware contribnon-free-firmwareはDebian 12/bookwormから追加されたので それ以前のバージョンではnon-free-firmwareの記述なしでOKです。
apt-get install iptables-persistent openssh-server curl ethtool radvd keepalived kea-dhcp4-serverここまでくれば、LAN側へssh -l username 10.1.1.23 で ssh 接続できるようになっているはずです。
次はipv4トンネルです。今回はenひかりクロス xpass 固定IPの場合ですが、ほかのプロバイダーでもほぼ同じ要領で行けると思います。
TUNDEV=tun0 CE=2001:db8:a2a0:3c00::1 LANDEV=enp1s0f0 BR=2001:db8:0:206::2 TUN_MTU=1460 IP4=203.0.113.195 ip -6 tunnel add $TUNDEV mode ip4ip6 remote $BR local $CE dev $LANDEV encaplimit none ip link set dev $TUNDEV mtu $TUN_MTU ip link set dev $TUNDEV up ip -4 addr add $IP4/32 dev $TUNDEV ip route add default dev $TUNDEV # clamp mss to path mtu iptables -t mangle -o $TUNDEV -I FORWARD -p tcp --tcp-flags SYN,RST SYN -m tcpmss --mss 1400:65495 -j TCPMSS --clamp-mss-to-pmtu iptables -t nat -A POSTROUTING -o $TUNDEV -j SNAT --to-source $IP4BRはプロバイダが指定したTunnel destination Address , つまりプロバイダ側のトンネルエンドポイントです。IP4は指定された固定IPです。CEは今回はLAN側に割り当てたアドレスと同じく PREFIX::IFID です。
つづいて回線認証ですが、enひかりクロスXpass固定IPの場合でまだ認証を行っていなければ以下のようにします。
curl --insecure -6 --interface "$CE" --stderr - -K- "$UPDATE_URL?d=$FQDN&p=$DDNS_PASS&a=$CE&u=$DDNS_ID" <<< "-u ${BASIC_ID}:${BASIC_PASS}"
各変数はプロバイダから指定されたものを使用してください。次はradvdを設定しipv6で接続できるようにしてやります。
interface enp1s0f0 {
# AdvManagedFlag on;
# AdvOtherConfigFlag on;
AdvSendAdvert on;
MaxRtrAdvInterval 180;
# AdvLinkMTU 9000;
prefix 2001:db8:a2a0:3c00::/64 {
};
RDNSS 2606:4700:4700::1111 2606:4700:4700::1001 {
};
AdvRASrcAddress {
fe80::1;
};
};
筆者の環境の場合、keepalivedを入れ、/etc/keepalived/keepalivde.confを以下のようにしているので、上述の AdvRASrcAddress は fe80::1;にしています。
global_defs {
vrrp_version 3
}
vrrp_sync_group G1 {
group {
ipv6_vgw01
}
}
vrrp_instance ipv6_vgw01 {
state BACKUP
interface enp1s0f0
virtual_router_id 62
priority 100
advert_int 1.0
virtual_ipaddress {
fe80::1/10
}
garp_master_delay 1
}
ここまでくればLAN内からもIPv6で接続できるようになっているはずです。最後は、kea-dhcp4でIPv4の自動割り当てを行うようにしてやります。
{
"Dhcp4": {
"interfaces-config": {
"interfaces": [ "enp1s0f0" ]
},
"lease-database": {
"type": "memfile",
"persist": true,
"name": "/var/lib/kea/kea-leases4.csv",
"lfc-interval": 3600
},
"expired-leases-processing": {
"reclaim-timer-wait-time": 10,
"flush-reclaimed-timer-wait-time": 25,
"hold-reclaimed-time": 3600,
"max-reclaim-leases": 100,
"max-reclaim-time": 250,
"unwarned-reclaim-cycles": 5
},
"renew-timer": 900,
"rebind-timer": 1800,
"valid-lifetime": 3600,
"option-data": [
{
"name": "default-ip-ttl",
"data": "0xf0"
}
],
"subnet4": [
{
"id": 1,
"subnet": "10.1.1.0/24",
"interface": "enp1s0f0",
"pools": [
{
"pool": "10.1.1.201 - 10.1.1.250",
"option-data": [
{
"name": "domain-name-servers",
"data": "10.1.1.64, 10.1.1.65"
},
{
"name": "routers",
"data": "10.1.1.23"
}
]
}
]
}
],
"loggers": [{
"name": "kea-dhcp4",
"output_options": [
{
"output": "stdout",
"pattern": "%-5p %m\n"
}
],
"severity": "INFO",
"debuglevel": 0
}]
}
}
domain-name-serverは環境にあわせるか、たとえば 1.1.1.1 1.0.0.1 などとします。ここまでくればLAN側クライアントからIPv4でもアクセスできるようになります。
フレッツ光クロスの回線とルータとNetinst cdしか手元にない場合でもとりあえず仮運用できるようにはなる、というお話でした。今回は以上です。それでは。
コメント
コメントを投稿