network
WEB-UI ( Luci )を使った場合 Luci で ip rule を作って ip route テーブルを作ることはできる。 前回やったコマンドからのポリシールーティングをLuCI(WEB)経由でやる話です。 やることは次の通り。 nftables でマークを扱う。 マーク済パケットをAccept…
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のテーブルのルールがあふれる どんなに整理しても、既存のforward テーブルがあふれかえることは避けられない。 細かく条件を入れればいれるほど、forward テーブルに処理が集中してしまい、結局のところiptables時代と何も変わらない気がします。 …
nftablesでacceptとdropにマッチするとdropになる問題 nftablesを使ってると、accept しても他のテーブルでreject(drop)されてしまうことがある。 複数テーブルでaccept と dropが混合しちゃう 例えば、tableAとtableBにforwardの許可設定を書くわけよ。tabl…
nftables で、パケットが該当ルールに来ているかチェックする方法 パケットの行先が不明のとき、どこまでマッチしているか調べる必要がある。このときcounter を使うのが一番簡単。 例えば、Google(v6) 宛のパケットを探したい 次のように、ターゲットとなる…
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からの移行) iptablesでマスカレード(またはSNAT)は古くから行われている枯れた手法。これをnft(nftables)に書き換える場合のメモ 次のような、マスカレード(NAT)をiptablesで追記しているとする。 iptables -…
NTT のホームゲートウェイのVPNサーバー設定 NTTのホームゲートウェイにはVPNサーバ機能がついている機種があり(PR-500系)、L2TP/IPsecで接続することができる。 ユーザを作って、共有鍵を取得しておく iOSのVPN画面から 接続先・ユーザ名・パスワード・IP…
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 が提供する ホームゲートウェイ・光コンバータ一・ひかり電話の一体型機器にはVPNサーバー機能がある。 NTT 東 https://web116.jp/shop/hikari_r/guide/500ki/1-r/m01_m35.html NTT西 http…
L2TP/IPsec について L2TP/IPSec と一言でいっても、Linux上では、次の3つの機能によって成り立ってる。 ipsec ( ikev1 ) xl2tpd pppd このうち、xl2tpd + pppd はペアで1つのPPP接続(≒vpn)を作る、ipsecは暗号化である。ipsecで指定したIP/ポートを暗号化…
パケットがトンネルに入るか否かを確認する。 xl2tpd / ipsec で ipsec と l2tpd が併せて語られる記事をいっぱい見かけたけど、ipsec は ipsec で単体で、独立して動作しているよね?って思ったので、念のための念のために確認した。 ipsec を準備する 2台…
入ってきたNICから戻らない。 listen 0.0.0.0 していると、入ってきたパケットが応答で出ていくとき、別の経路を通ってしまう。 TCPならコネクション状態でなんとかなるが、UDPなら如何ともしがたい。これを単純になんとかしたい。 今回はWireguardで別経路…
UDP にコネクションはあるのか UDPはステートレスと、教科書では習うが。実際にはUDPはステートがある。 conntack で見てもわかるのですが。ss でパケットがESTABLISHEDになってたりする。 実験環境 最初に実験環境を整理しておく ネットワーク構成を作る。 …
nftablesでruleを追加してたら、時々遭遇するこの記述である。 Error: Could not process rule: Operation not supported になるのは、type nat のルールを type filter に入れたとき 再現例 filter に snat を入れる # filter を作る nft add table sample …
nftablesでルーティングが効かかないことがあった。 ポリシ・ルーティングをしていて、ルーティングされないので頭を悩ませてた。しらべたら、 type routeを使うのが必須であった。 パケットを転送するときは、ポリシルーティングが効く、しかし、ルーティン…
linuxで単純なルータ機能を作る マスカレードやDNAT/SNATをして、ルータ機能を作ってみる。 先のiptablesと比較してnft でどうなるのかを見たいので、試した。 ネットワーク構成図 以下のようなネットワーク構成を作る 実際に作った構成 ipコマンドには netn…
iptablesでルータを作る Ubuntu Linuxでiptablesを使って、ネットワークの練習をする。WEBサイトに潤沢な検索結果があってとくにメモを残してない。 いつもiptablesを検索し直してて非効率なので、ここらで一旦まとめ直しておく。 今回は、lxc ホストと ip n…
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…
ubuntu が起動時にエラーを吐いてネットワーク待ちで時間がかかる。 Failed to start Wait for Network to be Configured. ネットワークを見てみる。 基本的に、networkdに管理させてないが、念のために確認する。 takuya@:~$ networkctl IDX LINK TYPE OPER…
ホスト名の指定だけでIPがわかるようにしたい DHCPサーバーとDNSサーバーに、ローカルドメイン名は設定済み windowsでも名前解決をしたい ホスト名だけで行けそう ping ホスト名で、検索されてIPアドレスが分かるようになった。
linux(ubuntu/debian)ローカルドメインを使いたい ローカルドメイン名は基本的に、resolv.confを使います。 resolv.conf domain lan search lan nameserver 127.0.0.1 search を書けば別ホスト名を探しに行くとき、suffixを入れてくれます。 domain を書けば…
macOSでもローカルドメインが使いたい mac の場合、次のコマンドでサクッと作れる。 networksetup -listallnetworkservices networksetup -setsearchdomains wg0 example.lan. networksetup -getsearchdomains wg0 example.lan. 設定からもできる。 macOSの…
wireguard接続時ローカルドメインをつかいたい できます。 wireguardの接続設定を書きます。 DNS=192.168.1.1, local2 , lan3 , example.tld DNSのあとに、カンマ区切りで列挙すると、ローカルドメインとして機能します。 記入例 参考資料 https://rakhesh.c…
unbound でローカルPCの名前を解決 unboundはroot.hint から調べるけど、ローカルPCについては除外したい。 ローカルなドメイン名だけローカルPCの名前を解決したい。 127.0.0.1 で unboundが listen してるとして 外部向けは、rootから dig dns.google @127…
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>…
gretap を作る GRE Tap でイーサネット・フレームを転送するVPNを作ってみたい。 wg0 でL2-VPNはできると思う。 wg に L2-VPN機能がないので、 wg 上に ip bridge で gre tap を構成すればいい。 wireguardではL2はサポートされていなので、WG上にGRETAPでL2…
ip コマンドを使って arp キャッシュを表示する arp コマンドが無い。 L2のARPのキャッシュを表示するのは、arp コマンドを使うが、現代では初期インストールされていない。 ip neigh を使う。 ip neigh を使ってneighbor(近隣)を調べられる。arp は無いが代…
MTUの値 wireguard のMTUの値を調べた。 1420 = ip6 to ip6 で wireguardしたとき 1440 = ip4 to ip4 で wireguardしたとき パケットはこんな感じになりますね。 wireguardのパケットについては IP以外に、40バイトを使います。 https://lists.zx2c4.com/pip…
wireguard は便利なんだけどwg-quickに問題が。 wireguard は手軽でそこそこ速く、使いやすい。iOSからも使えるので、ここ一年CellularData通信は、ずっとwireguardしてる。 ほとんどの人は、wg-quick を使ってると思う。でも、私は今まで使ってない。 wg-qu…