Network 설정

중앙 network설정은 uci network 서브시스템으로 처리되며 /etc/config/network파일에 저장됩니다. 이 uci 서브시스템은 switch VLANs, interface configurations, network routes를 정의합니다.
network 설정을 변경(uci 혹은 다른 어떤것으로)한 후에느 다음의 코드를 입력하여 netfid 데몬에서 network 설정을 다시 로드해야 합니다.:

root@lede:/# service network reload

netifd (Network Interface Daemon)덕분에 변경된 인터페이스가 자동으로 다시 시작되어 변경 사항을 실시간으로 적용합니다.
라우터를 재부팅 할 필요는 없지만 강제로 설정을 다시 로드하는 또 다른 방법중의 하나 입니다.

다음은 TL-WR1043ND에 대한 기본 설정을 network uci 서브시스템으로 보는 예입니다.

root@lede:/# uci show network
network.loopback=interface
network.loopback.ifname='lo'
network.loopback.proto='static'
network.loopback.ipaddr='127.0.0.1'
network.loopback.netmask='255.0.0.0'
network.globals=globals
network.globals.ula_prefix='fd27:70fa:5c1d::/48'
network.lan=interface
network.lan.type='bridge'
network.lan.ifname='eth0.1'
network.lan.proto='static'
network.lan.netmask='255.255.255.0'
network.lan.ip6assign='60'
network.lan.ipaddr='192.168.1.1'
network.wan=interface
network.wan.ifname='eth0.2'
network.wan.proto='dhcp'
network.wan6=interface
network.wan6.ifname='eth0.2'
network.wan6.proto='dhcpv6'
network.@switch[0]=switch
network.@switch[0].name='switch0'
network.@switch[0].reset='1'
network.@switch[0].enable_vlan='1'
network.@switch_vlan[0]=switch_vlan
network.@switch_vlan[0].device='switch0'
network.@switch_vlan[0].vlan='1'
network.@switch_vlan[0].ports='1 2 3 4 5t'
network.@switch_vlan[1]=switch_vlan
network.@switch_vlan[1].device='switch0'
network.@switch_vlan[1].vlan='2'
network.@switch_vlan[1].ports='0 5t'

위에 보이는 것과 /etc/config/network에 쓰여진 것과 같은 설정입니다.

root@lede:/# cat /etc/config/network

config interface 'loopback'
        option ifname 'lo'
        option proto 'static'
        option ipaddr '127.0.0.1'
        option netmask '255.0.0.0'

config globals 'globals'
        option ula_prefix 'fd27:70fa:5c1d::/48'

config interface 'lan'
        option type 'bridge'
        option ifname 'eth0.1'
        option proto 'static'
        option netmask '255.255.255.0'
        option ip6assign '60'
        option ipaddr '192.168.1.1'

config interface 'wan'
        option ifname 'eth0.2'
        option proto 'dhcp'

config interface 'wan6'
        option ifname 'eth0.2'
        option proto 'dhcpv6'

config switch
        option name 'switch0'
        option reset '1'
        option enable_vlan '1'

config switch_vlan
        option device 'switch0'
        option vlan '1'
        option ports '1 2 3 4 5t'

config switch_vlan
        option device 'switch0'
        option vlan '2'
        option ports '0 5t'

인터페이스 목록을 보려면 다음코드를 입력하세요.

root@lede:/# ubus list network.interface.*


특정 인터페이스(물리적 인터페이스가 아닌 uci 이름)에 대한 모든 정보를 보려면 ifstatus <interface_name>를 입력하세요

root@lede:/# ifstatus lan

라우터의 최소 네트워크 설정은 일반적으로 적어도 두개의 interface (lanwan)와 switch 세션으로 구성되어 있습니다.

globals 세션에는 일반적으로 네트워크 설정에 영향을 주는 독립전인 인터페이스 옵션이 있습니다.

이름 Type Required 초기값 설명
ula_prefix IPv6-prefix no (none) IPv6 ULA-Prefix for this device

세션들중 interface 세션은 IP주소 설정, 별명, routes, 물리적 인터페이스 이름,start방화벽을 정의합니다. interface는 LEDE 설정에서 핵심적인 역할을 합니다.

최소 인터페이스 선언은 다음과 같이 구성됩니다:

uci:

network.wan=interface
network.wan.ifname='eth0.2'
network.wan.proto='dhcp'

config file:

config 'interface' 'wan'
        option 'proto' 'dhcp'
        option 'ifname' 'eth0.2'
  • wan 은 고유한 논리적 인터페이스 이름입니다.
  • dhcp인터페이스 프로토콜을 지정합니다.예시는 DHCP로 지정하였습니다.
  • eth0.2 이 세션과 관련되 있는 물리적 인터페이스입니다.

:!: 시스템은 접두어를 포함한물리적인 인터페이스 이름의 길이를 15자로 제한합니다.접두어로 일부 프로토콜(예:“6in4-”, “pppoa-”, “pppoe-”) 또는 브리지 상태 (“br-”)로 인해 추가 된 것을 말합니다.
프로토콜의 유형에 따라 논리 인터페이스 이름은 9자로 제한 될 수 있습니다.예를들어 'abcde67890' 은 dhcp를 사용하는 가능한 일반 인터페이스의 이름이지만 최종적으로 'pppoe-abcde67890'이 되는 pppoe 인터페이스의 경우 15자가 넘기 때문에 가능하지 않습니다.
너무 긴 이름을 사용하면 네트워크, 방화면, dhcp등의 설정이 적용되지 않은 상태로 남아 있을 수 있으므로 오류가 발생할 수 있습니다.

인터페이스 프로토콜은 다음 중 하나 일 수 있습니다.

프로토콜 설명 프로그램
static 고정 주소 및 넷 마스크를 사용한 정적 설정 ip/ifconfig
dhcp 주소와 넷 마스크는 DHCP에 의해 할당됩니다. udhcpc (Busybox)
dhcpv6 주소와 넷 마스크는 DHCPv6에 의해 할당됩니다. odhcpc6c
ppp PPP 프로토콜 - 전화 접속 모뎀 연결 pppd
pppoe 이더넷을 통한 PPP - DSL 광대역 연결 pppd + plugin rp-pppoe.so
pppoa PPP over ATM - 내장 모뎀을 사용한 DSL 연결 pppd + plugin ...
3g AT 스타일 3G 모뎀을 사용하는 CDMA, UMTS 또는 GPRS 연결 comgt
qmi QMI 프로토콜을 사용하는 USB 모뎀 uqmi
ncm NCM 프로토콜을 사용하는 USB 모뎀 comgt-ncm + ?
wwan 프로토콜 자동 감지 기능이있는 USB 모뎀 wwan
hnet 자체 관리 홈 네트워크 (HNCP) hnet-full
pptp PPtP VPN을 통한 연결 ?
6in4 HE.net과 같은 터널 중개인과 함께 사용하기위한 IPv6-in-IPv4 터널 ?
aiccu 무엇이든 있는 터널 aiccu
6to4 IPv4 전송에 대한 무국적 IPv6 ?
6rd IPv6 신속한 배포 6rd
dslite 듀얼 스택 라이트 ds-lite
l2tp L2TP 유사 회선 터널을 통한 PPP xl2tpd
relay 중계 의사 브리지 relayd
gre, gretap IPv4를 통해 GRE gre + kmod-gre
grev6, grev6tap IPv6를 통한 GRE gre + kmod-gre6
vti IPv4를 통한 VTI vti + kmod-ip_vti
vtiv6 IPv6를 통한 VTI vti + kmod-ip6_vti
none 지정되지 않은 프로토콜이므로 다른 모든 인터페이스 설정은 무시됩니다 (예 : 구성 비활성화). -

인터페이스 프로토콜에 완벽한 정의를 위해 몇가지 옵션들이 필요 할 수 있습니다. 각 프로토콜에 해당되는 옵션들은 아래에 정리되어 있습니다.해당 프로토콜을 사용하는 경우 반드시 “필수”인 경우 정의해야 하며, 아닌 경우 생략 해도 됩니다.

:!: 인터페이스 세션에 정의된 프로토콜이 없다면 (none이 아니라) 다른 설정도 완전히 무시됩니다.인터페이스 세션이 물리적 네트워크 인터페이스를 언급하는 경우 (예: eth0), 케이블이 연결되어 있어도 다운됩니다.( proto 'none'인터페이스가 작동중).

이름 Type Required 초기값 설명
ifname interface name(s) yes(*) (none) 이 섹션에 할당 할 실제 인터페이스 이름, 유형 브리지가 설정된 경우 인터페이스 목록. (*) 무선 인터페이스 만이 네트워크를 참조하거나 프로토콜 유형이 pptp , pppoa 또는 6in4 옵션은 비어 있거나 누락 될 수 있습니다.
type string no (none) “bridge”로 설정하면 주어진 ifnames 를 포함하는 브리지가 생성됩니다. Wlan 인터페이스 이름은 예측할 수 없기 때문에 네트워크 구성에서 직접 참조 할 수 없습니다.
stp boolean no 0 “브리지”에 대해서만 유효하며, 스패닝 트리 프로토콜
bridge_empty boolean no 0 bridge“에만 유효하며 빈 브리지를 만들 수 있습니다.
igmp_snooping boolean no 1 “bridge”에만 유효하며, bridge에 대한 multicast_snooping 커널 설정을 설정합니다.
macaddr mac address no (none) 이 인터페이스의 MAC 주소 재정의
mtu number no (none) 인터페이스에서 기본 MTU 무시
auto boolean no 0 for proto none, else 1 부팅 할 때 인터페이스를 불러올 지 여부를 지정합니다.
ipv6 boolean no 1 이 인터페이스에서 IPv6을 활성화 (1) 또는 비활성화 (0)할지 지정합니다 (Barrier Breaker 이상).
accept_ra boolean no 1 for protocol dhcp, else 0 Specifies whether to accept IPv6 Router Advertisements on this interface deprecated:
send_rs boolean no 1 for protocol static, else 0 Specifies whether to send Router Solicitations on this interface deprecated:
force_link boolean no 1 for protocol static, else 0 활성화 된 링크 ( '1') 또는 링크가 활성화 된 후에 ( '0')에만 인터페이스에 IP 주소, 경로 및 선택적으로 게이트웨이를 할당할지 여부를 지정합니다. '1'로 설정하면 캐리어 감지 이벤트가 핫 플러그 ​​처리기를 호출하지 않습니다.
enabled boolean no 1 인터페이스 섹션을 활성화 또는 비활성화합니다.
ip4table string no (none) (ipv4)이 인터페이스의 라우트에 대한 라우팅 테이블. 예를 들어 proto = dhcp 일 경우 dhcp 클라이언트는 해당 테이블에 경로를 추가합니다
ip6table string no (none) (ipv6)이 인터페이스의 라우트에 대한 라우팅 테이블. 예를 들어 proto = dhcp6 일 때 dhcp6 클라이언트는 해당 테이블에 경로를 추가합니다

네트워크 설정은 /etc/init.d/network restart을 실행하여 적용 할 수 있습니다.
각각의 인터페이스들은 ifup name을 통해 가져올 수 있으며 또는 ifdown name을 통해 다운 할 수 있습니다.여기서 name은 해당 config interface세션의 논리 인터페이스 이름에 해당됩니다.ifupifdown을 의미하므로 인터페이스를 다시 로드할 때 호출 할 필요가 없습니다.

주의: 무선 인터페이스는 외부에서 관리되며 ifup 은 기존 브리지 관계를 깰 수 있습니다.. 이 경우 브리지 연결을 다시 설정하기 위해 ifupwifi up을 실행 해야 합니다.

네트워크 관련 정보를 얻으려는 스크립트의 경우 /lib/functions/network.sh에 있는 LEDE 펌웨어의 기능을 사용할 수 있습니다. 사용 가능한 기능과 호출 방법에 대한 자세한 정보는 해당 파일의 소스 및 주석을 참조하십시오.

간단한 예:

root@lede:/# source /lib/functions/network.sh ; if network_get_ipaddr addr "lan"; then echo "IP is $addr"; fi
IP is 192.168.1.1

wan과 같은 논리 네트워크 이름에서 eht1과 같은 linux 인터페이스 이름을 얻으려면 다음 예제와 같이 할 수 있습니다.

root@lede:/# uci get network.wan.ifname
eth0.2
This website uses cookies. By using the website, you agree with storing cookies on your computer. Also you acknowledge that you have read and understand our Privacy Policy. If you do not agree leave the website.More information about cookies
  • Last modified: 2021/10/15 08:10
  • by bobafetthotmail