それマグで!

知識はカップより、マグでゆっくり頂きます。 takuya_1stのブログ

習慣に早くから配慮した者は、 おそらく人生の実りも大きい。

network

OpenWRTでパケットをマークして許可する(ポリシールーティング)

WEB-UI ( Luci )を使った場合 Luci で ip rule を作って ip route テーブルを作ることはできる。 前回やったコマンドからのポリシールーティングをLuCI(WEB)経由でやる話です。 やることは次の通り。 nftables でマークを扱う。 マーク済パケットをAccept…

nft で指定位置にinsert する

nft で指定位置にinsert する 既存のルールが次のようになっているとき table inet fw4 { chain forward { # handle 2 type filter hook forward priority filter; policy drop; $EXISTS_RULE # handle 2340 $EXISTS_RULE # handle 2341 $EXISTS_RULE # hand…

nftablesのfowardが記述が大量になる問題。

nftablesのテーブルのルールがあふれる どんなに整理しても、既存のforward テーブルがあふれかえることは避けられない。 細かく条件を入れればいれるほど、forward テーブルに処理が集中してしまい、結局のところiptables時代と何も変わらない気がします。 …

nftablesでaccept後のdropにマッチを回避できない。

nftablesでacceptとdropにマッチするとdropになる問題 nftablesを使ってると、accept しても他のテーブルでreject(drop)されてしまうことがある。 複数テーブルでaccept と dropが混合しちゃう 例えば、tableAとtableBにforwardの許可設定を書くわけよ。tabl…

nftables で、パケットが該当ルールに届いているかチェックする方法

nftables で、パケットが該当ルールに来ているかチェックする方法 パケットの行先が不明のとき、どこまでマッチしているか調べる必要がある。このときcounter を使うのが一番簡単。 例えば、Google(v6) 宛のパケットを探したい 次のように、ターゲットとなる…

ssh で v6 アドレスをv4 へポートフォワーディング

ssh で v6 アドレスをv4 へポートフォワーディングを試してみた。 ssh で v4-v4 のポートフォワーディング ssh my-server -L8080:192.168.1.1:80 ssh で v4-v6 のポートフォワーディング v4 のときと同じで、v6 アドレスを [::1] のように[ ] で囲むだけ。 s…

nft によるMSQUERADE(iptables MASQUERADEからの移行)

nft によるMSQUERADE(iptables MASQUERADEからの移行) iptablesでマスカレード(またはSNAT)は古くから行われている枯れた手法。これをnft(nftables)に書き換える場合のメモ 次のような、マスカレード(NAT)をiptablesで追記しているとする。 iptables -…

NTT フレッツ HGW(RP-500MI)のvpnサーバーに iOS/iPhoneからつなぐ

NTT のホームゲートウェイのVPNサーバー設定 NTTのホームゲートウェイにはVPNサーバ機能がついている機種があり(PR-500系)、L2TP/IPsecで接続することができる。 ユーザを作って、共有鍵を取得しておく iOSのVPN画面から 接続先・ユーザ名・パスワード・IP…

L2TP/ipsecのvpnサーバーに OpenWrt からつなぐ

OpenWrt からL2TP/IPsecにつなぐ 接続相手は、NTT フレッツ HGW(RP-500MI)のVPNサーバー。 基本的にはNTTのHGWにUbuntuでL2TP/IPSecで繋いだのと同じ法 インストール opkg install xlt2ptd strongswan 動作確認したときのインストール状態 strongswanは次の…

NTT フレッツ HGW(RP-500MI)のvpnサーバーに ubuntu からつなぐ

NTT フレッツ HGW(RP-500MI)のvpnサーバーに ubuntu からつなぐ NTT が提供する ホームゲートウェイ・光コンバータ一・ひかり電話の一体型機器にはVPNサーバー機能がある。 NTT 東 https://web116.jp/shop/hikari_r/guide/500ki/1-r/m01_m35.html NTT西 http…

xl2tpd でサーバ&クライアントを作り、PPP通信をする(IPSecなし)

L2TP/IPsec について L2TP/IPSec と一言でいっても、Linux上では、次の3つの機能によって成り立ってる。 ipsec ( ikev1 ) xl2tpd pppd このうち、xl2tpd + pppd はペアで1つのPPP接続(≒vpn)を作る、ipsecは暗号化である。ipsecで指定したIP/ポートを暗号化…

パケットがipsecトンネルに入るか否かを確認する。(l2tp/ipsc)

パケットがトンネルに入るか否かを確認する。 xl2tpd / ipsec で ipsec と l2tpd が併せて語られる記事をいっぱい見かけたけど、ipsec は ipsec で単体で、独立して動作しているよね?って思ったので、念のための念のために確認した。 ipsec を準備する 2台…

iptablesでソース ルーティング(入ってきたインタフェースから返す)

入ってきたNICから戻らない。 listen 0.0.0.0 していると、入ってきたパケットが応答で出ていくとき、別の経路を通ってしまう。 TCPならコネクション状態でなんとかなるが、UDPなら如何ともしがたい。これを単純になんとかしたい。 今回はWireguardで別経路…

UDPにコネクション・ステートはあるのか?

UDP にコネクションはあるのか UDPはステートレスと、教科書では習うが。実際にはUDPはステートがある。 conntack で見てもわかるのですが。ss でパケットがESTABLISHEDになってたりする。 実験環境 最初に実験環境を整理しておく ネットワーク構成を作る。 …

nftablesでルールを追加したら、Operation not supported になる

nftablesでruleを追加してたら、時々遭遇するこの記述である。 Error: Could not process rule: Operation not supported になるのは、type nat のルールを type filter に入れたとき 再現例 filter に snat を入れる # filter を作る nft add table sample …

nftables output チェイン(hook)ルーティングができない。-> type routeする

nftablesでルーティングが効かかないことがあった。 ポリシ・ルーティングをしていて、ルーティングされないので頭を悩ませてた。しらべたら、 type routeを使うのが必須であった。 パケットを転送するときは、ポリシルーティングが効く、しかし、ルーティン…

linuxのnftables(nft)でルータ機能を作る

linuxで単純なルータ機能を作る マスカレードやDNAT/SNATをして、ルータ機能を作ってみる。 先のiptablesと比較してnft でどうなるのかを見たいので、試した。 ネットワーク構成図 以下のようなネットワーク構成を作る 実際に作った構成 ipコマンドには netn…

linuxのiptablesでルータを作る

iptablesでルータを作る Ubuntu Linuxでiptablesを使って、ネットワークの練習をする。WEBサイトに潤沢な検索結果があってとくにメモを残してない。 いつもiptablesを検索し直してて非効率なので、ここらで一旦まとめ直しておく。 今回は、lxc ホストと ip n…

ipコマンドでMAC アドレスを変更する

MAC Addressを変更したい 一時的にMacAddressを変更したいとき。 INF=enp1s0f0 sudo ip link set dev $INF down sudo ip link set dev $INF address 6c:4b:90:d8:c3:39 sudo ip link set dev $INF up 一時的に変更できたら問題解決ってことが多いと思う。 ip…

systemdでネットワーク待ちを何とかする。Failed to start Wait for Network to be Configured.

ubuntu が起動時にエラーを吐いてネットワーク待ちで時間がかかる。 Failed to start Wait for Network to be Configured. ネットワークを見てみる。 基本的に、networkdに管理させてないが、念のために確認する。 takuya@:~$ networkctl IDX LINK TYPE OPER…

Windowsでローカルドメイン名を使いたい

ホスト名の指定だけでIPがわかるようにしたい DHCPサーバーとDNSサーバーに、ローカルドメイン名は設定済み windowsでも名前解決をしたい ホスト名だけで行けそう ping ホスト名で、検索されてIPアドレスが分かるようになった。

linux でローカルドメイン名を使いたい。

linux(ubuntu/debian)ローカルドメインを使いたい ローカルドメイン名は基本的に、resolv.confを使います。 resolv.conf domain lan search lan nameserver 127.0.0.1 search を書けば別ホスト名を探しに行くとき、suffixを入れてくれます。 domain を書けば…

macOSでもローカルドメインが使いたい

macOSでもローカルドメインが使いたい mac の場合、次のコマンドでサクッと作れる。 networksetup -listallnetworkservices networksetup -setsearchdomains wg0 example.lan. networksetup -getsearchdomains wg0 example.lan. 設定からもできる。 macOSの…

wireguardでVPN先のローカルドメインを参照する

wireguard接続時ローカルドメインをつかいたい できます。 wireguardの接続設定を書きます。 DNS=192.168.1.1, local2 , lan3 , example.tld DNSのあとに、カンマ区切りで列挙すると、ローカルドメインとして機能します。 記入例 参考資料 https://rakhesh.c…

unboundでローカルPCの名前解決する。ローカルドメインの名前を解決したい

unbound でローカルPCの名前を解決 unboundはroot.hint から調べるけど、ローカルPCについては除外したい。 ローカルなドメイン名だけローカルPCの名前を解決したい。 127.0.0.1 で unboundが listen してるとして 外部向けは、rootから dig dns.google @127…

debianで br0 にIPアドレスを2つ割り当てる。

debian で br0 をつくり、IPを複数割り当てたい。 debian で eth0 を bridge にして bridge に複数のIPを割り当てて行ききたい 完成形をこんな感じにする takuya@:~$ ip a br0 br0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue state UP group default qlen 1000 link/ether be</broadcast,multicast,up,lower_up>…

linuxのipコマンドでgretap を作って通信してみる

gretap を作る GRE Tap でイーサネット・フレームを転送するVPNを作ってみたい。 wg0 でL2-VPNはできると思う。 wg に L2-VPN機能がないので、 wg 上に ip bridge で gre tap を構成すればいい。 wireguardではL2はサポートされていなので、WG上にGRETAPでL2…

iproute2を使ってARPエントリ(arpテーブルarpキャッシュ)を表示する

ip コマンドを使って arp キャッシュを表示する arp コマンドが無い。 L2のARPのキャッシュを表示するのは、arp コマンドを使うが、現代では初期インストールされていない。 ip neigh を使う。 ip neigh を使ってneighbor(近隣)を調べられる。arp は無いが代…

wireguardのパケットサイズとMTUの値。

MTUの値 wireguard のMTUの値を調べた。 1420 = ip6 to ip6 で wireguardしたとき 1440 = ip4 to ip4 で wireguardしたとき パケットはこんな感じになりますね。 wireguardのパケットについては IP以外に、40バイトを使います。 https://lists.zx2c4.com/pip…

wireguardのwg-quickにルーティング・テーブルを触らせない。Table=off

wireguard は便利なんだけどwg-quickに問題が。 wireguard は手軽でそこそこ速く、使いやすい。iOSからも使えるので、ここ一年CellularData通信は、ずっとwireguardしてる。 ほとんどの人は、wg-quick を使ってると思う。でも、私は今まで使ってない。 wg-qu…