جنتو شبکه قابل انعطافی را برای شما فراهم می‌آورد - اینجا به شما درباره سمت‌کاربرهای DHCP، تنظیمات bonding، پل زدن، VLAN‌ها و بیش از آن گفته می‌شود. 10 2011-10-23
ماژول‌های شبکه

اکنون ما کدهای شبکه ماژولار را پشتیبانی می‌نماییم، که به این معنی است که می‌توانیم به سادگی پشتیبانی برای نوع جدیدی از رابط کاربری و ماژول پیکربندی را در هنگامی‌که آنچه اکنون داریم را نگاه می‌داریم، بیافزاییم.

اگر بسته‌های ماژول‌ها نصب شده باشند آنها بشکل پیش فرض لود می‌گردند. اگر ماژولی را مشخص نمایید که بسته‌های مربوط به آن نصب نشده باشند، پیام ایرادی مربوط به آن بسته‌ایی که نصب نیست دریافت می‌نمایید. بشکل دلخواه، شما فقط هنگامی از تنظیمات ماژول استفاده می‌نمایید که دو یا بیش از آن بسته‌های نصب شده‌ائی دارید که خدمات مشابهی فراهم می‌نمایند و می‌خواهید یکی را به دیگری برتری دهید.

همه تنظیم‌هائی که اینجا توضیح داده می‌شوند در /etc/conf.d/net نگاه‌داری می‌گردند مگر آنکه بشکل موردی مشخص شده باشند.
# Prefer ifconfig over iproute2
modules="ifconfig"

# You can also specify other modules for an interface
# In this case we prefer pump over dhcpcd
modules_eth0="pump"

# You can also specify which modules not to use - for example you may be
# using a supplicant or linux-wlan-ng to control wireless configuration but
# you still want to configure network settings per ESSID associated with.
modules="!iwconfig"
نگاه‌دارنده‌های رابط

اکنون تنها دو نگاه‌دارنده رابط را فراهم می‌آوریم: ifconfig و iproute2 . به یکی از این دو برای هرگونه پیکربندی شبکه‌ائی نیاز دارید.

بشکل پیش‌فرض ifconfig نصب گردیده (بسته net-tools بخشی از پروفایل دستگاه است). iproute2 بسته‌ائی با قدرت بیشتر و قابلیت انعطاف بیشتر است، اما بشکل پیش‌فرض وجود ندارد.

# emerge sys-apps/iproute2

# To prefer ifconfig over iproute2 if both are installed as openrc prefers
# to use iproute2 then
modules="ifconfig"

از آنجا که ifconfig و iproute2 چیزهای همانندی انجام می‌دهند اجازه می‌دهیم اساس پیکربندی آنها با یکدیگر کار نماید. برای نمونه هر دو کد کوچک زیر بدون در نظر گرفتن اینکه از کدام ماژول استفاده می‌نمایید، کار می نمایند.

config_eth0="192.168.0.2/24"
config_eth0="192.168.0.2 netmask 255.255.255.0"

# We can also specify broadcast
config_eth0="192.168.0.2/24 brd 192.168.0.255"
config_eth0="192.168.0.2 netmask 255.255.255.0 broadcast 192.168.0.255"
DHCP

اصطلاح DHCP به معنی فراهم آوری اطلاعات شبکه (آدرسIP، سرور DNS، درگاه، دیگر از آن) از یک سرور DHCP است. این به آن معنی است که اگر یک سرور DHCP بروی شبکه در حال اجرا باشد، کافی است به هر سمت‌کاربری بگویید از DHCP استفاده نماید و آنها خودشان خودشان را برای شبکه تنظیم می‌نمایند. البته، شما باید برای چیزهای دیگری مانند بیسیم، PPP یا چیزهای دیگری که به آنها نیاز دارید، پیش از استفاده از DHCP خودتان پیکربندی آغاز نمایید.

خدمت DHCP می‌تواند بوسیله dhclient ، dhcpcd ، یا pump فراهم گردد. هر ماژول DHCP گزینه‌های pros و cons خودش را دارد - اینجا یک راه‌انداز سریع وجود دارد.

dhclientnet-misc/dhcp Made by ISC, the same people who make the BIND DNS software. Very configurable Configuration is overly complex, software is quite bloated, cannot get NTP servers from DHCP, does not send hostname by default dhcpcdnet-misc/dhcpcd Long time Gentoo default, no reliance on outside tools, actively developed by Gentoo Can be slow at times, does not yet daemonize when lease is infinitepumpnet-misc/pump Lightweight, no reliance on outside tools No longer maintained upstream, unreliable, especially over modems, cannot get NIS servers from DHCP
DHCP Module Package Pros Cons

اگر بیش از یک DHCP نصب شده دارید، لازم است مشخص نمایید کدام یک استفاده گردد - در غیر اینصورت ما dhcpcd را اگر وجود داشته باشد به عنوان پیش فرض به حساب می‌آوریم.

برای فرستادن انتخاب‌های مشخص به ماژول DHCP، از module_eth0="..." (change module to the DHCP module you're using - i.e. dhcpcd_eth0) استفاده نمایید.

کوشش می‌نماییم DHCP بشکل نسبی ناوابسته باشد - برای نمونه ما از دستور پی‌آمد با استفاده از متغییر dhcp_eth0 پشتیبانی می‌نماییم. بشکل پیش‌فرض هیچکدام تنظیم نیست:

# Only needed if you have more than one DHCP module installed
modules="dhcpcd"

config_eth0="dhcp"
dhcpcd_eth0="-t 10" # Timeout after 10 seconds
dhcp_eth0="release nodns nontp nonis" # Only get an address
هر دو dhcpcd و pump به شکل پیش فرض نام هاست درست را به سرور DHCP ارسال می‌نمایند بنابر این بیش از این نیاز به مشخص نمودن آن نیست.
ADSL با PPPoE/PPPoA

ابتدا لازم داریم تا نرم‌افزار ADSL را نصب نماییم.

# emerge net-dialup/ppp

پس از آن، ایجاد کد شبکه PPP و کد شبکه برای رابط کاربری ethernet که بوسیله PPP مورد استفاده قرار خواهد گرفت:

# ln -s /etc/init.d/net.lo /etc/init.d/net.ppp0
# ln -s /etc/init.d/net.lo /etc/init.d/net.eth0

مطمئن شوید rc_depend_strict را در /etc/rc.conf به "YES" تنظیم نموده اید.

لازم داریم /etc/conf.d/net را پیکربندی نماییم.

config_eth0=null (Specify your ethernet interface)
config_ppp0="ppp"
link_ppp0="eth0" (Specify your ethernet interface)
plugins_ppp0="pppoe"
username_ppp0='user'
password_ppp0='password'
pppd_ppp0="
noauth
defaultroute
usepeerdns
holdoff 3
child-timeout 60
lcp-echo-interval 15
lcp-echo-failure 3
noaccomp noccp nobsdcomp nodeflate nopcomp novj novjccomp"

rc_need_ppp0="net.eth0"

همچنین می‌توانید کلمه رمز عبور خود را در /etc/ppp/pap-secrets تنظیم نمایید.

# The * is important
"username"  *  "password"

اگر از PPPoE با یک مودم USB استفاده می‌نمایید، نیاز دارید تا br2684ctl را امرژ نمایید. خواهشمندیم /usr/portage/net-dialup/speedtouch-usb/files/README را برای اطلاعات درباره چگونگی پیکربندی درست آن بخوانید.

خواهشمندیم با دقت بخش ADSL و PPP در /usr/share/doc/openrc-0.8.3-r1/net.example.bz2 را بخوانید. این شامل مقدار زیادی توضیحات دقیق از همه تنظیمات همه بخش‌های راه‌اندازی PPP که لازم دارید است. البته 0.8.3-r1 را با مقدار نسخه OpenRC نصب شده بروی دستگاه‌تان عوض نمایید.
APIPA (آدرس IP سازی خودکار)

گزینه APIPA تلاش می‌نماید تا یک آدرس آزاد در رنج 169.254.0.0-169.254.255.255 با تلاش اتفاقی برای یافتن آن در این رنج بیابد. اگر هیچ بازتابی یافت نشد، آنگاه ما آدرس را به رابط کاربری بشکل دستی می‌دهیم.

این تنها هنگامی مفید است که همه LAN‌ها سرور DHCP ندارند و نیازی به ارتباط آن به اینترنت ندارید و همه رایانه‌ها از APIPA استفاده می نمایند

برای پشتیبانی از APIPA یا net-misc/iputils و یا net-analyzer/arping را امرژ نمایید.

# Try DHCP first - if that fails then fallback to APIPA
config_eth0="dhcp"
fallback_eth0="apipa"

# Just use APIPA
config_eth0="apipa"
پیوستگی

برای پیوند پیوستگی/گسستگی net-misc/ifenslave را امرژ نمایید.

از bonding برای افزایش پهنای‌باند شبکه استفاده می‌نماییم. اگر دو کارت شبکه دارید که از یک شبکه استفاده می نمایند، می‌تواند آنها را به هم بپیوندید تا برنامه‌های شما فقط یک رابط کاربری ببینند اما براستی آنها از هر دو کارت شبکه استفاده می‌نمایند.

# To bond interfaces together
slaves_bond0="eth0 eth1 eth2"

# You may not want to assign an IP to the bonded interface
config_bond0="null"

# Depend on eth0, eth1 and eth2 as they may require extra configuration
rc_need_bond0="net.eth0 net.eth1 net.eth2"
Bridging (802.1d پشتیبانی)

برای پشتیبانی پل زنی net-misc/bridge-utils را امرژ نمایید.

از پل زنی برای استفاده همگام از شبکه‌ها استفاده می شود. برای نمونه، ممکن است سروری داشته باشید که با یک مودم ADSL به اینترنت ارتباط داشته باشد و یک اکسس کارت بیسیم دیگر رایانه‌ها را توانا نماید تا از راه مودم ADSL به اینترنت ارتباط پیدا نمایند. می‌توانستید یک پل برای استفاده از رابط‌های کاربری ایجاد نمایید.

# Configure the bridge - "man brctl" for more details
brctl_br0="setfd 0" "sethello 0" "stp off"

# To add ports to bridge br0
bridge_br0="eth0 eth1"

# You need to configure the ports to null values so dhcp does not get started
config_eth0="null"
config_eth1="null"

# Finally give the bridge an address - you could use DHCP as well
config_br0="192.168.0.1/24"

# Depend on eth0 and eth1 as they may require extra configuration
rc_need_br0="net.eth0 net.eth1"
برای استفاده از برخی تنظیم‌های پل‌زنی، ممکن است لازم داشته باشید مستندات نام متغییر را کنکاش نمایید.
MAC آدرس‌ها

اگر لازم داشته‌باشید، همچنین می‌توانید آدرس MAC‌های رابط کاربری در فایل پیکربندی شبکه را هم دگرگون نمایید.

# To set the MAC address of the interface
mac_eth0="00:11:22:33:44:55"

# To randomize the last 3 bytes only
mac_eth0="random-ending"

# To randomize between the same physical type of connection (e.g. fibre,
# copper, wireless) , all vendors
mac_eth0="random-samekind"

# To randomize between any physical type of connection (e.g. fibre, copper,
# wireless) , all vendors
mac_eth0="random-anykind"

# Full randomization - WARNING: some MAC addresses generated by this may
# NOT act as expected
mac_eth0="random-full"
تونل‌ساختن

از آنجا که رابط کاربری آنرا برای شما انجام می‌دهد نیاز به امرژ نمودن چیزی برای تونل‌زنی ندارید.

# For GRE tunnels
iptunnel_vpn0="mode gre remote 207.170.82.1 key 0xffffffff ttl 255"

# For IPIP tunnels
iptunnel_vpn0="mode ipip remote 207.170.82.2 ttl 255"

# To configure the interface
config_vpn0="192.168.0.2 peer 192.168.1.1"
VLAN (802.1q پشتیبانی)

برای پشتیبانی VLAN، بسته net-misc/vconfig را امرژ نمایید.

دسته LAN شبیه سازی‌شده گروهی از دستگاه‌های شبکه است که عادت به برقراری ارتباط با یک بخش مشخص از شبکه دارند - حتی اگر این‌کار ممکن نباشد. اعضاء VLAN می‌توانند تنها ععضوهای دیگر VLAN شریک در یک شبکه فیزیکی با خودشان را ببینند.

# Specify the VLAN numbers for the interface like so
# Please ensure your VLAN IDs are NOT zero-padded
vlans_eth0="1 2"

# You can also configure the VLAN
# see for vconfig man page for more details
vconfig_eth0="set_name_type VLAN_PLUS_VID_NO_PAD"
vconfig_vlan1="set_flag 1" "set_egress_map 2 6"

# Configure the interface as usual
config_vlan1="172.16.3.1 netmask 255.255.254.0"
config_vlan2="172.16.2.1 netmask 255.255.254.0"
برای استفاده نمودن از تنظیمات VLAN، ممکن از لازم داشته باشید تا مستندات نام متغییر را کنکاش نمایید.