네트워크 케이블(여러 개의 네트워크 포트가 있는 서버)을 뽑은 후 특정 네트워크 포트의 IP에 연결할 수 있는 이유는 무엇입니까?

네트워크 케이블(여러 개의 네트워크 포트가 있는 서버)을 뽑은 후 특정 네트워크 포트의 IP에 연결할 수 있는 이유는 무엇입니까?

설명할 수 없는 이상한 현상이 발생했을 때 여러(4개) 네트워크 인터페이스를 갖춘 Arch Linux를 실행하는 서버가 있었습니다.

두 개의 인터페이스가 IP 주소로 구성되어 있습니다 192.168.100.11/24( 192.168.100.12/24두 개의 netctl 구성 파일 사용).

두 인터페이스 모두 내 컴퓨터에도 연결된 스위치에 연결되어 있습니다.

프로필을 활성화하면 두 인터페이스가 모두 제대로 작동하는 것 같습니다.

그러나 기본 인터페이스()의 주소를 ping 192.168.100.11하고 해당 케이블을 제거하면(보조 인터페이스가 실행 중인 동안) 192.168.100.11인터페이스에 연결된 케이블이 없어도 계속 응답을 받습니다. ssh 192.168.100.11무사히 비행기에 탑승 할 수도 있었습니다 .

출력에는 ip addr인터페이스에 캐리어가 없고 작동이 중단되었지만 여전히 IP 주소가 있음이 표시됩니다.

2: enp7s0f0: <NO-CARRIER,BROADCAST,MULTICAST,UP> mtu 1500 qdisc mq state DOWN group default qlen 1000
link/ether 00:1e:67:a3:7f:b6 brd ff:ff:ff:ff:ff:ff
inet 192.168.100.11/24 brd 192.168.100.255 scope global enp7s0f0
   valid_lft forever preferred_lft forever
inet6 fd00::21e:67ff:fea3:7fb6/64 scope global mngtmpaddr dynamic 
   valid_lft 6836sec preferred_lft 3236sec
inet6 fe80::21e:67ff:fea3:7fb6/64 scope link 
   valid_lft forever preferred_lft forever
3: enp7s0f1: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mq state UP group default qlen 1000
link/ether 00:1e:67:a3:7f:b7 brd ff:ff:ff:ff:ff:ff
inet 192.168.100.12/24 brd 192.168.100.255 scope global enp7s0f1
   valid_lft forever preferred_lft forever
inet6 fd00::21e:67ff:fea3:7fb7/64 scope global mngtmpaddr dynamic 
   valid_lft 6836sec preferred_lft 3236sec
inet6 fe80::21e:67ff:fea3:7fb7/64 scope link 
   valid_lft forever preferred_lft forever

상태를 확인 하면 netctl status main프로필이 여전히 활성 상태입니다.

# netctl status main[email protected] - Main interface
   Loaded: loaded (/etc/systemd/system/[email protected]; enabled; vendor preset: disabled)
   Active: active (exited) since Thu 2015-01-08 11:29:07 UTC; 25min ago
     Docs: man:netctl.profile(5)
 Main PID: 55293 (code=exited, status=0/SUCCESS)

Jan 08 11:29:03 timingserver1 network[55293]: Starting network profile 'main'...
Jan 08 11:29:07 timingserver1 network[55293]: Started network profile 'main'

어떻게 이럴 수있어?

그 뒤에 있는 메커니즘을 이해하는 것이 나에게 중요합니다. 계획은 IP를 제공하는 두 개의 중복 서버를 갖는 것입니다 192.168.100.11. 서버 중 하나의 기본 인터페이스가 다운되고 두 서버가 모두 동일한 스위치에 연결됩니다. 두 서버의 두 번째 인터페이스는 서버가 대기 중이거나 다운그레이드되었을 때 유지 관리를 위한 것입니다(물론 두 서버의 IP는 동일하지 않습니다).

따라서 장애 조치가 발생하면 기본 서버의 인터페이스를 종료하거나 케이블 연결을 끊고 백업 서버의 인터페이스를 활성화합니다. 물론, 192.168.100.11메인서버가 다운됐는데도 계속 응답을 한다면 안타까운 일이겠죠... :-/

내 netctl 구성 파일:

  • 메인 인터페이스

    Description='Main interface'
    Interface=enp7s0f0
    Connection=ethernet
    IP=static
    Address=('192.168.100.11/24')
    Gateway='192.168.100.1'
    DNS=('192.168.100.1' '8.8.8.8')
    
  • 보조 인터페이스

    Description='Secondary interface'
    Interface=enp7s0f1
    Connection=ethernet
    IP=static
    Address=('192.168.100.12/24')
    DNS=('192.168.100.2' '8.8.8.8')
    

누구든지 제가 원하는 솔루션을 보관하는 방법을 안내해 주시면 매우 감사하겠습니다. 어쩌면 내가 간과하고 있거나 인식하지 못하는 어리석은 일일 수도 있지만 지금은 나를 괴롭히고 있습니다... :-/

답변1

문제는 인터페이스가 모두 동일한 서브넷에 있기 때문에 모든 인터페이스가 ARP 요청에 응답한다는 것입니다. 따라서 네트워크 인터페이스의 IP 주소가 다르더라도 ARP 항목은 동일한 인터페이스를 가리킵니다. 따라서 서로 다른 IP에서 오는 모든 패킷은 동일한 MAC 주소로 전송됩니다(모든 IP의 ARP 항목에 동일한 MAC이 있으므로).

내 arp 캐시는 다음과 같습니다.

$ ip neigh
192.168.100.11 dev enp2s0 lladdr 00:1e:67:a3:7f:b7 STALE
192.168.100.12 dev enp2s0 lladdr 00:1e:67:a3:7f:b7 STALE

ARP를 볼 수 있는 단서를 제공한 @ChristopherNeylan에게 감사드립니다.

동일한 서브넷에 여러 개의 네트워크 카드를 두고 내가 원하는 동작을 보관하는 것은 쉽지 않은 것 같습니다.

문제는 리눅스가 약한 것을 사용한다는 것입니다호스트 모델그러나 여기에는 강력한 호스트 모델이 필요합니다. 다른 사람이 관심이 있는 경우 도움이 될 수 있는 serverfault 문제를 발견했습니다. 동일한 서브넷의 IP 다중 물리적 인터페이스

관련 정보