cjdroute.conf(5) Cjdns Reference cjdroute.conf(5)

cjdroute.conf - فایل پیکربندی Cjdns

فایل cjdroute.conf موتور مسیریابی cjdns یعنی cjdns(8) را عموماً از طریق cjdroute(1) پیکربندی می‌کند.

این پیکربندی در قالبی برگرفته از JSON نوشته شده است که همچنین از کامنت‌های سنتی C مانند کامنت‌های تک‌خطی (//) و چندخطی (/* و */) پشتیبانی می‌کند. علاوه بر این، مقادیر استفاده‌نشده JSON در cjdroute.conf توسط cjdns نادیده گرفته می‌شوند و می‌توانند به عنوان نوعی کامنت منطبق با استاندارد JSON مورد استفاده قرار گیرند.

"privateKey": "..."

کلید خصوصی گره شما. این کلید باید مخفی نگه داشته شود زیرا محرمانگی و یکپارچگی داده‌های شما به آن وابسته است.

"publicKey": "..."

کلید عمومی گره شما که بر اساس کلید خصوصی تولید می‌شود. دانستن این کلید برای همگان بلامانع است.

"ipv6": "..."

آدرس IPv6 گره شما هنگام حضور در شبکه. این آدرس با استفاده از ۱۶ بایت اول هش دوگانه SHA-512 از کلید عمومی شما ایجاد می‌شود. تمام آدرس‌های IPv6 در cjdns باید با "fc" شروع شوند، در غیر این صورت نامعتبر هستند.

"authorizedPasswords": [...]

آرایه‌ای از گذرواژه‌ها که می‌توانند برای اتصال (همتاسازی / peer) به گره شما استفاده شوند.

"password": "..."

گذرواژه‌ای که می‌تواند برای همتاسازی با گره شما استفاده شود.

"user": "..."

یک رشته خوانا برای انسان که مشخص می‌کند کدام گذرواژه توسط یک همتا در رابط مدیریتی استفاده می‌شود. در صورت عدم درج، گذرواژه با موقعیت مکانی‌اش در آرایه (شروع از 0) شناسایی خواهد شد.

مثال:
"authorizedPasswords":
[
{ "password": "AnExamplePassword", "user": "Bob" },
{ "password": "YetAnotherExample", "user": "Alice" },
{ "password": "j3fus4r3gkhv80xdz1yqc0qvn1p91hr", "user": "Eve" }
]

"admin": {...}

شیئی که مشخص می‌کند سرور RPC مدیریتی به چه آدرسی متصل (bind) شود و همچنین گذرواژه سرور RPC مدیریتی را تعیین می‌کند. دو رشته الزامی عبارتند از "bind" که باید در قالب "IP:PORT" باشد، و "password" که ترجیحاً باید یک رشته طولانی و تصادفی از نویسه‌ها باشد.

"interfaces": {...}

شیئی که مشخص می‌کند cjdns به کدام رابط‌ها متصل شود و با کدام همتاها ارتباط برقرار کند. دو رابط مختلف وجود دارد: UDPInterface و ETHInterface، که هر دو آرایه هستند. در هر آرایه گزینه‌های گوناگونی وجود دارد

"bind": "..."

تعیین می‌کند رابط به چه مقداری متصل (bind) شود. در UDPInterface، این مقدار یک رشته IP:PORT مانند "0.0.0.0:12345" است، در حالی که در ETHInterface یک رابط شبکه مانند "eth0" می‌باشد.

"beacon": عدد صحیح

این گزینه فقط در ETHInterface یافت می‌شود و مشخص می‌کند که آیا بیکن‌های اتصال خودکار باید ارسال شوند یا شنود گردند. این قابلیت برای یک شبکه محلی با پیکربندی خودکار (zeroconf) کاربرد دارد.
0 -- غیرفعال.
1 -- پذیرش بیکن‌های ورودی و تلاش برای اتصال به فرستنده.
2 -- پذیرش بیکن‌های ورودی و انتشار همگانی (broadcast) بیکن‌ها در شبکه محلی.

"connectTo": {...}

مشخص می‌کند که cjdns باید با رابط مشخص‌شده به کدام گره‌ها متصل شود. می‌توان چندین گره را در یک "connectTo" قرار داد به شرطی که با کاما از یکدیگر جدا شوند. اگر گره‌ای آفلاین باشد یا در حین اجرا آفلاین شود، cjdns در فواصل زمانی منظم برای برقراری مجدد اتصال تلاش خواهد کرد. تنها تفاوت این گزینه در UDPInterface و ETHInterface این است که UDPInterface به یک "IP:PORT" متصل می‌شود در حالی که ETHInterface به یک آدرس MAC وصل می‌گردد.

مثال UDPInterface:
"connectTo":
{

"1.2.3.4:54321":
{
"login": "login From Your Peer's authorizedPasswords",
"password": "password From Your Peer's authorizedPasswords",
"publicKey": "Your Peer's publicKey.k"
},
"5.6.7.8:46321":
{
"login": "cueball",
"password": "Correct Horse Battery Staple",
"publicKey": "Other Peer's publicKey.k"
}
}

"router": {...}

شیئی که اطلاعات پیکربندی مسیریاب (router) را در بر دارد

"interface": {...}

نوع رابط استفاده‌شده برای اتصال به شبکه cjdns را مشخص می‌کند. این بخش به یک رشته "type" و به صورت اختیاری به یک رشته "tunDevice" نیاز دارد. رشته "type" نوع رابط استفاده‌شده را تعریف می‌کند، هرچند در حال حاضر تنها "TUNInterface" پشتیبانی می‌شود. رشته "tunDevice" نام یک دستگاه TUN پایدار را برای استفاده مشخص می‌کند که برای اجرای cjdroute با کاربری مجزا به جای کاربر root مفید است.

"ipTunnel": {...}

سیستمی برای تونل‌سازی ICANN IPv4 و ICANN IPv6 از طریق cjdns. این روش از لایه سوئیچ cjdns به عنوان بستر VPN استفاده می‌کند.

نکته: صرفاً ویرایش فایل پیکربندی برای راه‌اندازی درگاه ipTunnel کافی نیست. لطفاً برای اطلاعات بیشتر فایل tunnel/README.md را در مخزن گیت cjdns مطالعه فرمایید

"allowedConnections": [...]

گره‌هایی که مجاز به اتصال به ما هستند (مشخص‌شده با کلید عمومی‌شان) و آدرس(های) IP که باید به آن‌ها اختصاص یابد. مشخص کردن تنها یک آدرس نیز بلامانع است.

مثال:

"allowedConnections":
[
{
"publicKey": "f64hfl7c4uxt6krmhPutTheRealAddressOfANodeHere7kfm5m0.k",
"ip4Address": "192.168.1.24",
"ip4Prefix": 24,
"ip6Address": "2001:123:ab::10",
"ip6Prefix": 0
},
{
"publicKey": "ydq8csdk8p8ThisIsJustAnExampleAddresstxuyqdf27hvn2z0.k",
"ip4Address": "192.168.1.25",
"ip4Prefix": 24
}
]

"outgoingConnections": [...]

آرایه‌ای از گره‌ها برای برقراری اتصال و درخواست آدرس‌های IP.

مثال:

"outgoingConnections":
[
"6743gf5tw80ExampleExampleExampleExamplevlyb23zfnuzv0.k",
"pw9tfmr8pcrExampleExampleExampleExample8rhg1pgwpwf80.k",
"g91lxyxhq0kExampleExampleExampleExample6t0mknuhw75l0.k"
]

"security": [...]

آرایه‌ای که تعیین می‌کند پس از راه‌اندازی، برنامه به چه کاربری تغییر هویت دهد و آیا فرایند Angel از این تغییر کاربر مستثنی شود یا خیر.

"setuser": "username"

کاربری که پس از راه‌اندازی، جهت حفظ امنیت، به آن جابه‌جا می‌شود. مقدار پیش‌فرض "nobody" است.

"exemptAngel": عدد صحیح

مشخص می‌کند که آیا فرایند Angel از تغییر کاربر مستثنی شود یا خیر. فرایند Angel بخش کوچک و ایزوله‌ای از کد است که خارج از محیط محدود (sandbox) سخت‌گیرانه هسته قرار دارد اما ترافیک شبکه را مدیریت نمی‌کند. این گزینه باید فعال باشد تا ipTunnel بتواند آدرس‌های IP را به طور خودکار روی دستگاه TUN تنظیم کند.

0 -- غیرفعال (False)
1 -- فعال (True)

"logging": {...}

مقدار "logTo":"stdout" را اضافه کرده یا از حالت کامنت خارج کنید تا cjdns به جای ارائه گزارش‌ها از طریق سوکت مدیریتی، لاگ‌ها را در خروجی استاندارد بنویسد

"noBackground": عدد صحیح

در صورت تنظیم روی مقداری غیر از صفر، cjdns به پس‌زمینه منشعب (fork) نمی‌شود. استفاده از این گزینه همراه با "logTo":"stdout" توصیه می‌شود.

"dns": {...}

این بخش برای پیکربندی قابلیت‌های DNS اضافه‌شده به cjdns استفاده می‌شود. متأسفانه در حال حاضر مستنداتی برای این بخش DNS در دسترس نیست.

"keys": [...]

"servers": [...]

"MinSignatures": عدد صحیح

/etc/cjdroute.conf

یک مسیر معمول برای قرارگیری فایل پیکربندی.

cjdroute(1), cjdns(8)

2014-03-16