Multi-NIC System의 설정
multi channel LAN card를 가지고 컴퓨터 간 연결을 할 때 두 개의 컴퓨터 사이에 여러 개의 케이블을 연결하여도 모든 케이블이 정상적으로 동작하지 않고 일부 케이블으로만 통신을 하는 오류가 있었다. 이 문제를 해결하기 위한 방법을 ni.com에서 찾아서 정리해 보았다.
169.254. 아이피의 문제
처음으로 발견한 문제는 169.254로 시작하는 아이피들이 할당된 것이었다.
IPv4주소는 multiple한 Network에서 reusable하다. 만약, private network를 사용하는 경우에는 10.x.x.x, 192.168.x.x 또는 172.x.x.x의 형태를 사용하는 경향이 있다.
왜냐하면 대부분의 OS에서는 DHCP server를 통해 TCP/IP setting(IP address, subnet mask, and default gateway)을 자동으로 configure하는데, DHCP server를 발견하지 못하면, link-local IP address인 169.254.x.x range의 아이피를 OS가 할당하기 때문이다.
이때 DHCP server를 사용하지 못했던 것은 네트워크 토폴로지 상 라우터와 연결되어 있지 않았기 때문인데, DHCP server는 라우터의 역할 중 일부이기 때문이다.
link-local의 연결만 할 것이라면, 169.254.x.x로 시작하는 아이피를 사용해도 상관이 없다. 다만 network 너머서는 address가 unique한지 알 수 없으므로 router로부터 packet을 받을 수 없다.
일부 port의 interface로 ping이 보내지지 않던 문제
두 컴퓨터가 연결되었는지는 ubuntu의 ping 명령어를 이용하여 확인하였다. 옵션에서 -I를 지정하면 어떤 interface를 이용하여 ping을 전송할지도 결정할 수 있다.
그런데 두 컴퓨터간 두 개의 케이블을 연결해도 하나의 interface로만 핑을 보낼 수 있는 문제가 있었다.
이 문제는 같은 subnet의 같은 computer에 multiple NICs 가 할당되어 있어서 발생한 문제이다. (사실 multiple NICs가 아니라 한 NIC의 multiple port지만 둘은 동일한 역할을 한다.)
어떤 OS는 multiple NICs가 한 subnet에 존재하여도 정상적으로 인식하지만, 일부 OS의 경우에는 잘못된 interface로 packet을 보내려는 시도를 한다. 따라서 이런 문제를 해결하기 위해서는 subnet mask를 수정하거나 subnet mask 영역의 주소를 수정하여 다른 subnet에 포함시키면 된다.
실제로, 같은 subnet에 여러 NIC를 쓰는 것의 이득은 거의 없고, adapter teaming 정도의 이득만 있다고 한다.
만약 한 subnet에 여러 NIC를 쓰고 싶다면, 한 쪽을 사용하고 있을 때 다른 쪽의 network interface를 disable하는 것이 좋은 방법이다.
'CS > Network' 카테고리의 다른 글
[Computer Network] Transport Layer (0) | 2022.10.07 |
---|---|
[Computer Network] Application Layer (0) | 2022.10.07 |
[Computer Network] Introduction (0) | 2022.10.07 |
[Network] REST API (0) | 2021.09.27 |
[TCP/IP] 동기/비동기, blocking/non-blocking (0) | 2021.01.04 |