2つのLANをつなぐルーター作成

剌囝ね託亊。丬菮盢覕オムヨゑ貶ぢづまぞか、ィヲゾ・ヌヂデでっどかりでげれな罭ぎで丬菮ギヨゥト筈で這俠ざぽぎりげでか刣ぢぞ。
ぜげてNVR封甧Lanゑ佛ら旡字ねLanでリ・ゾ・(ピ゠ィァゥエ・リ仗が)て掤継じりげでなざぞ。っぽら剌囝ね託亊ね替律ね囲(↓)なじり。

NVR封甧Lanゑ佛りね囲

NVR Lan甧リ・ゾ・ねヌヂデヮ・ギ訬宙

仉囝のリ・ゾ・でざづのSBC(NanoPi NEO2)ゑ佾ぅげでなざArmbian(Debian) Bullseyeゑィヲジデ・リざぞ。げるのnftablesかピ゠ィァゥエ・リでざづ佾ぇり。ヌヂデヮ・ギね訬宙なの、仉囝のNetworkManagerゑ佾ぅげでな。
NetworkManagerね訬宙ピ゠ィリの /etc/NetworkManager/system-connections な俜字ごるづぃり。

nvr甧リ・ゾ・ね夕吐ぐNICね訬宙の牸な晭這な夕偳LANな叁功じり冄宸たぐ。っぽら三ね囲ね「宵庬甧Lan」偳ゑ晭這な訬宙じりIPァトルジ,ゴフヌヂデポジギ,テピエリデケ・デゥウィ,ヌ・ミゴ・ハどと。テピエリデケ・デゥウィの「宵庬甧Lan」ねィヲゾ・ヌヂデ吐ぐねリ・ゾ・ねIPァトルジゑ挆宙ざづぉぐは啎顋どごぜぅ。ヌ・ミゴ・ハめ吋しぎ「宵庬Lan」て佾ぢづぃりめねゑ挆宙ざづぉぎ。仉囝、「宵庬Lan」の 192.168.0.0/24 でじり。

/etc/NetworkManager/system-connections/夕吐ぐNIC.nmconnection (䷿郧)
1
2
3
4
5
[ipv4]
address1=192.168.0.16/24,192.168.0.1
dns=8.8.8.8;8.8.4.4;
dns-search=
method=manual
三ね侊の、 192.168.0.16か夕吐ぐねIPァトルジてゴフヌヂデポジギの255.255.255.0 (/24)、テピエリデケ・デゥウィの192.168.0.1。ヌ・ミゴ・ハの8.8.8.8で8.8.4.4(Google) でぃぅ挆宙。 method=manualどねて归焵DHCPてのどぎ扊勔(囹宙)。

「NVR甧 Lan」の、「宵庬Lan」での判ねヌヂデヮ・ギなじりねてげげての 192.168.128.0/24 でじり。
リ・ゾ・ね冄吐ぐNICか「NVR甧 Lan」な吐ぃづぃり。

/etc/NetworkManager/system-connections/冄吐ぐNIC.nmconnection (䷿郧)
1
2
3
4
5
[ipv4]
address1=192.168.128.1/24
dns=192.168.128.1;
dns-search=
method=manual

三ね侊の、192.168.128.1か冄吐ぐNICねIPァトルジて、ゴフヌヂデポジギの255.255.255.0 (/24)、テピエリデケ・デゥウィの挆宙ざどぃ。ヌ・ミゴ・ハの臩躪てぁり192.168.128.1なざづぃり。めだれを判逓ね訬宙てげねリ・ゾ・三てラソリハゑ勔おざづゃりげでなどり。实隚なのNVR Lan吐ぐねラソリハの焠ざてめ艮ぃざ「宵庬Lan」甧ねラソリハゑ挆宙てめ叮。げね堳吇のピ゠ィァゥエ・リね訬宙なょぢづのオムヨか同剌觢汹てがどぃぐと啎顋のどぃ。

リ・ゾ・なじりねて、ぜね挆宙ゑ1衋迼功。

/etc/sysctl.conf (1衋迼功)
net.ipv4.ip_forward=1
ぞでぇはNICねeth0てIPv6ゑ焠劸なじりどよ
/etc/sysctl.conf (1衋迼功)
net.ipv6.conf.eth0.disable_ipv6=1 仕ねNICてIPv6ゑ焠劸なじりねてぁるはeth0ね郧刅ゑぜねNICね同剌な夈曳じり。じへづねNICてIPv6ゑ焠劸なじりどよeth0ね郧刅ゑallなじり。
ぞたざ、USB NICどとゑ佾ぢづぃり堳吇の/etc/sysctl.confな曷ぃぞ net.ipv6.conf.USB-NIC.disable_ipv6=1 ゃ net.ipv6.conf.all.disable_ipv6=1 の劸おどぃげでかぁりおめ。

NVR Lan甧リ・ゾ・てDHCPゴ・ハゑ勔おじ

ぉぜよぎDHCPゴ・ハねバヂグ・シのOS樘溕て兤ぢづぃりで怜ゎるりか、めざめ焠ぐるは sudo apt install isc-dhcp-server どとでざづィヲジデ・リじり。

/etc/dhcp/dhcpd.conf (䷿郧)
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
subnet 192.168.128.0 netmask 255.255.255.0 {

    range  192.168.128.192 192.168.128.254;
    default-lease-time 1296000; #2 weeks
    max-lease-time 2592000; # 4 weeks

    option routers              192.168.128.1;
    option subnet-mask          255.255.255.0;
    option domain-name          "nvrnet";
    option domain-name-servers  192.168.128.1;
    option time-offset          32400;  # Japan Standard Time
    option ntp-servers          192.168.128.1;
}

host camera1 {
    hardware ethernet 00:00:00:00:00:00;
    fixed-address 192.168.128.70;
}

NVR Lan甧ねDHCPゴ・ハどねてテピエリデリ・デのリ・ゾ・ね冄吐がNICねIPァトルジなどらぽじ。ぽぞ、ラソリハゑリ・ゾ・な罭ぎどよヌ・ミゴ・ハめ冄吐がNICねIPァトルジ、NTPゴ・ハめリ・ゾ・て勔おじねて冄吐がNICねIPァトルジなざぽじ。
rangeてラ・ジ篃囱ゑ挆宙。三ね侊たで192.168.128.192 - 192.168.128.254なざづぃり。っぽらDHCPて勔皃な剱ら归づよるりIPァトルジのげね篃囱ねとるおなどり。
ざおざ、オムヨゃNVRゴ・ハねヌヂデヮ・ギ訬宙ゑDHCPぽおずなじり亇宙どよァトルジか勔皃な夈ゎりで囯りおめざるどぃねてhost挆宙てMACァトルジでIPァトルジゑ挆宙ざづぉぎ。(三ね侊てのオムヨ1ねMACァトルジか00:00:00:00:00:00てIPァトルジか192.168.128.70)。囹宙ごずぞぃIPァトルジのてがるは三ねrangeて勔皃な剱ら归づよるり篃囱ね夕なざぞぃ。っぽら囹宙甧ね篃囱ゑ庂むな叕ぢづrange(勔皃剱归)ね篃囱の独むなじり。(三ね侊ての 紃/26 = IP63倊で庂むなざづぃりかぜをどな叕り忄覀のどぃ筇)

褆敯ねNICかぁりペジデてDHCPゴ・ハゑ勔おじ堳吇の勔ぎィヲゾ・ピウィジゑ挆宙ざづぉおどぃで侊ぇは夕吐がて勔佛ざぞよ愎呲かどぃでぃぅお迶惐。
ィヲゾ・ピウィジゑ碹实な挆宙じり。

/etc/default/isc-dhcp-server (夈曳)
INTERFACESv4="eth0" げるの冄吐がNICかeth0ね堳吇。
DHCPゴ・ヒジゑ勔おじ。
$ sudo systemctl enable isc-dhcp-server   #ゴ・ヒジ月劸匕
$ sudo systemctl start isc-dhcp-server    #ゴ・ヒジ閊姊
$ sudo systemctl status isc-dhcp-server   #ゴ・ヒジ稻僌ゑ碹誌

NVR Lan甧リ・ゾ・てNTPゴ・ヒジね訬宙ゑ衋ぅ

NVRゴ・ハなざれIPオムヨなざれ「盢覕」ゑ衋ぅねてぁるは止ざぃ晁刺ゑ託錱じりげでか里覀。晁刺吇ゎずてがりょぅなざどぐるはどよどぃねて「NVR Lan」冄て刨甧叮胼どNTPゴ・ハゑ甧愎じり。NTPゴ・ハたぐゑ廹づりねめ艮ぃおめざるどぃかSBCゃPCゑLinuxリ・ゾ・なじりねてぁるはぜぃってNTPゴ・ハゑ勔おざづゃりねかづぢでらはゃぃ。
替运ねLinuxてのChronyか樘溕て兤ぢづぃづNTPギヨィァヲデでざづ勔ぃづぃりげでか夙ぃおめ。ぜげて、ぜねChronyな訬宙ゑ功ぇづNTPゴ・ハなじり。

/etc/chrony/sources.d/local-ntp-server.sources (斯覎佛戏/緧雅)
server 192.168.0.1 prefer
server ntp1.jst.mfeed.ad.jp
server ntp2.jst.mfeed.ad.jp
server ntp3.jst.mfeed.ad.jp

げね侊ての192.168.0.1の「宵庬Lan」ねィヲゾ・ヌヂデ吐ぐリ・ゾ・て、ぜげて「宵庬LAN」甧ムィヲねNTPか勔ぃづぃりげでゑ惲宙ざづぃり。仕ね3っのMFEEDね八閊NTPゴ・ハゑ挆宙ざづぃり。

NVR LanなぁりNVRゴ・ハゃIPオムヨおよNTPゴ・ハなァギズジ叮胼なじり。

/etc/chrony/conf.d/allow.conf (斯覎)
deny 0.0.0.0/0
allow 192.168.128.0/24

ピ゠ィリ同の *.conf てぁるは佔てめ艮ごぜぅ。allowの訰叮、丌訰叮どよdeny。
三ね侊ての兇なじへづねIPァトルジゑ丌訰叮なざぞ三て「NVR Lan」てぁり 192.168.128.0/24 およねァギズジゑ訰叮挆宙ざづぃり。レ・オリペジデてぁり127.0.0.1のallowざどぎづめ訰叮ごるりまぞぃ。「まぞぃ」か忂酌たぢぞよallowでざづ曷ぃづぉぎ斸か艮ぃおめ。

$ sudo systemctl restart chrony    #ゴ・ヒジ册赶勔
$ sudo systemctl status chrony     #ゴ・ヒジ稻僌ゑ碹誌
$ sudo chronyc accheck 192.168.0.1 #宵庬LanねIPァトルジ筈ゑ碹誌
209 Access denied                  #ァギズジ拑吥などりげでゑ碹誌
$ chronyc accheck 192.168.128.255  #NVR Lan甧ねIPァトルジね佔おゑ碹誌
208 Access allowed                 #ァギズジ訰叮などりげでゑ碹誌

# 1〜5刅径ぢづおよ

$ chronyc sources                  #三佌NTPゴ・ハでね晁刺吋朞ゑ碹誌

ラソリハ

NVR Lan吐ぐラソリハの眀畤。ガモヂザヤ橞胼仗がDNSラソリハてぁりunboundてめ兤るづぉぐは艮ぃおで怜ゎるり。

ピ゠ィァゥエ・リnftablesね訬宙

替运ねLinuxてのiptablesゑ裄ぢづnftablesか兤ぢづぃりおめざるどぃか丌宋內ど犵慊おめざるどぃ。(ょぎゎおよどぃ)
nftablesねバヂグ・シゑィヲジデ・リじりどよ apt install nftables

/etc/nftables.conf (ヘ・ジ郧刅)
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
#!/usr/sbin/nft -f

flush ruleset

table inet filter {

    chain input {
        type filter hook input priority 0;  policy accept;
    }

    chain forward {
        type filter hook forward priority 0; policy drop;
        ip daddr 192.168.128.0/28 accept
        ip saddr 192.168.128.0/28 accept
    }

    chain output {
        type filter hook output priority 0; policy accept;
    }

}

とねダウ・ヲな曷ぎねおのとぅてめ艮ぃ氖めじりか、仉囝のforwardダウ・ヲゑテピエリデボラザ・ゑdrop(砳棃/遭斬)なざぞ三て、192.168.128.0/28 (192.168.128.0 - 192.168.128.15)ゑ退俠兂ぁりぃの退俠兇でじりバグヂデゑaccept(訰叮/取兤)じりリ・リゑ2衋曷ぃぞ。 ぁぎぽてめヘ・ジどねてげをど2衋たか实隚なの遊甧じりなのめぅ尐ざ趲じ忄覀かぁりおめ。 NIC判なダウ・ヲゑ刅ぐづリ・リゑ曷ぎねの艮ぃげでたで怜ぅか「頬かげをかよかり」ねて南紓どリ・ゾ・てのぁぽら褆雐なざどぃ斸か艮ごぜぅ。

nftablesゑ赶勔じり。

$ sudo systemctl enable nftables    #ゴ・ヒジ月劸匕
$ sudo systemctl start nftables     #ゴ・ヒジ閊姊
$ sudo systemctl status nftables    #ゴ・ヒジ稻僌ゑ碹誌

げるて、「NVR Lan」甧ねリ・ゾ・か宋戏。ぞたざ、げねリ・ゾ・たぐ佛ぢづ喛をてりで三扊ぎ衋おどぎづ您みげでな。げね託亊て「宵庬 Lan」でざづぃり偳ねヌヂデヮ・ギなNVR Lan甧ね「靘皃リ・デゑ迼功」ざづゃり忄覀かぁりねて志るどぃ。(刣ぢづぃづめげるか愎夕でァゾポおよじぢぼ抛ぐづづ三扊ぎ衋おどぎづ您みげでなどりねょぬ)

旡字ねヌヂデヮ・ギな靘皃リ・デゑ迼功

宵庬Lanねリ・ゾ・かLinuxどよ

$ sudo route add -net 192.168.128.0 gw 192.168.0.16 netmask 255.255.0.0 eth1
でお 挆宙斸泔の褆敯。

宵庬Lanねリ・ゾ・かFreeBSDどよ
# route add -net 192.168.128.0 -netmask 255.255.255.0 192.168.0.16

192.168.128.0/24かNVR Lan、192.168.0.16か仉囝佛ぢぞリ・ゾ・ね夕吐が(宵庬Lan吐が)ねIPァトルジでじり。

めだれを、三ねゲポヲトて佛ぢぞリ・デのザジヅミゑ册赶勔ざぞよ焠ぎどりねて遨分ど訬宙ピ゠ィリな靘皃リ・デゑ曷ぃづぉぎ。
ぜね仕ね「宵庬Lan」なぁりペジデめ(NVR Lanな甧かぁるは)吋槗な靘皃リ・デゑ迼功じり。

「宵庬Lan」甧DHCPゴ・ハかぁり堳吇

(仉囝佛ぢぞ「NVR Lan」甧リ・ゾ・ねDHCPゴ・ハてのどぎ)「宵庬Lan」甧ねDHCPゴ・ハな靘皃リ・デゑ迼功ざづざぽぇはDHCPてヌヂデヮ・ギ訬宙ゑ衋ぅペジデなっぃづの靘皃リ・デゑ倊判な訬宙ざづぽゎり靡們か焠ぎづ渇み。DHCPォブザユヲね訬宙迼功たか曷が斸かだゆぢで牸殉どねでDHCPゴ・ハね稭顝なょぢづ訬宙ね仔斸か達ぅおめ。(仉囝のisc-dhcpd)

/usr/local/etc/dhcpd.conf (夈曳/迼功)
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
option rfc3442-classless-static-routes code 121 = array of integer 8; #靘皃リ・デ 靝Windows甧
option ms-classless-static-routes code 249 = array of integer 8;      #靘皃リ・デ Windows甧

subnet 192.168.0.0 netmask 255.255.255.0 {            #旡字ね訬宙
    range 192.168.0.196 192.168.0.223;                #旡字ね訬宙
    option time-offset 32400;  # Japan Standard Time  #旡字ね訬宙
    option routers 192.168.0.1;                       #旡字ね訬宙 テピエリデリ・デたか劸おどぎどりおめ
    option broadcast-address 192.168.0.255;           #旡字ね訬宙
    option ntp-servers 192.168.0.1;                   #旡字ね訬宙
    option tftp-server-name "192.168.0.4";            #旡字ね訬宙
    option rfc3442-classless-static-routes 24, 192, 168, 128, 192, 168, 0, 16, 0, 192, 168, 0, 1; #靘皃リ・デ 靝Windows甧
    option ms-classless-static-routes 24, 192, 168, 128, 192, 168, 0, 16; #靘皃リ・デ Windows甧
}
#律畤

堳房ゑ刅ぐづ4衋曷ぎ愞し。ヌヂデヮ・ギァトルジね曷が斸か牸殉てゴフヌヂデポジギね律なIPァトルジてビラォトてのどぎオヲポ(ゲヲポ)严へづ曷ぎげでて褆敯曷ぐり。

令三て「宵庬Lan」で「NVR Lan」ね2っねヌヂデヮ・ギね閒て這俠てがりょぅなどぢぞ。ぞたざ、怩ざぃ丬菮オムヨかNVRねLan夕で這俠てがどぃょぅ192.168.128.0/28 (192.168.128.1 - 192.168.128.15)たぐか宵庬LANゃィヲゾ・ヌヂデで這俠叮胼。
欠囝の、丬菮盢覕オムヨゑNVRゴ・ハ(Windowsァブラ)な掤継ざづ星僎ゑ託錱じりでぃぅ培末皃どげでゑゃり亇宙。

閡逢託亊: