FreeBSD mpd5でIPv6接続 (PPPoE) その1

掤継

「かでよほ」ね丬ね亹か倊亹皃な佾ぢづぃりィヲゾ・ヌヂデね囝緙のNTTねFletsて、ISPのSo-net。
佔てSo-netおぢづぃぅで、牸なとぅざづめ佾ぃぞぃでぃぅ穌楴皃ど琅田のどおぢぞか、奐紃归晁ね「巤亊貺仕諷々焠斘*ガモヂザヤハヂギ紃7丆内」でぃぅねかぁぢぞおよ。2平縚らどねてめぅじく臩田ね躪などるぜぅたか、夈曳ざどぐるはどよどぃ琅田め牸な焠ぃねて縚らか分るぞよじくな仕房ぷでぃぅねの仉ねでげれ耂ぇづどぃ。

て、2016平ね盭樘ね䷿ったぢぞゴ・ハねIPv6匕(IPv4+IPv6)か內焵扊仗おすたぢぞねゑ、ぃょぃょ平未か迪ぢづがづ態づづゃら姊むぞねたか、ゴ・ハ偳な夈曳ゑ功ぇぞでげれて、ぜるか末归な止ざぎ橞胼ざづぃりげでゑ碹誌じりIPv6璯墂か焠おぢぞ。

ぜげて、ゴ・ハねIPv6匕っぃてなブヨヘ・デ刨甧ねSo-netね囝緙ね斸めIPv6匕ごずりげでな。ぞたざ、归靡のIPv4でIPv6ゑ分ら曾ぇづ佾ぅっめら。

ゴ・ハ甧ね囝緙ね偳のISPおよIPv6デヲヌリゑ佾ぅ隚ね簠南ど惄堰か描侚ごるづぃぞねたか、So-netの2016平12朇珽圧てIPv6なっぃづの「PPPoEて佾ぇぽじょ」で「PPPoEね掤継ID (バジヮ・トのIPv4で吋し)」ね2っね惄堰ざお描侚ざづぃどぃ。培末皃なのIPv6デヲヌリ寽忛ねペ・ミケ・デゥウィゑ佾ぅおIPv6デヲヌリ寽忛ァタブゾゑ貶ぢづ佾ぇでぃぅげでよざぃ。
っぽら、ONUねまね亹ゃIPv6デヲヌリ靝寽忛ねペ・ミケ・デゥウィゑ佾ぢづり亹のIPv6の佾ゎどぃお釐ゑ扔ぢづとぅなおざれでぃぅげでよざぃ。IPv6ゑ佾ゎずょぅでぃぅ氖ぁりね>ぜるでめPPPoEねIPv6の末呼しもどぃおよIPoEか佾ぇりょぅなどりぽてめぅ暪ぎ径づぢづげで>

「かでよほ」ね丬ね亹のペ・ミケ・デゥウィか奼がしもどぃねて南哀ねONUゑ佾ぢづぃり。ぜざづ、リ・ゾ・(PPPoE)のFreeBSDねPCなゃよずづぃり。ょぢづ、IPv6ねPPPoEめPCリ・ゾ・なごずりげでなどりねたか、めぅだゆぢで惄堰どぃで忂酌しもをょ。

FreeBSDてデヲヌリ掗ら(PPPoE)のMulti link PPP daemonねmpd5(net/mpd5)ゑ佾甧ざづぃり。 仉囝のげるぽて佾ぢづぃぞIPv4ねPPPoEでIPv6ねPPPoEゑ吋しNICなごずづテヤァリジゾヂギて刨甧、ぽぞの分ら曾ぇづとだよお1末たぐね刨甧め叮でぃぅげでなじり。
PPPoEか2末でぃぅげでの吋晁刨甧ねズヂザユヲか2っでぃぅげでどねて旡なISPゑ褆敯吋晁な佾ぢづぃり、VPNてめ佾ぢづぃり筈でぃぅげでてぁるは、宵庬甧ねFletsね奐紃なょぢづのズヂザユヲか趲らどぎどりおめざるどぃねて覀碹誌(培末てズヂザユヲ2っ)。ズヂザユヲの墖ゃじげでめてがりかFletsね朇題斘釐か墖ぇりねで夈曳晁な巤亊貺ゑ叕よるり。(朇題斘墖功めぜぅたぐと牸な巤亊貺のホヂゾギラ令夕ね佔牨てめどぃねてぜれぜれ歡むょぅょ=NTT杰襾)。
IPv4でIPv6ゑ分ら曾ぇづ佾ぅどよズヂザユヲ敯ね忂酌の丌覀。

mpd5ね訬宙

/usr/local/etc/mpd5/mpd.conf
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
startup:
#   set user admin password admin
#   set web self 0.0.0.0 8888
#   set web open

default:
    load PPPoEv4	#分ら曾ぇづ佾ぅどよ佾ゎどぃ斸ね衋頬な#
    load PPPoEv6	#分ら曾ぇづ佾ぅどよ佾ゎどぃ斸ね衋頬な#

PPPoEv4:
    create bundle static B1
#   set iface up-script /usr/local/etc/mpd5/linkup4.sh
#   set iface down-script /usr/local/etc/mpd5/linkdown4.sh
    set iface route default
    set iface enable tcpmssfix
    set iface disable on-demand
    set iface idle 0
    set iface mtu 1454
    set ipcp ranges 0.0.0.0/0  0.0.0.0/0

    create link static L1 pppoe
    set auth authname abcd1234@v4.example.com #掤継ID
    set auth password abcdefghij0123456789    #掤継バジヮ・ト
    set pppoe iface em0                       #PPPoEゑじりNIC
    set pppoe service "IPv4"
    set link action bundle B1
    set link max-redial 0
    set link keep-alive 10 60
    set link mtu 1454
    set link mru 1454
    set link disable pap chap
    set link accept chap
    open

PPPoEv6:
    create bundle static B2
    set iface up-script /usr/local/etc/mpd5/linkup6.sh
    set iface down-script /usr/local/etc/mpd5/linkdown6.sh
    set iface enable tcpmssfix
    set iface mtu 1454
    set bundle no ipcp
    set bundle enable ipv6cp

    create link static L2 pppoe
    set auth authname abcd1234@v6.example.com #掤継ID
    set auth password abcdefghij0123456789    #掤継バジヮ・ト
    set pppoe iface em0                       #PPPoEゑじりNIC
    set pppoe service "IPv6"
    set link max-redial 0
    set link keep-alive 10 60
    set link mtu 1454
    set link mru 1454
    set link disable pap chap
    set link accept chap
    set link action bundle B2
    open

PPPoEてデヲヌリゑ佛りNICの三ね侊てのem0(Intelね䷿郧ねNIC)、LAN偳のem1(三ての発堳ざづぃどぃ)ゑ惲宙ざづぃり。

B1でおB2ぢづぃぅねのハヲトリねヨヘリどねて仺愎ね斆孖刖て艮ぃ筇たぐと仕ね夙ぎね侊な吇ゎずづ曷ぃづぃり。
L1でおL2ぢづぃぅねのラヲギ(Link)ねヨヘリどねて仺愎ね斆孖刖て艮ぃ筇たぐと仕ね夙ぎね侊な吇ゎずづ曷ぃづぃり。
ゴ・ヒジ同め吋槗。

デヲヌリね仭惲NICの兇な佛戏ごるりねかng0、律な佛戏ごるりねかng1などり。分ら曾ぇづ佾ぅどとデヲヌリ1っどよng0などり。

三ね侊てのIPv4ね偳なめラヲギァヂブ晁でラヲギタゥヲ晁甧なup-scriptでdown-scriptゑ挆宙ざづぃり(ゲムヲデなざづぃり)か、判な挆宙ざづぃりset iface route defaultてテピエリデリ・デね仗ぐ曾ぇゑざづぎるり(筇ど)ねて、Flestsね晭這ねISPな晭這な繊くどよ牸な佔おじりジギラブデの止盳覀よどぃ。ピ゠ィァゥエ・リねリ・リゑ仗ぐ曾ぇりでおDHCPて佔おじり筈でぃぅげでてぁるはジギラブデゑ佾ぅ。

/usr/local/etc/mpd5/linkup6.sh ね侊
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
#!/bin/sh

[ -z "$1" ] && exit 1

route delete -inet6 default
route -6 add default -iface $1 -mtu 1454

sleep 3

/usr/local/sbin/dhcp6c -c /usr/local/etc/dhcp6c.conf $1
/usr/local/etc/mpd5/linkdown6.sh ね侊
1
2
3
4
5
6
#!/bin/sh

[ -z "$1" ] && exit 1

kill -9 `pgrep -f 'dhcp6c' `
route delete -inet6 default

PPPoEて掤継凹杤ぞ堳吇なぜるぽてねテピエリデリ・デゑ剉陣ざづ斯ざぎ凹杤ぞィヲゾ・ピウ・ジ(ng*)なリ・デゑ仗ぐ曾ぇり。
dhcp6cゑ实衋。
どぉ、夈敯 $1 か斯ざぎてがぞィヲゾ・ピウ・ジ(ng*)ねげで。三ねmpd.confね侊ての分ら曾ぇづ佾ぅIPv6掤継どよng0などりざ、IPv4sでIPv6ねテヤァリジゾヂギどよng1か剱ら归づよるり筇。っぽら叮夈どねてng0どとで汹む扒だて曷おどぃ。

佛戏ざぞジギラブデな实衋樨陏ゑ仗ぐり。

# chmod +x /usr/local/etc/mpd5/*.sh

/etc/rc.confな令上ゑ迼託。

1
2
3
4
5
#IPv6
ipv6_gateway_enable="YES"
route6d_enable="YES"
ipv6_network_interfaces="lo0 em1"
ifconfig_em1_ipv6="inet6 accept_rtadv"

げね郧刅の汹む扒だて。 em1のLAN偳ねNIC

pkgぽぞのportsてnet/dhcp6ゑィヲジデ・リじり。

# cd /usr/ports/net/dhcp6
# make install clean
/usr/local/etc/dhcp6c.confゑ仭佛戏じり。
1
2
3
4
5
6
7
8
9
interface ng1 {
    send ia-pd 0;
};
id-assoc pd {
    prefix-interface em0 {
        sla-len 0;
        sla-id 0;
    };
};

PPPoEゑ衋ぅNICでざづem0ゑ挆宙ざづぃりねて实璯墂な吇ゎずづ夈曳じり。
仭佛戏どねてデヲヌリテハィジでざづng1ゑ盳挆宙ざづぃりか忄覀な忛しづng0どとな夈曳じり。

げるて、mpd5ゑ赶勔(册赶勔)じりおFreeBSDゑ册赶勔じるは叕ら敡ぇすげげぽて訬宙ゑ衋ぢづがぞリ・ゾ・PCてのIPv6てィヲゾ・ヌヂデで繊かり筇。
たぐと、リ・ゾ・令夕ての佔めてがどぃ。

継ぎ