以下のコマンドでSNTPサーバを立てられるようです。
schedule at 1 */* *:00 * ntpdate ntp.nict.jp sntpd service on sntpd host lan
毎日0時にNICTのNTPサーバと同期して、LAN内のNTPクライアントからリクエストがあった場合は時刻を返します。
参考サイト
うつくしくいきたい:ヤマハルータ(RTX810)で時刻合わせ – livedoor Blog(ブログ)
38.1 スケジュールの設定
SNTPサーバー機能
以下のコマンドでSNTPサーバを立てられるようです。
schedule at 1 */* *:00 * ntpdate ntp.nict.jp sntpd service on sntpd host lan
毎日0時にNICTのNTPサーバと同期して、LAN内のNTPクライアントからリクエストがあった場合は時刻を返します。
参考サイト
うつくしくいきたい:ヤマハルータ(RTX810)で時刻合わせ – livedoor Blog(ブログ)
38.1 スケジュールの設定
SNTPサーバー機能
RTX1200でL2TPなVPNを繋げるようにしているのですがiPhone, Android, MAC OSXからは繋げるのにWindows10からは繋げない事があったので対策方法をメモしておきます。
現象としてはWindows7では正常に繋げたがWindows10アップグレード後に繋げなくなった感じです。
以下、対応手順です。
これで通常通りタスクトレイ内にあるネットワークインターネットアクセスよりVPNを選択して接続します。
多分、繋げると思います・・・
PCやサーバの時間合わせにntpdateを通常用いますが、80番と443番しか外部接続を許されないネットワークだとNTPが使えない事があります。そんな時にNTPの代替としてWEBサーバの時間を元にマシンの時間を合わせるコマンドが”htpdate”です。
仕組はHTTPのレスポンスヘッダに含まれる”Date”を元にソコソコ正確な時間を取得してOSの時間を設定します。
とても単純明快で清々しいくらいです。
例えばこのサーバだと、このようなレスポンスヘッダが帰ってきます。
この中の「Date: Wed, 08 Apr 2015 11:35:10 GMT」がサーバの時間となります。
HTTP/1.1 200 OK Date: Wed, 08 Apr 2015 11:35:10 GMT Server: Apache/2.2.3 (CentOS) Last-Modified: Fri, 29 Jun 2012 10:40:46 GMT ETag: "16e07e-5-4c39a14ab6780" Accept-Ranges: bytes Content-Length: 5 Connection: close Content-Type: text/html
# vi htpdate.go
package main
import (
"os"
"fmt"
"time"
"syscall"
"net/http"
)
// HTTPサーバへアクセスしてヘッダーからアクセス日時を取得する関数
func get_http_date(url string) (string, error) {
response, err := http.Get(url)
if err != nil { return "", err }
access_time := response.Header.Get("Date")
return access_time, nil
}
// 引数として受け取ったUNIXタイムをOSの時間に設定する関数
func settime(sec int64, usec int64) error {
tv := syscall.Timeval{ Sec: sec, Usec: usec }
return os.NewSyscallError("settimeofday", syscall.Settimeofday(&tv))
}
func main() {
if len(os.Args) > 1 {
// とりあえずHTTPサーバを1個だけ引数に受け取る
host_name := os.Args[1]
target_url := "http://" + host_name
// HTTPサーバからアクセス日時を取得
access_time, err := get_http_date(target_url)
if err != nil {
fmt.Fprintln(os.Stderr, "Failed to access the HTTP server.")
os.Exit(1)
}
// 取得した時間をパーズする
server_time, err := time.Parse(time.RFC1123, access_time)
if err != nil {
fmt.Fprintln(os.Stderr, "Time of format is not a RFC1123.")
os.Exit(1)
}
// 取得した時間をOSの時間として設定する
if err := settime(server_time.Unix(), 0); err != nil {
fmt.Fprintln(os.Stderr, "Failed to set the date and time.")
os.Exit(1)
}
fmt.Println(time.Now())
os.Exit(0)
} else {
fmt.Fprintln(os.Stderr, "Please set the HTTP server to argument.")
os.Exit(1)
}
}
実行してみると時間が設定される事が分かるはずです。
# go run htpdate.go orsx.net
2015-04-08 21:05:18.000046645 +0900 JST
Proxyなどは対応していませんがGo言語を勉強するうえで良い教材になりそうな気がしたので簡単に実装してみました。
[HTTP Time Protocol / htpdate] Webプロキシを経由して時刻を同期するの巻 – TrippyBoyの愉快な日々
Introduction | HTTP Time Protocol
CentOS7がリリースされましたのでネットワークについて若干メモを残しておきます。
CentOS6以前は以下のコマンドでIPアドレスを確認していました
# ifconfig
CentOS7以降は以下のコマンドを使うようになるみたいです
# ip addr show
CentOS6以前は以下のコマンドを使用してネットワークやIPアドレスの設定をしていました
# system-config-network
CentOS7以降は以下のコマンドを使用してネットワークやIPアドレスの設定を行うようです
対話式の場合
# nmtui
コマンドラインベース
# nmcli
データベースにIPアドレスを格納する時は整数型にしたほうがブロックで検索出来たりと後々取り扱いが楽だったりするので変換する変換方法を書いてみる
#!/usr/bin/perl
use utf8;
use strict;
use warnings;
my $addr_i = &addr_s_to_i("192.168.1.1");
my $addr_s = &addr_i_to_s($addr_i);
print "INTEGER:" . $addr_i . "\n";
print "STRING :" . $addr_s . "\n";
# IPアドレスを文字列型から整数型に変換
sub addr_s_to_i {
my $addr = shift;
# "."ごとに8bitずつ区切りそれを2進数に変換し配列に入れる
my @addrs;
foreach my $addr_split (split('\.', $addr)){
push(@addrs, sprintf("%08b", $addr_split));
}
# 区切った2進数を連結する
my $bin = join('', @addrs);
# 2進数を10進数に変換
my $result = oct('0b' . $bin);
return $result;
}
# IPアドレスを整数型から文字列型に変換
sub addr_i_to_s {
my $addr = shift;
# 10進数を32bitの2進数に変換
my $bin = sprintf("%032b", $addr);
# 2進数を8bitごとに区切り10進数に変換し配列に入れる
my @addrs;
foreach my $addr_split ($bin =~ m/.{8}/g){
push(@addrs, oct('0b' . $addr_split));
}
# "."ごとに区切り連結する
my $result = join('.', @addrs);
return $result;
}
実行結果
INTEGER:3232235777
STRING :192.168.1.1
我が家ではRT58iを長い間利用しておりましたが、いい加減Gigabit対応していこうと今回、RTX1200を購入しました。
NVR500と悩んだ結果、PCと違い長い間お世話になることを考えると少しでもいいものを購入しておいたほうが後で後悔しないだろうということでこちらを買いました。
過去、何処は言えませんがとあるメーカーの安いルータを使用したところ我が家の過酷な環境に耐えられなく数ヶ月で壊れるという事件も起きましたので・・・
RT58iは、そのような我が家の環境でも故障もトラブルも一度も発生させずに長いこと利用できていました。
そんな訳で、YAMAHAのルータは素晴らしいです。
あ、えーっと。この子のお値段は聞かないでください。気がついたらお財布の中が空になってしましました。。。
設定は色々前回のルータから引き継ぎなら下記のようにしてみました。
我が家では固定8IPで運用しております。そのため一般家庭の方は参考にできない部分もあるかもしれませんが・・・・
VPNやNATやFWの設定はもしかすると必要とする人がいるかもしれないと期待して公開してみます。
VPNに関しては下記の環境で正常に動作することを確認しました。
PTPPは、Windows7、OS X Mountain Lion、iOS6.1.2
L2TPは、OS X Mountain Lion、iOS5.0、Android4.0.4
※ L2TPに関してはiOS6.1.2で接続が解除される問題が発生しており現在調査中です。
※ VPNをつないだ状態でWOLを送る事も可能にしております。
リセットの仕方
全面に付いている全て(3箇所)のボタンを同時に押しで電源を入れ完全に起動後に離すことでハードリセットを行うことが可能です。
administrator password * security class 1 on off off ip route default gateway pp 1 ip lan1 address 192.168.100.1/24 ip lan1 proxyarp on ip lan1 secure filter in 100000 100001 100002 100003 100004 100005 190099 ip lan1 wol relay broadcast ip lan2 nat descriptor 1 pp select 1 pp always-on on pppoe use lan2 pppoe auto disconnect off pp auth accept chap pp auth myname USERID PASSWORD ppp lcp mru on 1454 ppp ipcp msext on ip pp secure filter in 200000 200001 200002 200003 200008 200009 200010 200011 200012 200013 200014 200015 200016 210000 210001 210002 210003 210004 220000 220001 220002 220003 220004 220005 220006 220007 220008 220009 220010 220011 220012 220013 220014 230000 ip pp secure filter out 200004 200005 200006 200007 200008 200009 200010 200011 200012 200013 290099 dynamic 230098 230099 ip pp intrusion detection in on reject=on ip pp intrusion detection out on reject=on ip pp nat descriptor 1 pp enable 1 pp select anonymous pp bind tunnel1-tunnel2 pp auth request mschap-v2 pp auth username USERID PASSWROD ppp ipcp ipaddress on ppp ipcp msext on ppp ccp type mppe-any ip pp remote address pool 192.168.100.90-192.168.100.99 ip pp mtu 1258 pp enable anonymous tunnel select 1 tunnel encapsulation l2tp ipsec tunnel 101 ipsec sa policy 101 1 esp aes-cbc sha-hmac ipsec ike keepalive use 1 off ipsec ike local address 1 192.168.100.1 ipsec ike nat-traversal 1 on ipsec ike payload type 1 3 ipsec ike pre-shared-key 1 text PASSWROD ipsec ike remote address 1 any l2tp tunnel disconnect time off l2tp keepalive use on 10 3 l2tp keepalive log on l2tp syslog on ip tunnel tcp mss limit auto tunnel enable 1 tunnel select 2 tunnel encapsulation pptp pptp tunnel disconnect time off tunnel enable 2 ip filter 100000 reject * * udp,tcp 135 * ip filter 100001 reject * * udp,tcp * 135 ip filter 100002 reject * * udp,tcp netbios_ns-netbios_dgm * ip filter 100003 reject * * udp,tcp * netbios_ns-netbios_dgm ip filter 100004 reject * * udp,tcp netbios_ssn * ip filter 100005 reject * * udp,tcp * netbios_ssn ip filter 100006 reject * * udp,tcp 445 * ip filter 100007 reject * * udp,tcp * 445 ip filter 190099 pass * * * * * ip filter 200000 reject * 192.168.100.200/29 icmp * * ip filter 200001 reject 172.16.0.0/12 * * * * ip filter 200002 reject 192.168.0.0/16 * * * * ip filter 200003 reject 192.168.100.0/24 * * * * ip filter 200004 reject * 10.0.0.0/8 * * * ip filter 200005 reject * 172.16.0.0/12 * * * ip filter 200006 reject * 192.168.0.0/16 * * * ip filter 200007 reject * 192.168.100.0/24 * * * ip filter 200008 reject * * udp,tcp 135 * ip filter 200009 reject * * udp,tcp * 135 ip filter 200010 reject * * udp,tcp netbios_ns-netbios_ssn * ip filter 200011 reject * * udp,tcp * netbios_ns-netbios_ssn ip filter 200012 reject * * udp,tcp 445 * ip filter 200013 reject * * udp,tcp * 445 ip filter 200014 pass * * icmp * * ip filter 200015 pass * * established * * ip filter 200016 pass * * tcp * ident ip filter 210000 pass * 192.168.100.1 esp * * ip filter 210001 pass * 192.168.100.1 gre * * ip filter 210002 pass * 192.168.100.1 udp * 500 ip filter 210003 pass * 192.168.100.1 tcp * 1723 ip filter 210004 pass * 192.168.100.1 udp * 4500 ip filter 220000 pass * 192.168.100.100/29 tcp * ftpdata ip filter 220001 pass * 192.168.100.100/29 tcp * ftpdata ip filter 220002 pass * 192.168.100.100/29 tcp * 21 ip filter 220003 pass * 192.168.100.100/29 tcp * 22 ip filter 220004 pass * 192.168.100.100/29 tcp * telnet ip filter 220005 pass * 192.168.100.100/29 tcp * smtp ip filter 220006 pass * 192.168.100.100/29 tcp * domain ip filter 220007 pass * 192.168.100.100/29 tcp * 57 ip filter 220008 pass * 192.168.100.100/29 tcp * 58 ip filter 220009 pass * 192.168.100.100/29 tcp * www ip filter 220010 pass * 192.168.100.100/29 tcp * pop3 ip filter 220011 pass * 192.168.100.100/29 tcp * ntp ip filter 220012 pass * 192.168.100.100/29 tcp * imap2 ip filter 220013 pass * 192.168.100.100/29 tcp * https ip filter 220014 pass * 192.168.100.100/29 tcp * 587 ip filter 290099 pass * * * * * ip filter dynamic 230098 * * tcp ip filter dynamic 230099 * * udp nat descriptor type 1 nat-masquerade nat descriptor address outer 1 A.B.C.0-A.B.C.7 nat descriptor static 1 1 A.B.C.1=192.168.100.101 7 nat descriptor masquerade static 1 1 192.168.100.1 gre nat descriptor masquerade static 1 2 192.168.100.1 tcp 1723 nat descriptor masquerade static 1 3 192.168.100.1 esp nat descriptor masquerade static 1 4 192.168.100.1 udp 500 nat descriptor masquerade static 1 5 192.168.100.1 udp 4500 ipsec auto refresh on ipsec transport 1 101 udp 1701 syslog notice on syslog debug on dhcp service server dhcp server rfc2131 compliant except remain-silent dhcp scope 1 192.168.100.2-192.168.100.90/24 dns server pp 1 schedule at 1 */* 00:00 * ntpdate ntp.nc.u-tokyo.ac.jp pptp service on l2tp service on
YAMAHAルータの利用者が増えるといいですね。
最近のコメント