RHEL 7 Linux 네트워크 스크립트 및 인터페이스 이름에 대한 도움말

RHEL 7 Linux 네트워크 스크립트 및 인터페이스 이름에 대한 도움말

RHEL 7.9, 4포트 네트워크 카드가 있습니다

ip a

1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000
link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
inet 127.0.0.1/8 scope host lo
   valid_lft forever preferred_lft forever
inet6 ::1/128 scope host
       valid_lft forever preferred_lft forever

2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mq state UP group default qlen 1000
link/ether 01:23:45:67:89:ab brd ff:ff:ff:ff:ff:ff
inet 192.168.1.1/16 brd 192.168.255.255 scope global noprefixroute eth0
   valid_lft forever preferred_lft forever
inet6 fe80::a4:3cef:41fa:73e1/64 scope link noprefixroute
   valid_lft forever preferred_lft forever

3: eth1: <NO-CARRIER,BROADCAST,MULTICAST,UP> mtu 1500 qdisc mq state DOWN group default qlen 1000
    link/ether 01:23:45:67:89:ac brd ff:ff:ff:ff:ff:ff
4: eth2: <NO-CARRIER,BROADCAST,MULTICAST,UP> mtu 1500 qdisc mq state DOWN group default qlen 1000
    link/ether 01:23:45:67:89:ad brd ff:ff:ff:ff:ff:ff
5: eth3: <NO-CARRIER,BROADCAST,MULTICAST,UP> mtu 1500 qdisc mq state DOWN group default qlen 1000
    link/ether 01:23:45:67:89:ae brd ff:ff:ff:ff:ff:ff

# -----------------------------------------------------------------------------------------

ls -FC /etc/sysconfig/network-scripts

ifcfg-ens11f0  ifdown@       ifdown-isdn@    ifdown-TeamPort*  ifup-ib*     ifup-post*      ifup-tunnel*
ifcfg-ens11f1  ifdown-bnep*  ifdown-post*    ifdown-tunnel*    ifup-ippp*   ifup-ppp*       ifup-wireless*
ifcfg-ens11f2  ifdown-eth*   ifdown-ppp*     ifup@             ifup-ipv6*   ifup-routes*    init.ipv6-global*
ifcfg-ens11f3  ifdown-ib*    ifdown-routes*  ifup-aliases*     ifup-isdn@   ifup-sit*       network-functions
ifcfg-eth0     ifdown-ippp*  ifdown-sit*     ifup-bnep*        ifup-plip*   ifup-Team*      network-functions-ipv6
ifcfg-lo       ifdown-ipv6*  ifdown-Team*    ifup-eth*         ifup-plusb*  ifup-TeamPort*  route-eth0

내 인터페이스 이름은 처음에 였지만 ens11f이제 끝났습니다 GRUB_CMDLINE_LINUX = net.ifnames=0 biosdevname=0. 네트워크 인터페이스 이름과 관련하여 Linux(특히 중요한 경우 RHEL 7)에서 네트워킹은 어떻게 작동합니까? 아래 파일에 대해 설명해 주시겠습니까 /etc/sysconfig/network-scripts? 해당 위치에 있는 모든 것이 중요합니까?

  • ifcfg-eth1왜 및 ifcfg-eth2및 가 표시되지 않습니까 ifcfg-eth3 ? 정말 혼란스럽습니다.
  • MAC 주소는 내 파일에 없으므로 인터페이스 이름에 어떻게 또는 어디에 매핑됩니까 ifcfg-eth0?
  • UUID는 모든 네트워크 프로필에서 중요합니까?
  • Linux에서 전체 네트워크 구성이 어떻게 작동하는지 이해하고 싶습니다. 나는 그래픽 네트워크 관리자 GUI에만 손을 댔고 대부분의 경우 완전히 망칠 수 있었습니다. Networkmanager GUI는 빙산의 일각에 불과합니까?

답변1

시스템이 처음 부팅되면 최신 이름( ens11f[0-3])을 사용하여 쿼드 포트 네트워크 카드를 확인하고 해당 카드에 대한 구성이 존재하지 않음을 발견하며 각 네트워크 카드에 대한 기본 구성 파일을 생성하고 MAC 주소와 UUID를 여기에 기록합니다. 구성 파일. 구성 파일.

그런 다음 시작 옵션을 추가했습니다 net.ifnames=0 biosdevname=0. 이후에는 기존 이름( )을 사용하여 쿼드 포트 NIC가 표시됩니다 eth[0-3]. 그러나 MAC 주소와 UUID는 여전히 동일하기 때문에 구성 시스템은 이러한 NIC가 비록 이름은 다르지만 이전에 본 적이 있다는 것을 알아차릴 만큼 똑똑합니다.

맹목적으로 새 프로필을 생성하는 것은 시스템 관리자가 이미 설정한 것과 겹칠 수 있으므로... 가장 안전한 방법은 아무것도 하지 않고 시스템 관리자가 수행해야 할 작업을 결정하도록 하는 것입니다. 아마도 기존 설정을 새 이름으로 마이그레이션하거나 어쩌면 그들은 처음부터 시작하고 싶어할 수도 있습니다.

지금은 쓸모가 없는 구성 파일을 삭제하면 ifcfg-ens11f*다음에 시스템을 시작할 때 시스템에서 새로운 기본 구성 파일이 생성될 수 있습니다. 아니면 firstboot특별한 프로그램을 실행할 때만 이런 일이 발생하는지도 기억이 나지 않습니다.

특정 하드웨어 MAC 주소가 있는 카드에 특정 NIC 이름을 바인딩하려는 경우 이를 파일 HWADDR=<MAC address>에 추가할 수 있습니다 ifcfg-eth*. 그러나 일부 클러스터 가상화 플랫폼에서는 VM이 ​​한 번의 VM 부팅부터 다음 부팅까지 지속되는 MAC 주소를 갖는 것을 항상 허용하지 않으므로 이 HWADDR=필드를 유지하는 것도 유효한 구성이어야 합니다. 이 경우 NIC 이름 순서가 결정됩니다. 순전히 계측에 의해 결정되며 NIC 드라이버와 해당 로드 순서 또는 추가할 수 있는 udev 규칙에 따라 결정됩니다.

(가상 머신 내부의 반가상화 NIC 드라이버의 경우 드라이버 감지 순서가 잘 작동할 수 있습니다. 반가상화 드라이버는 가상화 호스트와 통신할 수 있으며 가상 머신의 NIC가 항상 동일한 순서인지 확인하고 내부에 두 관리 도구를 모두 제공합니다. 가상화 플랫폼 및 가상 머신 자체).

UUID 자체는 네트워크 구성에 의미가 없지만 DHCP를 사용하는 경우 DHCP 서버는 이를 대체 클라이언트 식별자(DHCP 옵션 코드 61, 자세한 내용이 필요한 경우 RFC2132 및 RFC4361 참조)로 사용할 수 있습니다. 각 DHCP 클라이언트 호스트에 호스트별 UUID를 할당하고 NIC 교체 후 각 호스트가 동일한 DHCP 할당을 계속 사용하도록 하려면 여기에서 UUID를 제공할 수 있습니다.

Networkmanager GUI는 빙산의 일각에 불과합니까?

바로 이거 야. 이 토끼굴은 꽤 깊어요.

net-tools처음에는 네트워크 구성 명령 패키지 만 있습니다 . 각 배포판은 이를 사용하여 네트워크 설정을 구성하고 이를 지속적으로 저장하는 자체 방법을 개발했습니다.

시간이 지남에 따라 일부 표준화가 이루어졌습니다. RedHat Linux의 하위 배포판은 이러한 /etc/sysconfig/network-scripts/ifcfg-*파일을 사용하는 경향이 있고 SuSE와 그 하위 배포판은 거의 유사하지는 않지만 유사한 작업을 수행하며 Debian과 그 하위 배포판은 단일 /etc/network/interfaces파일을 사용합니다. 다른 배포판은 이들 중 하나를 모방하거나 자체 솔루션을 개발합니다.

어느 시점에서 패키지 개발이 net-tools중단되고 고급 명령줄 네트워크 구성 도구 키트가 개발되었습니다. 그러나 모든 사람이 익숙한 명령 iproute2에서 새 명령 으로 ifconfig마이그레이션하기 를 원하지는 않았습니다. 이전 명령으로 구성되었습니다 .routeip addrip routenet-tools

그런 다음 WiFi, VPN을 갖춘 노트북이 확산되고 있으며 WiFi 및 VPN 비밀번호를 저장할 필요성이 있습니다.개인의: 동일한 노트북에서도 한 사용자는 특정 WiFi 네트워크의 비밀번호를 알고 있고 다른 사용자는 알지 못할 수 있습니다. 이는 이상적인 상황일 수 있습니다(예: 부모와 자녀). NetworkManager는 각 사용자의 네트워크 설정을 저장할 뿐만 아니라 서로 다른 릴리스 버전 간의 네트워크 구성 관리를 통합하도록 설계되었습니다.

이를 위해 NetworkManager는 여러 개를 가질 수 있습니다.스토리지 백엔드 구성: NetworkManager에는 항상 "네이티브" 구성 스토리지 백엔드가 있습니다. 이는 /etc/NetworkManager/system-connections/디렉터리를 사용하고 VPN 연결 등에 대한 정보를 처리할 수 없는 경우 다른 구성 백엔드를 보완할 수 있습니다. 일반적으로 해당 배포판의 "레거시" 구성 파일을 적어도 읽을 수 있는(때때로 쓸 수 있는) 배포판별 구성 백엔드도 있습니다. 일반적으로 데스크탑 환경에 있는 보안 저장 메커니즘(예: GNOME Keyring 또는 KDE Wallet)을 사용하여 사용자별 구성 설정 저장을 관리하는 데스크탑 환경별 구성 백엔드가 있습니다.

NetworkManager에는 권한 있는 NetworkManager 메인 프로세스와 다양한 사용자 인터페이스, GUI 등을 쉽게 분리할 수 있는 D-Bus 인터페이스도 포함되어 있습니다.

이 키트 에는 원래 기본적으로 임베디드 시스템을 위한 경량 네트워크 구성 하위 시스템으로 의도된 systemd선택적 구성 요소도 포함되어 있지만 거기에서 눈덩이처럼 불어난 것 같습니다.systemd-networkd

이 XKCD 만화를 본 적이 있을 것입니다. 요약: 14개의 경쟁 표준이 있고 모든 사람이 사용할 수 있도록 모든 표준을 통합하는 표준을 개발하려고 하면 결국 15개의 경쟁 표준이 생성됩니다.

Ubuntu는 netplanNetworkManager systemd-networkdnetplan.

이야기는 아직 끝나지 않았습니다. 수렴이 일어날지, 아니면 각 솔루션이 최적의 지점을 찾을지는 지켜봐야 합니다.

관련 정보