1 / 43

Linux Advanced Routing & Traffic Control HOWTO (1)

Linux Advanced Routing & Traffic Control HOWTO (1). 2006. 5.30 성 백 동 iceboy98 @hufs.ac.kr. Contents. Introduction Exploring your current configuration Rules-routing policy database GRE and other tunnels IPSEC : secure IP over the Internet Multicast routing. introduction.

betsy
Download Presentation

Linux Advanced Routing & Traffic Control HOWTO (1)

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Linux Advanced Routing & Traffic Control HOWTO (1) 2006. 5.30 성 백 동 iceboy98@hufs.ac.kr

  2. Contents • Introduction • Exploring your current configuration • Rules-routing policy database • GRE and other tunnels • IPSEC : secure IP over the Internet • Multicast routing

  3. introduction • 리눅스 2.2/2.4 기반 • 리눅스, 유닉스 시스템은 arp, ifconfig,route 명령어를 사용 • 커널 2.2 이후 리눅스에서는 의도하지 않은 동작을 보인다. • GRE 터널은 라우팅을 구성하는 한 부부이지만 완벽히 다른 도구를 필요로 한다. • Iproute2 • 리눅스는 트래픽 제어라 부르는 매우 정교한 대역폭 시스템을 가짐 • 대역폭 분류, 우선권 제공, 분배, 트래픽 제한이 가능

  4. 테스트 환경

  5. Exploring your current configuration • Ip shows us our links • Link – network device • ip shows us our IP addresses

  6. Exploring your current configuration • ip shows us our routes

  7. Exploring your current configuration • ARP(Address Resolution Protocol) • 주소결정 프로토콜 • 네트워크에 연결된 컴퓨터가 같은 지역 네트워크에 존재하는 다른 컴퓨터의 하드웨어 위치/주소를 알아내는데 사용 ARP cache entry

  8. Chap 4. Rules-routing policy database • IP RULE • rule in routing policy database. • Control the route selection algorithm. • Classic rouing algorithm은 패킷 의 destination address을 기반으로 라우팅을 결정. • 다양한 방법으로 라우팅을 결정할 수 있도록 하기 위해서 • Policy routing rule은 selector와 action predicate로 구성. • 각 selector는 source address, destination address, incoming interface, tos, fwmark를 적용한다. • Selector에 맞는 패킷이 있다면 해당하는 action을 수행한다. • Default rule Lookup routing table local The normal routing table containing all non-policy routes. priority action selector reserved

  9. Simple source policy routing • local table • Main table • 새로운 Rule 생성

  10. Routing for multiple uplinks/providers • 지역 네트워크를 인터넷에 연결하는데 사업자가 두개 일 때 사용되는 설정 • Split access • Load balancing 지역망 인터넷

  11. Split Access • 특정 서비스 제공자를 통해서 패킷이 온 경우 같은 서비스 제공자를 통해 응답해야 한다. • 경로 설정 예제 (IF – 인터페이스 , IP- IF에 할당된 IP주소 , P – Provider의 gateway IP address , P-NET – P에 있는 IP 네트워크 , T – routing table) • ip route add $P1_NET dev $IF1 src $IP1 table T1 • ip route add default via $P1 table T1 • ip route add $P2_NET dev $IF2 src $IP2 table T2 • ip route add default via $P2 table T2 • Gateway로 가는 경로를 하나 만들고 gateway를 통해 기본 경로를 설정한다.

  12. Split Access • Main routing table 설정 • 인터페이스에 연결된 이웃에게 직접 라우팅 • ‘src’인수 사용 • 나가는 IP 주소 지정 • ip route add $P1_NET dev $IF1 src $IP1 • ip route add $P2_NET dev $IF2 src $IP2 • 기본 라우팅 경로 설정 • Ip route add default via $P1 • Routing rule 설정 • ip rule add from $IP1 table T1 • ip rule add from $IP2 table T2

  13. Load balancing • 두 서비스 제공자를 통해 나가는 흐름의 양을 조절하는 방법 • 하나를 기본 경로로 설정하는 대신 기본 경로를 다중 경로로 지정 • Ip route add default scpe global nexthop via $P1 dev $IF1 weight nexthop via $P2 dev $IF2 weight 1 • Weight 인수는 선호하는 provider로 조정 가능 • Load balancing은 route를 기반으로 하고 route들이 캐시되기 때문에 불완전하다. • 만약 자주 방문하는 사이트는 항상 같은 provider를 통해서만 연결 될 수도 있다.

  14. Chap 5. GRE and other tunnels • 리눅스 터널 • IP in IP 터널링 • GRE 터널링 • 커널 외부의 터널(PPTP[point-to-point tunneling protocol]와 유사) • 터널링의 특징 • 간접 비용 증가 • IP 헤더가 추가 – 패킷당 20바이트 • MTU가 1500 바이트일때 터널을 통과할 수 있는 패킷은 1480바이트가 한계 • 터널을 만드는데 가장 빠른 방법은 양쪽을 파면 된다.

  15. IP in IP tunneling • 리눅스에서 오래전 부터 지원 • 커널 모듈 필요 • Ipip.o,new_tunnel.o • IP-in-IP 터널을 통해서 IPv6나 broadcast 트래픽을 포워딩할 수 없다. • 리눅스의 IP-in-IP 터널링은 다른 운영체제나 라우터와 같이 사용할 수 없다.

  16. IP in IP tunneling • 테스트 환경 • 네트워크 C에 대해서는 네트워크 A와 B의 패킷들을 서로간에 전달해준다. 10.0.2.1 10.0.1.1 네트워크 B 네트워크 C 네트워크 A Network 10.0.1.0 Netmask 255.255.255.0 Router 10.0.1.1 Network 10.0.2.0 Netmask 255.255.255.0 Router 10.0.2.1 172.19.20.21 172.16.17.18

  17. IP in IP tunneling • 모듈 설치 Insmod ipip.o ipip.ko Insmod new_tunnel.o ----- fedora4에서는 없는 모듈. • 네트워크 A의 라우터 Ifconfig tun10 10.0.1.1 pointopoint 172.19.20.21 Route add –net 10.0.2.0 netmask 255.255.255.0 dev tun10 • 네트워크 B의 라우터 Ifconfig tun10 10.0.2.1 pointopoint 172.16.17.18 Route add –net 10.0.1.0 netmask 255.255.255.0 dev tun 10 • 터널을 끝내려면 Ifconfig tun10 down

  18. GRE tunneling • Cisco에서 개발한 터널링 프로토콜 • 멀티캐스트나 IPv6 처리 가능 • 모듈 필요 • ip_gre.o • IPv4 터널링 10.0.2.1 10.0.1.1 네트워크 B 네트워크 C 네트워크 A Network 10.0.1.0 Netmask 255.255.255.0 Router 10.0.1.1 Network 10.0.2.0 Netmask 255.255.255.0 Router 10.0.2.1 172.19.20.21 172.16.17.18 neta netb

  19. IPv4 터널링 • 네트워크 A의 라우터 설정 • Netb라는 터널 장치 추가, GRE 프로토콜을 사용 , 원격지 주소 172.19.20.21 , 터널을 지나는 패킷이 172.16.17.18에서 출발 • 장치 활성화 • 새로운 netb에 주소를 10.0.1.1로 지정 • 터널링 장치를 위해 다른 IP 대역을 사용하는 것을 생각해 볼 수 있다. • 네트워크 B로 가는 경로 지정

  20. IPv4 터널링 • 네트워크 B의 라우터 설정 • 라우터 A에서 터널을 없앨 때

  21. IPv4 터널링

  22. IPv6 IPv4 IPv6 Tunneling • 다음과 같은 IPv6 newtork이 있고, 6bone에 연결하려면?? • 네트워크의 IPv4 주소는 172.16.17.18이고, 6bone 라우터의 IPv4 주소는 172.22.23.24

  23. Chap 6. IPv4 tunneling with Cisco and/or 6bone • IPv6 Tunneling • IPv6 address have Some rules • 처음에 오는 0을 쓰지 않는다. • 16비트 or 두 바이트를 나우기 위해 콜론 사용 • 연속적인 0을 가지면 :: 을 쓸 수 있다. 주소에서 오직 한번만 쓰고, 적어도 16비트 이상이 되어야 한다. • 2002:836b:9820:0000:0000:0000:836b:9886 • 2002:836b:9820::836b:9886 • IPv6 네트워크은 이미 있는 IPv4 인프라를 통해 IPv6 프로토콜을 IPv4 패킷에 싸서 보내는 식으로 연결한다.

  24. IPv6 Tunneling • IPv4 address – 144.100.24.181 • 6bone 라우터 IPv4 address – 145.100.1.5 • IP forwaring을 위해서 IPv6를 위한 router advertisement daemon

  25. IPSEC : secure IP over the Internet • IPSec(IP Security) • IP 레이어에서의 패킷 교환이 안전하게 이루어 질 수 있도록 하기 위하여 IETF에서 개발한 프로토콜 • 가상적인 전용회선을 구축 • 사용자 측 단말기에 탑재, 인터넷을 거쳐 특정 클라이언트와 서버만이 IPSec으로 데이터를 주고 받을 수 있다 • IPSec의 주요 장점 • Transparency • IPSec은 network layer에서 동작하므로, application과는 무관하게 동작 • Network Topology 의존성이 없다 • TCP/IP 프로토콜을 사용하므로 Ethernet, TokenRing, PPP등 모든 network topology에 사용 가능. • 표준화 • 표준화된 tunneling, authentication, encryption 방법을 사용한다. • Multiprotocol • IPSec은 tunneling mode를 사용할 경우 여러 프로토콜과도 동작할 수 있다.

  26. IPSEC : secure IP over the Internet • IPSec operation mode • 전송모드 • IP payload만 encrypt. • IP Header는 보전되므로 public network 상의 모든 장비가 해당 패킷의 최종 destination을 알 수 있다. • Clear한 상태의 IP Header로 인해 attacker의 트래픽 분석 가능 • 각 endpoint가 IPSec를 이해 • 터널모드 • 모든 초기의 datagram이 encrypt, 새로운 IP packet의 header가 만들어짐 • 라우터와 같은 장비가 IPSec Proxy로 동작 가능 • Source의 라우터가 IPSec tunnel을 통해서 패킷을 encrypt하여 forward • Destination 라우터는 초기 IP 패킷을 decrypt해서 최종 목적지로 forward • 전체 패킷을 encript. • 실질적인 source와 destination은 노출되지 않음

  27. IPSEC : secure IP over the Internet • IPSec components • IPSec은 2개의 protocol – AH, ESP로 구성 • AH – authentication과 data integrity를 위해 동작 • ESP – confidentiality를 위해 서비스 • Database에 저장되어 있는 policy – SPD(Security Policy Database) • System manager에 의해 변경 가능 • IKE 프로토콜은 암호화 키의 관리에 사용

  28. IPSec components • SAD(Security Association Database) • SA는 IPSec을 사용하는 두 peer간의 협약을 의미 • Peer간에 사용되는 암호화 알고리즘 • 사용되는 key • SA life time • 최대 전송 byte를 정의 • 설정 방법은 manual과 automatic • SPD(Security Policy Database) • System manager에 의해 정의 • Traffic에 대하여 security 서비스가 사용되어야 할 지 정의.

  29. IPSec components • AH(Authentication Header) • IP extension Header로서 IP packet에 대한 인증 여부를 제공 • 전체 패킷에 대한 인증 여부를 결정 • Transport mode의 경우 AH는 IP Header와 Payload 사이에 위치하여 전체 IP Packet을 인증 • Tunnel mode의 경우 새로운 IP Header와 AH가 앞 부분에 첨가

  30. IPSec components • ESP(Encapsulating Security Payload) • 다수의 security service를 제공 • Confidentiality, origin authentication, data integrity를 제공 • Authentication없이 confidentaility를 제공 가능 • Transport mode의 경우 IP Header 뒤에 나타나며, IP Payload는 ESP Payload에 의해 encapsulate된다. • Tunnel mode일 경우 payload는 원본 IP 패킷이 된다.

  31. Chap 7. IPSEC : secure IP over the Internet • 리눅스에서는 두 가지 종류의 IPSEC을 사용할 수 있다. • 2.2 및 2.4에는 최초의 메이저 구현물인 FreeS/WAN이 있다. • 리눅스 커널에 아주 잘 통합되지는 않으며, 실제 merge의 좋은 후보가 되지 못함 • 리눅스 2.5.47의 경우 커널 내에 자체적인 IPSEC 구현이 있다. • 2.5.49의 경우 IPSEC는 추가적인 패치 없이도 동작한다.

  32. SPI(Security Parameter Index) ID Secret key Intro with Manual Keying • Iptable에서 IPSEC 패킷을 차단 시키므로 다음과 같은 설정을 필요. • iptable –A xxx –p 50 –j ACCEPT • iptable –a xxx –p 51 –j ACCEPT • IPSEC은 Internet Protocol의 보안 버전을 제공 • 보안 - 암호화(encryption)과 인증(Authentication) • IPSEC은 암호화를 위한 “ESP”와 “AH”를 지원한다. • ESP와 AH는 security association(SA)에 의존한다. • SA는 source와 destination, instruction으로 구성 • 대칭적 • 통신하는 양쪽에서 정확히 동일한 SA를 공유 • 양방향 트래픽을 위해서는 두 개의 SA가 필요.

  33. Intro with Manual Keying • 암호화를 위한 Policy의 필요성 • 간단한 Security Policy(SP) • Security Policy specifies WHAT we want; a Security Association describes HOW we want it. • 나가는 패킷에는 SA SPI가 있어서 이를 통해 원격지에 대응하는verification과 decryption instruction을 찾을 수 있다. • 10.0.0.216에서 10.0.0.11로 암호화 및 인증을 통해 통신을 하는 단순한 구성

  34. Intro with Manual Keying • /sbin/setkey –f filename Security Policy

  35. Intro with Manual Keying

  36. Automatic Keying • 안전한 상태 유지를 위해 암호화 구성을 신뢰할 수 있는 경로를 통해 전달할 필요가 있다. • 비밀값이 공유되기에 비밀이 아니다. • 모든 상대와의 통신에서 서로 다른 비밀값을 사용하도록 해야한다. • Key rollover • 일정시간마다 새로운 키로 옮겨야 한다. • 좀더 일반적인 키 정책을 기술할 수 있게 되야 한다. • 정확하게 • Internet Key Exchange 프로토콜 제공 • 난수적으로 생성된 키를 자동으로 교환 • 협상된 알고리즘 세부 사항에 따라서 비대칭 암호화 기술을 이용해 전송 • IPSEC 구현은 KAME ‘racoon’ IKE 데몬으로 동작한다. • key manage protocol

  37. Automatic Keying • Security Association을 만들어 주고 policy는 유저가 설정 • Racoon 설정 – racoon.conf & psk.txt Other host passwd Psk.txt 의 파일의 소유자는 root 모드는 600으로 설정되어야 한다.

  38. Automatic Keying • Security policy

  39. Automatic keying using X.509 certificates • 비 대칭 암호화 기술 • IPSEC 참가자가 public key와 private key를 만든다. • openssl 도구로 키를 만든다.

  40. IPSEC tunnels • Tunnel 모드 • 라우터만 IPSEC 에 대해서 알고 다른 호스트들을 대신해서 필요한 작업들을 한다. • Proxy ESP라고도 함. • Example • 10.0.0.216에서 10.0.0.11을 거쳐 130.161.0.0/16으로 가는 모든 트래픽이 터널을 통하기 위해서 130.161.0.0/16 10.0.0.11 10.0.0.216

  41. ESP 암호화 SA를 구성 실제 터널 구성 IPSEC tunnels • 10.0.0.216에서의 설정 • 10.0.0.11

  42. Chap 8. Multicast routing • 멀티캐스트 라우팅을 위해서는 자신이 원하는 종류를 지원하도록 리눅스 커널을 구성해야 한다. • DVMRP(RIP 유니캐스트 프로토콜의 멀티캐스트 버전) , MOSPF(OSPF), PIM-SM(Protocol Independent Multicast-Sparse Mode) , PIM-DM(Protocol Independent Multicast-Dense Mode) • 멀티캐스트를 활성화 시킨후 라우터 테이블에 멀티캐스트 가상 네트워크를 추가

  43. Multicast routing • 리눅스 패킷 포워딩 설정 • Eth0에서 멀티캐스팅을 하고 있다고 가정

More Related