安価な鉄片にシェーパーを配置する必要がありました。 鉄は、有名な中国メーカーの
DIR-320になる予定でした。 しかし、良くて単純な
DIR-320の代わりに、恐ろしくてわかりにくい
DIR-320NRUが到着し、問題が始まりました。
当初、アイデアはシンプルでした
。OpenWRTとドライブを思い通りに配置しました。 ただし、NRUにOpenWRTをインストールすることはまだ不可能です(誰かが修正してくれれば嬉しいです)、ブートローダーの形式が明確ではなく、ファームウェアのSqushfsを一目見ませんでした。 そして、見る時間はありませんでした。 ネイティブファームウェアを掘り下げた後、タスクを完了するために必要なすべてのツール(読み取り:tc)が含まれていることが明らかになりました。 一般に、ネイティブのdofigファームウェアには何かがあり、マニュアルページにも存在する場所があります。
科学的な突進と何らかの母親の方法により、すべての変更可能な設定は
/ etc / defaultフォルダー(/ tmp / etc / defaultへのシンボリックリンクですが、ポイント)に格納されていることがわかりました。 このフォルダー内のすべてのファイルはきちんとパックされ、コマンド
/ usr / sbin / saveconfigでnvramに書き込まれ 、ダウンロードされます(システムの起動時を含む)、それぞれ
/ usr / sbin / loadconfig 、catが存在、chmod、スクリプトはありません。 ただし、起動時にスクリプトを実行すると問題が発生します。
少し
調べてみると、ファイル
/etc/default/config.jsonとデーモン
/ bin / residentが見つかりました 。これにより、この構成が解析され、構成で規定されているすべてが実行されます。 どうやら、中国人でさえ不注意に書かれていたようですが、インド人、またはおそらくインド・ルースによって、ファイルの行はすぐに実行されます。 そのとき、文字列をスクリプトに置き換えるためのエンジニアリングのアイデアが渡されました。 最初に登場したオプションは
DMZホストでした。次の形式のconfig.jsonの内容を変更します。
"dmz": {
"enable": true,
"ip": "192.168.0.2"
},
に
"dmz": {
"enable": true,
"ip": "`/etc/default/shaper.sh`"
},
居住者はそれをすべて飲み込み、
-DNAT --to 192.168.0.1の代わりにスクリプトを実行します。 また、スクリプトが正しいIPアドレスを返す場合、DMZホストも正しく登録されています。 出来上がり!
さて、最後のコード:
/etc/default/shaper.shtc qdisc del dev br0 root
tc qdisc add dev br0 root handle 1: htb default 2
tc class add dev br0 parent 1: classid 1:1 htb rate 10mbps
tc class add dev br0 parent 1:1 classid 1:2 htb rate 50kbps
for ip in `cat /etc/default/ips`;do
tc class add dev br0 parent 1:1 classid 1:${ip} htb rate 50kbps
tc filter add dev br0 parent 1: protocol ip prio 1 u32 match ip dst 192.168.0.${ip}/32 flowid 1:${ip}
done
echo cat /etc/default/DMZ.txt
led wps progress
シェーパー自体、DMZホストはDMZ.txtファイルから取得されます。/etc/default/ips-最終アドレスバイト(2 3 4 5..254)
最後の行で内部ネオンをオンにして点滅させると、イライラさせて緊張し、上記のすべてがロードされて機能することも通知します。
置き換えるスクリプト
echo Set DMZ Host to 9.9.9.9 via WebIF and run me again!
echo Use /etc/default/DMZ.txt to set DMZ Host IP
sed -is/9.9.9.9/"\`\/etc\/default\/shaper.sh\`"/g /etc/default/config.json
saveconfig
sedも私たちのために残されており、喜んでいます。
そして、それ以上は必要ありません。 これは次のように機能します:Webインターフェースで必要なすべてを構成し、9.9.9.9(同上)でDMZホストを登録し、telnetに接続して
/etc/default/modify.shを実行し
ますケーブルを引っ張って引っ張るか、再起動コマンドを使用して、ルーターを再起動します。