고정 표시기는 드라이버의 호스트를 통해 다른 컨테이너 네트워크 지원을 개발 : macvlan합니다.
그 기능이 동일한 물리 NIC에 MAC 어드레스를 복수 허용하는 커널 모듈, 인터페이스, 즉 복수 linxu 자체 macvlan, 각 인터페이스는 자신의 IP와 함께 구성 될 수있다. NIC는 macvlan 네트워크는 놀라운 일이 아니다 달성에 macvlan 자연에 가상화 기술, 부두 노동자 컨테이너입니다.
가장 큰 장점 macvlan는 뛰어난 성능, 다른 구현에 비해, 리눅스 브리지를 만들 필요가 없습니다 macvlan하지만 직접 이더넷 인터페이스를 통해 물리적 네트워크에 연결되어 있습니다. 여기서 우리는 macvlan 네트워크를 만들어야합니다.
테스트 환경을 준비
우리는 macvlan을 만들 fdfs1 및 fdfs2 별도의 네트워크 카드 eth0를 사용합니다. promiscuous 모드로 eth0에있는 MAC 주소가 네트워크에서 복수의 패킷을 보장하기 위해, 우리는 카드를 열어야
에 IP 링크 설정을 eth0 PROMISC [루트 @의 fdfs는 - 1 ~ ] #는 ip가 1 보라 : <LOOPBACK, UP, LOWER_UP> MTU 65536 qdisc는 상태 UNKNOWN 그룹 기본 noqueue qlen 1000 링크 / 루프백 00 : 00 : 00 : 00 : 00 : 00 BRD 00 : 00 : 00 : 00 : 00 : 00 INET 127.0 . 0.1 / 8 범위 호스트 LO 영원히 영원히 preferred_lft valid_lft INET6 : 1 /128 범위 호스트 valid_lft 영원히 preferred_lft 영원히 2 : eth0를 <BROADCAST, UP MULTICAST, PROMISC, LOWER_UP> MTU 1500 qlen 상태 UP 그룹 기본 pfifo_fast가 qdisc를 1000 링크 에테르 / 52 : 54 : 00 : 3E : 3C : EF BRD FF : FF : FF : FF : FF : FF INET 192.168은 . 16.6 / 24 BRD 192.168 . 16.255 범위 글로벌 noprefixroute eth0에의 valid_lft 영원히 preferred_lft 영원히 FE80 INET6 : 5054 : FF : fe3e : 3cef / 64 범위의 링크 valid_lft 영원히 영원히 preferred_lft
macvlan 카드를 만들고, 두 호스트에서 다음 명령을 실행하여 (우리가 VLAN 구성을하기 때문에 KVM 호스트가 아닌, IP 구성의 macvlan 새겨진 호스트)
고정 표시기 네트워크는 -d macvlan --subnet = 생성 192.168 . 16.0 / 24 --gateway = 192.168 . 16.1 -o 부모 = eth0를 manet_1
이 고산 컨테이너 ping 테스트를 시작합니다
[루트 fdfs- @ 1 # 고정 표시기 실행 D = --network manet_1 --ip = ~] 192.168 . 16,111 --name TEST1 고산 잠 10000 58c9e529e491689b6b4f2b6dc6c58103b4b9b84a77db2df7047eb5513205f2d7 [루트 @의 FDF - 2 ~] # 고정 표시기 실행 D = --network manet_1 --ip = 192.168 . 16,112 --name TEST2 고산 잠 10000 d5e23bf52dd149259ff5fee8cd777c0cee40fb789bc507e10b2cc54813db9e0d
[루트 @의 fdfs 1 ~] # 고정 표시기 간부 TEST1 핑 192.168.16.112
PING 192.168.16.112 (192.168.16.112) 56 데이터 바이트
(64)로부터 바이트 192.168.16.112 서열 = 0 TTL = 64 시간 = 0.370 밀리
192.168 64 바이트 .16.112 서열은 TTL = 1 = 64 시간 = 0.364 밀리
192.168.16.112 64 바이트 서열 TTL = 2 = 64 시간 = 0.439 밀리
[루트 @의 fdfs -2- ~] # 고정 표시기 간부 TEST2 핑 192.168.16.111
PING 192.168.16.111 (192.168.16.111) 56 데이터 바이트
(64)로부터 바이트 192.168.16.111 서열 = 0 TTL = 64 시간 = 1.418 밀리
192.168 64 바이트 .16.111 서열은 TTL = 1 = 64 시간 = 0.403 밀리
192.168.16.111 64 바이트 서열 TTL = 2 = 64 시간 = 0.409 밀리
성공적인 크로스 호스트 통신
표시, 용기 eth0를 통해 가상 호스트 인터페이스 중 eth0를 macvlan이다. 직접 호스트에 연결된 컨테이너 인터페이스 카드,이 용액을 수 있다는 포트 매핑 및 NAT를 통해 다른 호스트와 독립적 인 네트워크의 차이는 없었다 (게이트웨이만큼), 외부 네트워크와 직접 통신하지 않고 용기.
macvlan이 카드는 네트워크 macvlan를 만들 수 있다는 것을 의미한다 전용 카드를 개최합니다
그러나 NIC가 호스트의 수는 제한되어 얼마나 더 많은 네트워크 macvlan을 지원하는
다행히도 만 (예 eth0를 같은) 인터페이스에 접속 될 수없는 macvlan (예 eth0.xxx 같은) 하위 인터페이스에 접속 될 수있다.
VLAN 논리 네트워크로 물리층 4094 네트워크 일 수있는 일반적으로 사용되는 네트워크 현대 네트워크 가상화 기술은,이 논리 네트워크는 VLAN ID에 의해 바닥 각 논리 네트워크 (즉, VLAN)에 격리되어있다 값 차이, VLAN ID의 4094.
리눅스 네트워크 카드는 (VLAN을 지원할 수 apt-get install vlan
), 동일한 인터페이스 전송 및 데이터 패킷을 하나 개 이상의 VLAN을받을 수 있지만, 전제는 하위 인터페이스 VLAN의를 만드는 것입니다.
예를 들어, 우리는 모두 VLAN10 및 VLAN20 eth0에 지원하려면, 당신은 하위 인터페이스 eth0.10 및 eth0.20을 작성해야합니다.
스위치에서 포트는 전송 및 단일 VLAN에 대한 데이터 및 액세스 모드에 대한 포트, 멀티 VLAN 지원, 비교하면 트렁크 모드, 그래서 전제가에 다음 테스트를받을 수있는 경우 :
eth0를이 스위치의 트렁크 포트에 연결합니다. 그러나 우리는 버추얼 박스 가상 머신을 사용하고, 당신은 추가 구성이 필요하지 않습니다.